lsnes rr1-β7
[lsnes.git] / manual.lyx
blob98c747c68237e811158a3500c379eed862118306
1 #LyX 2.0 created this file. For more info see http://www.lyx.org/
2 \lyxformat 413
3 \begin_document
4 \begin_header
5 \textclass article
6 \use_default_options true
7 \maintain_unincluded_children false
8 \language finnish
9 \language_package default
10 \inputencoding auto
11 \fontencoding global
12 \font_roman default
13 \font_sans default
14 \font_typewriter default
15 \font_default_family default
16 \use_non_tex_fonts false
17 \font_sc false
18 \font_osf false
19 \font_sf_scale 100
20 \font_tt_scale 100
22 \graphics default
23 \default_output_format default
24 \output_sync 0
25 \bibtex_command default
26 \index_command default
27 \paperfontsize default
28 \use_hyperref false
29 \papersize default
30 \use_geometry false
31 \use_amsmath 1
32 \use_esint 1
33 \use_mhchem 1
34 \use_mathdots 1
35 \cite_engine basic
36 \use_bibtopic false
37 \use_indices false
38 \paperorientation portrait
39 \suppress_date false
40 \use_refstyle 1
41 \index Hakusana
42 \shortcut idx
43 \color #008000
44 \end_index
45 \secnumdepth 3
46 \tocdepth 3
47 \paragraph_separation indent
48 \paragraph_indentation default
49 \quotes_language english
50 \papercolumns 1
51 \papersides 1
52 \paperpagestyle default
53 \tracking_changes false
54 \output_changes false
55 \html_math_output 0
56 \html_css_as_file 0
57 \html_be_strict false
58 \end_header
60 \begin_body
62 \begin_layout Section
63 Introduction
64 \end_layout
66 \begin_layout Standard
67 lsnes is SNES rerecording emulator based on bsnes core.
68 \end_layout
70 \begin_layout Section
71 Dependencies
72 \end_layout
74 \begin_layout Enumerate
75 bsnes libsnes
76 \end_layout
78 \begin_deeper
79 \begin_layout Enumerate
80 v084 or 085
81 \end_layout
83 \begin_layout Enumerate
84 accuracy or compatiblity core.
85 \end_layout
87 \begin_layout Enumerate
88 Patched version (using included 6 patches)
89 \end_layout
91 \end_deeper
92 \begin_layout Enumerate
93 Zlib
94 \end_layout
96 \begin_layout Enumerate
97 boost_iostreams
98 \end_layout
100 \begin_layout Enumerate
101 boost_filesystem
102 \end_layout
104 \begin_layout Enumerate
105 libsdl (SDL only)
106 \end_layout
108 \begin_layout Enumerate
109 sdlmain (SDL only, part of SDL)
110 \end_layout
112 \begin_layout Enumerate
113 boost_conversion (this is header-only library)
114 \end_layout
116 \begin_layout Enumerate
117 libswscale (wxwidgets graphics only)
118 \end_layout
120 \begin_layout Enumerate
121 Portaudio (portaudio sound only)
122 \end_layout
124 \begin_layout Enumerate
125 std::thread and co (for threaded dumper only)
126 \end_layout
128 \begin_layout Enumerate
129 Lua (if Lua support is needed).
130 \end_layout
132 \begin_layout Itemize
133 Version 5.1.X or 5.2X.
134 \end_layout
136 \begin_layout Section
137 Building
138 \end_layout
140 \begin_layout Standard
141 Building is via makefile, the following options are available:
142 \end_layout
144 \begin_layout Itemize
145 CROSS_PREFIX=<prefix>
146 \end_layout
148 \begin_deeper
149 \begin_layout Itemize
150 Prefix to apply to commands when building executables / object files for
151  the target architecture.
153 \end_layout
155 \begin_layout Itemize
156 Default is blank.
157 \end_layout
159 \end_deeper
160 \begin_layout Itemize
161 CC=<name>
162 \end_layout
164 \begin_deeper
165 \begin_layout Itemize
166 Name of C++ compiler.
167 \end_layout
169 \begin_layout Itemize
170 CROSS_PREFIX is prepended if compiling for target architecture.
171 \end_layout
173 \begin_layout Itemize
174 This needs to be at least GCC 4.6.
175 \end_layout
177 \begin_layout Itemize
178 Set to 'g++-mp-4.6' if compiling on Mac OS X using GCC 4.6 from Macports.
179 \end_layout
181 \begin_layout Itemize
182 Default is 'g++'.
183 \end_layout
185 \end_deeper
186 \begin_layout Itemize
187 HOSTCC=<name>
188 \end_layout
190 \begin_deeper
191 \begin_layout Itemize
192 Name of host C++ compiler.
193 \end_layout
195 \begin_layout Itemize
196 Default is value of 'CC' option.
197 \end_layout
199 \end_deeper
200 \begin_layout Itemize
201 USER_HOSTCCFLAGS=<flags>:
202 \end_layout
204 \begin_deeper
205 \begin_layout Itemize
206 Compiler flags to pass when compiling/linking for host architecture.
207 \end_layout
209 \begin_layout Itemize
210 Default is blank.
211 \end_layout
213 \end_deeper
214 \begin_layout Itemize
215 USER_CFLAGS=<flags>
216 \end_layout
218 \begin_deeper
219 \begin_layout Itemize
220 Extra flags to pass when compiling for target architecture
221 \end_layout
223 \begin_layout Itemize
224 Default is blank.
225 \end_layout
227 \end_deeper
228 \begin_layout Itemize
229 USER_LDFLAGS=<flags>: 
230 \end_layout
232 \begin_deeper
233 \begin_layout Itemize
234 Extra flags to pass when linking for target architecture.
235 \end_layout
237 \begin_layout Itemize
238 Default is blank.
239 \end_layout
241 \end_deeper
242 \begin_layout Itemize
243 USER_PLATFORM_CFLAGS=<flags>
244 \end_layout
246 \begin_deeper
247 \begin_layout Itemize
248 Extra flags to pass when compiling files using platform-dependent code for
249  target architecture.
250 \end_layout
252 \begin_layout Itemize
253 Default is blank.
254 \end_layout
256 \end_deeper
257 \begin_layout Itemize
258 USER_PLATFORM_LDFLAGS=<flags>
259 \end_layout
261 \begin_deeper
262 \begin_layout Itemize
263 Extra flags to pass when linking files using platform-dependent code for
264  target architecture.
265 \end_layout
267 \begin_layout Itemize
268 Default is blank.
269 \end_layout
271 \end_deeper
272 \begin_layout Itemize
273 FONT_SRC=<file>
274 \end_layout
276 \begin_deeper
277 \begin_layout Itemize
278 Set the font file to use.
279 \end_layout
281 \begin_layout Itemize
282 Currently the valid values are:
283 \end_layout
285 \begin_deeper
286 \begin_layout Itemize
287 cp437.hex: Standard VGA font (256 characters).
288 \end_layout
290 \begin_layout Itemize
291 unifontfull-5.1.20080820.hex: GNU unifont (covers most of Unicode BMP)
292 \end_layout
294 \end_deeper
295 \begin_layout Itemize
296 Default is 'unifontfull-5.1.20080820.hex'
297 \end_layout
299 \end_deeper
300 \begin_layout Itemize
301 LUA=<package>
302 \end_layout
304 \begin_deeper
305 \begin_layout Itemize
306 Package to use for Lua support.
307 \end_layout
309 \begin_layout Itemize
310 Usually valid value is 'lua' or 'lua5.1'.
311 \end_layout
313 \begin_layout Itemize
314 Default is not to build Lua support.
315 \end_layout
317 \end_deeper
318 \begin_layout Itemize
319 THREADS=<bool>
320 \end_layout
322 \begin_deeper
323 \begin_layout Itemize
324 Override platform default for dumper threading support.
325 \end_layout
327 \begin_layout Itemize
328 Threading is default on Linux.
329 \end_layout
331 \begin_layout Itemize
332 'YES' tries to use threading.
333 \end_layout
335 \begin_layout Itemize
336 'NO' disables threading.
337 \end_layout
339 \begin_layout Itemize
340 Note: This has absolutely nothing to do with platform threading.
341 \end_layout
343 \end_deeper
344 \begin_layout Itemize
345 BSNES_IS_COMPAT=<anything>
346 \end_layout
348 \begin_deeper
349 \begin_layout Itemize
350 Signals that BSNES core used is compatiblity core, not accuracy core.
351 \end_layout
353 \begin_layout Itemize
354 Default is to assume accuracy core.
355 \end_layout
357 \end_deeper
358 \begin_layout Itemize
359 JOYSTICK=<implementation>
360 \end_layout
362 \begin_deeper
363 \begin_layout Itemize
364 Set joystick implementation.
365  Valid values are:
366 \end_layout
368 \begin_deeper
369 \begin_layout Itemize
370 SDL: Use SDL for joystick (requires SDL graphics)
371 \end_layout
373 \begin_layout Itemize
374 EVDEV: Use EVDEV for joystick (Linux only).
375 \end_layout
377 \begin_layout Itemize
378 DUMMY: Disable joystick support.
379 \end_layout
381 \end_deeper
382 \begin_layout Itemize
383 Default is SDL.
384 \end_layout
386 \end_deeper
387 \begin_layout Itemize
388 SOUND=<implementation>
389 \end_layout
391 \begin_deeper
392 \begin_layout Itemize
393 Set sound implementation.
394  Valid values are:
395 \end_layout
397 \begin_deeper
398 \begin_layout Itemize
399 SDL: Use SDL for sound (requires SDL graphics)
400 \end_layout
402 \begin_layout Itemize
403 PORTAUDIO: Use Portaudio for sound.
404 \end_layout
406 \begin_layout Itemize
407 DUMMY: Disable sound support
408 \end_layout
410 \end_deeper
411 \begin_layout Itemize
412 Default is SDL.
413 \end_layout
415 \end_deeper
416 \begin_layout Itemize
417 GRAPHICS=<implementation>
418 \end_layout
420 \begin_deeper
421 \begin_layout Itemize
422 Set windowing library to use.
423  Valid values are:
424 \end_layout
426 \begin_deeper
427 \begin_layout Itemize
428 SDL: Use SDL for graphics
429 \end_layout
431 \begin_layout Itemize
432 WXWIDGETS: Use wxWidgets for graphics.
433 \end_layout
435 \end_deeper
436 \begin_layout Itemize
437 Default is SDL.
438 \end_layout
440 \end_deeper
441 \begin_layout Section
442 Command line options
443 \end_layout
445 \begin_layout Subsection
446 ROM options
447 \end_layout
449 \begin_layout Standard
450 <kind> in the following can be one of:
451 \end_layout
453 \begin_layout Itemize
454 rom: Cartridge ROM (BIOS for special carts).
455  This is required.
456 \end_layout
458 \begin_layout Itemize
459 bsx: BS-X (non-slotted) Game flash ROM.
460 \end_layout
462 \begin_layout Itemize
463 bsxslotted: BS-X (slotted) Game flash ROM.
464 \end_layout
466 \begin_layout Itemize
467 dmg: DMG game ROM
468 \end_layout
470 \begin_layout Itemize
471 slot-a: Sufami Turbo Slot A ROM
472 \end_layout
474 \begin_layout Itemize
475 slot-b: Sufami Turbo Slot B ROM
476 \end_layout
478 \begin_layout Subsubsection
479 --<kind>=<file> (lsnes/SDL, lsnes-avidump)
480 \end_layout
482 \begin_layout Standard
483 Load <file> as specified ROM (SFC/BS/DMG/ST file format).
484 \end_layout
486 \begin_layout Subsubsection
487 --headered-<kind>=<file> (lsnes/SDL, lsnes-avidump)
488 \end_layout
490 \begin_layout Standard
491 Load <file> as specified ROM, stripping first 512 bytes.
492  Handy for loading SMC / FIG and such files.
493 \end_layout
495 \begin_layout Subsubsection
496 --<kind>-xml=<file> (lsnes/SDL, lsnes-avidump)
497 \end_layout
499 \begin_layout Standard
500 Override hardware detection for ROM, reading the values from <file> (BSNES
501  XML format).
502 \end_layout
504 \begin_layout Subsubsection
505 --ips-<kind>=<file> (lsnes/SDL, lsnes-avidump)
506 \end_layout
508 \begin_layout Standard
509 Apply BPS/IPS patch <file> to ROM <kind>.
510  If specified multiple times, the patches are applied in order.
511 \end_layout
513 \begin_layout Subsubsection
514 --ips-<kind>-xml=<file> (lsnes/SDL, lsnes-avidump)
515 \end_layout
517 \begin_layout Standard
518 Apply BPS/IPS patch <file> to XML of ROM <kind>.
519  If specified multiple times, the patches are applied in order.
520 \end_layout
522 \begin_layout Subsubsection
523 --ips-offset=<offset> (lsnes/SDL, lsnes-avidump)
524 \end_layout
526 \begin_layout Standard
527 Set offset to apply to IPS patches.
528  May be negative.
529  Handy for applying headered IPS patches (use offset of -512 for this).
530  The offset must be 0 for BPS patches.
531 \end_layout
533 \begin_layout Subsubsection
534 --pal
535 \end_layout
537 \begin_layout Standard
538 Force ROM to be considered PAL-only.
539 \end_layout
541 \begin_layout Itemize
542 Only works on SNES and SGB ROMs (not BS-X or Sufami Turbo).
543 \end_layout
545 \begin_layout Itemize
546 Attempting to load NTSC movie file will error out.
547 \end_layout
549 \begin_layout Subsubsection
550 --ntsc
551 \end_layout
553 \begin_layout Standard
554 Force ROM to be considered NTSC-only.
555 \end_layout
557 \begin_layout Itemize
558 Attempting to load PAL movie file will error out.
559 \end_layout
561 \begin_layout Subsection
562 Session options
563 \end_layout
565 \begin_layout Subsubsection
566 <filename> (lsnes/SDL, lsnes-avidump, movieinfo)
567 \end_layout
569 \begin_layout Standard
570 Load <filename> as movie or savestate file.
571  All other session options are ignored.
572 \end_layout
574 \begin_layout Subsubsection
575 --port1=<device> (lsnes/SDL)
576 \end_layout
578 \begin_layout Standard
579 Set type of port1.
580  Valid values are:
581 \end_layout
583 \begin_layout Itemize
584 none: No device connected
585 \end_layout
587 \begin_layout Itemize
588 gamepad: One gamepad (the default)
589 \end_layout
591 \begin_layout Itemize
592 multitap: Four gamepads (warning: makes most games refuse to start)
593 \end_layout
595 \begin_layout Itemize
596 mouse: Mouse.
597 \end_layout
599 \begin_layout Subsubsection
600 --port2=<type> (lsnes/SDL)
601 \end_layout
603 \begin_layout Standard
604 Set type of port2.
605  Valid values are:
606 \end_layout
608 \begin_layout Itemize
609 none: No device connected (the default)
610 \end_layout
612 \begin_layout Itemize
613 gamepad: One gamepad
614 \end_layout
616 \begin_layout Itemize
617 multitap: Four gamepads.
618 \end_layout
620 \begin_layout Itemize
621 mouse: Mouse
622 \end_layout
624 \begin_layout Itemize
625 superscope: Super Scope
626 \end_layout
628 \begin_layout Itemize
629 justifier: One justifier
630 \end_layout
632 \begin_layout Itemize
633 justifiers: Two justifiers
634 \end_layout
636 \begin_layout Subsubsection
637 --gamename=<name> (lsnes/SDL)
638 \end_layout
640 \begin_layout Standard
641 Set the name of game to <name>.
642  Default is blank.
643 \end_layout
645 \begin_layout Subsubsection
646 --author=<name> (lsnes/SDL)
647 \end_layout
649 \begin_layout Standard
650 Add author with full name of <name> (no nickname).
651 \end_layout
653 \begin_layout Subsubsection
654 --author=|<name> (lsnes/SDL)
655 \end_layout
657 \begin_layout Standard
658 Add author with nickname of <name> (no full name).
659 \end_layout
661 \begin_layout Subsubsection
662 --author=<fullname>|<nickname> (lsnes/SDL)
663 \end_layout
665 \begin_layout Standard
666 Add author with full name of <fullname> and nickname of <nickname>.
667 \end_layout
669 \begin_layout Subsubsection
670 --rtc-second=<value> (lsnes/SDL)
671 \end_layout
673 \begin_layout Standard
674 Set RTC second (0 is 1st January 1970 00:00:00Z).
675  Default is 1,000,000,000.
676 \end_layout
678 \begin_layout Subsubsection
679 --rtc-subsecond=<value> (lsnes/SDL)
680 \end_layout
682 \begin_layout Standard
683 Set RTC subsecond.
684  Range is 0-.
685  Unit is CPU cycle.
686  Default is 0.
687 \end_layout
689 \begin_layout Subsection
690 Misc.
691  options:
692 \end_layout
694 \begin_layout Subsubsection
695 --run=<file> (lsnes/SDL)
696 \end_layout
698 \begin_layout Standard
699 After running main RC file, run this file.
700  If multiple are specified, these execute in order specified.
701 \end_layout
703 \begin_layout Subsection
704 dump options (lsnes-dumpavi only)
705 \end_layout
707 \begin_layout Subsubsection
708 --prefix=<prefix>
709 \end_layout
711 \begin_layout Standard
712 Set dump prefix.
713  Default is 
714 \begin_inset Quotes eld
715 \end_inset
717 avidump
718 \begin_inset Quotes erd
719 \end_inset
722 \end_layout
724 \begin_layout Subsubsection
725 --level=<level>
726 \end_layout
728 \begin_layout Standard
729 Set compression level (0-18).
730  Default is 7.
731 \end_layout
733 \begin_layout Subsubsection
734 --length=<length>
735 \end_layout
737 \begin_layout Standard
738 Set number of frames to dump.
739  Mandatory.
740 \end_layout
742 \begin_layout Subsubsection
743 --lua=<script>
744 \end_layout
746 \begin_layout Standard
747 Run specified lua script (lsnes-dumpavi does not have initialization files).
748 \end_layout
750 \begin_layout Subsubsection
751 --jmd
752 \end_layout
754 \begin_layout Standard
755 Use JMD dumping instead of AVI dumping.
756 \end_layout
758 \begin_layout Subsubsection
759 --sdmp
760 \end_layout
762 \begin_layout Standard
763 Use SDMP dumping instead of AVI dumping.
764 \end_layout
766 \begin_layout Subsubsection
767 --ss
768 \end_layout
770 \begin_layout Standard
771 Dump in single segment (SDMP only).
772 \end_layout
774 \begin_layout Section
775 Startup file lsnes.rc
776 \end_layout
778 \begin_layout Standard
779 Upon startup, lsnes (lsnes/SDL only) executes file lsnes.rc as commands.
780  This file is located in:
781 \end_layout
783 \begin_layout Itemize
784 Windows: %APPDATA%
785 \backslash
786 lsnes
787 \backslash
788 lsnes.rc (if %APPDATA% exists)
789 \end_layout
791 \begin_layout Itemize
792 Unix: $XDG_CONFIG_HOME/lsnes/lsnes.rc (if $XDG_CONFIG_HOME exists)
793 \end_layout
795 \begin_layout Itemize
796 Unix: $HOME/.config/lsnes/lsnes.rc (if $HOME exists)
797 \end_layout
799 \begin_layout Itemize
800 All: ./lsnes.rc (fallback default).
801 \end_layout
803 \begin_layout Standard
804 If leading directories do not exist, attempt to create them is made.
805 \end_layout
807 \begin_layout Section
808 Internal commands
809 \end_layout
811 \begin_layout Itemize
812 Commands beginning with '*' invoke the corresponding command without alias
813  expansion.
814 \end_layout
816 \begin_layout Itemize
817 If command starts with '+' (after possible '*'), the command is executed
818  as-is when button is pressed, and when button is released, it is executed
819  with '+' replaced by '-'.
820 \end_layout
822 \begin_layout Itemize
823 Commands without '+' execute only on negative edge (release).
824 \end_layout
826 \begin_layout Subsection
827 Settings:
828 \end_layout
830 \begin_layout Standard
831 Settings control various aspects of emulator behaviour.
832 \end_layout
834 \begin_layout Subsubsection
835 set-setting <setting> <value>
836 \end_layout
838 \begin_layout Standard
839 Sets setting <setting> to value <value> (may be empty).
840 \end_layout
842 \begin_layout Subsubsection
843 unset-setting <setting>
844 \end_layout
846 \begin_layout Standard
847 Try to unset setting <setting> (not all settings can be unset).
848 \end_layout
850 \begin_layout Subsubsection
851 get-setting <setting>
852 \end_layout
854 \begin_layout Standard
855 Read value of setting <setting>
856 \end_layout
858 \begin_layout Subsubsection
859 show-settings
860 \end_layout
862 \begin_layout Standard
863 Print names and values of all settings.
864 \end_layout
866 \begin_layout Subsection
867 Keybindings
868 \end_layout
870 \begin_layout Standard
871 Keybindings bind commands or aliases to keys (or pseudo-keys).
873 \end_layout
875 \begin_layout Standard
876 Notes:
877 \end_layout
879 \begin_layout Itemize
880 Do not bind edge active (+/-) commands to keys with modifiers, that won't
881  work right!
882 \end_layout
884 \begin_layout Itemize
885 Names of keys and modifiers are platform-dependent.
886 \end_layout
888 \begin_layout Itemize
889 Be careful before binding pseudo-keys (such as joystick axes, buttons or
890  hats) with modifiers.
891  That may or may not work right.
892 \end_layout
894 \begin_layout Subsubsection
895 bind-key [<mod>/<modmask>] <key> <command>
896 \end_layout
898 \begin_layout Standard
899 Bind <command> to key <key> (activating if modifiers in <modmask> (comma-seperat
900 ed list) are set as <mod> (comma-seperated list).
901 \end_layout
903 \begin_layout Standard
904 The names of keys and modifiers are platform-dependent.
905 \end_layout
907 \begin_layout Subsubsection
908 unbind-key [<mod>/<modmask>] <key>
909 \end_layout
911 \begin_layout Standard
912 Unbind command from <key> (with specified <mod> and <modmask>).
913 \end_layout
915 \begin_layout Subsubsection
916 set-axis <axis> [disabled | axis | axis-inverse | pressure0- | pressure0+
917  | pressure-0 | pressure-+ | pressure+0 | pressure+-] [minus=<val>] [zero=<val>]
918  [plus=<val>] [tolerance=<val>]
919 \end_layout
921 \begin_layout Standard
922 Set axis parameters for axis <axis>.
923 \end_layout
925 \begin_layout Itemize
926 disabled: Disable axis
927 \end_layout
929 \begin_layout Itemize
930 axis: Normal axis
931 \end_layout
933 \begin_layout Itemize
934 axis-inverse: Inverse axis
935 \end_layout
937 \begin_layout Itemize
938 pressure0-: Pressure sensitive.
939  Released at 0, pressed at -.
940 \end_layout
942 \begin_layout Itemize
943 pressure0+: Pressure sensitive.
944  Released at 0, pressed at +.
945 \end_layout
947 \begin_layout Itemize
948 pressure-0: Pressure sensitive.
949  Released at -, pressed at 0.
950 \end_layout
952 \begin_layout Itemize
953 pressure-+: Pressure sensitive.
954  Released at -, pressed at +.
955 \end_layout
957 \begin_layout Itemize
958 pressure+0: Pressure sensitive.
959  Released at +, pressed at 0.
960 \end_layout
962 \begin_layout Itemize
963 pressure+-: Pressure sensitive.
964  Released at +, pressed at -.
965 \end_layout
967 \begin_layout Itemize
968 minus=<val>: Calibration at extreme minus position (-32768-32767)
969 \end_layout
971 \begin_layout Itemize
972 zero=<val>: Calibration at neutral position (-32768-32767)
973 \end_layout
975 \begin_layout Itemize
976 plus=<val>: Calibration at extreme plus position (-32768-32767)
977 \end_layout
979 \begin_layout Itemize
980 tolerance=<value>: Center band tolerance (0<x<1).
981  The smaller the value, the more sensitive the control is.
982 \end_layout
984 \begin_layout Subsubsection
985 show-bindings
986 \end_layout
988 \begin_layout Standard
989 Print all key bindings in effect.
990 \end_layout
992 \begin_layout Subsection
993 Aliases
994 \end_layout
996 \begin_layout Standard
997 Aliases bind command to sequence of commands.
998  After alias has been defined, it replaces the command it shadows.
999 \end_layout
1001 \begin_layout Standard
1002 Notes:
1003 \end_layout
1005 \begin_layout Itemize
1006 You can't alias command to itself.
1007 \end_layout
1009 \begin_layout Itemize
1010 Aliases starting with +/- are edge active just like ordinary commands starting
1011  with +/-.
1012 \end_layout
1014 \begin_layout Itemize
1015 One command can be aliased to multiple commands.
1016 \end_layout
1018 \begin_layout Subsubsection
1019 alias-command <command> <expansion>
1020 \end_layout
1022 \begin_layout Standard
1023 Append <expansion> to alias <command>.
1024  If alias does not already exist, it is created.
1025 \end_layout
1027 \begin_layout Subsubsection
1028 unalias-command <command>
1029 \end_layout
1031 \begin_layout Standard
1032 Clear alias expansion for <command>.
1033 \end_layout
1035 \begin_layout Subsubsection
1036 show-aliases
1037 \end_layout
1039 \begin_layout Standard
1040 Print all aliases and their expansions in effect.
1041 \end_layout
1043 \begin_layout Subsection
1044 run-script <script>
1045 \end_layout
1047 \begin_layout Standard
1048 Run <script> as if commands were entered on the command line.
1049 \end_layout
1051 \begin_layout Subsection
1052 Video dumping
1053 \end_layout
1055 \begin_layout Standard
1056 Following commands control video dumping:
1057 \end_layout
1059 \begin_layout Subsubsection
1060 dump-avi <prefix>
1061 \end_layout
1063 \begin_layout Standard
1064 Dump AVI video to prefix <prefix> Notes:
1065 \end_layout
1067 \begin_layout Itemize
1068 The codec is Camstudio Codec in gzip mode.
1069 \end_layout
1071 \begin_layout Itemize
1072 Encoder and muxer are internal, available on all platforms.
1073 \end_layout
1075 \begin_layout Itemize
1076 Audio enable/disable and framerate has no effect.
1077 \end_layout
1079 \begin_layout Itemize
1080 The audio dumped to .avi is low-quality version.
1081  The high-quality version is dumped to .sox file.
1082 \end_layout
1084 \begin_layout Subsubsection
1085 end-avi
1086 \end_layout
1088 \begin_layout Standard
1089 End current AVI video dump (closing the emulator also closes the dump).
1090 \end_layout
1092 \begin_layout Subsubsection
1093 dump-jmd <file>
1094 \end_layout
1096 \begin_layout Standard
1097 Dump JMD video to file <file>.
1098 \end_layout
1100 \begin_layout Subsubsection
1101 end-jmd
1102 \end_layout
1104 \begin_layout Standard
1105 End the current JMD dump in progress.
1106 \end_layout
1108 \begin_layout Subsubsection
1109 dump-sdmp <prefix>
1110 \end_layout
1112 \begin_layout Standard
1113 Dump SDMP to <prefix>, splitting at 2GB.
1114 \end_layout
1116 \begin_layout Subsubsection
1117 dump-sdmp-ss <file>
1118 \end_layout
1120 \begin_layout Standard
1121 Dump SDMP to <file>, no splitting
1122 \end_layout
1124 \begin_layout Subsubsection
1125 end-sdmp
1126 \end_layout
1128 \begin_layout Standard
1129 End the current SDMP dump in progress.
1130 \end_layout
1132 \begin_layout Subsection
1133 Memory manipulation
1134 \end_layout
1136 \begin_layout Standard
1137 <address> may be decimal or hexadecimal (prefixed with '0x').
1138  <value> can be hexadecimal (prefixed with '0x'), unsigned or signed (prefixed
1139  with '-') decimal.
1140 \end_layout
1142 \begin_layout Standard
1143 The available element <sizes> are:
1144 \end_layout
1146 \begin_layout Itemize
1147 byte: 1 byte
1148 \end_layout
1150 \begin_layout Itemize
1151 word: 2 bytes
1152 \end_layout
1154 \begin_layout Itemize
1155 dword: 4 bytes
1156 \end_layout
1158 \begin_layout Itemize
1159 qword: 8 bytes
1160 \end_layout
1162 \begin_layout Standard
1163 When reading RAM and ROM, multi-byte reads/writes are big-endian.
1164  When dealing with DSP memory, multi-byte reads/writes are native-endian
1165  (do not use operand sizes exceeding DSP bitness, except dword is OK for
1166  24-bit memory).
1167 \end_layout
1169 \begin_layout Subsubsection
1170 read-<size> <address>
1171 \end_layout
1173 \begin_layout Standard
1174 Read the value of byte in <address>.
1175 \end_layout
1177 \begin_layout Subsubsection
1178 read-s<size> <address>
1179 \end_layout
1181 \begin_layout Standard
1182 Read the value of signed byte in <address>.
1183 \end_layout
1185 \begin_layout Subsubsection
1186 write-<size> <address> <value>
1187 \end_layout
1189 \begin_layout Standard
1190 Write <value> to byte in address <address>.
1191 \end_layout
1193 \begin_layout Subsubsection
1194 search-memory reset
1195 \end_layout
1197 \begin_layout Standard
1198 Reset the memory search
1199 \end_layout
1201 \begin_layout Subsubsection
1202 search-memory count
1203 \end_layout
1205 \begin_layout Standard
1206 Print number of candidates remaining
1207 \end_layout
1209 \begin_layout Subsubsection
1210 search-memory print
1211 \end_layout
1213 \begin_layout Standard
1214 Print all candidates remaining
1215 \end_layout
1217 \begin_layout Subsubsection
1218 search-memory <usflag><sizeflag><op>
1219 \end_layout
1221 \begin_layout Standard
1222 Searches memory for addresses satisfying criteria.
1223 \end_layout
1225 \begin_layout Standard
1226 <usflag> can be:
1227 \end_layout
1229 \begin_layout Itemize
1230 u: unsigned
1231 \end_layout
1233 \begin_layout Itemize
1234 s: signed
1235 \end_layout
1237 \begin_layout Standard
1238 <sizeflag> can be:
1239 \end_layout
1241 \begin_layout Itemize
1242 b: byte
1243 \end_layout
1245 \begin_layout Itemize
1246 w: word
1247 \end_layout
1249 \begin_layout Itemize
1250 d: dword
1251 \end_layout
1253 \begin_layout Itemize
1254 q: qword
1255 \end_layout
1257 \begin_layout Standard
1258 <op> can be:
1259 \end_layout
1261 \begin_layout Itemize
1262 lt: < previous value.
1263 \end_layout
1265 \begin_layout Itemize
1266 le: <= previous value.
1267 \end_layout
1269 \begin_layout Itemize
1270 eq: = previous value.
1271 \end_layout
1273 \begin_layout Itemize
1274 ne: != previous value.
1275 \end_layout
1277 \begin_layout Itemize
1278 ge: >= previous value.
1279 \end_layout
1281 \begin_layout Itemize
1282 gt: > previous value.
1283 \end_layout
1285 \begin_layout Subsubsection
1286 search-memory <sizeflag> <value>
1287 \end_layout
1289 \begin_layout Standard
1290 Searches for addresses that currently have value <value>.
1291  <sizeflag> is as in previous command.
1292 \end_layout
1294 \begin_layout Subsection
1295 Main commands
1296 \end_layout
1298 \begin_layout Standard
1299 These commands are not available in lsnesrc, but are available after ROM
1300  has been loaded.
1301 \end_layout
1303 \begin_layout Subsubsection
1304 quit-emulator [/y]
1305 \end_layout
1307 \begin_layout Standard
1308 Quits the emulator (asking for confirmation).
1309  If /y is given, no confirmation is asked.
1310 \end_layout
1312 \begin_layout Subsubsection
1313 pause-emulator
1314 \end_layout
1316 \begin_layout Standard
1317 Toggle paused/unpaused
1318 \end_layout
1320 \begin_layout Subsubsection
1321 +advance-frame 
1322 \end_layout
1324 \begin_layout Standard
1325 Advance frame.
1326  If the button is still held after configurable timeout expires, game unpauses
1327  for the duration frame advance is held.
1328 \end_layout
1330 \begin_layout Subsubsection
1331 +advance-poll 
1332 \end_layout
1334 \begin_layout Standard
1335 Advance subframe.
1336  If the button is still held after configurable timeout expires, game unpauses
1337  for the duration frame advance is held.
1338 \end_layout
1340 \begin_layout Subsubsection
1341 advance-skiplag 
1342 \end_layout
1344 \begin_layout Standard
1345 Skip to first poll in frame after current.
1346 \end_layout
1348 \begin_layout Subsubsection
1349 reset 
1350 \end_layout
1352 \begin_layout Standard
1353 Reset the SNES after this frame.
1354 \end_layout
1356 \begin_layout Subsubsection
1357 load <filename> 
1358 \end_layout
1360 \begin_layout Standard
1361 Load savestate <filename> in current mode.
1362 \end_layout
1364 \begin_layout Subsubsection
1365 load-state <filename> 
1366 \end_layout
1368 \begin_layout Standard
1369 Load savestate <filename> in readwrite mode.
1370 \end_layout
1372 \begin_layout Subsubsection
1373 load-readonly <filename> 
1374 \end_layout
1376 \begin_layout Standard
1377 Load savestate <filename> in readonly mode.
1378 \end_layout
1380 \begin_layout Subsubsection
1381 load-preserve <filename> 
1382 \end_layout
1384 \begin_layout Standard
1385 Load savestate <filename> in readonly mode, preserving current events.
1386 \end_layout
1388 \begin_layout Subsubsection
1389 load-movie <filename> 
1390 \end_layout
1392 \begin_layout Standard
1393 Load savestate <filename>, ignoring save part in readonly mode.
1394 \end_layout
1396 \begin_layout Subsubsection
1397 save-state <filename> 
1398 \end_layout
1400 \begin_layout Standard
1401 Save system state to <filename> as soon as possible.
1402 \end_layout
1404 \begin_layout Subsubsection
1405 save-movie <filename> 
1406 \end_layout
1408 \begin_layout Standard
1409 Save movie to <filename>.
1410 \end_layout
1412 \begin_layout Subsubsection
1413 set-rwmode 
1414 \end_layout
1416 \begin_layout Standard
1417 Set read-write mode.
1418 \end_layout
1420 \begin_layout Subsubsection
1421 set-romode 
1422 \end_layout
1424 \begin_layout Standard
1425 Set read-only mode
1426 \end_layout
1428 \begin_layout Subsubsection
1429 toggle-rwmode 
1430 \end_layout
1432 \begin_layout Standard
1433 Toggle between read-only and read-write modes.
1434 \end_layout
1436 \begin_layout Subsubsection
1437 set-gamename <name> 
1438 \end_layout
1440 \begin_layout Standard
1441 Set name of the game to <name>
1442 \end_layout
1444 \begin_layout Subsubsection
1445 get-gamename 
1446 \end_layout
1448 \begin_layout Standard
1449 Print the name of the game.
1450 \end_layout
1452 \begin_layout Subsubsection
1453 add-author <author> 
1454 \end_layout
1456 \begin_layout Standard
1457 Adds new author <author>.
1458  If <author> does not contain '|' it is full name.
1459  If it contains '|', '|' splits the full name and nickname.
1460 \end_layout
1462 \begin_layout Subsubsection
1463 edit-author <num> <author> 
1464 \end_layout
1466 \begin_layout Standard
1467 Edit the author in slot <num> (0-based) to be <author> (see add-author for
1468  format)
1469 \end_layout
1471 \begin_layout Subsubsection
1472 remove-author <num> 
1473 \end_layout
1475 \begin_layout Standard
1476 Remove author in slot <num>
1477 \end_layout
1479 \begin_layout Subsubsection
1480 print-authors 
1481 \end_layout
1483 \begin_layout Standard
1484 Print authors.
1485 \end_layout
1487 \begin_layout Subsubsection
1488 test-1, test-2, test-3
1489 \end_layout
1491 \begin_layout Standard
1492 Internal test commands.
1493  Don't use.
1494 \end_layout
1496 \begin_layout Subsubsection
1497 take-screenshot <filename> 
1498 \end_layout
1500 \begin_layout Standard
1501 Save screenshot to <filename>.
1502 \end_layout
1504 \begin_layout Subsubsection
1505 +controller<num><button>
1506 \end_layout
1508 \begin_layout Standard
1509 Press button <button> on controller <num> (1-8).
1510  The following button names are known:
1511 \end_layout
1513 \begin_layout Itemize
1514 left
1515 \end_layout
1517 \begin_layout Itemize
1518 right
1519 \end_layout
1521 \begin_layout Itemize
1523 \end_layout
1525 \begin_layout Itemize
1526 down
1527 \end_layout
1529 \begin_layout Itemize
1531 \end_layout
1533 \begin_layout Itemize
1535 \end_layout
1537 \begin_layout Itemize
1539 \end_layout
1541 \begin_layout Itemize
1543 \end_layout
1545 \begin_layout Itemize
1547 \end_layout
1549 \begin_layout Itemize
1551 \end_layout
1553 \begin_layout Itemize
1554 select
1555 \end_layout
1557 \begin_layout Itemize
1558 start
1559 \end_layout
1561 \begin_layout Itemize
1562 trigger
1563 \end_layout
1565 \begin_layout Itemize
1566 cursor
1567 \end_layout
1569 \begin_layout Itemize
1570 pause
1571 \end_layout
1573 \begin_layout Itemize
1574 turbo
1575 \end_layout
1577 \begin_layout Subsubsection
1578 controllerh<num><button>
1579 \end_layout
1581 \begin_layout Standard
1582 Hold/unhold button <button> on controller <num> (1-8).
1583  See +controller for button names.
1584 \end_layout
1586 \begin_layout Subsubsection
1587 autofire (<pattern>|-)...
1588 \end_layout
1590 \begin_layout Standard
1591 Set autofire pattern.
1592  Each parameter is comma-separated list of button names (in form of 1start,
1593  1A, 2B, etc..) to hold on that frame.
1594  After reaching the end of pattern, the pattern restarts from the beginning.
1595 \end_layout
1597 \begin_layout Subsubsection
1598 repaint
1599 \end_layout
1601 \begin_layout Standard
1602 Force a repaint.
1603 \end_layout
1605 \begin_layout Subsection
1606 Save jukebox 
1607 \end_layout
1609 \begin_layout Subsubsection
1610 cycle-jukebox-backward
1611 \end_layout
1613 \begin_layout Standard
1614 Cycle save jukebox backwards.
1615 \end_layout
1617 \begin_layout Subsubsection
1618 cycle-jukebox-forward
1619 \end_layout
1621 \begin_layout Standard
1622 Cycle save jukebox forwards
1623 \end_layout
1625 \begin_layout Subsubsection
1626 add-jukebox-save <filename>
1627 \end_layout
1629 \begin_layout Standard
1630 Add <filename> to jukebox saves.
1631 \end_layout
1633 \begin_layout Subsubsection
1634 load-jukebox
1635 \end_layout
1637 \begin_layout Standard
1638 Do load from jukebox (current mode).
1639 \end_layout
1641 \begin_layout Subsubsection
1642 save-jukebox
1643 \end_layout
1645 \begin_layout Standard
1646 Do state save to jukebox.
1647 \end_layout
1649 \begin_layout Subsection
1650 Lua 
1651 \end_layout
1653 \begin_layout Standard
1654 Only available if lua support is compiled in.
1655 \end_layout
1657 \begin_layout Subsubsection
1658 evaluate-lua <luacode>
1659 \end_layout
1661 \begin_layout Standard
1662 Run Lua code <luacode> using built-in Lua interpretter.
1663 \end_layout
1665 \begin_layout Subsubsection
1666 run-lua <script>
1667 \end_layout
1669 \begin_layout Standard
1670 Run specified lua file using built-in Lua interpretter.
1671 \end_layout
1673 \begin_layout Subsection
1674 Memory watch
1675 \end_layout
1677 \begin_layout Subsubsection
1678 add-watch <name> <expression>
1679 \end_layout
1681 \begin_layout Standard
1682 Adds new watch (or modifies old one).
1683 \end_layout
1685 \begin_layout Subsubsection
1686 remove-watch <name>
1687 \end_layout
1689 \begin_layout Standard
1690 Remove a watch.
1691 \end_layout
1693 \begin_layout Subsection
1694 Sound 
1695 \end_layout
1697 \begin_layout Subsubsection
1698 enable-sound <on/off> 
1699 \end_layout
1701 \begin_layout Standard
1702 Enable/Disable sound.
1703 \end_layout
1705 \begin_layout Subsubsection
1706 set-sound-device <device> 
1707 \end_layout
1709 \begin_layout Standard
1710 Set sound device to <device>
1711 \end_layout
1713 \begin_layout Subsubsection
1714 show-sound-status 
1715 \end_layout
1717 \begin_layout Standard
1718 Show status of sound system.
1719 \end_layout
1721 \begin_layout Subsubsection
1722 show-sound-devices
1723 \end_layout
1725 \begin_layout Standard
1726 Show all available devices.
1727 \end_layout
1729 \begin_layout Subsection
1730 SDL Platform commands 
1731 \end_layout
1733 \begin_layout Standard
1734 The following are valid on SDL platform.
1735 \end_layout
1737 \begin_layout Subsubsection
1738 identify-key
1739 \end_layout
1741 \begin_layout Standard
1742 Asks to press a key and then identifies that (pseudo-)key.
1743 \end_layout
1745 \begin_layout Subsubsection
1746 toggle-console 
1747 \end_layout
1749 \begin_layout Standard
1750 Toggle between windowed/fullscreen console.
1751 \end_layout
1753 \begin_layout Subsubsection
1754 scroll-fullup 
1755 \end_layout
1757 \begin_layout Standard
1758 Scroll messages window as far back as it goes.
1759 \end_layout
1761 \begin_layout Subsubsection
1762 scroll-fulldown 
1763 \end_layout
1765 \begin_layout Standard
1766 Scroll messages window as far forward as it goes.
1767 \end_layout
1769 \begin_layout Subsubsection
1770 scroll-up 
1771 \end_layout
1773 \begin_layout Standard
1774 Scroll messages window back one screenful.
1775 \end_layout
1777 \begin_layout Subsubsection
1778 scroll-down 
1779 \end_layout
1781 \begin_layout Standard
1782 Scroll messages window forward one screenful.
1783 \end_layout
1785 \begin_layout Section
1786 Settings
1787 \end_layout
1789 \begin_layout Subsection
1790 Core settings
1791 \end_layout
1793 \begin_layout Subsubsection
1794 firmwarepath
1795 \end_layout
1797 \begin_layout Standard
1798 Set where bsnes looks for firmware files.
1799  Default is 
1800 \begin_inset Quotes eld
1801 \end_inset
1804 \begin_inset Quotes erd
1805 \end_inset
1808 \end_layout
1810 \begin_layout Subsubsection
1811 targetfps
1812 \end_layout
1814 \begin_layout Standard
1815 Set the target fps.
1816  Numeric, range is 0.001 to 
1817 \begin_inset Quotes eld
1818 \end_inset
1820 infinite
1821 \begin_inset Quotes erd
1822 \end_inset
1825  Default is native framerate.
1826 \end_layout
1828 \begin_layout Subsubsection
1829 savecompression
1830 \end_layout
1832 \begin_layout Standard
1833 Set save compression level (integer 0-9).
1834  Default is 7 (0 is no compression).
1835 \end_layout
1837 \begin_layout Subsubsection
1838 advance-timeout
1839 \end_layout
1841 \begin_layout Standard
1842 Set the frame advance timeout in milliseconds.
1843  Numeric integer, range is 0-999999999.
1844  Default is 500.
1845 \end_layout
1847 \begin_layout Subsection
1848 AVI dumper settings
1849 \end_layout
1851 \begin_layout Subsubsection
1852 avi-large
1853 \end_layout
1855 \begin_layout Standard
1856 AVI dumper: Always dump at 512x448 or 512x478 regardless of what the console
1857  outputs.
1858 \end_layout
1860 \begin_layout Subsubsection
1861 avi-left-border
1862 \end_layout
1864 \begin_layout Standard
1865 AVI dumper: Set the default left border thickness (unless lua overrides)
1866  for dumps.
1867  Range 0-8191.
1868  Default is 0.
1869 \end_layout
1871 \begin_layout Subsubsection
1872 avi-right-border
1873 \end_layout
1875 \begin_layout Standard
1876 AVI dumper: Set the default right border thickness (unless lua overrides)
1877  for dumps.
1878  Range 0-8191.
1879  Default is 0.
1880 \end_layout
1882 \begin_layout Subsubsection
1883 avi-top-border
1884 \end_layout
1886 \begin_layout Standard
1887 AVI dumper: Set the default top border thickness (unless lua overrides)
1888  for dumps.
1889  Range 0-8191.
1890  Default is 0.
1891 \end_layout
1893 \begin_layout Subsubsection
1894 avi-bottom-border
1895 \end_layout
1897 \begin_layout Standard
1898 AVI dumper: Set the default bottom border thickness (unless lua overrides)
1899  for dumps.
1900  Range 0-8191.
1901  Default is 0.
1902 \end_layout
1904 \begin_layout Subsubsection
1905 avi-maxframes
1906 \end_layout
1908 \begin_layout Standard
1909 AVI dumper: Maximum number of frames per dump segment (0 => unlimited).
1910  Range 0-999999999.
1911  Default is 0.
1912 \end_layout
1914 \begin_layout Subsubsection
1915 avi-compresison
1916 \end_layout
1918 \begin_layout Standard
1919 AVI dumper: Compression level (0-18).
1920 \end_layout
1922 \begin_layout Itemize
1923 Compression levels 10 and above are not compatible with stock CSCD codec.
1924 \end_layout
1926 \begin_layout Itemize
1927 Recomended level is 7.
1928 \end_layout
1930 \begin_layout Subsection
1931 JMD options
1932 \end_layout
1934 \begin_layout Subsubsection
1935 jmd-copression
1936 \end_layout
1938 \begin_layout Standard
1939 JMD dumper: Compression level (0-9).
1940 \end_layout
1942 \begin_layout Subsection
1943 SDL platform settings
1944 \end_layout
1946 \begin_layout Subsubsection
1947 autorepeat-first-delay
1948 \end_layout
1950 \begin_layout Standard
1951 Sets the delay for first character in typematic autorepeat.
1952 \end_layout
1954 \begin_layout Subsubsection
1955 autorepeat-subsequent-delay
1956 \end_layout
1958 \begin_layout Standard
1959 Sets the delay for subsequent characters in typematic autorepeat.
1960 \end_layout
1962 \begin_layout Section
1963 Lua functions
1964 \end_layout
1966 \begin_layout Subsection
1967 Core (in main table)
1968 \end_layout
1970 \begin_layout Subsubsection
1971 print
1972 \end_layout
1974 \begin_layout Standard
1975 Print line to message console.
1976 \end_layout
1978 \begin_layout Subsubsection
1979 exec(string command)
1980 \end_layout
1982 \begin_layout Standard
1983 Run command as it was entered on the command line
1984 \end_layout
1986 \begin_layout Subsection
1987 Table bit:
1988 \end_layout
1990 \begin_layout Standard
1991 Bitwise logical functions and related.
1992 \end_layout
1994 \begin_layout Subsubsection
1995 bit.none(number...) / bit.bnot(number...)
1996 \end_layout
1998 \begin_layout Standard
1999 48-bit bitwise NOT / NONE function (set bits that are set in none of the
2000  arguments).
2001 \end_layout
2003 \begin_layout Subsubsection
2004 bit.any(number...) / bit.bor(number...)
2005 \end_layout
2007 \begin_layout Standard
2008 48-bit bitwise OR / ANY function (set bits that are set in any of the arguments).
2009 \end_layout
2011 \begin_layout Subsubsection
2012 bit.all(number...) / bit.band(number...)
2013 \end_layout
2015 \begin_layout Standard
2016 48-bit bitwise AND / ALL function (set bits that are set in all of the arguments
2018 \end_layout
2020 \begin_layout Subsubsection
2021 bit.parity(number...) / bit.bxor(number...)
2022 \end_layout
2024 \begin_layout Standard
2025 48-bit bitwise XOR / PARITY function (set bits that are set in odd number
2026  of the arguments).
2027 \end_layout
2029 \begin_layout Subsubsection
2030 bit.lrotate(number base[, number amount[, number bits]])
2031 \end_layout
2033 \begin_layout Standard
2034 Rotate bits-bit (max 48, default 48) number left by amount (default 1) places.
2035 \end_layout
2037 \begin_layout Subsubsection
2038 bit.rrotate(number base[, number amount[, number bits]])
2039 \end_layout
2041 \begin_layout Standard
2042 Rotate bits-bit (max 48, default 48) number right by amount (default 1)
2043  places.
2044 \end_layout
2046 \begin_layout Subsubsection
2047 bit.lshift(number base[, number amount[, number bits]])
2048 \end_layout
2050 \begin_layout Standard
2051 Shift bits-bit (max 48, default 48) number left by amount (default 1) places.
2052  The new bits are filled with zeroes.
2053 \end_layout
2055 \begin_layout Subsubsection
2056 bit.lrshift(number base[, number amount[, number bits]])
2057 \end_layout
2059 \begin_layout Standard
2060 Shift bits-bit (max 48, default 48) number logically right by amount (default
2061  1) places.
2062  The new bits are filled with zeroes.
2063 \end_layout
2065 \begin_layout Subsubsection
2066 bit.arshift(number base[, number amount[, number bits]])
2067 \end_layout
2069 \begin_layout Standard
2070 Shift bits-bit (max 48, default 48) number arithmetically right by amount
2071  (default 1) places.
2072  The new bits are shifted in with copy of the high bit.
2073 \end_layout
2075 \begin_layout Subsection
2076 Table gui:
2077 \end_layout
2079 \begin_layout Standard
2080 Most of these functions can only be called in on_paint and on_video callbacks.
2081  Exceptions are noted.
2082 \end_layout
2084 \begin_layout Standard
2085 Colors are 32-bit.
2086  Bits 0-7 are the blue component, bits 8-15 are the green component, bits
2087  16-23 are the red component, bits 24-31 are alpha component (0 is fully
2088  opaque, 255 is almost transparent).
2089  -1 is the fully transparent color.
2090  Alpha values greater than 127 do work.
2091 \end_layout
2093 \begin_layout Standard
2094 Origin of coordinates is at top left corner of game display area.
2095  Left and top gaps correspond to negative coordinates.
2096 \end_layout
2098 \begin_layout Subsubsection
2099 gui.resolution()
2100 \end_layout
2102 \begin_layout Standard
2103 Returns 2-tuple (hresolution, vresolution).
2104 \end_layout
2106 \begin_layout Subsubsection
2107 gui.<class>_gap(number gap)
2108 \end_layout
2110 \begin_layout Standard
2111 Set the <class> (left, right, top, bottom) gap to specified value (max gap
2112  is 8191).
2113 \end_layout
2115 \begin_layout Subsubsection
2116 gui.text(number x, number y, string text[, number fgc[, number bgc]])
2117 \end_layout
2119 \begin_layout Standard
2120 Draw specified text on the GUI (each character cell is 8 or 16 wide and
2121  16 high).
2122  Parameters:
2123 \end_layout
2125 \begin_layout Itemize
2126 x: X-coordinate to start the drawing from (and x-coordinate at begining
2127  of the lines).
2128 \end_layout
2130 \begin_layout Itemize
2131 y: Y-coordinate to start the drawing from.
2132 \end_layout
2134 \begin_layout Itemize
2135 text: The text to draw.
2136 \end_layout
2138 \begin_layout Itemize
2139 fgc: Text color (default is 0xFFFFFF (white))
2140 \end_layout
2142 \begin_layout Itemize
2143 bgc: Background color (default is -1 (transparent))
2144 \end_layout
2146 \begin_layout Subsubsection
2147 gui.textH(number x, number y, string text[, number fgc[, number bgc]])
2148 \end_layout
2150 \begin_layout Standard
2151 Like gui.text, but draw using double-width.
2152 \end_layout
2154 \begin_layout Subsubsection
2155 gui.textV(number x, number y, string text[, number fgc[, number bgc]])
2156 \end_layout
2158 \begin_layout Standard
2159 Like gui.text, but draw using double-height.
2160 \end_layout
2162 \begin_layout Subsubsection
2163 gui.textHV(number x, number y, string text[, number fgc[, number bgc]])
2164 \end_layout
2166 \begin_layout Standard
2167 Like gui.text, but draw using double-width/double-height.
2168 \end_layout
2170 \begin_layout Subsubsection
2171 gui.rectangle(number x, number y, number width, number height[, number thickness[
2172 , number outline[, number fill]]])
2173 \end_layout
2175 \begin_layout Standard
2176 Draw rectangle on the GUI.
2177  Parameters:
2178 \end_layout
2180 \begin_layout Itemize
2181 x: X-coordinate of left edge.
2182 \end_layout
2184 \begin_layout Itemize
2185 y: Y-coordinate of upper edge.
2186 \end_layout
2188 \begin_layout Itemize
2189 width: Width of rectangle.
2190 \end_layout
2192 \begin_layout Itemize
2193 height: Height of rectangle.
2194 \end_layout
2196 \begin_layout Itemize
2197 thickness: Thickness of outline (default is 1).
2198 \end_layout
2200 \begin_layout Itemize
2201 outline: Color of outline (default is 0xFFFFFF (white))
2202 \end_layout
2204 \begin_layout Itemize
2205 fill: Color of fil (default is -1 (transparent))
2206 \end_layout
2208 \begin_layout Subsubsection
2209 gui.pixel(number x, number y[, number color])
2210 \end_layout
2212 \begin_layout Standard
2213 Draw one pixel on the GUI.
2214  Parameters:
2215 \end_layout
2217 \begin_layout Itemize
2218 x: X-coordinate of the pixel
2219 \end_layout
2221 \begin_layout Itemize
2222 y: Y-coordinate of the pixel
2223 \end_layout
2225 \begin_layout Itemize
2226 color: Color of the pixel (default is 0xFFFFFF (white))
2227 \end_layout
2229 \begin_layout Subsubsection
2230 gui.crosshair(number x, number y[, number length[, number color]])
2231 \end_layout
2233 \begin_layout Standard
2234 Draw a crosshair.
2235  Parameters:
2236 \end_layout
2238 \begin_layout Itemize
2239 x: X-coordinate of the crosshair
2240 \end_layout
2242 \begin_layout Itemize
2243 y: Y-coordinate of the crosshair
2244 \end_layout
2246 \begin_layout Itemize
2247 length: Length of the crosshair lines (default 10).
2248 \end_layout
2250 \begin_layout Itemize
2251 color: Color of the crosshair (default is 0xFFFFFF (white))
2252 \end_layout
2254 \begin_layout Subsubsection
2255 gui.line(number x1, number y1, number x2, number y2[, number color])
2256 \end_layout
2258 \begin_layout Standard
2259 Draw a thin line.
2260  Parameters:
2261 \end_layout
2263 \begin_layout Itemize
2264 x1: X-coordinate of one end.
2265 \end_layout
2267 \begin_layout Itemize
2268 y1: Y-coordinate of one end.
2269 \end_layout
2271 \begin_layout Itemize
2272 x2: X-coordinate of the other end.
2273 \end_layout
2275 \begin_layout Itemize
2276 y2: Y-coordinate of the other end.
2277 \end_layout
2279 \begin_layout Itemize
2280 color: Color of the line (default is 0xFFFFFF (white)).
2281 \end_layout
2283 \begin_layout Subsubsection
2284 gui.circle(number x, number y, number r[, number thick[, number border[,
2285  number fil]]])
2286 \end_layout
2288 \begin_layout Standard
2289 Draw a circle.
2290  Parameters.
2291 \end_layout
2293 \begin_layout Itemize
2294 x: X-coordinate of the center
2295 \end_layout
2297 \begin_layout Itemize
2298 y: Y-coordinate of the center
2299 \end_layout
2301 \begin_layout Itemize
2302 r: The radius of the circle
2303 \end_layout
2305 \begin_layout Itemize
2306 thick: Border thickness
2307 \end_layout
2309 \begin_layout Itemize
2310 border: Border color (default is 0xFFFFFF (white))
2311 \end_layout
2313 \begin_layout Itemize
2314 fill: Fill color (default is -1 (transparent)).
2315 \end_layout
2317 \begin_layout Subsubsection
2318 gui.repaint()
2319 \end_layout
2321 \begin_layout Standard
2322 Request on_repaint() to happen as soon as possible.
2323  Can be used anywhere.
2324 \end_layout
2326 \begin_layout Subsubsection
2327 gui.subframe_update(boolean on)
2328 \end_layout
2330 \begin_layout Standard
2331 Request subframe updates (calling on_paint() on subframes) to happen (on=true)
2332  or not happen (on=false).
2333  Can be used anywhere.
2334 \end_layout
2336 \begin_layout Subsubsection
2337 gui.screenshot(string filename)
2338 \end_layout
2340 \begin_layout Standard
2341 Write PNG screenshot of the current frame (no drawings) to specified file.
2342  Can be used anywhere.
2343 \end_layout
2345 \begin_layout Subsubsection
2346 gui.color(number r, number g, number b[, number a])
2347 \end_layout
2349 \begin_layout Standard
2350 Returns color (in notation Lua scripts use) corresponding to color (r,g,b),
2351  each component in scale 0-255.
2352  If a is specified, that is alpha (0 is fully transparent, 256(sic) is fully
2353  opaque).
2354  The default alpha is 256.
2355 \end_layout
2357 \begin_layout Subsubsection
2358 gui.status(string name, string value)
2359 \end_layout
2361 \begin_layout Standard
2362 Set status field 
2363 \begin_inset Quotes eld
2364 \end_inset
2366 L[<name>]
2367 \begin_inset Quotes erd
2368 \end_inset
2370  to <value> in status area.
2371  Can be used anywhere.
2372 \end_layout
2374 \begin_layout Subsection
2375 table input
2376 \end_layout
2378 \begin_layout Standard
2379 Input handling.
2380  Only available in on_input callback.
2381 \end_layout
2383 \begin_layout Subsubsection
2384 input.get(number controller, number index)
2385 \end_layout
2387 \begin_layout Standard
2388 Read the specified index (0-11) from specified controller (0-7).
2389  Notes:
2390 \end_layout
2392 \begin_layout Itemize
2393 Uses physical controller numbering.
2394  Gamepad in port 2 is controller 4, not 1!
2395 \end_layout
2397 \begin_layout Subsubsection
2398 input.set(number controller, number index, number value)
2399 \end_layout
2401 \begin_layout Standard
2402 Write the specified index (0-11) from specified controller (0-7), storing
2403  value.
2404  Notes:
2405 \end_layout
2407 \begin_layout Itemize
2408 Uses physical controller numbering.
2409  Gamepad in port 2 is controller 4, not 1!
2410 \end_layout
2412 \begin_layout Subsubsection
2413 input.reset([number cycles])
2414 \end_layout
2416 \begin_layout Standard
2417 Execute reset.
2418  If cycles is greater than zero, do delayed reset.
2419  0 (or no value) causes immediate reset.
2420 \end_layout
2422 \begin_layout Itemize
2423 Only available with subframe flag false.
2424 \end_layout
2426 \begin_layout Subsection
2427 Table hostmemory
2428 \end_layout
2430 \begin_layout Standard
2431 Host memory handling (extra memory saved to savestates).
2432  Host memory starts empty.
2433 \end_layout
2435 \begin_layout Subsubsection
2436 hostmemory.read(number address)
2437 \end_layout
2439 \begin_layout Standard
2440 Reads hostmemory slot address.
2441  Slot numbers out of range return false instead of numeric.
2442 \end_layout
2444 \begin_layout Subsubsection
2445 hostmemory.write(number address, number value)
2446 \end_layout
2448 \begin_layout Standard
2449 Writes hostmemory slot with 0-255.
2450  Slot numbers out of range cause extension of host memory slot space.
2451 \end_layout
2453 \begin_layout Subsubsection
2454 hostmemory.readbyte(number address)
2455 \end_layout
2457 \begin_layout Standard
2458 Read unsigned byte (1 element) from given address.
2459  Slots out of range return false.
2460 \end_layout
2462 \begin_layout Subsubsection
2463 hostmemory.writebyte(number address, number value)
2464 \end_layout
2466 \begin_layout Standard
2467 Write unsigned byte (1 element) to given slot.
2468  Slot numbers out of range cause extension.
2469 \end_layout
2471 \begin_layout Subsubsection
2472 hostmemory.readsbyte(number address)
2473 \end_layout
2475 \begin_layout Standard
2476 Read signed byte (1 element) from given address.
2477  Slots out of range return false.
2478 \end_layout
2480 \begin_layout Subsubsection
2481 hostmemory.writesbyte(number address, number value)
2482 \end_layout
2484 \begin_layout Standard
2485 Write signed byte (1 element) to given slot.
2486  Slot numbers out of range cause extension.
2487 \end_layout
2489 \begin_layout Subsubsection
2490 hostmemory.readword(number address)
2491 \end_layout
2493 \begin_layout Standard
2494 Read unsigned word (2 elements) from given address.
2495  Slots out of range return false.
2496 \end_layout
2498 \begin_layout Subsubsection
2499 hostmemory.writeword(number address, number value)
2500 \end_layout
2502 \begin_layout Standard
2503 Write unsigned word (2 elements) to given slot.
2504  Slot numbers out of range cause extension.
2505 \end_layout
2507 \begin_layout Subsubsection
2508 hostmemory.readsword(number address)
2509 \end_layout
2511 \begin_layout Standard
2512 Read signed word (2 elements) from given address.
2513  Slots out of range return false.
2514 \end_layout
2516 \begin_layout Subsubsection
2517 hostmemory.writesword(number address, number value)
2518 \end_layout
2520 \begin_layout Standard
2521 Write signed word (2 elements) to given slot.
2522  Slot numbers out of range cause extension.
2523 \end_layout
2525 \begin_layout Subsubsection
2526 hostmemory.readdword(number address)
2527 \end_layout
2529 \begin_layout Standard
2530 Read unsigned doubleword (4 elements) from given address.
2531  Slots out of range return false.
2532 \end_layout
2534 \begin_layout Subsubsection
2535 hostmemory.writedword(number address, number value)
2536 \end_layout
2538 \begin_layout Standard
2539 Write unsigned doubleword (4 elements) to given slot.
2540  Slot numbers out of range cause extension.
2541 \end_layout
2543 \begin_layout Subsubsection
2544 hostmemory.readsdword(number address)
2545 \end_layout
2547 \begin_layout Standard
2548 Read signed doubleword (4 elements) from given address.
2549  Slots out of range return false.
2550 \end_layout
2552 \begin_layout Subsubsection
2553 hostmemory.writesdword(number address, number value)
2554 \end_layout
2556 \begin_layout Standard
2557 Write signed doubleword (4 elements) to given slot.
2558  Slot numbers out of range cause extension.
2559 \end_layout
2561 \begin_layout Subsubsection
2562 hostmemory.readqword(number address)
2563 \end_layout
2565 \begin_layout Standard
2566 Read unsigned quadword (8 elements) from given address.
2567  Slots out of range return false.
2568 \end_layout
2570 \begin_layout Subsubsection
2571 hostmemory.writeqword(number address, number value)
2572 \end_layout
2574 \begin_layout Standard
2575 Write unsigned quadword (4 elements) to given slot.
2576  Slot numbers out of range cause extension.
2577 \end_layout
2579 \begin_layout Subsubsection
2580 hostmemory.readsqword(number address)
2581 \end_layout
2583 \begin_layout Standard
2584 Read signed quadword (8 elements) from given address.
2585  Slots out of range return false.
2586 \end_layout
2588 \begin_layout Subsubsection
2589 hostmemory.writesqword(number address, number value)
2590 \end_layout
2592 \begin_layout Standard
2593 Write signed quadword (8 elements) to given slot.
2594  Slot numbers out of range cause extension.
2595 \end_layout
2597 \begin_layout Subsection
2598 Table movie
2599 \end_layout
2601 \begin_layout Standard
2602 Movie handling
2603 \end_layout
2605 \begin_layout Subsubsection
2606 movie.currentframe()
2607 \end_layout
2609 \begin_layout Standard
2610 Return number of current frame.
2611 \end_layout
2613 \begin_layout Subsubsection
2614 movie.framecount()
2615 \end_layout
2617 \begin_layout Standard
2618 Return number of frames in movie.
2619 \end_layout
2621 \begin_layout Subsubsection
2622 movie.readonly()
2623 \end_layout
2625 \begin_layout Standard
2626 Return true if in readonly mode, false if in readwrite.
2627 \end_layout
2629 \begin_layout Subsubsection
2630 movie.set_readwrite()
2631 \end_layout
2633 \begin_layout Standard
2634 Set readwrite mode (does not cause on_readwrite callback).
2635 \end_layout
2637 \begin_layout Subsubsection
2638 movie.frame_subframes(number frame)
2639 \end_layout
2641 \begin_layout Standard
2642 Count number of subframes in specified frame (frame numbers are 1-based)
2643  and return that.
2644 \end_layout
2646 \begin_layout Subsubsection
2647 movie.read_subframe(number frame, number subframe)
2648 \end_layout
2650 \begin_layout Standard
2651 Read specifed subframe in specified frame and return data as array (100
2652  elements, numbered 0-99 currently).
2653 \end_layout
2655 \begin_layout Subsection
2656 Table settings
2657 \end_layout
2659 \begin_layout Standard
2660 Routines for settings manipulation
2661 \end_layout
2663 \begin_layout Subsubsection
2664 settings.get(string name)
2665 \end_layout
2667 \begin_layout Standard
2668 Get value of setting.
2669  If setting is blank, returns false.
2670  If setting value can't be obtained, returns (nil, error message).
2671 \end_layout
2673 \begin_layout Subsubsection
2674 settings.set(string name, string value)
2675 \end_layout
2677 \begin_layout Standard
2678 Set value of setting.
2679  If setting can't be set, returns (nil, error message).
2680 \end_layout
2682 \begin_layout Subsubsection
2683 settings.is_set(string name)
2684 \end_layout
2686 \begin_layout Standard
2687 Returns if setting is set.
2688  If setting does not exist, returns (nil, error message).
2689 \end_layout
2691 \begin_layout Subsubsection
2692 settings.blank(string name)
2693 \end_layout
2695 \begin_layout Standard
2696 Blanks a setting and returns true.
2697  If setting can't be blanked, returns (nil, error message).
2698 \end_layout
2700 \begin_layout Subsection
2701 Table memory
2702 \end_layout
2704 \begin_layout Standard
2705 Contains various functions for managing memory
2706 \end_layout
2708 \begin_layout Subsubsection
2709 memory.vma_count()
2710 \end_layout
2712 \begin_layout Standard
2713 Returns the number of VMAs
2714 \end_layout
2716 \begin_layout Subsubsection
2717 memory.read_vma(number index)
2718 \end_layout
2720 \begin_layout Standard
2721 Reads the specified VMA (indices start from zero).
2722  Trying to read invalid VMA gives nil.
2723  The read VMA is table with the following fields:
2724 \end_layout
2726 \begin_layout Itemize
2727 region_name (string): The readable name of the VMA
2728 \end_layout
2730 \begin_layout Itemize
2731 baseaddr (number): Base address of the VMA
2732 \end_layout
2734 \begin_layout Itemize
2735 lastaddr (number): Last address in the VMA.
2736 \end_layout
2738 \begin_layout Itemize
2739 size (number): The size of VMA in bytes.
2740 \end_layout
2742 \begin_layout Itemize
2743 readonly (boolean): True of the VMA corresponds to ROM.
2744 \end_layout
2746 \begin_layout Itemize
2747 native_endian (boolean): True if the VMA has native endian as opposed to
2748  little endian.
2749 \end_layout
2751 \begin_layout Subsubsection
2752 memory.find_vma(number address)
2753 \end_layout
2755 \begin_layout Standard
2756 Finds the VMA containing specified address.
2757  Returns table in the same format as read_vma or nil if not found.
2758 \end_layout
2760 \begin_layout Subsubsection
2761 memory.readbyte(number address)
2762 \end_layout
2764 \begin_layout Standard
2765 Reads the specified address as unsigned byte and returns the result.
2766 \end_layout
2768 \begin_layout Subsubsection
2769 memory.readsbyte(number address)
2770 \end_layout
2772 \begin_layout Standard
2773 Reads the specified address as signed byte and returns the result.
2774 \end_layout
2776 \begin_layout Subsubsection
2777 memory.writebyte(number address, number value)
2778 \end_layout
2780 \begin_layout Standard
2781 Writes the specified value (negative values undergo 2's complement) to specified
2782  address (as a byte).
2783 \end_layout
2785 \begin_layout Subsubsection
2786 memory.readword(number address)
2787 \end_layout
2789 \begin_layout Standard
2790 Reads the specified address as unsigned word and returns the result.
2791 \end_layout
2793 \begin_layout Subsubsection
2794 memory.readsword(number address)
2795 \end_layout
2797 \begin_layout Standard
2798 Reads the specified address as signed word and returns the result.
2799 \end_layout
2801 \begin_layout Subsubsection
2802 memory.writeword(number address, number value)
2803 \end_layout
2805 \begin_layout Standard
2806 Writes the specified value (negative values undergo 2's complement) to specified
2807  address (as a word).
2808 \end_layout
2810 \begin_layout Subsubsection
2811 memory.readdword(number address)
2812 \end_layout
2814 \begin_layout Standard
2815 Reads the specified address as unsigned doubleword and returns the result.
2816 \end_layout
2818 \begin_layout Subsubsection
2819 memory.readsdword(number address)
2820 \end_layout
2822 \begin_layout Standard
2823 Reads the specified address as signed doubleword and returns the result.
2824 \end_layout
2826 \begin_layout Subsubsection
2827 memory.writedword(number address, number value)
2828 \end_layout
2830 \begin_layout Standard
2831 Writes the specified value (negative values undergo 2's complement) to specified
2832  address (as a doubleword).
2833 \end_layout
2835 \begin_layout Subsubsection
2836 memory.readqword(number address)
2837 \end_layout
2839 \begin_layout Standard
2840 Reads the specified address as unsigned quadword and returns the result.
2841 \end_layout
2843 \begin_layout Subsubsection
2844 memory.readsqword(number address)
2845 \end_layout
2847 \begin_layout Standard
2848 Reads the specified address as signed quadword and returns the result.
2849 \end_layout
2851 \begin_layout Subsubsection
2852 memory.writeqword(number address, number value)
2853 \end_layout
2855 \begin_layout Standard
2856 Writes the specified value (negative values undergo 2's complement) to specified
2857  address (as a quadword).
2858 \end_layout
2860 \begin_layout Subsection
2861 Table _SYSTEM
2862 \end_layout
2864 \begin_layout Standard
2865 Contains copy of global variables from time of Lua initialization.
2866  Non-writeable.
2867 \end_layout
2869 \begin_layout Subsection
2870 Callbacks
2871 \end_layout
2873 \begin_layout Standard
2874 Various callbacks to Lua that can occur.
2875 \end_layout
2877 \begin_layout Subsubsection
2878 Callback: on_paint()
2879 \end_layout
2881 \begin_layout Standard
2882 Called when screen is being painted.
2883  Any gui.* calls requiring graphic context draw on the screen.
2884 \end_layout
2886 \begin_layout Subsubsection
2887 Callback: on_video()
2888 \end_layout
2890 \begin_layout Standard
2891 Called when video dump frame is being painted.
2892  Any gui.* calls requiring graphic context draw on the video.
2893 \end_layout
2895 \begin_layout Subsubsection
2896 Callback: on_frame()
2897 \end_layout
2899 \begin_layout Standard
2900 Called on each starting whole frame.
2901 \end_layout
2903 \begin_layout Subsubsection
2904 Callback: on_startup()
2905 \end_layout
2907 \begin_layout Standard
2908 Called when the emulator is starting (lsnes.rc and --run files has been run).
2909 \end_layout
2911 \begin_layout Subsubsection
2912 Callback: on_pre_load(string name)
2913 \end_layout
2915 \begin_layout Standard
2916 Called just before savestate/movie load occurs (note: loads are always delayed,
2917  so this occurs even when load was initiated by lua).
2918 \end_layout
2920 \begin_layout Subsubsection
2921 Callback: on_err_load(string name)
2922 \end_layout
2924 \begin_layout Standard
2925 Called if loadstate goes wrong.
2926 \end_layout
2928 \begin_layout Subsubsection
2929 Callback: on_post_load(string name, boolean was_savestate)
2930 \end_layout
2932 \begin_layout Standard
2933 Called on successful loadstate.
2934  was_savestate gives if this was a savestate or a movie.
2935 \end_layout
2937 \begin_layout Subsubsection
2938 Callback: on_pre_save(string name, boolean is_savestate)
2939 \end_layout
2941 \begin_layout Standard
2942 Called just before savestate save occurs (note: movie saves are synchronous
2943  and won't trigger these callbacks if called from Lua).
2944 \end_layout
2946 \begin_layout Subsubsection
2947 Callback: on_err_save(string name)
2948 \end_layout
2950 \begin_layout Standard
2951 Called if savestate goes wrong.
2952 \end_layout
2954 \begin_layout Subsubsection
2955 Callback: on_post_save(string name, boolean is_savestate)
2956 \end_layout
2958 \begin_layout Standard
2959 Called on successful savaestate.
2960  is_savestate gives if this was a savestate or a movie.
2961 \end_layout
2963 \begin_layout Subsubsection
2964 Callback: on_quit()
2965 \end_layout
2967 \begin_layout Standard
2968 Called when emulator is shutting down.
2969 \end_layout
2971 \begin_layout Subsubsection
2972 Callback: on_input(boolean subframe)
2973 \end_layout
2975 \begin_layout Standard
2976 Called when emulator is just sending input to bsnes core.
2977  Warning: This is called even in readonly mode, but the results are ignored.
2978 \end_layout
2980 \begin_layout Subsubsection
2981 Callback: on_reset()
2982 \end_layout
2984 \begin_layout Standard
2985 Called when SNES is reset.
2986 \end_layout
2988 \begin_layout Subsubsection
2989 Callback: on_readwrite()
2990 \end_layout
2992 \begin_layout Standard
2993 Called when moving into readwrite mode as result of 
2994 \begin_inset Quotes eld
2995 \end_inset
2997 set-rwmode
2998 \begin_inset Quotes erd
2999 \end_inset
3001  command (note: moving to rwmode by Lua won't trigger this, as per recursive
3002  entry protection).
3003 \end_layout
3005 \begin_layout Subsubsection
3006 Callback: on_snoop(number port, number controller, number index, number
3007  value)
3008 \end_layout
3010 \begin_layout Standard
3011 Called each time bsnes asks for input.
3012  The value is the final value to be sent to bsnes core (readonly mode, autohold
3013  and autofire have been taken into account).
3014  Might be useful when translating movies to format suitable for console
3015  verification.
3016  Note: There is no way to modify the value to be sent.
3017 \end_layout
3019 \begin_layout Section
3020 Modifier and key names:
3021 \end_layout
3023 \begin_layout Subsection
3024 SDL Platform
3025 \end_layout
3027 \begin_layout Subsubsection
3028 Modifier names
3029 \end_layout
3031 \begin_layout Standard
3032 Following modifier names are known:
3033 \end_layout
3035 \begin_layout Itemize
3036 ctrl, lctrl, rctrl: Control keys
3037 \end_layout
3039 \begin_layout Itemize
3040 alt, lalt, ralt: ALT keys.
3041 \end_layout
3043 \begin_layout Itemize
3044 shift, lshift, rshift: Shift keys.
3045 \end_layout
3047 \begin_layout Itemize
3048 meta, lmeta, rmeta: Meta keys.
3049 \end_layout
3051 \begin_layout Itemize
3052 num, caps: Numlock/Capslock (these are sticky!)
3053 \end_layout
3055 \begin_layout Itemize
3056 mode: Mode select.
3057 \end_layout
3059 \begin_layout Subsubsection
3060 Key names
3061 \end_layout
3063 \begin_layout Standard
3064 Following key names are known:
3065 \end_layout
3067 \begin_layout Itemize
3068 backspace, tab, clear, return, pause, escape, space, exclaim, quotedbl,
3069  hash, dollar, ampersand, quote, leftparen, rightparen, asterisk, plus,
3070  comma, minus, period, slash, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, colon, semicolon,
3071  less, equals, greater, question, at, leftbracket, backslash, rightbracket,
3072  caret, underscore, backquote, a, b, c, d, e, f, g, h, i, j, k, l, m, n,
3073  o, p, q, r, s, t, u, v, w, x, y, z, delete, world_0, world_1, world_2,
3074  world_3, world_4, world_5, world_6, world_7, world_8, world_9, world_10,
3075  world_11, world_12, world_13, world_14, world_15, world_16, world_17, world_18,
3076  world_19, world_20, world_21, world_22, world_23, world_24, world_25, world_26,
3077  world_27, world_28, world_29, world_30, world_31, world_32, world_33, world_34,
3078  world_35, world_36, world_37, world_38, world_39, world_40, world_41, world_42,
3079  world_43, world_44, world_45, world_46, world_47, world_48, world_49, world_50,
3080  world_51, world_52, world_53, world_54, world_55, world_56, world_57, world_58,
3081  world_59, world_60, world_61, world_62, world_63, world_64, world_65, world_66,
3082  world_67, world_68, world_69, world_70, world_71, world_72, world_73, world_74,
3083  world_75, world_76, world_77, world_78, world_79, world_80, world_81, world_82,
3084  world_83, world_84, world_85, world_86, world_87, world_88, world_89, world_90,
3085  world_91, world_92, world_93, world_94, world_95, kp0, kp1, kp2, kp3, kp4,
3086  kp5, kp6, kp7, kp8, kp9, kp_period, kp_divide, kp_multiply, kp_minus, kp_plus,
3087  kp_enter, kp_equals, up, down, right, left, insert, home, end, pageup,
3088  pagedown, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14,
3089  f15, numlock, capslock, scrollock, rshift, lshift, rctrl, lctrl, ralt,
3090  lalt, rmeta, lmeta, lsuper, rsuper, mode, compose, help, print, sysreq,
3091  break, menu, power, euro, undo
3092 \end_layout
3094 \begin_layout Itemize
3095 Names of form 'key<n>' where <n> is 0-255 are interpretted as key having
3096  hardware-dependent scan code of <n> (useful to bind those keys that don't
3097  have symbolic names).
3098 \end_layout
3100 \begin_layout Subsubsection
3101 Joystick pseudo-keys:
3102 \end_layout
3104 \begin_layout Itemize
3105 joystick<num>button<button>: Joystick <num> (0-based) button <button> (0-based).
3106 \end_layout
3108 \begin_layout Itemize
3109 joystick<num>hat<hat>n: Joystick <num> (0-based) hat <hat> (0-based) up.
3110 \end_layout
3112 \begin_layout Itemize
3113 joystick<num>hat<hat>w: Joystick <num> (0-based) hat <hat> (0-based) left.
3114 \end_layout
3116 \begin_layout Itemize
3117 joystick<num>hat<hat>s: Joystick <num> (0-based) hat <hat> (0-based) down.
3118 \end_layout
3120 \begin_layout Itemize
3121 joystick<num>hat<hat>e: Joystick <num> (0-based) hat <hat> (0-based) right.
3122 \end_layout
3124 \begin_layout Itemize
3125 joystick<num>axis<axis>-: Joystick <num> (0-based) axis <axis> negative
3126  position (axis modes axis and axis_inverse).
3127 \end_layout
3129 \begin_layout Itemize
3130 joystick<num>axis<axis>+: Joystick <num> (0-based) axis <axis> positive
3131  position (axis modes axis and axis_inverse).
3132 \end_layout
3134 \begin_layout Itemize
3135 joystick<num>axis<axis>: Joystick <num> (0-based) axis <axis> pressure (axis
3136  modes pressure_*).
3137 \end_layout
3139 \begin_layout Subsubsection
3140 Special buttons:
3141 \end_layout
3143 \begin_layout Itemize
3144 Escape: Enter/Exit Command mode, cancel modal dialogs.
3145 \end_layout
3147 \begin_layout Itemize
3148 Return (also KPEnter): Execute command, ok modal dialog.
3149 \end_layout
3151 \begin_layout Itemize
3152 Pgup/Up (also KP8/9 if no num lock; command mode): Previous command in command
3153  history
3154 \end_layout
3156 \begin_layout Itemize
3157 Pgdn/Down(also KP2/3 if no num lock; command mode): Next command in command
3158  history
3159 \end_layout
3161 \begin_layout Itemize
3162 Home (also KP7 if no num lock; command mode): Beginning of command.
3163 \end_layout
3165 \begin_layout Itemize
3166 End (also KP1 if no num lock; command mode): End of command.
3167 \end_layout
3169 \begin_layout Itemize
3170 Left (also KP4 if no num lock; command mode): Move cursor left.
3171 \end_layout
3173 \begin_layout Itemize
3174 Right (also KP6 if no num lock; command mode): Move cursor right.
3175 \end_layout
3177 \begin_layout Itemize
3178 Delete (also KP.
3179  if no num lock; command mode): Delete character to right of cursor.
3180 \end_layout
3182 \begin_layout Itemize
3183 Insert (also KP0 if no num lock; command mode): Toggle between insert /
3184  overwrite modes.
3185 \end_layout
3187 \begin_layout Itemize
3188 Backspace (command mode): Delete character to left of cursor.
3189 \end_layout
3191 \begin_layout Itemize
3192 LCTRL+LALT+ESCAPE: Ungraceful shutdown (leaves dump corrupted!).
3193 \end_layout
3195 \begin_layout Subsection
3196 wxWidgets platform
3197 \end_layout
3199 \begin_layout Subsubsection
3200 Modifier names:
3201 \end_layout
3203 \begin_layout Standard
3204 Following modifier names are known:
3205 \end_layout
3207 \begin_layout Itemize
3209 \end_layout
3211 \begin_layout Itemize
3212 ctrl
3213 \end_layout
3215 \begin_layout Itemize
3216 shift 
3217 \end_layout
3219 \begin_layout Itemize
3220 meta
3221 \end_layout
3223 \begin_layout Itemize
3224 cmd (Mac OS X only)
3225 \end_layout
3227 \begin_layout Subsubsection
3228 Key names:
3229 \end_layout
3231 \begin_layout Standard
3232 Following key names are known:
3233 \end_layout
3235 \begin_layout Itemize
3236 back, tab, return, escape, space, exclaim, quotedbl, hash, dollar, percent,
3237  ampersand, quote, leftparen, rightparen, asterisk, plus, comma, minus,
3238  period, slash, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, colon, semicolon, less, equals,
3239  greater, question, at, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p,
3240  q, r, s, t, u, v, w, x, y, z, leftbracket, backslash, rightbracket, caret,
3241  underscore, backquote, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p,
3242  q, r, s, t, u, v, w, x, y, z, leftcurly, pipe, rightcurly, tilde, delete,
3243  start, lbutton, rbutton, cancel, mbutton, clear, shift, alt, control, menu,
3244  pause, capital, end, home, lefT, up, right, down, select, print, execute,
3245  snapshot, insert, help, numpad0, numpad1, numpad2, numpad3, numpad4, numpad5,
3246  numpad6, numpad7, numpad8, numpad9, multiply, add, separator, subtract,
3247  decimal, divide, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13,
3248  f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, numlock, scroll,
3249  pageup, pagedown, numpad_space, numpad_tab, numpad_enter, numpad_f1, numpad_f2,
3250  numpad_f3, numpad_f4, numpad_home, numpad_left, numpad_up, numpad_right,
3251  numpad_down, numpad_pageup, numpad_pagedown, numpad_end, numpad_begin,
3252  numpad_insert, numpad_delete, numpad_equal, numpad_multiply, numpad_add,
3253  numpad_separator, numpad_subtract, numpad_decimal, numpad_divide, windows_left,
3254  windows_right, windows_menu, command, special1, special2, special3, special4,
3255  special5, special6, special7, special8, special9, special10, special11,
3256  special12, special13, special14, special15, special16, special17, special18,
3257  special19, special20
3258 \end_layout
3260 \begin_layout Section
3261 Movie file format
3262 \end_layout
3264 \begin_layout Standard
3265 Movie file is .zip archive in itself, normal ZIP archive tools work on it
3266  (note: If you recompress it, do not use compression methods other than
3267  store and deflate and especially do not use encryption of any kind).
3268 \end_layout
3270 \begin_layout Subsection
3271 Detecting clean start/SRAM/Savestate
3272 \end_layout
3274 \begin_layout Itemize
3275 If file has member 
3276 \begin_inset Quotes eld
3277 \end_inset
3279 savestate
3280 \begin_inset Quotes erd
3281 \end_inset
3283  it is savestate, otherwise:
3284 \end_layout
3286 \begin_layout Itemize
3287 If file has members with names starting 
3288 \begin_inset Quotes eld
3289 \end_inset
3291 moviesram.
3292 \begin_inset Quotes erd
3293 \end_inset
3295  it is movie starting from SRAM, otherwise:
3296 \end_layout
3298 \begin_layout Itemize
3299 It is movie starting from clear state.
3300 \end_layout
3302 \begin_layout Subsection
3303 Member: gametype
3304 \end_layout
3306 \begin_layout Standard
3307 Type of game ROM and region (as one line).
3308  Valid values are:
3309 \end_layout
3311 \begin_layout Standard
3312 \begin_inset Tabular
3313 <lyxtabular version="3" rows="8" columns="3">
3314 <features tabularvalignment="middle">
3315 <column alignment="center" valignment="top" width="0">
3316 <column alignment="center" valignment="top" width="0">
3317 <column alignment="center" valignment="top" width="0">
3318 <row>
3319 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
3320 \begin_inset Text
3322 \begin_layout Plain Layout
3323 Value
3324 \end_layout
3326 \end_inset
3327 </cell>
3328 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
3329 \begin_inset Text
3331 \begin_layout Plain Layout
3332 System
3333 \end_layout
3335 \end_inset
3336 </cell>
3337 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
3338 \begin_inset Text
3340 \begin_layout Plain Layout
3341 Region
3342 \end_layout
3344 \end_inset
3345 </cell>
3346 </row>
3347 <row>
3348 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
3349 \begin_inset Text
3351 \begin_layout Plain Layout
3352 snes_pal
3353 \end_layout
3355 \end_inset
3356 </cell>
3357 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
3358 \begin_inset Text
3360 \begin_layout Plain Layout
3361 Super NES
3362 \end_layout
3364 \end_inset
3365 </cell>
3366 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
3367 \begin_inset Text
3369 \begin_layout Plain Layout
3371 \end_layout
3373 \end_inset
3374 </cell>
3375 </row>
3376 <row>
3377 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
3378 \begin_inset Text
3380 \begin_layout Plain Layout
3381 sgb_pal
3382 \end_layout
3384 \end_inset
3385 </cell>
3386 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
3387 \begin_inset Text
3389 \begin_layout Plain Layout
3390 Super Game Boy
3391 \end_layout
3393 \end_inset
3394 </cell>
3395 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
3396 \begin_inset Text
3398 \begin_layout Plain Layout
3400 \end_layout
3402 \end_inset
3403 </cell>
3404 </row>
3405 <row>
3406 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
3407 \begin_inset Text
3409 \begin_layout Plain Layout
3410 snes_ntsc
3411 \end_layout
3413 \end_inset
3414 </cell>
3415 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
3416 \begin_inset Text
3418 \begin_layout Plain Layout
3419 Super NES
3420 \end_layout
3422 \end_inset
3423 </cell>
3424 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
3425 \begin_inset Text
3427 \begin_layout Plain Layout
3428 NTSC
3429 \end_layout
3431 \end_inset
3432 </cell>
3433 </row>
3434 <row>
3435 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
3436 \begin_inset Text
3438 \begin_layout Plain Layout
3439 sgb_ntsc
3440 \end_layout
3442 \end_inset
3443 </cell>
3444 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
3445 \begin_inset Text
3447 \begin_layout Plain Layout
3448 Super Game Boy
3449 \end_layout
3451 \end_inset
3452 </cell>
3453 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
3454 \begin_inset Text
3456 \begin_layout Plain Layout
3457 NTSC
3458 \end_layout
3460 \end_inset
3461 </cell>
3462 </row>
3463 <row>
3464 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
3465 \begin_inset Text
3467 \begin_layout Plain Layout
3469 \end_layout
3471 \end_inset
3472 </cell>
3473 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
3474 \begin_inset Text
3476 \begin_layout Plain Layout
3477 BS-X (non-slotted)
3478 \end_layout
3480 \end_inset
3481 </cell>
3482 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
3483 \begin_inset Text
3485 \begin_layout Plain Layout
3486 NTSC
3487 \end_layout
3489 \end_inset
3490 </cell>
3491 </row>
3492 <row>
3493 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
3494 \begin_inset Text
3496 \begin_layout Plain Layout
3497 bsxslotted
3498 \end_layout
3500 \end_inset
3501 </cell>
3502 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
3503 \begin_inset Text
3505 \begin_layout Plain Layout
3506 BS-X (slotted)
3507 \end_layout
3509 \end_inset
3510 </cell>
3511 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
3512 \begin_inset Text
3514 \begin_layout Plain Layout
3515 NTSC
3516 \end_layout
3518 \end_inset
3519 </cell>
3520 </row>
3521 <row>
3522 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
3523 \begin_inset Text
3525 \begin_layout Plain Layout
3526 sufamiturbo
3527 \end_layout
3529 \end_inset
3530 </cell>
3531 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
3532 \begin_inset Text
3534 \begin_layout Plain Layout
3535 Sufami Turbo
3536 \end_layout
3538 \end_inset
3539 </cell>
3540 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
3541 \begin_inset Text
3543 \begin_layout Plain Layout
3544 NTSC
3545 \end_layout
3547 \end_inset
3548 </cell>
3549 </row>
3550 </lyxtabular>
3552 \end_inset
3555 \end_layout
3557 \begin_layout Standard
3558 Frame rates are:
3559 \end_layout
3561 \begin_layout Standard
3562 \begin_inset Tabular
3563 <lyxtabular version="3" rows="3" columns="2">
3564 <features tabularvalignment="middle">
3565 <column alignment="center" valignment="top" width="0">
3566 <column alignment="center" valignment="top" width="0">
3567 <row>
3568 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
3569 \begin_inset Text
3571 \begin_layout Plain Layout
3572 Region
3573 \end_layout
3575 \end_inset
3576 </cell>
3577 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
3578 \begin_inset Text
3580 \begin_layout Plain Layout
3581 Framerate (fps)
3582 \end_layout
3584 \end_inset
3585 </cell>
3586 </row>
3587 <row>
3588 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
3589 \begin_inset Text
3591 \begin_layout Plain Layout
3593 \end_layout
3595 \end_inset
3596 </cell>
3597 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
3598 \begin_inset Text
3600 \begin_layout Plain Layout
3601 322445/6448
3602 \end_layout
3604 \end_inset
3605 </cell>
3606 </row>
3607 <row>
3608 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
3609 \begin_inset Text
3611 \begin_layout Plain Layout
3612 NTSC
3613 \end_layout
3615 \end_inset
3616 </cell>
3617 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
3618 \begin_inset Text
3620 \begin_layout Plain Layout
3621 10738636/178683
3622 \end_layout
3624 \end_inset
3625 </cell>
3626 </row>
3627 </lyxtabular>
3629 \end_inset
3632 \end_layout
3634 \begin_layout Subsection
3635 Member: port1
3636 \end_layout
3638 \begin_layout Standard
3639 Contains type of port #1 (as one line).
3640  Valid values are 'none', 'gamepad', 'multitap' and 'mouse'.
3641  If not present, defaults to 'gamepad'.
3642 \end_layout
3644 \begin_layout Subsection
3645 Member: port2
3646 \end_layout
3648 \begin_layout Standard
3649 Contains type of port #2 (as one line).
3650  Valid values are 'none', 'gamepad', 'multitap', 'mouse', 'superscope',
3651  'justifier' and 'justifiers'.
3652  If not present, defaults to 'none'.
3653 \end_layout
3655 \begin_layout Subsection
3656 Member: gamename
3657 \end_layout
3659 \begin_layout Standard
3660 Contains name of the game (as one line).
3661 \end_layout
3663 \begin_layout Subsection
3664 Member: authors
3665 \end_layout
3667 \begin_layout Standard
3668 Contains authors, one per line.
3669  Part before '|' is the full name, part after is the nickname.
3670 \end_layout
3672 \begin_layout Subsection
3673 Member: systemid
3674 \end_layout
3676 \begin_layout Standard
3677 Always 
3678 \begin_inset Quotes eld
3679 \end_inset
3681 lsnes-rr1
3682 \begin_inset Quotes erd
3683 \end_inset
3685  (one line).
3686  Used to reject other saves.
3687 \end_layout
3689 \begin_layout Subsection
3690 Member: controlsversion
3691 \end_layout
3693 \begin_layout Standard
3694 Always 
3695 \begin_inset Quotes eld
3696 \end_inset
3699 \begin_inset Quotes erd
3700 \end_inset
3702  (one line).
3703  Used to identify what controls are there.
3704 \end_layout
3706 \begin_layout Subsection
3707 Member: 
3708 \begin_inset Quotes eld
3709 \end_inset
3711 coreversion
3712 \begin_inset Quotes erd
3713 \end_inset
3716 \end_layout
3718 \begin_layout Standard
3719 Contains bsnes core version number (as one line).
3720 \end_layout
3722 \begin_layout Subsection
3723 Member: projectid
3724 \end_layout
3726 \begin_layout Standard
3727 Contains project ID (as one line).
3728  Used to identify if two movies are part of the same project.
3729 \end_layout
3731 \begin_layout Subsection
3732 Member: {rom,slota,slotb}{,xml}.sha256
3733 \end_layout
3735 \begin_layout Standard
3736 Contains SHA-256 of said ROM or ROM mapping file (as one line).
3737  Absent if corresponding file is absent.
3738 \end_layout
3740 \begin_layout Subsection
3741 Member: moviesram.<name>
3742 \end_layout
3744 \begin_layout Standard
3745 Raw binary startup SRAM of kind <name>.
3746  Only present in savestates and movies starting from SRAM.
3747 \end_layout
3749 \begin_layout Subsection
3750 Member: saveframe
3751 \end_layout
3753 \begin_layout Standard
3754 Contains frame number (as one line) of frame movie was saved on.
3755  Only present in savestates.
3756 \end_layout
3758 \begin_layout Subsection
3759 Member: lagcounter
3760 \end_layout
3762 \begin_layout Standard
3763 Current value of lag counter (as one line).
3764  Only present in savestates.
3765 \end_layout
3767 \begin_layout Subsection
3768 Member: pollcounters
3769 \end_layout
3771 \begin_layout Standard
3772 Contains poll counters (currently 100 of them), one per line.
3773  Each line is raw poll count if DRDY is set for it.
3774  Otherwise it is negative poll count minus one.
3775  Only present in savestates.
3776 \end_layout
3778 \begin_layout Subsection
3779 Member: hostmemory
3780 \end_layout
3782 \begin_layout Standard
3783 Raw binary dump of host memory.
3784  Only present in savestates.
3785 \end_layout
3787 \begin_layout Subsection
3788 Member: savestate
3789 \end_layout
3791 \begin_layout Standard
3792 The raw binary savestate itself.
3793  Savestate detection uses this file, only present in savestates.
3794 \end_layout
3796 \begin_layout Subsection
3797 Member: screenshot
3798 \end_layout
3800 \begin_layout Standard
3801 Screenshot of current frame.
3802  Only present in savestates.
3803  First 2 bytes are big-endian width of image, rest are 24-bit RGB image
3804  data.
3805  Height of image is inferred from the width and size of data.
3806 \end_layout
3808 \begin_layout Subsection
3809 Member: sram.<name>
3810 \end_layout
3812 \begin_layout Standard
3813 Raw binary SRAM of kind <name> at time of savestate.
3814  Only present in savestates.
3815 \end_layout
3817 \begin_layout Subsection
3818 Member: input
3819 \end_layout
3821 \begin_layout Standard
3822 The actual input track, one line per subframe (blank lines are skipped).
3823 \end_layout
3825 \begin_layout Itemize
3826 If the first byte of each line is '.', ' ', <tab> or '|', then the line is
3827  part of same frame as previous, otherwise it starts a new frame.
3828 \end_layout
3830 \begin_layout Itemize
3831 First subframe must start a new frame.
3832 \end_layout
3834 \begin_layout Standard
3835 Length of movie in frames is number of lines in input file that start a
3836  new frame.
3837 \end_layout
3839 \begin_layout Subsection
3840 Member: rerecords
3841 \end_layout
3843 \begin_layout Standard
3844 Contains textual base-10 rerecord count (as one line; emulator just writes
3845  this, it doesn't read it) + 1.
3846 \end_layout
3848 \begin_layout Subsection
3849 Member: rrdata
3850 \end_layout
3852 \begin_layout Standard
3853 This member stores set of load IDs.
3854  There is one load ID per rerecord (plus one corresponding to start of project).
3855 \end_layout
3857 \begin_layout Itemize
3858 This member constists of concatenation of records
3859 \end_layout
3861 \begin_layout Itemize
3862 Each record is 2-36 bytes long and can represent 1-16,843,009 consequtive
3863  IDs.
3864 \end_layout
3866 \begin_layout Itemize
3867 IDs are interpretted as 256-bit big-endian integers with warparound.
3868 \end_layout
3870 \begin_layout Itemize
3871 Initial predicted ID is all zeroes.
3872 \end_layout
3874 \begin_layout Standard
3875 Format of each record is:
3876 \end_layout
3878 \begin_layout Itemize
3879 1 byte: Opcode byte.
3880  Bits 0-4 are prefix length (prefixlen), bits 5-6 are count length (countlen).
3881  Bit 7 is unused.
3882 \end_layout
3884 \begin_layout Itemize
3885 32-prefixlen bytes of ID.
3886 \end_layout
3888 \begin_layout Itemize
3889 countlen bytes of big-endian count (count).
3890 \end_layout
3892 \begin_layout Standard
3893 Records are processed as follows:
3894 \end_layout
3896 \begin_layout Itemize
3897 To form the first ID encoded by record, take the first prefixlen bytes predicted
3898  ID and append the read ID value to it.
3899  The result is the first ID encoded.
3900 \end_layout
3902 \begin_layout Itemize
3903 If countlen is 0, record encodes 1 ID.
3904 \end_layout
3906 \begin_layout Itemize
3907 If countlen is 1, record encodes 2+count IDs.
3908 \end_layout
3910 \begin_layout Itemize
3911 If countlen is 2, record encodes 258+count IDs.
3912 \end_layout
3914 \begin_layout Itemize
3915 If countlen is 3, record encodes 65794+count IDs.
3916 \end_layout
3918 \begin_layout Itemize
3919 The new predicted ID is the next ID after last one encoded by the record.
3920 \end_layout
3922 \begin_layout Standard
3923 The number of rerecords + 1 is equal to the sum of number of IDs encoded
3924  by all records.
3925 \end_layout
3927 \begin_layout Subsection
3928 Member: starttime.second
3929 \end_layout
3931 \begin_layout Standard
3932 Movie starting time, second part.
3933  Epoch is Unix epoch.
3934  Default is 1,000,000,000.
3935 \end_layout
3937 \begin_layout Subsection
3938 Member: starttime.subsecond
3939 \end_layout
3941 \begin_layout Standard
3942 Movie starting time, subsecond part.
3943  Unit is CPU clocks.
3944  Default is 0.
3945 \end_layout
3947 \begin_layout Subsection
3948 Member: savetime.second
3949 \end_layout
3951 \begin_layout Standard
3952 Movie saving time, second part.
3953  Default is starttime.second.
3954  Only present in savestates.
3955 \end_layout
3957 \begin_layout Subsection
3958 Member: savetime.subsecond
3959 \end_layout
3961 \begin_layout Standard
3962 Movie saving time, subsecond part.
3963  Default is starttime.subsecond.
3964  Only present in savestates.
3965 \end_layout
3967 \begin_layout Section
3968 Quick'n'dirty encode guide
3969 \end_layout
3971 \begin_layout Enumerate
3972 Start the emulator and load the movie file.
3973 \end_layout
3975 \begin_layout Enumerate
3976 Set large AVI option 'set-setting avi-large on'
3977 \end_layout
3979 \begin_layout Enumerate
3980 Enable dumping 'dump-avi tmpdump' 
3981 \end_layout
3983 \begin_layout Enumerate
3984 Unpause and let it run until you want to end dumping.
3985 \end_layout
3987 \begin_layout Enumerate
3988 Close the emulator (closing the window is the easiest way).
3989  Or use 'end-avi'.
3990 \end_layout
3992 \begin_layout Enumerate
3993 For each tmpdump*.avi file created, on command prompt, do 'x264 --crf 10
3994  -o tmpdump_<numbers>.mkv tmpdump_<numbers>.avi'.
3995 \end_layout
3997 \begin_layout Enumerate
3998 Do 'sox tmpdump.sox tmpdump.ogg rate -v 32000'
3999 \end_layout
4001 \begin_layout Enumerate
4002 Do 'mkvmerge -o tmpdump_video.mkv tmpdump_0000000.mkv + tmpdump_0000001.mkv
4003  + tmpdump_0000002.mkv' (list every tmpdump_<numbers>.mkv, with + in between).
4004 \end_layout
4006 \begin_layout Enumerate
4007 Do 'mkvmerge -o final.mkv tmpdump_video.mkv tmpdump.ogg'.
4008  Now final.mkv contains quick'n'dirty encode.
4009 \end_layout
4011 \begin_layout Section
4012 Axis configurations for some gamepad types:
4013 \end_layout
4015 \begin_layout Subsection
4016 XBox360 controller:
4017 \end_layout
4019 \begin_layout Standard
4020 Axes 2 and 5 (joystick<n>axis2 and joystick<n>axis5) should be set to pressure-+.
4021 \end_layout
4023 \begin_layout LyX-Code
4024 set-axis joystick0axis2 pressure-+
4025 \end_layout
4027 \begin_layout LyX-Code
4028 set-axis joystick0axis5 pressure-+
4029 \end_layout
4031 \begin_layout Itemize
4032 This is needed for SDL only.
4033  EVDEV sets those types correctly.
4034 \end_layout
4036 \begin_layout Subsection
4037 PS3 
4038 \begin_inset Quotes eld
4039 \end_inset
4041 sixaxis
4042 \begin_inset Quotes erd
4043 \end_inset
4045  controller:
4046 \end_layout
4048 \begin_layout Standard
4049 Axes 8-19 should be disabled.
4050 \end_layout
4052 \begin_layout LyX-Code
4053 set-axis joystick0axis8 disabled
4054 \end_layout
4056 \begin_layout LyX-Code
4057 set-axis joystick0axis9 disabled
4058 \end_layout
4060 \begin_layout LyX-Code
4061 set-axis joystick0axis10 disabled
4062 \end_layout
4064 \begin_layout LyX-Code
4065 set-axis joystick0axis11 disabled
4066 \end_layout
4068 \begin_layout LyX-Code
4069 set-axis joystick0axis12 disabled
4070 \end_layout
4072 \begin_layout LyX-Code
4073 set-axis joystick0axis13 disabled
4074 \end_layout
4076 \begin_layout LyX-Code
4077 set-axis joystick0axis14 disabled
4078 \end_layout
4080 \begin_layout LyX-Code
4081 set-axis joystick0axis15 disabled
4082 \end_layout
4084 \begin_layout LyX-Code
4085 set-axis joystick0axis16 disabled
4086 \end_layout
4088 \begin_layout LyX-Code
4089 set-axis joystick0axis17 disabled
4090 \end_layout
4092 \begin_layout LyX-Code
4093 set-axis joystick0axis18 disabled
4094 \end_layout
4096 \begin_layout LyX-Code
4097 set-axis joystick0axis19 disabled
4098 \end_layout
4100 \begin_layout Section
4101 Errata:
4102 \end_layout
4104 \begin_layout Subsection
4105 Problems from BSNES core:
4106 \end_layout
4108 \begin_layout Itemize
4109 The whole pending save stuff.
4110 \end_layout
4112 \begin_layout Itemize
4113 Lack of layer hiding.
4114 \end_layout
4116 \begin_layout Itemize
4117 It is slow (especially accuracy).
4118 \end_layout
4120 \begin_layout Itemize
4121 Firmwares can't be loaded from ZIP archives.
4122 \end_layout
4124 \begin_layout Subsection
4125 Other problems:
4126 \end_layout
4128 \begin_layout Itemize
4129 Modifiers don't work with pseudo-keys (SDL, EVDEV).
4130 \end_layout
4132 \begin_layout Itemize
4133 Audio for last dumped frame is not itself dumped.
4134 \end_layout
4136 \begin_layout Itemize
4137 Audio in UI is pretty bad in quality if game doesn't run at full speed.
4138 \end_layout
4140 \begin_layout Itemize
4141 AVI compression levels 10-18 are not compatible with AVISynth AVISource.
4142 \end_layout
4144 \begin_layout Itemize
4145 No menus, command based interface (SDL).
4146 \end_layout
4148 \begin_layout Itemize
4149 Long commands don't scroll.
4150 \end_layout
4152 \begin_layout Itemize
4153 The SDL screen drawing is slow.
4154 \end_layout
4156 \begin_layout Itemize
4157 Wxwidgets UI is still pretty buggy.
4158 \end_layout
4160 \begin_layout Section
4161 Changelog:
4162 \end_layout
4164 \begin_layout Subsection
4165 rr0-beta1
4166 \end_layout
4168 \begin_layout Itemize
4169 Fix -Wall warnings
4170 \end_layout
4172 \begin_layout Itemize
4173 Fix dumper video corruption with levels 10-18.
4174 \end_layout
4176 \begin_layout Subsection
4177 rr0-beta2
4178 \end_layout
4180 \begin_layout Itemize
4181 Autofire
4182 \end_layout
4184 \begin_layout Itemize
4185 Lots of code cleanups
4186 \end_layout
4188 \begin_layout Itemize
4189 Lua interface to settings
4190 \end_layout
4192 \begin_layout Itemize
4193 Allow specifying AVI borders without Lua
4194 \end_layout
4196 \begin_layout Itemize
4197 Fix scaling if vscale > 1 and originx > 0 (left border exists)
4198 \end_layout
4200 \begin_layout Itemize
4201 on_snoop lua callback
4202 \end_layout
4204 \begin_layout Itemize
4205 Faster movie loading and saving.
4206 \end_layout
4208 \begin_layout Subsection
4209 rr0-beta3
4210 \end_layout
4212 \begin_layout Itemize
4213 Joystick support
4214 \end_layout
4216 \begin_layout Subsection
4217 rr0-beta4
4218 \end_layout
4220 \begin_layout Itemize
4221 Fix multi-buttons
4222 \end_layout
4224 \begin_layout Itemize
4225 Save jukebox functionality.
4226 \end_layout
4228 \begin_layout Subsection
4229 rr0-beta5
4230 \end_layout
4232 \begin_layout Itemize
4233 Try to fix some nasty failing movie load edge cases
4234 \end_layout
4236 \begin_layout Itemize
4237 Allow specifying scripts to run on command line.
4238 \end_layout
4240 \begin_layout Subsection
4241 rr0-beta6
4242 \end_layout
4244 \begin_layout Itemize
4245 Major source code reorganization.
4246 \end_layout
4248 \begin_layout Itemize
4249 Backup savestates before overwriting.
4250 \end_layout
4252 \begin_layout Itemize
4253 Don't crash if loading initial state fails.
4254 \end_layout
4256 \begin_layout Subsection
4257 rr0-beta7
4258 \end_layout
4260 \begin_layout Itemize
4261 Fix firmware lookup
4262 \end_layout
4264 \begin_layout Itemize
4265 Fix author name parsing
4266 \end_layout
4268 \begin_layout Itemize
4269 Fix rerecord counting
4270 \end_layout
4272 \begin_layout Itemize
4273 (SDL) Print messages to console if SDL is uninitialized
4274 \end_layout
4276 \begin_layout Itemize
4277 Add movieinfo program
4278 \end_layout
4280 \begin_layout Itemize
4281 Fix loading movies starting from SRAM.
4282 \end_layout
4284 \begin_layout Subsection
4285 rr0-beta8
4286 \end_layout
4288 \begin_layout Itemize
4289 Add support for unattended dumping
4290 \end_layout
4292 \begin_layout Itemize
4293 Fix compiling for Win32
4294 \end_layout
4296 \begin_layout Itemize
4297 Don't lock up if sound can't be initialized
4298 \end_layout
4300 \begin_layout Itemize
4301 Strip trailing CR from commands
4302 \end_layout
4304 \begin_layout Itemize
4305 Don't try to do dubious things in global ctors (fix crash on startup)
4306 \end_layout
4308 \begin_layout Subsection
4309 rr0-beta9
4310 \end_layout
4312 \begin_layout Itemize
4313 Small documentation tweaking
4314 \end_layout
4316 \begin_layout Itemize
4317 Fix make clean
4318 \end_layout
4320 \begin_layout Itemize
4321 Fix major bug in modifier matching
4322 \end_layout
4324 \begin_layout Subsection
4325 rr0-beta10
4326 \end_layout
4328 \begin_layout Itemize
4329 Lots of documentation fixes
4330 \end_layout
4332 \begin_layout Itemize
4333 Use dedicated callbacks for event backcomm., not commands.
4334 \end_layout
4336 \begin_layout Itemize
4337 Ensure that the watchdog is not hit when executing delayed reset.
4338 \end_layout
4340 \begin_layout Itemize
4341 Remove errant tab from joystick message.
4342 \end_layout
4344 \begin_layout Subsection
4345 rr0-beta11
4346 \end_layout
4348 \begin_layout Itemize
4349 Make autofire operate in absolute time, not linear time
4350 \end_layout
4352 \begin_layout Itemize
4353 Reinitialize controls when resuming from loadstate
4354 \end_layout
4356 \begin_layout Itemize
4357 Some more code cleanups
4358 \end_layout
4360 \begin_layout Itemize
4361 If Lua allocator fails, call OOM_panic()
4362 \end_layout
4364 \begin_layout Itemize
4365 Byte/word/dword/qword sized host memory write/read functions.
4366 \end_layout
4368 \begin_layout Itemize
4369 Dump at correct framerate if dumping interlaced NTSC (height=448).
4370 \end_layout
4372 \begin_layout Subsection
4373 rr0-beta12
4374 \end_layout
4376 \begin_layout Itemize
4377 Actually include the complete source code
4378 \end_layout
4380 \begin_layout Itemize
4381 Keep track of RTC
4382 \end_layout
4384 \begin_layout Subsection
4385 rr0-beta13
4386 \end_layout
4388 \begin_layout Itemize
4389 Document {save,start}time.{,sub}second.
4390 \end_layout
4392 \begin_layout Itemize
4393 Intercept time() from bsnes core.
4394 \end_layout
4396 \begin_layout Subsection
4397 rr0-beta14
4398 \end_layout
4400 \begin_layout Itemize
4401 Allow disabling time() interception (allow build on Mac OS X)
4402 \end_layout
4404 \begin_layout Itemize
4405 Use SDLMain on Mac OS X (make SDL not crash)
4406 \end_layout
4408 \begin_layout Itemize
4409 Disable delayed resets (just plain too buggy for now).
4410 \end_layout
4412 \begin_layout Itemize
4413 Code cleanups
4414 \end_layout
4416 \begin_layout Itemize
4417 Use 16-bit for graphics/video instead of 32-bit.
4418 \end_layout
4420 \begin_layout Itemize
4421 gui.rectangle/gui.pixel
4422 \end_layout
4424 \begin_layout Itemize
4425 gui.crosshair
4426 \end_layout
4428 \begin_layout Itemize
4429 New CSCD writer implementation.
4430 \end_layout
4432 \begin_layout Subsection
4433 rr0-beta15
4434 \end_layout
4436 \begin_layout Itemize
4437 Fix interaction of * and +.
4438 \end_layout
4440 \begin_layout Itemize
4441 Manual improvements
4442 \end_layout
4444 \begin_layout Itemize
4445 Use gettimeofday()/usleep(), these seem portable enough.
4446 \end_layout
4448 \begin_layout Itemize
4449 Move joystick axis manipulation to keymapper code.
4450 \end_layout
4452 \begin_layout Itemize
4453 Changes to how read-only works.
4454 \end_layout
4456 \begin_layout Itemize
4457 Refactor controller input code.
4458 \end_layout
4460 \begin_layout Subsection
4461 rr0-beta16
4462 \end_layout
4464 \begin_layout Itemize
4465 Fix mouseclick scale compensation.
4466 \end_layout
4468 \begin_layout Itemize
4469 Draw area boundaries correctly in SDL code.
4470 \end_layout
4472 \begin_layout Itemize
4473 gui.screenshot.
4474 \end_layout
4476 \begin_layout Itemize
4477 Fix CSCD output (buffer overrun and race condition).
4478 \end_layout
4480 \begin_layout Subsection
4481 rr0-beta17
4482 \end_layout
4484 \begin_layout Itemize
4485 JMD dumping support.
4486 \end_layout
4488 \begin_layout Itemize
4489 Allow unattended dumping to JMD.
4490 \end_layout
4492 \begin_layout Itemize
4493 Move to BSNES v083.
4494 \end_layout
4496 \begin_layout Itemize
4497 Switch back to 32-bit colors.
4498 \end_layout
4500 \begin_layout Itemize
4501 Add Lua function gui.color.
4502 \end_layout
4504 \begin_layout Itemize
4505 Use some new C++11 features in GCC 4.6.
4506 \end_layout
4508 \begin_layout Itemize
4509 Be prepared for core frequency changes.
4510 \end_layout
4512 \begin_layout Itemize
4513 Pass colors in one chunk from Lua.
4514 \end_layout
4516 \begin_layout Subsection
4517 rr0-beta18
4518 \end_layout
4520 \begin_layout Itemize
4521 New lua functions gui.line(), gui.status() and gui.circle(), memory.vma_count(),
4522  memory.read_vma() and memory.find_vma().
4523 \end_layout
4525 \begin_layout Itemize
4526 Numerious documentation fixups
4527 \end_layout
4529 \begin_layout Itemize
4530 RTC time format changed
4531 \end_layout
4533 \begin_layout Itemize
4534 Reformat flags display
4535 \end_layout
4537 \begin_layout Itemize
4538 Allow lua package name to be overridden
4539 \end_layout
4541 \begin_layout Itemize
4542 SDUMP (high-quality dumping).
4543 \end_layout
4545 \begin_layout Itemize
4546 Split platform support to plugins.
4547 \end_layout
4549 \begin_layout Itemize
4550 Make all sound plugins support basic sound commands
4551 \end_layout
4553 \begin_layout Itemize
4554 Support portaudio for sound.
4555 \end_layout
4557 \begin_layout Itemize
4558 Allow disable Lua/SDL searching.
4559 \end_layout
4561 \begin_layout Itemize
4562 Upconvert colors when copying lcscreen to screen.
4563 \end_layout
4565 \begin_layout Itemize
4566 Reorganize source tree.
4567 \end_layout
4569 \begin_layout Itemize
4570 Evdev joystick support.
4571 \end_layout
4573 \begin_layout Itemize
4574 Refactor more code into generic window code.
4575 \end_layout
4577 \begin_layout Subsection
4578 rr0-beta19
4579 \end_layout
4581 \begin_layout Itemize
4582 Refactor message handling.
4583 \end_layout
4585 \begin_layout Itemize
4586 Rework makefile
4587 \end_layout
4589 \begin_layout Itemize
4590 Documentation fixes
4591 \end_layout
4593 \begin_layout Itemize
4594 Finish pending saves before load/quit.
4595 \end_layout
4597 \begin_layout Itemize
4598 Wxwidgets graphics plugin.
4599 \end_layout
4601 \begin_layout Subsection
4602 rr0-beta20
4603 \end_layout
4605 \begin_layout Itemize
4606 Get rid of win32-crap.[ch]pp.
4607 \end_layout
4609 \begin_layout Itemize
4610 Move files around a lot.
4611 \end_layout
4613 \begin_layout Itemize
4614 Get rid of need for host C++ compiler.
4615 \end_layout
4617 \begin_layout Itemize
4618 Bsnes v084 core.
4619 \end_layout
4621 \begin_layout Itemize
4622 Refactor inter-component communication.
4623 \end_layout
4625 \begin_layout Itemize
4626 Fix zero luma.
4627 \end_layout
4629 \begin_layout Itemize
4630 Fix crash on multiline aliases.
4631 \end_layout
4633 \begin_layout Itemize
4634 Load/Save settings in wxwidgets gui.
4635 \end_layout
4637 \begin_layout Subsection
4638 rr0-beta21
4639 \end_layout
4641 \begin_layout Itemize
4642 Patch problems in bsnes core
4643 \end_layout
4645 \begin_layout Itemize
4646 SNES is little-endian, not big-endian!
4647 \end_layout
4649 \begin_layout Itemize
4650 Fix memory corruption in lcscreen::load()
4651 \end_layout
4653 \begin_layout Subsection
4654 rr0-beta22
4655 \end_layout
4657 \begin_layout Itemize
4658 Fix interpretting repeat counts in rrdata loading.
4659 \end_layout
4661 \begin_layout Itemize
4662 New lua callback: on_frame()
4663 \end_layout
4665 \begin_layout Itemize
4666 Remove calls to runtosave() that aren't supposed to be there
4667 \end_layout
4669 \begin_layout Itemize
4670 Lua function: movie.read_rtc()
4671 \end_layout
4673 \begin_layout Itemize
4674 Ignore src/fonts/font.cpp
4675 \end_layout
4677 \begin_layout Itemize
4678 Fix more bsnes core problems
4679 \end_layout
4681 \begin_layout Itemize
4682 Control bsnes random seeding
4683 \end_layout
4685 \begin_layout Itemize
4686 Pause-on-end
4687 \end_layout
4689 \begin_layout Itemize
4690 Some bsnes core debugging features (state dump and state hash)
4691 \end_layout
4693 \begin_layout Itemize
4694 Fix titlebar version number (no, the last version wasn't 'lsnes-0-beta21',
4695  it was 'lsnes rr0-beta21').
4696 \end_layout
4698 \begin_layout Subsection
4699 rr0-beta23
4700 \end_layout
4702 \begin_layout Itemize
4703 Fix memory corruption due to macro/field mixup
4704 \end_layout
4706 \begin_layout Itemize
4707 search-memory update
4708 \end_layout
4710 \begin_layout Itemize
4711 Allow direct-mapped framebuffer
4712 \end_layout
4714 \begin_layout Itemize
4715 SDL: Use SDL_ANYFORMAT if possible
4716 \end_layout
4718 \begin_layout Itemize
4719 SDMP2SOX: 2s delay modes.
4720 \end_layout
4722 \begin_layout Itemize
4723 Wxwidgets: Cleanups
4724 \end_layout
4726 \begin_layout Itemize
4727 Use sed -E, not sed -r.
4728  Fixes building on Mac OS X.
4729 \end_layout
4731 \begin_layout Itemize
4732 Wxwidgets: Save jukebox on exit
4733 \end_layout
4735 \begin_layout Itemize
4736 Fix RTC if using load-movie on savestate.
4737 \end_layout
4739 \begin_layout Itemize
4740 Fix crash related to full console mode.
4741 \end_layout
4743 \begin_layout Subsection
4744 rr0-beta24
4745 \end_layout
4747 \begin_layout Itemize
4748 Wxwidgets: Allow bringing application to foreground on Mac OS X.
4749 \end_layout
4751 \begin_layout Itemize
4752 Wxwidgets: Allow compiling on Mac OS X.
4753 \end_layout
4755 \begin_layout Itemize
4756 Use movie compare instead of movie hashing (faster save/load).
4757 \end_layout
4759 \begin_layout Itemize
4760 Lua: _SYSTEM table.
4761 \end_layout
4763 \begin_layout Subsection
4764 rr0-beta25
4765 \end_layout
4767 \begin_layout Itemize
4768 sdmp2sox: Pad soundtrack if using -l or -L.
4769 \end_layout
4771 \begin_layout Itemize
4772 sdmp2sox: Fix NTSC overscan.
4773 \end_layout
4775 \begin_layout Itemize
4776 sdmp2sox: Add AR correction mode.
4777 \end_layout
4779 \begin_layout Itemize
4780 call lua_close() when exiting.
4781 \end_layout
4783 \begin_layout Itemize
4784 Fix zip_writer bug causing warnings from info-zip and error from advzip.
4785 \end_layout
4787 \begin_layout Subsection
4788 rr0-beta26
4789 \end_layout
4791 \begin_layout Itemize
4792 Fix IPS patching code (use bsnes core IPS patcher).
4793 \end_layout
4795 \begin_layout Itemize
4796 Implement BPS patching (using bsnes core IPS patcher).
4797 \end_layout
4799 \begin_layout Itemize
4800 Add feature to load headered ROMs.
4801 \end_layout
4803 \begin_layout Subsection
4804 rr0-beta27
4805 \end_layout
4807 \begin_layout Itemize
4808 Show command names when showing keybindings
4809 \end_layout
4811 \begin_layout Subsection
4813 \end_layout
4815 \begin_layout Itemize
4816 Fix pause-on-end to be actually controllable
4817 \end_layout
4819 \begin_layout Itemize
4820 SDL: Poll all events in queue, not just first one (fixes slowness in command
4821  typing)
4822 \end_layout
4824 \begin_layout Itemize
4825 Wxwidgets: Fix ROM loading.
4826 \end_layout
4828 \begin_layout Subsection
4829 rr1-beta0
4830 \end_layout
4832 \begin_layout Itemize
4833 Lua: Add gui.textH, gui.textV, gui.textHV
4834 \end_layout
4836 \begin_layout Itemize
4837 Fix text colors on SDL on Mac OS X
4838 \end_layout
4840 \begin_layout Itemize
4841 Mode 'F' for finished in readonly mode.
4842 \end_layout
4844 \begin_layout Itemize
4845 Fix some WS errors.
4846 \end_layout
4848 \begin_layout Itemize
4849 Reliably pause after skip poll
4850 \end_layout
4852 \begin_layout Itemize
4853 Split UI and core into their own threads
4854 \end_layout
4856 \begin_layout Subsection
4857 rr1-beta1
4858 \end_layout
4860 \begin_layout Itemize
4861 Remove leftover dummy SRAM slot
4862 \end_layout
4864 \begin_layout Itemize
4865 Fix controller numbers.
4866 \end_layout
4868 \begin_layout Subsection
4869 rr1-beta2
4870 \end_layout
4872 \begin_layout Itemize
4873 Fix lsnes-dumpavi after interface change.
4874 \end_layout
4876 \begin_layout Itemize
4877 Also give BSNES patches for v085.
4878 \end_layout
4880 \begin_layout Itemize
4881 Pack movie data in memory.
4882 \end_layout
4884 \begin_layout Subsection
4885 rr1-beta3
4886 \end_layout
4888 \begin_layout Itemize
4889 Fix framecount/length given when loading movies.
4890 \end_layout
4892 \begin_layout Itemize
4893 Controller command memory leak fixes.
4894 \end_layout
4896 \begin_layout Itemize
4897 Don't leak palette if freeing screen object.
4898 \end_layout
4900 \begin_layout Subsection
4901 rr1-beta4
4902 \end_layout
4904 \begin_layout Itemize
4905 Detect revisions.
4906 \end_layout
4908 \begin_layout Itemize
4909 Wxwidgets: Allow controlling dumper from the menu.
4910 \end_layout
4912 \begin_layout Subsection
4913 rr1-beta5
4914 \end_layout
4916 \begin_layout Itemize
4917 Rewrite parts of manual
4918 \end_layout
4920 \begin_layout Itemize
4921 Lua: Make it work with Lua 5.2.
4922 \end_layout
4924 \begin_layout Subsection
4925 rr1-beta6
4926 \end_layout
4928 \begin_layout Itemize
4929 Win32: Fix compile errors.
4930 \end_layout
4932 \begin_layout Subsection
4933 rr1-beta7
4934 \end_layout
4936 \begin_layout Itemize
4937 Refactor controller input code.
4938 \end_layout
4940 \begin_layout Itemize
4941 Fix crash when using command line on SDL / Mac OS X.
4942 \end_layout
4944 \end_body
4945 \end_document