lsnes rr0-β15
[lsnes.git] / manual.lyx
blobbad6449df0c4d3a6bf5eebecd83da320e7922e19
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 Command line options
72 \end_layout
74 \begin_layout Itemize
75 Syntax: lsnes.exe <rom-options> <misc-options> (<new-session-options>|<filename>)
76 \end_layout
78 \begin_layout Itemize
79 Syntax: lsnes-avidump <dump-options> <misc-options> <rom-options> <filename>
80 \end_layout
82 \begin_layout Itemize
83 Syntax: movieinfo.exe <filename>
84 \end_layout
86 \begin_layout Subsection
87 ROM options
88 \end_layout
90 \begin_layout Standard
91 These options control loading the ROM.
92 \end_layout
94 \begin_layout Subsubsection
95 --rom=<file>
96 \end_layout
98 \begin_layout Standard
99 Load <file> (SFC file format) as main SNES cartridge ROM.
100  This is the game ROM for SNES and cartridge BIOS for other types.
101  Required option.
102 \end_layout
104 \begin_layout Subsubsection
105 --rom-xml=<file>
106 \end_layout
108 \begin_layout Standard
109 Set the mapping XML file for main cartridge ROM.
110  If not specified, defaults are used.
111 \end_layout
113 \begin_layout Subsubsection
114 --bsx=<file>
115 \end_layout
117 \begin_layout Standard
118 Load <file> (BS file format) as BS-X non-slotted flash memory.
119  Also sets system type to BS-X non-slotted (not compatible with --bsxslotted=<fi
120 le>, --dmg=<file>, --slot-a=<file> nor --slot-b=<file>).
121 \end_layout
123 \begin_layout Subsubsection
124 --bsx-xml=<file>
125 \end_layout
127 \begin_layout Standard
128 Set mapping XML file for BS-X non-slotted flash memory.
129  If not specified, defaults are used.
130  Only can be used together with --bsx=<file>.
131 \end_layout
133 \begin_layout Subsubsection
134 --bsxslotted=<file>
135 \end_layout
137 \begin_layout Standard
138 Load <file> (BS file format) as BS-X slotted flash memory.
139  Also sets system type to BS-X slotted (not compatible with --bsx=<file>,
140  --dmg=<file>, --slot-a=<file> nor --slot-b=<file>).
141 \end_layout
143 \begin_layout Subsubsection
144 --bsxslotted-xml=<file>
145 \end_layout
147 \begin_layout Standard
148 Set mapping XML file for BS-X slotted flash memory.
149  If not specified, defaults are used.
150  Only can be used together with --bsxslotted=<file>.
151 \end_layout
153 \begin_layout Subsubsection
154 --dmg=<file>
155 \end_layout
157 \begin_layout Standard
158 Load <file> (GB file format) as Game Boy ROM.
159  Also sets system type to SGB (not compatible with --bsx=<file>, --bsxslotted=<f
160 ile>, --slot-a=<file> nor --slot-b=<file>).
161 \end_layout
163 \begin_layout Subsubsection
164 --dmg-xml=<file>
165 \end_layout
167 \begin_layout Standard
168 Set mapping XML file for Game Boy ROM.
169  If not specified, defaults are used.
170  Only can be used together with --dmg=<file>.
171 \end_layout
173 \begin_layout Subsubsection
174 --slot-a=<file>
175 \end_layout
177 \begin_layout Standard
178 Load <file> (ST file format) as Sufami turbo cartridge A ROM.
179  Also sets system type to Sufami Turbo (not compatible with --bsx=<file>,
180  --bsxslotted=<file> nor --dmg=<file>).
181 \end_layout
183 \begin_layout Subsubsection
184 --slot-a-xml=<file>
185 \end_layout
187 \begin_layout Standard
188 Set mapping XML file for Sufami turbo cartridge A ROM.
189  If not specified, defaults are used.
190  Only can be used together with --slot-a=<file>.
191 \end_layout
193 \begin_layout Subsubsection
194 --slot-b=<file>
195 \end_layout
197 \begin_layout Standard
198 Load <file> (ST file format) as Sufami turbo cartridge B ROM.
199  Also sets system type to Sufami Turbo (not compatible with --bsx=<file>,
200  --bsxslotted=<file> nor --dmg=<file>).
201 \end_layout
203 \begin_layout Subsubsection
204 --slot-b-xml=<file>
205 \end_layout
207 \begin_layout Standard
208 Set mapping XML file for Sufami turbo cartridge B ROM.
209  If not specified, defaults are used.
210  Only can be used together with --slot-b=<file>.
211 \end_layout
213 \begin_layout Subsubsection
214 --ips-rom=<file>
215 \end_layout
217 \begin_layout Standard
218 Apply IPS patch <file> to main cartridge ROM.
219  Requires --rom=<file>.
220 \end_layout
222 \begin_layout Subsubsection
223 --ips-rom-xml=<file>
224 \end_layout
226 \begin_layout Standard
227 Apply IPS patch <file> to main cartridge ROM mapping XML.
228  Requires --rom-xml=<file>.
229 \end_layout
231 \begin_layout Subsubsection
232 --ips-bsx=<file>
233 \end_layout
235 \begin_layout Standard
236 Apply IPS patch <file> to BS-X non-slotted flash.
237  Requires --bsx=<file>.
238 \end_layout
240 \begin_layout Subsubsection
241 --ips-bsx-xml=<file>
242 \end_layout
244 \begin_layout Standard
245 Apply IPS patch <file> to BS-X non-slotted flash mapping XML.
246  Requires --bsx-xml=<file>.
247 \end_layout
249 \begin_layout Subsubsection
250 --ips-bsxslotted=<file>
251 \end_layout
253 \begin_layout Standard
254 Apply IPS patch <file> to BS-X slotted flash.
255  Requires --bsxslotted=<file>.
256 \end_layout
258 \begin_layout Subsubsection
259 --ips-bsxslotted-xml=<file>
260 \end_layout
262 \begin_layout Standard
263 Apply IPS patch <file> to BS-X slotted flash mapping XML.
264  Requires --bsxslotted-xml=<file>.
265 \end_layout
267 \begin_layout Subsubsection
268 --ips-dmg=<file>
269 \end_layout
271 \begin_layout Standard
272 Apply IPS patch <file> to Game Boy ROM.
273  Requires --dmg=<file>.
274 \end_layout
276 \begin_layout Subsubsection
277 --ips-dmg-xml=<file>
278 \end_layout
280 \begin_layout Standard
281 Apply IPS patch <file> to Game Boy ROM mapping XML.
282  Requires --dmg-xml=<file>.
283 \end_layout
285 \begin_layout Subsubsection
286 --ips-slot-a=<file>
287 \end_layout
289 \begin_layout Standard
290 Apply IPS patch <file> to Sufami turbo cartridge A ROM.
291  Requires --slot-a=<file>.
292 \end_layout
294 \begin_layout Subsubsection
295 --ips-slot-a-xml=<file>
296 \end_layout
298 \begin_layout Standard
299 Apply IPS patch <file> to Sufami turbo cartridge A ROM mapping XML.
300  Requires --slot-a-xml=<file>.
301 \end_layout
303 \begin_layout Subsubsection
304 --ips-slot-b=<file>
305 \end_layout
307 \begin_layout Standard
308 Apply IPS patch <file> to Sufami turbo cartridge B ROM.
309  Requires --slot-b=<file>.
310 \end_layout
312 \begin_layout Subsubsection
313 --ips-slot-b-xml=<file>
314 \end_layout
316 \begin_layout Standard
317 Apply IPS patch <file> to Sufami turbo cartridge B ROM mapping XML.
318  Requires --slot-b-xml=<file>.
319 \end_layout
321 \begin_layout Subsubsection
322 --ips-offset=<offset>
323 \end_layout
325 \begin_layout Standard
326 Set IPS apply offset to <offset> (can be negative).
327  IPS apply offset is added to all addresses inside IPS file before applying.
328  If the resulting address is negative, write is ignored (with a warning).
329  If resulting address exceeds ROM size, the ROM is extended.
330 \end_layout
332 \begin_layout Subsubsection
333 --pal
334 \end_layout
336 \begin_layout Standard
337 Force ROM to be considered PAL-only (warning: Will cause error if used on
338  anything except SNES and SGB).
339 \end_layout
341 \begin_layout Subsubsection
342 --ntsc
343 \end_layout
345 \begin_layout Standard
346 Force ROM to be considered NTSC-only (default for everything except SNES
347  and SGB).
348 \end_layout
350 \begin_layout Subsection
351 New session options (lsnes.exe only)
352 \end_layout
354 \begin_layout Standard
355 If filename is not specified, new session is started.
356  These options control the properties of new session:
357 \end_layout
359 \begin_layout Subsubsection
360 --port1=<type>
361 \end_layout
363 \begin_layout Standard
364 Set type of port1.
365  Valid values are:
366 \end_layout
368 \begin_layout Itemize
369 none: No device connected
370 \end_layout
372 \begin_layout Itemize
373 gamepad: One gamepad (the default)
374 \end_layout
376 \begin_layout Itemize
377 multitap: Four gamepads (warning: makes most games refuse to start)
378 \end_layout
380 \begin_layout Itemize
381 mouse: Mouse.
382 \end_layout
384 \begin_layout Subsubsection
385 --port2=<type>
386 \end_layout
388 \begin_layout Standard
389 Set type of port2.
390  Valid values are:
391 \end_layout
393 \begin_layout Itemize
394 none: No device connected (the default)
395 \end_layout
397 \begin_layout Itemize
398 gamepad: One gamepad
399 \end_layout
401 \begin_layout Itemize
402 multitap: Four gamepads.
403 \end_layout
405 \begin_layout Itemize
406 mouse: Mouse
407 \end_layout
409 \begin_layout Itemize
410 superscope: Super Scope
411 \end_layout
413 \begin_layout Itemize
414 justifier: One justifier
415 \end_layout
417 \begin_layout Itemize
418 justifiers: Two justifiers
419 \end_layout
421 \begin_layout Subsubsection
422 --gamename=<name>
423 \end_layout
425 \begin_layout Standard
426 Set the name of game to <name>
427 \end_layout
429 \begin_layout Subsubsection
430 --author=<name>
431 \end_layout
433 \begin_layout Standard
434 Add author with full name of <name> (no nickname).
435 \end_layout
437 \begin_layout Subsubsection
438 --author=|<name>
439 \end_layout
441 \begin_layout Standard
442 Add author with nickname of <name> (no full name).
443 \end_layout
445 \begin_layout Subsubsection
446 --author=<fullname>|<nickname>
447 \end_layout
449 \begin_layout Standard
450 Add author with full name of <fullname> and nickname of <nickname>.
451 \end_layout
453 \begin_layout Subsubsection
454 --rtc-second=<value>
455 \end_layout
457 \begin_layout Standard
458 Set RTC second (0 is 1st January 1970 00:00:00Z).
459 \end_layout
461 \begin_layout Subsubsection
462 --rtc-subsecond=<value>
463 \end_layout
465 \begin_layout Standard
466 Set RTC subsecond.
467  Range is 0-3,462,619,485,019.
468 \end_layout
470 \begin_layout Subsection
471 <filename>
472 \end_layout
474 \begin_layout Standard
475 If filename is specified on command line, it is loaded as initial state
476  (instead of constructing one).
477  Mandatory for lsnes-avidump.exe and movieinfo.exe.
478 \end_layout
480 \begin_layout Subsection
481 Misc.
482  options
483 \end_layout
485 \begin_layout Subsubsection
486 --run=<file> (lsnes.exe only)
487 \end_layout
489 \begin_layout Standard
490 After running main RC file, run this file.
491  If multiple are specified, these execute in order specified.
492 \end_layout
494 \begin_layout Subsection
495 dump options (lsnes-avidump.exe only)
496 \end_layout
498 \begin_layout Subsubsection
499 --prefix=<prefix>
500 \end_layout
502 \begin_layout Standard
503 Set dump prefix.
504  Default is 
505 \begin_inset Quotes eld
506 \end_inset
508 avidump
509 \begin_inset Quotes erd
510 \end_inset
513 \end_layout
515 \begin_layout Subsubsection
516 --level=<level>
517 \end_layout
519 \begin_layout Standard
520 Set compression level (0-18).
521  Default is 7.
522 \end_layout
524 \begin_layout Subsubsection
525 --length=<length>
526 \end_layout
528 \begin_layout Standard
529 Set number of frames to dump.
530  Mandatory.
531 \end_layout
533 \begin_layout Subsubsection
534 --lua=<script>
535 \end_layout
537 \begin_layout Standard
538 Run specified lua script (lsnes-avidump.exe does not have initialization
539  files).
540 \end_layout
542 \begin_layout Section
543 Startup file lsnes.rc
544 \end_layout
546 \begin_layout Standard
547 Upon startup, lsnes (lsnes.exe only) executes file lsnes.rc as commands.
548  This file is located in:
549 \end_layout
551 \begin_layout Itemize
552 Windows: %APPDATA%
553 \backslash
554 lsnes
555 \backslash
556 lsnes.rc (if %APPDATA% exists)
557 \end_layout
559 \begin_layout Itemize
560 Unix: $XDG_CONFIG_HOME/lsnes/lsnes.rc (if $XDG_CONFIG_HOME exists)
561 \end_layout
563 \begin_layout Itemize
564 Unix: $HOME/.config/lsnes/lsnes.rc (if $HOME exists)
565 \end_layout
567 \begin_layout Itemize
568 All: ./lsnes.rc (fallback default).
569 \end_layout
571 \begin_layout Standard
572 If leading directories do not exist, attempt to create them is made.
573 \end_layout
575 \begin_layout Section
576 Game internal commands
577 \end_layout
579 \begin_layout Itemize
580 Commands beginning with '*' invoke the corresponding command without alias
581  expansion.
582 \end_layout
584 \begin_layout Itemize
585 If command starts with '+' (after possible '*'), the command is executed
586  as-is when button is pressed, and when button is released, it is executed
587  with '+' replaced by '-'.
588 \end_layout
590 \begin_layout Subsection
591 Settings:
592 \end_layout
594 \begin_layout Standard
595 Settings control various aspects of emulator behaviour.
596 \end_layout
598 \begin_layout Subsubsection
599 set-setting <setting> <value>
600 \end_layout
602 \begin_layout Standard
603 Sets setting <setting> to value <value> (may be empty).
604 \end_layout
606 \begin_layout Subsubsection
607 unset-setting <setting>
608 \end_layout
610 \begin_layout Standard
611 Try to unset setting <setting> (not all settings can be unset).
612 \end_layout
614 \begin_layout Subsubsection
615 get-setting <setting>
616 \end_layout
618 \begin_layout Standard
619 Read value of setting <setting>
620 \end_layout
622 \begin_layout Subsubsection
623 show-settings
624 \end_layout
626 \begin_layout Standard
627 Print names and values of all settings.
628 \end_layout
630 \begin_layout Subsection
631 Keybindings
632 \end_layout
634 \begin_layout Standard
635 Keybindings bind commands or aliases to keys (or pseudo-keys).
637 \end_layout
639 \begin_layout Standard
640 Notes:
641 \end_layout
643 \begin_layout Itemize
644 Do not bind edge active (+/-) commands to keys with modifiers, that won't
645  work right!
646 \end_layout
648 \begin_layout Itemize
649 Names of keys and modifiers are platform-dependent.
650 \end_layout
652 \begin_layout Itemize
653 Be careful before binding pseudo-keys (such as joystick axes, buttons or
654  hats) with modifiers.
655  That may or may not work right.
656 \end_layout
658 \begin_layout Subsubsection
659 bind-key [<mod>/<modmask>] <key> <command>
660 \end_layout
662 \begin_layout Standard
663 Bind <command> to key <key> (activating if modifiers in <modmask> (comma-seperat
664 ed list) are set as <mod> (comma-seperated list).
665 \end_layout
667 \begin_layout Standard
668 The names of keys and modifiers are platform-dependent.
669 \end_layout
671 \begin_layout Subsubsection
672 unbind-key [<mod>/<modmask>] <key>
673 \end_layout
675 \begin_layout Standard
676 Unbind command from <key> (with specified <mod> and <modmask>).
677 \end_layout
679 \begin_layout Subsection
680 set-axis <axis> [disabled | axis | axis-inverse | pressure0- | pressure0+
681  | pressure-0 | pressure-+ | pressure+0 | pressure+-] [minus=<val>] [zero=<val>]
682  [plus=<val>] [tolerance=<val>]
683 \end_layout
685 \begin_layout Standard
686 Set axis parameters for axis <axis>.
687 \end_layout
689 \begin_layout Itemize
690 disabled: Disable axis
691 \end_layout
693 \begin_layout Itemize
694 axis: Normal axis
695 \end_layout
697 \begin_layout Itemize
698 axis-inverse: Inverse axis
699 \end_layout
701 \begin_layout Itemize
702 pressure0-: Pressure sensitive.
703  Released at 0, pressed at -.
704 \end_layout
706 \begin_layout Itemize
707 pressure0+: Pressure sensitive.
708  Released at 0, pressed at +.
709 \end_layout
711 \begin_layout Itemize
712 pressure-0: Pressure sensitive.
713  Released at -, pressed at 0.
714 \end_layout
716 \begin_layout Itemize
717 pressure-+: Pressure sensitive.
718  Released at -, pressed at +.
719 \end_layout
721 \begin_layout Itemize
722 pressure+0: Pressure sensitive.
723  Released at +, pressed at 0.
724 \end_layout
726 \begin_layout Itemize
727 pressure+-: Pressure sensitive.
728  Released at +, pressed at -.
729 \end_layout
731 \begin_layout Itemize
732 minus=<val>: Calibration at extreme minus position (-32768-32767)
733 \end_layout
735 \begin_layout Itemize
736 zero=<val>: Calibration at neutral position (-32768-32767)
737 \end_layout
739 \begin_layout Itemize
740 plus=<val>: Calibration at extreme plus position (-32768-32767)
741 \end_layout
743 \begin_layout Itemize
744 tolerance=<value>: Center band tolerance (0<x<1).
745  The smaller the value, the more sensitive the control is.
746 \end_layout
748 \begin_layout Subsubsection
749 show-bindings
750 \end_layout
752 \begin_layout Standard
753 Print all key bindings in effect.
754 \end_layout
756 \begin_layout Subsection
757 Aliases
758 \end_layout
760 \begin_layout Standard
761 Aliases bind command to sequence of commands.
762  After alias has been defined, it replaces the command it shadows.
763 \end_layout
765 \begin_layout Standard
766 Notes:
767 \end_layout
769 \begin_layout Itemize
770 You can't alias command to itself.
771 \end_layout
773 \begin_layout Itemize
774 Aliases starting with +/- are edge active just like ordinary commands starting
775  with +/-.
776 \end_layout
778 \begin_layout Itemize
779 One command can be aliased to multiple commands.
780 \end_layout
782 \begin_layout Subsubsection
783 alias-command <command> <expansion>
784 \end_layout
786 \begin_layout Standard
787 Append <expansion> to alias <command>.
788  If alias does not already exist, it is created.
789 \end_layout
791 \begin_layout Subsubsection
792 unalias-command <command>
793 \end_layout
795 \begin_layout Standard
796 Clear alias expansion for <command>.
797 \end_layout
799 \begin_layout Subsubsection
800 show-aliases
801 \end_layout
803 \begin_layout Standard
804 Print all aliases and their expansions in effect.
805 \end_layout
807 \begin_layout Subsection
808 run-script <script>
809 \end_layout
811 \begin_layout Standard
812 Run <script> as if commands were entered on the command line.
813 \end_layout
815 \begin_layout Subsection
816 AVI Video dumping
817 \end_layout
819 \begin_layout Standard
820 Following commands control AVI video dumping:
821 \end_layout
823 \begin_layout Subsubsection
824 dump-avi <level> <prefix>
825 \end_layout
827 \begin_layout Standard
828 Dump AVI video to prefix <prefix> at level <level> (0-18).
829  Notes:
830 \end_layout
832 \begin_layout Itemize
833 The codec is Camstudio Codec in gzip mode.
834 \end_layout
836 \begin_layout Itemize
837 Encoder and muxer are internal, available on all platforms.
838 \end_layout
840 \begin_layout Itemize
841 Audio enable/disable and framerate has no effect.
842 \end_layout
844 \begin_layout Itemize
845 Levels 10-18 are not compatible with AVISource.
846 \end_layout
848 \begin_layout Itemize
849 Recomended level is 7 if decoded by AVISource.
850 \end_layout
852 \begin_layout Itemize
853 Recomended level is 16 if decoded by ffmpeg, mencoder or FFMpegSource.
854 \end_layout
856 \begin_layout Itemize
857 Dumps of low-res PAL games are 256x239 (with all the consequences odd height
858  carries).
859 \end_layout
861 \begin_layout Itemize
862 The audio dumped to .avi is low-quality version.
863  The high-quality version is dumped to .sox file.
864 \end_layout
866 \begin_layout Subsubsection
867 end-avi
868 \end_layout
870 \begin_layout Standard
871 End current AVI video dump (closing the emulator also closes the dump).
872 \end_layout
874 \begin_layout Subsection
875 Memory manipulation
876 \end_layout
878 \begin_layout Standard
879 <address> may be decimal or hexadecimal (prefixed with '0x').
880  <value> can be hexadecimal (prefixed with '0x'), unsigned or signed (prefixed
881  with '-') decimal.
882 \end_layout
884 \begin_layout Standard
885 The available element <sizes> are:
886 \end_layout
888 \begin_layout Itemize
889 byte: 1 byte
890 \end_layout
892 \begin_layout Itemize
893 word: 2 bytes
894 \end_layout
896 \begin_layout Itemize
897 dword: 4 bytes
898 \end_layout
900 \begin_layout Itemize
901 qword: 8 bytes
902 \end_layout
904 \begin_layout Standard
905 When reading RAM and ROM, multi-byte reads/writes are big-endian.
906  When dealing with DSP memory, multi-byte reads/writes are native-endian
907  (do not use operand sizes exceeding DSP bitness, except dword is OK for
908  24-bit memory).
909 \end_layout
911 \begin_layout Subsubsection
912 read-<size> <address>
913 \end_layout
915 \begin_layout Standard
916 Read the value of byte in <address>.
917 \end_layout
919 \begin_layout Subsubsection
920 read-s<size> <address>
921 \end_layout
923 \begin_layout Standard
924 Read the value of signed byte in <address>.
925 \end_layout
927 \begin_layout Subsubsection
928 write-<size> <address> <value>
929 \end_layout
931 \begin_layout Standard
932 Write <value> to byte in address <address>.
933 \end_layout
935 \begin_layout Subsubsection
936 search-memory reset
937 \end_layout
939 \begin_layout Standard
940 Reset the memory search
941 \end_layout
943 \begin_layout Subsubsection
944 search-memory count
945 \end_layout
947 \begin_layout Standard
948 Print number of candidates remaining
949 \end_layout
951 \begin_layout Subsubsection
952 search-memory print
953 \end_layout
955 \begin_layout Standard
956 Print all candidates remaining
957 \end_layout
959 \begin_layout Subsubsection
960 search-memory <usflag><sizeflag><op>
961 \end_layout
963 \begin_layout Standard
964 Searches memory for addresses satisfying criteria.
965 \end_layout
967 \begin_layout Standard
968 <usflag> can be:
969 \end_layout
971 \begin_layout Itemize
972 u: unsigned
973 \end_layout
975 \begin_layout Itemize
976 s: signed
977 \end_layout
979 \begin_layout Standard
980 <sizeflag> can be:
981 \end_layout
983 \begin_layout Itemize
984 b: byte
985 \end_layout
987 \begin_layout Itemize
988 w: word
989 \end_layout
991 \begin_layout Itemize
992 d: dword
993 \end_layout
995 \begin_layout Itemize
996 q: qword
997 \end_layout
999 \begin_layout Standard
1000 <op> can be:
1001 \end_layout
1003 \begin_layout Itemize
1004 lt: < previous value.
1005 \end_layout
1007 \begin_layout Itemize
1008 le: <= previous value.
1009 \end_layout
1011 \begin_layout Itemize
1012 eq: = previous value.
1013 \end_layout
1015 \begin_layout Itemize
1016 ne: != previous value.
1017 \end_layout
1019 \begin_layout Itemize
1020 ge: >= previous value.
1021 \end_layout
1023 \begin_layout Itemize
1024 gt: > previous value.
1025 \end_layout
1027 \begin_layout Subsubsection
1028 search-memory <sizeflag> <value>
1029 \end_layout
1031 \begin_layout Standard
1032 Searches for addresses that currently have value <value>.
1033  <sizeflag> is as in previous command.
1034 \end_layout
1036 \begin_layout Subsection
1037 Main commands
1038 \end_layout
1040 \begin_layout Standard
1041 These commands are not available in lsnesrc, but are available after ROM
1042  has been loaded.
1043 \end_layout
1045 \begin_layout Subsubsection
1046 quit-emulator [/y]
1047 \end_layout
1049 \begin_layout Standard
1050 Quits the emulator (asking for confirmation).
1051  If /y is given, no confirmation is asked.
1052 \end_layout
1054 \begin_layout Subsubsection
1055 pause-emulator
1056 \end_layout
1058 \begin_layout Standard
1059 Toggle paused/unpaused
1060 \end_layout
1062 \begin_layout Subsubsection
1063 +advance-frame
1064 \end_layout
1066 \begin_layout Standard
1067 Advance frame.
1068  If the button is still held after configurable timeout expires, game unpauses
1069  for the duration frame advance is held.
1070 \end_layout
1072 \begin_layout Subsubsection
1073 +advance-poll
1074 \end_layout
1076 \begin_layout Standard
1077 Advance subframe.
1078  If the button is still held after configurable timeout expires, game unpauses
1079  for the duration frame advance is held.
1080 \end_layout
1082 \begin_layout Subsubsection
1083 advance-skiplag
1084 \end_layout
1086 \begin_layout Standard
1087 Skip to first poll in frame after current.
1088 \end_layout
1090 \begin_layout Subsubsection
1091 reset
1092 \end_layout
1094 \begin_layout Standard
1095 Reset the SNES after this frame.
1096 \end_layout
1098 \begin_layout Subsubsection
1099 load <filename>
1100 \end_layout
1102 \begin_layout Standard
1103 Load savestate <filename> in current mode.
1104 \end_layout
1106 \begin_layout Subsubsection
1107 load-state <filename>
1108 \end_layout
1110 \begin_layout Standard
1111 Load savestate <filename> in readwrite mode.
1112 \end_layout
1114 \begin_layout Subsubsection
1115 load-readonly <filename>
1116 \end_layout
1118 \begin_layout Standard
1119 Load savestate <filename> in readonly mode.
1120 \end_layout
1122 \begin_layout Subsubsection
1123 load-preserve <filename>
1124 \end_layout
1126 \begin_layout Standard
1127 Load savestate <filename> in readonly mode, preserving current events.
1128 \end_layout
1130 \begin_layout Subsubsection
1131 load-movie <filename>
1132 \end_layout
1134 \begin_layout Standard
1135 Load savestate <filename>, ignoring save part in readonly mode.
1136 \end_layout
1138 \begin_layout Subsubsection
1139 save-state <filename>
1140 \end_layout
1142 \begin_layout Standard
1143 Save system state to <filename> as soon as possible.
1144 \end_layout
1146 \begin_layout Subsubsection
1147 save-movie <filename>
1148 \end_layout
1150 \begin_layout Standard
1151 Save movie to <filename>.
1152 \end_layout
1154 \begin_layout Subsubsection
1155 set-rwmode
1156 \end_layout
1158 \begin_layout Standard
1159 Set read-write mode.
1160 \end_layout
1162 \begin_layout Subsubsection
1163 set-romode
1164 \end_layout
1166 \begin_layout Standard
1167 Set read-only mode
1168 \end_layout
1170 \begin_layout Subsubsection
1171 toggle-rwmode
1172 \end_layout
1174 \begin_layout Standard
1175 Toggle between read-only and read-write modes.
1176 \end_layout
1178 \begin_layout Subsubsection
1179 set-gamename <name>
1180 \end_layout
1182 \begin_layout Standard
1183 Set name of the game to <name>
1184 \end_layout
1186 \begin_layout Subsubsection
1187 get-gamename
1188 \end_layout
1190 \begin_layout Standard
1191 Print the name of the game.
1192 \end_layout
1194 \begin_layout Subsubsection
1195 add-author <author>
1196 \end_layout
1198 \begin_layout Standard
1199 Adds new author <author>.
1200  If <author> does not contain '|' it is full name.
1201  If it contains '|', '|' splits the full name and nickname.
1202 \end_layout
1204 \begin_layout Subsubsection
1205 edit-author <num> <author>
1206 \end_layout
1208 \begin_layout Standard
1209 Edit the author in slot <num> (0-based) to be <author> (see add-author for
1210  format)
1211 \end_layout
1213 \begin_layout Subsubsection
1214 remove-author <num>
1215 \end_layout
1217 \begin_layout Standard
1218 Remove author in slot <num>
1219 \end_layout
1221 \begin_layout Subsubsection
1222 print-authors
1223 \end_layout
1225 \begin_layout Standard
1226 Print authors.
1227 \end_layout
1229 \begin_layout Subsubsection
1230 test-1, test-2, test-3
1231 \end_layout
1233 \begin_layout Standard
1234 Internal test commands.
1235  Don't use.
1236 \end_layout
1238 \begin_layout Subsubsection
1239 take-screenshot <filename>
1240 \end_layout
1242 \begin_layout Standard
1243 Save screenshot to <filename>.
1244 \end_layout
1246 \begin_layout Subsubsection
1247 +controller<num><button>
1248 \end_layout
1250 \begin_layout Standard
1251 Press button <button> on controller <num> (1-8).
1252  The following button names are known:
1253 \end_layout
1255 \begin_layout Itemize
1256 left
1257 \end_layout
1259 \begin_layout Itemize
1260 right
1261 \end_layout
1263 \begin_layout Itemize
1265 \end_layout
1267 \begin_layout Itemize
1268 down
1269 \end_layout
1271 \begin_layout Itemize
1273 \end_layout
1275 \begin_layout Itemize
1277 \end_layout
1279 \begin_layout Itemize
1281 \end_layout
1283 \begin_layout Itemize
1285 \end_layout
1287 \begin_layout Itemize
1289 \end_layout
1291 \begin_layout Itemize
1293 \end_layout
1295 \begin_layout Itemize
1296 select
1297 \end_layout
1299 \begin_layout Itemize
1300 start
1301 \end_layout
1303 \begin_layout Itemize
1304 trigger
1305 \end_layout
1307 \begin_layout Itemize
1308 cursor
1309 \end_layout
1311 \begin_layout Itemize
1312 pause
1313 \end_layout
1315 \begin_layout Itemize
1316 turbo
1317 \end_layout
1319 \begin_layout Subsubsection
1320 controllerh<num><button>
1321 \end_layout
1323 \begin_layout Standard
1324 Hold/unhold button <button> on controller <num> (1-8).
1325  See +controller for button names.
1326 \end_layout
1328 \begin_layout Subsubsection
1329 autofire (<pattern>|-)...
1330 \end_layout
1332 \begin_layout Standard
1333 Set autofire pattern.
1334  Each parameter is comma-separated list of button names (in form of 1start,
1335  1A, 2B, etc..) to hold on that frame.
1336  After reaching the end of pattern, the pattern restarts from the beginning.
1337 \end_layout
1339 \begin_layout Subsubsection
1340 repaint
1341 \end_layout
1343 \begin_layout Standard
1344 Force a repaint.
1345 \end_layout
1347 \begin_layout Subsection
1348 Save jukebox
1349 \end_layout
1351 \begin_layout Subsubsection
1352 cycle-jukebox-backward
1353 \end_layout
1355 \begin_layout Standard
1356 Cycle save jukebox backwards.
1357 \end_layout
1359 \begin_layout Subsubsection
1360 cycle-jukebox-forward
1361 \end_layout
1363 \begin_layout Standard
1364 Cycle save jukebox forwards
1365 \end_layout
1367 \begin_layout Subsubsection
1368 add-jukebox-save <filename>
1369 \end_layout
1371 \begin_layout Standard
1372 Add <filename> to jukebox saves.
1373 \end_layout
1375 \begin_layout Subsubsection
1376 load-jukebox
1377 \end_layout
1379 \begin_layout Standard
1380 Do load from jukebox (current mode).
1381 \end_layout
1383 \begin_layout Subsubsection
1384 save-jukebox
1385 \end_layout
1387 \begin_layout Standard
1388 Do state save to jukebox.
1389 \end_layout
1391 \begin_layout Subsection
1393 \end_layout
1395 \begin_layout Standard
1396 Only available if lua support is compiled in.
1397 \end_layout
1399 \begin_layout Subsubsection
1400 eval-lua <luacode>
1401 \end_layout
1403 \begin_layout Standard
1404 Run Lua code <luacode> using built-in Lua interpretter.
1405 \end_layout
1407 \begin_layout Subsubsection
1408 run-lua <script>
1409 \end_layout
1411 \begin_layout Standard
1412 Run specified lua file using built-in Lua interpretter.
1413 \end_layout
1415 \begin_layout Subsection
1416 Memory watch
1417 \end_layout
1419 \begin_layout Subsubsection
1420 add-watch <name> <expression>
1421 \end_layout
1423 \begin_layout Standard
1424 Adds new watch (or modifies old one).
1425 \end_layout
1427 \begin_layout Subsubsection
1428 remove-watch <name>
1429 \end_layout
1431 \begin_layout Standard
1432 Remove a watch.
1433 \end_layout
1435 \begin_layout Subsection
1436 SDL Platform commands
1437 \end_layout
1439 \begin_layout Standard
1440 The following are valid on SDL platform.
1441 \end_layout
1443 \begin_layout Subsubsection
1444 enable-sound on
1445 \end_layout
1447 \begin_layout Standard
1448 Enable sounds in GUI (has no effect on video dumping).
1449 \end_layout
1451 \begin_layout Subsubsection
1452 enable-sound off
1453 \end_layout
1455 \begin_layout Standard
1456 Disable sounds in GUI (has no effect on video dumping).
1457 \end_layout
1459 \begin_layout Subsubsection
1460 identify-key
1461 \end_layout
1463 \begin_layout Standard
1464 Asks to press a key and then identifies that (pseudo-)key.
1465 \end_layout
1467 \begin_layout Subsubsection
1468 toggle-console
1469 \end_layout
1471 \begin_layout Standard
1472 Toggle between windowed/fullscreen console.
1473 \end_layout
1475 \begin_layout Subsubsection
1476 scroll-fullup
1477 \end_layout
1479 \begin_layout Standard
1480 Scroll messages window as far back as it goes.
1481 \end_layout
1483 \begin_layout Subsubsection
1484 scroll-fulldown
1485 \end_layout
1487 \begin_layout Standard
1488 Scroll messages window as far forward as it goes.
1489 \end_layout
1491 \begin_layout Subsubsection
1492 scroll-up
1493 \end_layout
1495 \begin_layout Standard
1496 Scroll messages window back one screenful.
1497 \end_layout
1499 \begin_layout Subsubsection
1500 scroll-down
1501 \end_layout
1503 \begin_layout Standard
1504 Scroll messages window forward one screenful.
1505 \end_layout
1507 \begin_layout Section
1508 Settings
1509 \end_layout
1511 \begin_layout Subsection
1512 Core settings
1513 \end_layout
1515 \begin_layout Subsubsection
1516 firmwarepath
1517 \end_layout
1519 \begin_layout Standard
1520 Set where bsnes looks for firmware files.
1521  Default is 
1522 \begin_inset Quotes eld
1523 \end_inset
1526 \begin_inset Quotes erd
1527 \end_inset
1530 \end_layout
1532 \begin_layout Subsubsection
1533 targetfps
1534 \end_layout
1536 \begin_layout Standard
1537 Set the target fps.
1538  Numeric, range is 0.001 to 
1539 \begin_inset Quotes eld
1540 \end_inset
1542 infinite
1543 \begin_inset Quotes erd
1544 \end_inset
1547  Default is native framerate.
1548 \end_layout
1550 \begin_layout Subsubsection
1551 savecompression
1552 \end_layout
1554 \begin_layout Standard
1555 Set save compression level (integer 0-9).
1556  Default is 7 (0 is no compression).
1557 \end_layout
1559 \begin_layout Subsubsection
1560 advance-timeout
1561 \end_layout
1563 \begin_layout Standard
1564 Set the frame advance timeout in milliseconds.
1565  Numeric integer, range is 0-999999999.
1566  Default is 500.
1567 \end_layout
1569 \begin_layout Subsection
1570 AVI dumper settings
1571 \end_layout
1573 \begin_layout Subsubsection
1574 avi-large
1575 \end_layout
1577 \begin_layout Standard
1578 AVI dumper: Always dump at 512x448 or 512x478 regardless of what the console
1579  outputs.
1580 \end_layout
1582 \begin_layout Subsubsection
1583 avi-left-border
1584 \end_layout
1586 \begin_layout Standard
1587 AVI dumper: Set the default left border thickness (unless lua overrides)
1588  for dumps.
1589  Range 0-8191.
1590  Default is 0.
1591 \end_layout
1593 \begin_layout Subsubsection
1594 avi-right-border
1595 \end_layout
1597 \begin_layout Standard
1598 AVI dumper: Set the default right border thickness (unless lua overrides)
1599  for dumps.
1600  Range 0-8191.
1601  Default is 0.
1602 \end_layout
1604 \begin_layout Subsubsection
1605 avi-top-border
1606 \end_layout
1608 \begin_layout Standard
1609 AVI dumper: Set the default top border thickness (unless lua overrides)
1610  for dumps.
1611  Range 0-8191.
1612  Default is 0.
1613 \end_layout
1615 \begin_layout Subsubsection
1616 avi-bottom-border
1617 \end_layout
1619 \begin_layout Standard
1620 AVI dumper: Set the default bottom border thickness (unless lua overrides)
1621  for dumps.
1622  Range 0-8191.
1623  Default is 0.
1624 \end_layout
1626 \begin_layout Subsubsection
1627 avi-maxframes
1628 \end_layout
1630 \begin_layout Standard
1631 AVI dumper: Maximum number of frames per dump segment (0 => unlimited).
1632  Range 0-999999999.
1633  Default is 0.
1634 \end_layout
1636 \begin_layout Subsection
1637 SDL platform settings
1638 \end_layout
1640 \begin_layout Subsubsection
1641 autorepeat-first-delay
1642 \end_layout
1644 \begin_layout Standard
1645 Sets the delay for first character in typematic autorepeat.
1646 \end_layout
1648 \begin_layout Subsubsection
1649 autorepeat-subsequent-delay
1650 \end_layout
1652 \begin_layout Standard
1653 Sets the delay for subsequent characters in typematic autorepeat.
1654 \end_layout
1656 \begin_layout Section
1657 Lua functions
1658 \end_layout
1660 \begin_layout Subsection
1661 Core (in main table)
1662 \end_layout
1664 \begin_layout Subsubsection
1665 print
1666 \end_layout
1668 \begin_layout Standard
1669 Print line to message console.
1670 \end_layout
1672 \begin_layout Subsubsection
1673 exec(string command)
1674 \end_layout
1676 \begin_layout Standard
1677 Run command as it was entered on the command line
1678 \end_layout
1680 \begin_layout Subsection
1681 Table bit:
1682 \end_layout
1684 \begin_layout Standard
1685 Bitwise logical functions and related.
1686 \end_layout
1688 \begin_layout Subsubsection
1689 none(number...) / bnot(number...)
1690 \end_layout
1692 \begin_layout Standard
1693 48-bit bitwise NOT / NONE function (set bits that are set in none of the
1694  arguments).
1695 \end_layout
1697 \begin_layout Subsubsection
1698 any(number...) / bor(number...)
1699 \end_layout
1701 \begin_layout Standard
1702 48-bit bitwise OR / ANY function (set bits that are set in any of the arguments).
1703 \end_layout
1705 \begin_layout Subsubsection
1706 all(number...) / band(number...)
1707 \end_layout
1709 \begin_layout Standard
1710 48-bit bitwise AND / ALL function (set bits that are set in all of the arguments
1712 \end_layout
1714 \begin_layout Subsubsection
1715 parity(number...) / bxor(number...)
1716 \end_layout
1718 \begin_layout Standard
1719 48-bit bitwise XOR / PARITY function (set bits that are set in odd number
1720  of the arguments).
1721 \end_layout
1723 \begin_layout Subsubsection
1724 lrotate(number base[, number amount[, number bits]])
1725 \end_layout
1727 \begin_layout Standard
1728 Rotate bits-bit (max 48, default 48) number left by amount (default 1) places.
1729 \end_layout
1731 \begin_layout Subsubsection
1732 rrotate(number base[, number amount[, number bits]])
1733 \end_layout
1735 \begin_layout Standard
1736 Rotate bits-bit (max 48, default 48) number right by amount (default 1)
1737  places.
1738 \end_layout
1740 \begin_layout Subsubsection
1741 lshift(number base[, number amount[, number bits]])
1742 \end_layout
1744 \begin_layout Standard
1745 Shift bits-bit (max 48, default 48) number left by amount (default 1) places.
1746  The new bits are filled with zeroes.
1747 \end_layout
1749 \begin_layout Subsubsection
1750 lrshift(number base[, number amount[, number bits]])
1751 \end_layout
1753 \begin_layout Standard
1754 Shift bits-bit (max 48, default 48) number logically right by amount (default
1755  1) places.
1756  The new bits are filled with zeroes.
1757 \end_layout
1759 \begin_layout Subsubsection
1760 arshift(number base[, number amount[, number bits]])
1761 \end_layout
1763 \begin_layout Standard
1764 Shift bits-bit (max 48, default 48) number arithmetically right by amount
1765  (default 1) places.
1766  The new bits are shifted in with copy of the high bit.
1767 \end_layout
1769 \begin_layout Subsection
1770 Table gui:
1771 \end_layout
1773 \begin_layout Standard
1774 Most of these functions can only be called in on_paint and on_video callbacks.
1775  Exceptions are noted.
1776 \end_layout
1778 \begin_layout Standard
1779 Colors are 15-bit.
1780  Each red, green and blue values are in range 0-31 and the final color value
1781  is 1024*r+32*g+b.
1782  Alpha range is 0 (fully transparent) to 32 (sic! fully opaque).
1783 \end_layout
1785 \begin_layout Standard
1786 Origin of coordinates is at top left corner of game display area.
1787  Left and top gaps correspond to negative coordinates.
1788 \end_layout
1790 \begin_layout Subsubsection
1791 gui.resolution()
1792 \end_layout
1794 \begin_layout Standard
1795 Returns 2-tuple (hresolution, vresolution).
1796 \end_layout
1798 \begin_layout Subsubsection
1799 gui.<class>_gap(number gap)
1800 \end_layout
1802 \begin_layout Standard
1803 Set the <class> (left, right, top, bottom) gap to specified value (max gap
1804  is 8191).
1805 \end_layout
1807 \begin_layout Subsubsection
1808 gui.text(number x, number y, string text[, number fgc[, number fga[, number
1809  bgc[, number bga]]]])
1810 \end_layout
1812 \begin_layout Standard
1813 Draw specified text on the GUI (each character cell is 8 or 16 wide and
1814  16 high).
1815  Parameters:
1816 \end_layout
1818 \begin_layout Itemize
1819 x: X-coordinate to start the drawing from (and x-coordinate at begining
1820  of the lines).
1821 \end_layout
1823 \begin_layout Itemize
1824 y: Y-coordinate to start the drawing from.
1825 \end_layout
1827 \begin_layout Itemize
1828 text: The text to draw.
1829 \end_layout
1831 \begin_layout Itemize
1832 fgc: Text color (default is 0x7FFF (white))
1833 \end_layout
1835 \begin_layout Itemize
1836 fga: Text alpha (default is 32 (opaque))
1837 \end_layout
1839 \begin_layout Itemize
1840 bgc: Background color (default is 0 (black))
1841 \end_layout
1843 \begin_layout Itemize
1844 bga: Background alpha (default is 0 (transparent))
1845 \end_layout
1847 \begin_layout Subsubsection
1848 gui.rectangle(number x, number y, number width, number height[, number thickness[
1849 , number outline[, number outlinealpha[, number fill[, number fillalpha]]]]])
1850 \end_layout
1852 \begin_layout Standard
1853 Draw rectangle on the GUI.
1854  Parameters:
1855 \end_layout
1857 \begin_layout Itemize
1858 x: X-coordinate of left edge.
1859 \end_layout
1861 \begin_layout Itemize
1862 y: Y-coordinate of upper edge.
1863 \end_layout
1865 \begin_layout Itemize
1866 width: Width of rectangle.
1867 \end_layout
1869 \begin_layout Itemize
1870 height: Height of rectangle.
1871 \end_layout
1873 \begin_layout Itemize
1874 thickness: Thickness of outline (default is 1).
1875 \end_layout
1877 \begin_layout Itemize
1878 outline: Color of outline (default is 0x7FFF (white))
1879 \end_layout
1881 \begin_layout Itemize
1882 outlinealpha: Outline alpha (default is 32 (opaque))
1883 \end_layout
1885 \begin_layout Itemize
1886 fill: Color of fil (default is 0 (black))
1887 \end_layout
1889 \begin_layout Itemize
1890 fillalpha: Fill alpha (default is 0 (transparent))
1891 \end_layout
1893 \begin_layout Subsubsection
1894 gui.pixel(number x, number y[, number color[, number alpha]])
1895 \end_layout
1897 \begin_layout Standard
1898 Draw one pixel on the GUI.
1899  Parameters:
1900 \end_layout
1902 \begin_layout Itemize
1903 x: X-coordinate of the pixel
1904 \end_layout
1906 \begin_layout Itemize
1907 y: Y-coordinate of the pixel
1908 \end_layout
1910 \begin_layout Itemize
1911 color: Color of the pixel (default is 0x7FFF (white))
1912 \end_layout
1914 \begin_layout Itemize
1915 alpha: Alpha for the pixel (default is 32 (opaque))
1916 \end_layout
1918 \begin_layout Subsubsection
1919 gui.crosshair(number x, number y[, number length[, number color[, number
1920  alpha]]]
1921 \end_layout
1923 \begin_layout Standard
1924 Draw a crosshair.
1925  Parameters:
1926 \end_layout
1928 \begin_layout Itemize
1929 x: X-coordinate of the crosshair
1930 \end_layout
1932 \begin_layout Itemize
1933 y: Y-coordinate of the crosshair
1934 \end_layout
1936 \begin_layout Itemize
1937 length: Length of the crosshair lines (default 10).
1938 \end_layout
1940 \begin_layout Itemize
1941 color: Color of the crosshair (default is 0x7FFF (white))
1942 \end_layout
1944 \begin_layout Itemize
1945 alpha: Alpha for the crosshair (default is 32 (opaque))
1946 \end_layout
1948 \begin_layout Subsubsection
1949 gui.repaint()
1950 \end_layout
1952 \begin_layout Standard
1953 Request on_repaint() to happen as soon as possible.
1954  Can be used anywhere.
1955 \end_layout
1957 \begin_layout Subsubsection
1958 gui.subframe_update(boolean on)
1959 \end_layout
1961 \begin_layout Standard
1962 Request subframe updates (calling on_paint() on subframes) to happen (on=true)
1963  or not happen (on=false).
1964  Can be used anywhere.
1965 \end_layout
1967 \begin_layout Subsection
1968 table input
1969 \end_layout
1971 \begin_layout Standard
1972 Input handling.
1973  Only available in on_input callback.
1974 \end_layout
1976 \begin_layout Subsection
1977 get(number controller, number index)
1978 \end_layout
1980 \begin_layout Standard
1981 Read the specified index (0-11) from specified controller (0-7).
1982  Notes:
1983 \end_layout
1985 \begin_layout Itemize
1986 Uses physical controller numbering.
1987  Gamepad in port 2 is controller 4, not 1!
1988 \end_layout
1990 \begin_layout Subsection
1991 set(number controller, number index, number value)
1992 \end_layout
1994 \begin_layout Standard
1995 Write the specified index (0-11) from specified controller (0-7), storing
1996  value.
1997  Notes:
1998 \end_layout
2000 \begin_layout Itemize
2001 Uses physical controller numbering.
2002  Gamepad in port 2 is controller 4, not 1!
2003 \end_layout
2005 \begin_layout Subsection
2006 reset([number cycles])
2007 \end_layout
2009 \begin_layout Standard
2010 Execute reset.
2011  If cycles is greater than zero, do delayed reset.
2012  0 (or no value) causes immediate reset.
2013 \end_layout
2015 \begin_layout Itemize
2016 Only available with subframe flag false.
2017 \end_layout
2019 \begin_layout Subsection
2020 Table hostmemory
2021 \end_layout
2023 \begin_layout Standard
2024 Host memory handling (extra memory saved to savestates).
2025  Host memory starts empty.
2026 \end_layout
2028 \begin_layout Subsubsection
2029 read(number address)
2030 \end_layout
2032 \begin_layout Standard
2033 Reads hostmemory slot address.
2034  Slot numbers out of range return false instead of numeric.
2035 \end_layout
2037 \begin_layout Subsubsection
2038 write(number address, number value)
2039 \end_layout
2041 \begin_layout Standard
2042 Writes hostmemory slot with 0-255.
2043  Slot numbers out of range cause extension of host memory slot space.
2044 \end_layout
2046 \begin_layout Subsubsection
2047 readbyte(number address)
2048 \end_layout
2050 \begin_layout Standard
2051 Read unsigned byte (1 element) from given address.
2052  Slots out of range return false.
2053 \end_layout
2055 \begin_layout Subsubsection
2056 writebyte(number address, number value)
2057 \end_layout
2059 \begin_layout Standard
2060 Write unsigned byte (1 element) to given slot.
2061  Slot numbers out of range cause extension.
2062 \end_layout
2064 \begin_layout Subsubsection
2065 readsbyte(number address)
2066 \end_layout
2068 \begin_layout Standard
2069 Read signed byte (1 element) from given address.
2070  Slots out of range return false.
2071 \end_layout
2073 \begin_layout Subsubsection
2074 writesbyte(number address, number value)
2075 \end_layout
2077 \begin_layout Standard
2078 Write signed byte (1 element) to given slot.
2079  Slot numbers out of range cause extension.
2080 \end_layout
2082 \begin_layout Subsubsection
2083 readword(number address)
2084 \end_layout
2086 \begin_layout Standard
2087 Read unsigned word (2 elements) from given address.
2088  Slots out of range return false.
2089 \end_layout
2091 \begin_layout Subsubsection
2092 writeword(number address, number value)
2093 \end_layout
2095 \begin_layout Standard
2096 Write unsigned word (2 elements) to given slot.
2097  Slot numbers out of range cause extension.
2098 \end_layout
2100 \begin_layout Subsubsection
2101 readsword(number address)
2102 \end_layout
2104 \begin_layout Standard
2105 Read signed word (2 elements) from given address.
2106  Slots out of range return false.
2107 \end_layout
2109 \begin_layout Subsubsection
2110 writesword(number address, number value)
2111 \end_layout
2113 \begin_layout Standard
2114 Write signed word (2 elements) to given slot.
2115  Slot numbers out of range cause extension.
2116 \end_layout
2118 \begin_layout Subsubsection
2119 readdword(number address)
2120 \end_layout
2122 \begin_layout Standard
2123 Read unsigned doubleword (4 elements) from given address.
2124  Slots out of range return false.
2125 \end_layout
2127 \begin_layout Subsubsection
2128 writedword(number address, number value)
2129 \end_layout
2131 \begin_layout Standard
2132 Write unsigned doubleword (4 elements) to given slot.
2133  Slot numbers out of range cause extension.
2134 \end_layout
2136 \begin_layout Subsubsection
2137 readsdword(number address)
2138 \end_layout
2140 \begin_layout Standard
2141 Read signed doubleword (4 elements) from given address.
2142  Slots out of range return false.
2143 \end_layout
2145 \begin_layout Subsubsection
2146 writesdword(number address, number value)
2147 \end_layout
2149 \begin_layout Standard
2150 Write signed doubleword (4 elements) to given slot.
2151  Slot numbers out of range cause extension.
2152 \end_layout
2154 \begin_layout Subsubsection
2155 readqword(number address)
2156 \end_layout
2158 \begin_layout Standard
2159 Read unsigned quadword (8 elements) from given address.
2160  Slots out of range return false.
2161 \end_layout
2163 \begin_layout Subsubsection
2164 writeqword(number address, number value)
2165 \end_layout
2167 \begin_layout Standard
2168 Write unsigned quadword (4 elements) to given slot.
2169  Slot numbers out of range cause extension.
2170 \end_layout
2172 \begin_layout Subsubsection
2173 readsqword(number address)
2174 \end_layout
2176 \begin_layout Standard
2177 Read signed quadword (8 elements) from given address.
2178  Slots out of range return false.
2179 \end_layout
2181 \begin_layout Subsubsection
2182 writesqword(number address, number value)
2183 \end_layout
2185 \begin_layout Standard
2186 Write signed quadword (8 elements) to given slot.
2187  Slot numbers out of range cause extension.
2188 \end_layout
2190 \begin_layout Subsection
2191 Table movie
2192 \end_layout
2194 \begin_layout Standard
2195 Movie handling
2196 \end_layout
2198 \begin_layout Subsubsection
2199 movie.currentframe()
2200 \end_layout
2202 \begin_layout Standard
2203 Return number of current frame.
2204 \end_layout
2206 \begin_layout Subsubsection
2207 movie.framecount()
2208 \end_layout
2210 \begin_layout Standard
2211 Return number of frames in movie.
2212 \end_layout
2214 \begin_layout Subsubsection
2215 movie.readonly()
2216 \end_layout
2218 \begin_layout Standard
2219 Return true if in readonly mode, false if in readwrite.
2220 \end_layout
2222 \begin_layout Subsubsection
2223 movie.set_readwrite()
2224 \end_layout
2226 \begin_layout Standard
2227 Set readwrite mode (does not cause on_readwrite callback).
2228 \end_layout
2230 \begin_layout Subsubsection
2231 movie.frame_subframes(number frame)
2232 \end_layout
2234 \begin_layout Standard
2235 Count number of subframes in specified frame (frame numbers are 1-based)
2236  and return that.
2237 \end_layout
2239 \begin_layout Subsubsection
2240 movie.read_subframe(number frame, number subframe)
2241 \end_layout
2243 \begin_layout Standard
2244 Read specifed subframe in specified frame and return data as array (100
2245  elements, numbered 0-99 currently).
2246 \end_layout
2248 \begin_layout Subsection
2249 Table settings
2250 \end_layout
2252 \begin_layout Standard
2253 Routines for settings manipulation
2254 \end_layout
2256 \begin_layout Subsubsection
2257 get(string name)
2258 \end_layout
2260 \begin_layout Standard
2261 Get value of setting.
2262  If setting is blank, returns false.
2263  If setting value can't be obtained, returns (nil, error message).
2264 \end_layout
2266 \begin_layout Subsubsection
2267 set(string name, string value)
2268 \end_layout
2270 \begin_layout Standard
2271 Set value of setting.
2272  If setting can't be set, returns (nil, error message).
2273 \end_layout
2275 \begin_layout Subsubsection
2276 is_set(string name)
2277 \end_layout
2279 \begin_layout Standard
2280 Returns if setting is set.
2281  If setting does not exist, returns (nil, error message).
2282 \end_layout
2284 \begin_layout Subsubsection
2285 blank(string name)
2286 \end_layout
2288 \begin_layout Standard
2289 Blanks a setting and returns true.
2290  If setting can't be blanked, returns (nil, error message).
2291 \end_layout
2293 \begin_layout Subsection
2294 Callbacks
2295 \end_layout
2297 \begin_layout Standard
2298 Various callbacks to Lua that can occur.
2299 \end_layout
2301 \begin_layout Subsubsection
2302 Callback: on_paint()
2303 \end_layout
2305 \begin_layout Standard
2306 Called when screen is being painted.
2307  Any gui.* calls requiring graphic context draw on the screen.
2308 \end_layout
2310 \begin_layout Subsubsection
2311 Callback: on_video()
2312 \end_layout
2314 \begin_layout Standard
2315 Called when video dump frame is being painted.
2316  Any gui.* calls requiring graphic context draw on the video.
2317 \end_layout
2319 \begin_layout Subsubsection
2320 Callback: on_startup()
2321 \end_layout
2323 \begin_layout Standard
2324 Called when the emulator is starting (lsnes.rc and --run files has been run).
2325 \end_layout
2327 \begin_layout Subsubsection
2328 Callback: on_pre_load(string name)
2329 \end_layout
2331 \begin_layout Standard
2332 Called just before savestate/movie load occurs (note: loads are always delayed,
2333  so this occurs even when load was initiated by lua).
2334 \end_layout
2336 \begin_layout Subsubsection
2337 Callback: on_err_load(string name)
2338 \end_layout
2340 \begin_layout Standard
2341 Called if loadstate goes wrong.
2342 \end_layout
2344 \begin_layout Subsubsection
2345 Callback: on_post_load(string name, boolean was_savestate)
2346 \end_layout
2348 \begin_layout Standard
2349 Called on successful loadstate.
2350  was_savestate gives if this was a savestate or a movie.
2351 \end_layout
2353 \begin_layout Subsubsection
2354 Callback: on_pre_save(string name, boolean is_savestate)
2355 \end_layout
2357 \begin_layout Standard
2358 Called just before savestate save occurs (note: movie saves are synchronous
2359  and won't trigger these callbacks if called from Lua).
2360 \end_layout
2362 \begin_layout Subsubsection
2363 Callback: on_err_save(string name)
2364 \end_layout
2366 \begin_layout Standard
2367 Called if savestate goes wrong.
2368 \end_layout
2370 \begin_layout Subsubsection
2371 Callback: on_post_save(string name, boolean is_savestate)
2372 \end_layout
2374 \begin_layout Standard
2375 Called on successful savaestate.
2376  is_savestate gives if this was a savestate or a movie.
2377 \end_layout
2379 \begin_layout Subsubsection
2380 Callback: on_quit()
2381 \end_layout
2383 \begin_layout Standard
2384 Called when emulator is shutting down.
2385 \end_layout
2387 \begin_layout Subsubsection
2388 Callback: on_input(boolean subframe)
2389 \end_layout
2391 \begin_layout Standard
2392 Called when emulator is just sending input to bsnes core.
2393  Warning: This is called even in readonly mode, but the results are ignored.
2394 \end_layout
2396 \begin_layout Subsubsection
2397 Callback: on_reset()
2398 \end_layout
2400 \begin_layout Standard
2401 Called when SNES is reset.
2402 \end_layout
2404 \begin_layout Subsubsection
2405 Callback: on_readwrite()
2406 \end_layout
2408 \begin_layout Standard
2409 Called when moving into readwrite mode as result of 
2410 \begin_inset Quotes eld
2411 \end_inset
2413 set-rwmode
2414 \begin_inset Quotes erd
2415 \end_inset
2417  command (note: moving to rwmode by Lua won't trigger this, as per recursive
2418  entry protection).
2419 \end_layout
2421 \begin_layout Subsubsection
2422 Callback: on_snoop(number port, number controller, number index, number
2423  value)
2424 \end_layout
2426 \begin_layout Standard
2427 Called each time bsnes asks for input.
2428  The value is the final value to be sent to bsnes core (readonly mode, autohold
2429  and autofire have been taken into account).
2430  Might be useful when translating movies to format suitable for console
2431  verification.
2432  Note: There is no way to modify the value to be sent.
2433 \end_layout
2435 \begin_layout Section
2436 Modifier and key names:
2437 \end_layout
2439 \begin_layout Subsection
2440 SDL Platform
2441 \end_layout
2443 \begin_layout Subsubsection
2444 Modifier names
2445 \end_layout
2447 \begin_layout Standard
2448 Following modifier names are known:
2449 \end_layout
2451 \begin_layout Itemize
2452 ctrl, lctrl, rctrl: Control keys
2453 \end_layout
2455 \begin_layout Itemize
2456 alt, lalt, ralt: ALT keys.
2457 \end_layout
2459 \begin_layout Itemize
2460 shift, lshift, rshift: Shift keys.
2461 \end_layout
2463 \begin_layout Itemize
2464 meta, lmeta, rmeta: Meta keys.
2465 \end_layout
2467 \begin_layout Itemize
2468 num, caps: Numlock/Capslock (these are sticky!)
2469 \end_layout
2471 \begin_layout Itemize
2472 mode: Mode select.
2473 \end_layout
2475 \begin_layout Subsubsection
2476 Key names
2477 \end_layout
2479 \begin_layout Standard
2480 Following key names are known:
2481 \end_layout
2483 \begin_layout Itemize
2484 backspace, tab, clear, return, pause, escape, space, exclaim, quotedbl,
2485  hash, dollar, ampersand, quote, leftparen, rightparen, asterisk, plus,
2486  comma, minus, period, slash, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, colon, semicolon,
2487  less, equals, greater, question, at, leftbracket, backslash, rightbracket,
2488  caret, underscore, backquote, a, b, c, d, e, f, g, h, i, j, k, l, m, n,
2489  o, p, q, r, s, t, u, v, w, x, y, z, delete, world_0, world_1, world_2,
2490  world_3, world_4, world_5, world_6, world_7, world_8, world_9, world_10,
2491  world_11, world_12, world_13, world_14, world_15, world_16, world_17, world_18,
2492  world_19, world_20, world_21, world_22, world_23, world_24, world_25, world_26,
2493  world_27, world_28, world_29, world_30, world_31, world_32, world_33, world_34,
2494  world_35, world_36, world_37, world_38, world_39, world_40, world_41, world_42,
2495  world_43, world_44, world_45, world_46, world_47, world_48, world_49, world_50,
2496  world_51, world_52, world_53, world_54, world_55, world_56, world_57, world_58,
2497  world_59, world_60, world_61, world_62, world_63, world_64, world_65, world_66,
2498  world_67, world_68, world_69, world_70, world_71, world_72, world_73, world_74,
2499  world_75, world_76, world_77, world_78, world_79, world_80, world_81, world_82,
2500  world_83, world_84, world_85, world_86, world_87, world_88, world_89, world_90,
2501  world_91, world_92, world_93, world_94, world_95, kp0, kp1, kp2, kp3, kp4,
2502  kp5, kp6, kp7, kp8, kp9, kp_period, kp_divide, kp_multiply, kp_minus, kp_plus,
2503  kp_enter, kp_equals, up, down, right, left, insert, home, end, pageup,
2504  pagedown, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14,
2505  f15, numlock, capslock, scrollock, rshift, lshift, rctrl, lctrl, ralt,
2506  lalt, rmeta, lmeta, lsuper, rsuper, mode, compose, help, print, sysreq,
2507  break, menu, power, euro, undo
2508 \end_layout
2510 \begin_layout Itemize
2511 Names of form 'key<n>' where <n> is 0-255 are interpretted as key having
2512  hardware-dependent scan code of <n> (useful to bind those keys that don't
2513  have symbolic names).
2514 \end_layout
2516 \begin_layout Standard
2517 In addition, following pseudo-keys are known (note: these do not work in
2518  conjunction with modifers):
2519 \end_layout
2521 \begin_layout Itemize
2522 joystick<num>button<button>: Joystick <num> (0-based) button <button> (0-based).
2523 \end_layout
2525 \begin_layout Itemize
2526 joystick<num>hat<hat>n: Joystick <num> (0-based) hat <hat> (0-based) up.
2527 \end_layout
2529 \begin_layout Itemize
2530 joystick<num>hat<hat>w: Joystick <num> (0-based) hat <hat> (0-based) left.
2531 \end_layout
2533 \begin_layout Itemize
2534 joystick<num>hat<hat>s: Joystick <num> (0-based) hat <hat> (0-based) down.
2535 \end_layout
2537 \begin_layout Itemize
2538 joystick<num>hat<hat>e: Joystick <num> (0-based) hat <hat> (0-based) right.
2539 \end_layout
2541 \begin_layout Itemize
2542 joystick<num>axis<axis>-: Joystick <num> (0-based) axis <axis> negative
2543  position (axis modes axis and axis_inverse).
2544 \end_layout
2546 \begin_layout Itemize
2547 joystick<num>axis<axis>+: Joystick <num> (0-based) axis <axis> positive
2548  position (axis modes axis and axis_inverse).
2549 \end_layout
2551 \begin_layout Itemize
2552 joystick<num>axis<axis>: Joystick <num> (0-based) axis <axis> pressure (axis
2553  modes pressure_*).
2554 \end_layout
2556 \begin_layout Subsubsection
2557 Special buttons:
2558 \end_layout
2560 \begin_layout Itemize
2561 Escape: Enter/Exit Command mode, cancel modal dialogs.
2562 \end_layout
2564 \begin_layout Itemize
2565 Return (also KPEnter): Execute command, ok modal dialog.
2566 \end_layout
2568 \begin_layout Itemize
2569 Pgup/Up (also KP8/9 if no num lock; command mode): Previous command in command
2570  history
2571 \end_layout
2573 \begin_layout Itemize
2574 Pgdn/Down(also KP2/3 if no num lock; command mode): Next command in command
2575  history
2576 \end_layout
2578 \begin_layout Itemize
2579 Home (also KP7 if no num lock; command mode): Beginning of command.
2580 \end_layout
2582 \begin_layout Itemize
2583 End (also KP1 if no num lock; command mode): End of command.
2584 \end_layout
2586 \begin_layout Itemize
2587 Left (also KP4 if no num lock; command mode): Move cursor left.
2588 \end_layout
2590 \begin_layout Itemize
2591 Right (also KP6 if no num lock; command mode): Move cursor right.
2592 \end_layout
2594 \begin_layout Itemize
2595 Delete (also KP.
2596  if no num lock; command mode): Delete character to right of cursor.
2597 \end_layout
2599 \begin_layout Itemize
2600 Insert (also KP0 if no num lock; command mode): Toggle between insert /
2601  overwrite modes.
2602 \end_layout
2604 \begin_layout Itemize
2605 Backspace (command mode): Delete character to left of cursor.
2606 \end_layout
2608 \begin_layout Itemize
2609 LCTRL+LALT+ESCAPE: Ungraceful shutdown (leaves dump corrupted!).
2610 \end_layout
2612 \begin_layout Subsubsection
2613 Watchdog timer:
2614 \end_layout
2616 \begin_layout Standard
2617 If emulator does not reach internal polling loop in 15 seconds after leaving
2618  it or 15 seconds after starting, the emulator instantly bombs out.
2619 \end_layout
2621 \begin_layout Section
2622 Movie file format
2623 \end_layout
2625 \begin_layout Standard
2626 Movie file is .zip archive in itself, normal ZIP archive tools work on it
2627  (note: If you recompress it, do not use compression methods other than
2628  store and deflate and especially do not use encryption of any kind).
2629 \end_layout
2631 \begin_layout Subsection
2632 Detecting clean start/SRAM/Savestate
2633 \end_layout
2635 \begin_layout Itemize
2636 If file has member 
2637 \begin_inset Quotes eld
2638 \end_inset
2640 savestate
2641 \begin_inset Quotes erd
2642 \end_inset
2644  it is savestate, otherwise:
2645 \end_layout
2647 \begin_layout Itemize
2648 If file has members with names starting 
2649 \begin_inset Quotes eld
2650 \end_inset
2652 moviesram.
2653 \begin_inset Quotes erd
2654 \end_inset
2656  it is movie starting from SRAM, otherwise:
2657 \end_layout
2659 \begin_layout Itemize
2660 It is movie starting from clear state.
2661 \end_layout
2663 \begin_layout Subsection
2664 Member: gametype
2665 \end_layout
2667 \begin_layout Standard
2668 Type of game ROM and region (as one line).
2669  Valid values are:
2670 \end_layout
2672 \begin_layout Standard
2673 \begin_inset Tabular
2674 <lyxtabular version="3" rows="8" columns="3">
2675 <features tabularvalignment="middle">
2676 <column alignment="center" valignment="top" width="0">
2677 <column alignment="center" valignment="top" width="0">
2678 <column alignment="center" valignment="top" width="0">
2679 <row>
2680 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
2681 \begin_inset Text
2683 \begin_layout Plain Layout
2684 Value
2685 \end_layout
2687 \end_inset
2688 </cell>
2689 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
2690 \begin_inset Text
2692 \begin_layout Plain Layout
2693 System
2694 \end_layout
2696 \end_inset
2697 </cell>
2698 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
2699 \begin_inset Text
2701 \begin_layout Plain Layout
2702 Region
2703 \end_layout
2705 \end_inset
2706 </cell>
2707 </row>
2708 <row>
2709 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
2710 \begin_inset Text
2712 \begin_layout Plain Layout
2713 snes_pal
2714 \end_layout
2716 \end_inset
2717 </cell>
2718 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
2719 \begin_inset Text
2721 \begin_layout Plain Layout
2722 Super NES
2723 \end_layout
2725 \end_inset
2726 </cell>
2727 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
2728 \begin_inset Text
2730 \begin_layout Plain Layout
2732 \end_layout
2734 \end_inset
2735 </cell>
2736 </row>
2737 <row>
2738 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
2739 \begin_inset Text
2741 \begin_layout Plain Layout
2742 sgb_pal
2743 \end_layout
2745 \end_inset
2746 </cell>
2747 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
2748 \begin_inset Text
2750 \begin_layout Plain Layout
2751 Super Game Boy
2752 \end_layout
2754 \end_inset
2755 </cell>
2756 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
2757 \begin_inset Text
2759 \begin_layout Plain Layout
2761 \end_layout
2763 \end_inset
2764 </cell>
2765 </row>
2766 <row>
2767 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
2768 \begin_inset Text
2770 \begin_layout Plain Layout
2771 snes_ntsc
2772 \end_layout
2774 \end_inset
2775 </cell>
2776 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
2777 \begin_inset Text
2779 \begin_layout Plain Layout
2780 Super NES
2781 \end_layout
2783 \end_inset
2784 </cell>
2785 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
2786 \begin_inset Text
2788 \begin_layout Plain Layout
2789 NTSC
2790 \end_layout
2792 \end_inset
2793 </cell>
2794 </row>
2795 <row>
2796 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
2797 \begin_inset Text
2799 \begin_layout Plain Layout
2800 sgb_ntsc
2801 \end_layout
2803 \end_inset
2804 </cell>
2805 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
2806 \begin_inset Text
2808 \begin_layout Plain Layout
2809 Super Game Boy
2810 \end_layout
2812 \end_inset
2813 </cell>
2814 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
2815 \begin_inset Text
2817 \begin_layout Plain Layout
2818 NTSC
2819 \end_layout
2821 \end_inset
2822 </cell>
2823 </row>
2824 <row>
2825 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
2826 \begin_inset Text
2828 \begin_layout Plain Layout
2830 \end_layout
2832 \end_inset
2833 </cell>
2834 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
2835 \begin_inset Text
2837 \begin_layout Plain Layout
2838 BS-X (non-slotted)
2839 \end_layout
2841 \end_inset
2842 </cell>
2843 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
2844 \begin_inset Text
2846 \begin_layout Plain Layout
2847 NTSC
2848 \end_layout
2850 \end_inset
2851 </cell>
2852 </row>
2853 <row>
2854 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
2855 \begin_inset Text
2857 \begin_layout Plain Layout
2858 bsxslotted
2859 \end_layout
2861 \end_inset
2862 </cell>
2863 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
2864 \begin_inset Text
2866 \begin_layout Plain Layout
2867 BS-X (slotted)
2868 \end_layout
2870 \end_inset
2871 </cell>
2872 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
2873 \begin_inset Text
2875 \begin_layout Plain Layout
2876 NTSC
2877 \end_layout
2879 \end_inset
2880 </cell>
2881 </row>
2882 <row>
2883 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
2884 \begin_inset Text
2886 \begin_layout Plain Layout
2887 sufamiturbo
2888 \end_layout
2890 \end_inset
2891 </cell>
2892 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
2893 \begin_inset Text
2895 \begin_layout Plain Layout
2896 Sufami Turbo
2897 \end_layout
2899 \end_inset
2900 </cell>
2901 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
2902 \begin_inset Text
2904 \begin_layout Plain Layout
2905 NTSC
2906 \end_layout
2908 \end_inset
2909 </cell>
2910 </row>
2911 </lyxtabular>
2913 \end_inset
2916 \end_layout
2918 \begin_layout Standard
2919 Frame rates are:
2920 \end_layout
2922 \begin_layout Standard
2923 \begin_inset Tabular
2924 <lyxtabular version="3" rows="3" columns="2">
2925 <features tabularvalignment="middle">
2926 <column alignment="center" valignment="top" width="0">
2927 <column alignment="center" valignment="top" width="0">
2928 <row>
2929 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
2930 \begin_inset Text
2932 \begin_layout Plain Layout
2933 Region
2934 \end_layout
2936 \end_inset
2937 </cell>
2938 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
2939 \begin_inset Text
2941 \begin_layout Plain Layout
2942 Framerate (fps)
2943 \end_layout
2945 \end_inset
2946 </cell>
2947 </row>
2948 <row>
2949 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
2950 \begin_inset Text
2952 \begin_layout Plain Layout
2954 \end_layout
2956 \end_inset
2957 </cell>
2958 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
2959 \begin_inset Text
2961 \begin_layout Plain Layout
2962 322445/6448
2963 \end_layout
2965 \end_inset
2966 </cell>
2967 </row>
2968 <row>
2969 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
2970 \begin_inset Text
2972 \begin_layout Plain Layout
2973 NTSC
2974 \end_layout
2976 \end_inset
2977 </cell>
2978 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
2979 \begin_inset Text
2981 \begin_layout Plain Layout
2982 10738636/178683
2983 \end_layout
2985 \end_inset
2986 </cell>
2987 </row>
2988 </lyxtabular>
2990 \end_inset
2993 \end_layout
2995 \begin_layout Subsection
2996 Member: port1
2997 \end_layout
2999 \begin_layout Standard
3000 Contains type of port #1 (as one line).
3001  Valid values are 'none', 'gamepad', 'multitap' and 'mouse'.
3002  If not present, defaults to 'gamepad'.
3003 \end_layout
3005 \begin_layout Subsection
3006 Member: port2
3007 \end_layout
3009 \begin_layout Standard
3010 Contains type of port #2 (as one line).
3011  Valid values are 'none', 'gamepad', 'multitap', 'mouse', 'superscope',
3012  'justifier' and 'justifiers'.
3013  If not present, defaults to 'none'.
3014 \end_layout
3016 \begin_layout Subsection
3017 Member: gamename
3018 \end_layout
3020 \begin_layout Standard
3021 Contains name of the game (as one line).
3022 \end_layout
3024 \begin_layout Subsection
3025 Member: authors
3026 \end_layout
3028 \begin_layout Standard
3029 Contains authors, one per line.
3030  Part before '|' is the full name, part after is the nickname.
3031 \end_layout
3033 \begin_layout Subsection
3034 Member: systemid
3035 \end_layout
3037 \begin_layout Standard
3038 Always 
3039 \begin_inset Quotes eld
3040 \end_inset
3042 lsnes-rr1
3043 \begin_inset Quotes erd
3044 \end_inset
3046  (one line).
3047  Used to reject other saves.
3048 \end_layout
3050 \begin_layout Subsection
3051 Member: controlsversion
3052 \end_layout
3054 \begin_layout Standard
3055 Always 
3056 \begin_inset Quotes eld
3057 \end_inset
3060 \begin_inset Quotes erd
3061 \end_inset
3063  (one line).
3064  Used to identify what controls are there.
3065 \end_layout
3067 \begin_layout Subsection
3068 Member: 
3069 \begin_inset Quotes eld
3070 \end_inset
3072 coreversion
3073 \begin_inset Quotes erd
3074 \end_inset
3077 \end_layout
3079 \begin_layout Standard
3080 Contains bsnes core version number (as one line).
3081 \end_layout
3083 \begin_layout Subsection
3084 Member: projectid
3085 \end_layout
3087 \begin_layout Standard
3088 Contains project ID (as one line).
3089  Used to identify if two movies are part of the same project.
3090 \end_layout
3092 \begin_layout Subsection
3093 Member: {rom,slota,slotb}{,xml}.sha256
3094 \end_layout
3096 \begin_layout Standard
3097 Contains SHA-256 of said ROM or ROM mapping file (as one line).
3098  Absent if corresponding file is absent.
3099 \end_layout
3101 \begin_layout Subsection
3102 Member: moviesram.<name>
3103 \end_layout
3105 \begin_layout Standard
3106 Raw binary startup SRAM of kind <name>.
3107  Only present in savestates and movies starting from SRAM.
3108 \end_layout
3110 \begin_layout Subsection
3111 Member: moviestate
3112 \end_layout
3114 \begin_layout Standard
3115 Raw binary movie state data.
3116  Only present in savestates.
3117 \end_layout
3119 \begin_layout Standard
3120 for version 0:
3121 \end_layout
3123 \begin_layout Itemize
3124 32 bytes: SHA-256 of project ID.
3125 \end_layout
3127 \begin_layout Itemize
3128 8 bytes: Big-endian current frame.
3129 \end_layout
3131 \begin_layout Itemize
3132 100x4 bytes: Poll counters for each control (bit31 of each is 
3133 \begin_inset Quotes eld
3134 \end_inset
3136 data ready
3137 \begin_inset Quotes erd
3138 \end_inset
3140  bit), big-endian.
3141 \end_layout
3143 \begin_layout Itemize
3144 8 bytes: Big-endian lag frame count.
3145 \end_layout
3147 \begin_layout Itemize
3148 32 bytes: SHA-256 of past input
3149 \end_layout
3151 \begin_layout Itemize
3152 32 bytes: SHA-256 of previous.
3153 \end_layout
3155 \begin_layout Itemize
3156 (total of 512 bytes)
3157 \end_layout
3159 \begin_layout Subsection
3160 Member: hostmemory
3161 \end_layout
3163 \begin_layout Standard
3164 Raw binary dump of host memory.
3165  Only present in savestates.
3166 \end_layout
3168 \begin_layout Subsection
3169 Member: savestate
3170 \end_layout
3172 \begin_layout Standard
3173 The raw binary savestate itself.
3174  Savestate detection uses this file, only present in savestates.
3175 \end_layout
3177 \begin_layout Subsection
3178 Member: screenshot
3179 \end_layout
3181 \begin_layout Standard
3182 Screenshot of current frame.
3183  Only present in savestates.
3184  First 2 bytes are big-endian width of image, rest are big-endian 15-bit
3185  image data (5 bits per channel*pixel, the MSB is unused).
3186  Height of image is inferred from the width and size of data.
3187 \end_layout
3189 \begin_layout Subsection
3190 Member: sram.<name>
3191 \end_layout
3193 \begin_layout Standard
3194 Raw binary SRAM of kind <name> at time of savestate.
3195  Only present in savestates.
3196 \end_layout
3198 \begin_layout Subsection
3199 Member: input
3200 \end_layout
3202 \begin_layout Standard
3203 The actual input track, one line per subframe (blank lines are skipped).
3204 \end_layout
3206 \begin_layout Itemize
3207 If the first byte of each line is '.', ' ', <tab> or '|', then the line is
3208  part of same frame as previous, otherwise it starts a new frame.
3209 \end_layout
3211 \begin_layout Itemize
3212 First subframe must start a new frame.
3213 \end_layout
3215 \begin_layout Standard
3216 Length of movie in frames is number of lines in input file that start a
3217  new frame.
3218 \end_layout
3220 \begin_layout Subsection
3221 Member: rerecords
3222 \end_layout
3224 \begin_layout Standard
3225 Contains textual base-10 rerecord count (as one line; emulator just writes
3226  this, it doesn't read it) + 1.
3227 \end_layout
3229 \begin_layout Subsection
3230 Member: rrdata
3231 \end_layout
3233 \begin_layout Standard
3234 This member stores set of load IDs.
3235  There is one load ID per rerecord (plus one corresponding to start of project).
3236 \end_layout
3238 \begin_layout Itemize
3239 This member constists of concatenation of records
3240 \end_layout
3242 \begin_layout Itemize
3243 Each record is 2-36 bytes long and can represent 1-16,843,009 consequtive
3244  IDs.
3245 \end_layout
3247 \begin_layout Itemize
3248 IDs are interpretted as 256-bit big-endian integers with warparound.
3249 \end_layout
3251 \begin_layout Itemize
3252 Initial predicted ID is all zeroes.
3253 \end_layout
3255 \begin_layout Standard
3256 Format of each record is:
3257 \end_layout
3259 \begin_layout Itemize
3260 1 byte: Opcode byte.
3261  Bits 0-4 are prefix length (prefixlen), bits 5-6 are count length (countlen).
3262  Bit 7 is unused.
3263 \end_layout
3265 \begin_layout Itemize
3266 32-prefixlen bytes of ID.
3267 \end_layout
3269 \begin_layout Itemize
3270 countlen bytes of big-endian count (count).
3271 \end_layout
3273 \begin_layout Standard
3274 Records are processed as follows:
3275 \end_layout
3277 \begin_layout Itemize
3278 To form the first ID encoded by record, take the first prefixlen bytes predicted
3279  ID and append the read ID value to it.
3280  The result is the first ID encoded.
3281 \end_layout
3283 \begin_layout Itemize
3284 If countlen is 0, record encodes 1 ID.
3285 \end_layout
3287 \begin_layout Itemize
3288 If countlen is 1, record encodes 2+count IDs.
3289 \end_layout
3291 \begin_layout Itemize
3292 If countlen is 2, record encodes 258+count IDs.
3293 \end_layout
3295 \begin_layout Itemize
3296 If countlen is 3, record encodes 65794+count IDs.
3297 \end_layout
3299 \begin_layout Itemize
3300 The new predicted ID is the next ID after last one encoded by the record.
3301 \end_layout
3303 \begin_layout Standard
3304 The number of rerecords + 1 is equal to the sum of number of IDs encoded
3305  by all records.
3306 \end_layout
3308 \begin_layout Subsection
3309 Member: starttime.second
3310 \end_layout
3312 \begin_layout Standard
3313 Movie starting time, second part.
3314  Epoch is Unix epoch.
3315  Default is 1,000,000,000.
3316 \end_layout
3318 \begin_layout Subsection
3319 Member: starttime.subsecond
3320 \end_layout
3322 \begin_layout Standard
3323 Movie starting time, subsecond part.
3324  Unit is 1/3,462,619,485,020 s.
3325  Default is 0.
3326 \end_layout
3328 \begin_layout Subsection
3329 Member: savetime.second
3330 \end_layout
3332 \begin_layout Standard
3333 Movie saving time, second part.
3334  Default is starttime.second.
3335  Only present in savestates.
3336 \end_layout
3338 \begin_layout Subsection
3339 Member: savetime.subsecond
3340 \end_layout
3342 \begin_layout Standard
3343 Movie saving time, subsecond part.
3344  Default is starttime.subsecond.
3345  Only present in savestates.
3346 \end_layout
3348 \begin_layout Section
3349 Compiling:
3350 \end_layout
3352 \begin_layout Subsection
3353 Building BSNES
3354 \end_layout
3356 \begin_layout Standard
3357 make ui=ui-libsnes profile=accuracy
3358 \end_layout
3360 \begin_layout Subsection
3361 Prerequisite libraries:
3362 \end_layout
3364 \begin_layout Itemize
3365 zlib
3366 \end_layout
3368 \begin_layout Itemize
3369 SDL (SDL platform)
3370 \end_layout
3372 \begin_layout Itemize
3373 SDLmain (Windows/Mac OS X only; Note you may have to extract the object
3374  out of archive)
3375 \end_layout
3377 \begin_layout Itemize
3378 boost_iostreams
3379 \end_layout
3381 \begin_layout Itemize
3382 boost_filesystem
3383 \end_layout
3385 \begin_layout Itemize
3386 boost conversion (header only)
3387 \end_layout
3389 \begin_layout Subsection
3390 Compile options to make:
3391 \end_layout
3393 \begin_layout Subsubsection
3394 BSNES_PATH=<path>
3395 \end_layout
3397 \begin_layout Standard
3398 Set path to BSNES bsnes directory to <path>.
3399 \end_layout
3401 \begin_layout Subsubsection
3402 NO_THREADS=1
3403 \end_layout
3405 \begin_layout Standard
3406 Don't use threads on Linux.
3407 \end_layout
3409 \begin_layout Subsubsection
3410 USE_THREADS=1
3411 \end_layout
3413 \begin_layout Standard
3414 Try to use threads even on non-Linux systems.
3415 \end_layout
3417 \begin_layout Subsubsection
3418 CC=<compiler>
3419 \end_layout
3421 \begin_layout Standard
3422 Target C++ compiler to use.
3423  Defaults to g++-4.5.
3424 \end_layout
3426 \begin_layout Standard
3427 Note: If crosscompiling, this has to be crosscompiler.
3428 \end_layout
3430 \begin_layout Subsubsection
3431 HOSTCC=<compiler>
3432 \end_layout
3434 \begin_layout Standard
3435 Host C++ compiler to use.
3436  Defaults to the same as CC.
3437 \end_layout
3439 \begin_layout Standard
3440 Note: If crosscompiling, that has to be host compiler (the files produced
3441  will be run in the build process!)
3442 \end_layout
3444 \begin_layout Subsubsection
3445 BSNES_IS_COMPAT=1
3446 \end_layout
3448 \begin_layout Standard
3449 Assume BSNES uses compatiblity core instead of accuracy core.
3450 \end_layout
3452 \begin_layout Subsubsection
3453 NO_LUA=1
3454 \end_layout
3456 \begin_layout Standard
3457 Don't compile in Lua support.
3458 \end_layout
3460 \begin_layout Subsubsection
3461 NO_TIME_INTERCEPT=1
3462 \end_layout
3464 \begin_layout Standard
3465 Disable time() interception.
3466  Prevents recording games using RTC but allows building on some platforms,
3467  notably Mac OS X.
3468 \end_layout
3470 \begin_layout Section
3471 Quick'n'dirty encode guide
3472 \end_layout
3474 \begin_layout Enumerate
3475 Start the emulator and load the movie file.
3476 \end_layout
3478 \begin_layout Enumerate
3479 Set large AVI option 'set-setting avi-large on'
3480 \end_layout
3482 \begin_layout Enumerate
3483 If dumping PAL, set bottom border to 2 'set-setting avi-bottom-border 2'
3484 \end_layout
3486 \begin_layout Enumerate
3487 Enable dumping 'dump-avi 12 tmpdump' (note: Normally 10 and above are 
3488 \begin_inset Quotes eld
3489 \end_inset
3491 use only if you know what you are doing.
3492 \begin_inset Quotes erd
3493 \end_inset
3496  In this case, these can be safely used because of how x264 internally works.
3497 \end_layout
3499 \begin_layout Enumerate
3500 Unpause and let it run until you want to end dumping.
3501 \end_layout
3503 \begin_layout Enumerate
3504 Close the emulator (closing the window is the easiest way)
3505 \end_layout
3507 \begin_layout Enumerate
3508 For each tmpdump*.avi file created, on command prompt, do 'x264 --crf 10
3509  -o tmpdump_<numbers>.mkv tmpdump_<numbers>.avi'.
3510 \end_layout
3512 \begin_layout Enumerate
3513 Do 'sox tmpdump.sox tmpdump.ogg rate -v 32000'
3514 \end_layout
3516 \begin_layout Enumerate
3517 Do 'mkvmerge -o tmpdump_video.mkv tmpdump_0000000.mkv + tmpdump_0000001.mkv
3518  + tmpdump_0000002.mkv' (list every tmpdump_<numbers>.mkv, with + in between).
3519 \end_layout
3521 \begin_layout Enumerate
3522 Do 'mkvmerge -o final.mkv tmpdump_video.mkv tmpdump.ogg'.
3523  Now final.mkv contains quick'n'dirty encode.
3524 \end_layout
3526 \begin_layout Section
3527 Axis configurations for some gamepad types:
3528 \end_layout
3530 \begin_layout Subsection
3531 XBox360 controller:
3532 \end_layout
3534 \begin_layout Standard
3535 Axes 2 and 5 (joystick<n>axis2 and joystick<n>axis5) should be set to pressure-+.
3536 \end_layout
3538 \begin_layout LyX-Code
3539 set-axis joystick0axis2 pressure-+
3540 \end_layout
3542 \begin_layout LyX-Code
3543 set-axis joystick0axis5 pressure-+
3544 \end_layout
3546 \begin_layout Subsection
3547 PS3 
3548 \begin_inset Quotes eld
3549 \end_inset
3551 sixaxis
3552 \begin_inset Quotes erd
3553 \end_inset
3555  controller:
3556 \end_layout
3558 \begin_layout Standard
3559 Axes 8-19 should be disabled.
3560 \end_layout
3562 \begin_layout LyX-Code
3563 set-axis joystick0axis8 disabled
3564 \end_layout
3566 \begin_layout LyX-Code
3567 set-axis joystick0axis9 disabled
3568 \end_layout
3570 \begin_layout LyX-Code
3571 set-axis joystick0axis10 disabled
3572 \end_layout
3574 \begin_layout LyX-Code
3575 set-axis joystick0axis11 disabled
3576 \end_layout
3578 \begin_layout LyX-Code
3579 set-axis joystick0axis12 disabled
3580 \end_layout
3582 \begin_layout LyX-Code
3583 set-axis joystick0axis13 disabled
3584 \end_layout
3586 \begin_layout LyX-Code
3587 set-axis joystick0axis14 disabled
3588 \end_layout
3590 \begin_layout LyX-Code
3591 set-axis joystick0axis15 disabled
3592 \end_layout
3594 \begin_layout LyX-Code
3595 set-axis joystick0axis16 disabled
3596 \end_layout
3598 \begin_layout LyX-Code
3599 set-axis joystick0axis17 disabled
3600 \end_layout
3602 \begin_layout LyX-Code
3603 set-axis joystick0axis18 disabled
3604 \end_layout
3606 \begin_layout LyX-Code
3607 set-axis joystick0axis19 disabled
3608 \end_layout
3610 \begin_layout Section
3611 Errata:
3612 \end_layout
3614 \begin_layout Subsection
3615 Problems from BSNES core:
3616 \end_layout
3618 \begin_layout Itemize
3619 The whole pending save stuff.
3620 \end_layout
3622 \begin_layout Itemize
3623 Delay resets are slow.
3624 \end_layout
3626 \begin_layout Itemize
3627 RTC is not emulated in sync-stable manner.
3628 \end_layout
3630 \begin_layout Itemize
3631 Lack of layer hiding.
3632 \end_layout
3634 \begin_layout Itemize
3635 It is slow.
3636 \end_layout
3638 \begin_layout Itemize
3639 Firmwares can't be loaded from ZIP archives.
3640 \end_layout
3642 \begin_layout Itemize
3643 Manual polls can be corrupted if savestate occurs during those.
3644 \end_layout
3646 \begin_layout Subsection
3647 Other problems:
3648 \end_layout
3650 \begin_layout Itemize
3651 Modifiers don't work with pseudo-keys (SDL).
3652 \end_layout
3654 \begin_layout Itemize
3655 Audio for last dumped frame is not itself dumped.
3656 \end_layout
3658 \begin_layout Itemize
3659 Audio in UI is pretty bad in quality.
3660 \end_layout
3662 \begin_layout Itemize
3663 UI itself is 30fps max.
3664 \end_layout
3666 \begin_layout Itemize
3667 AVI compression levels 10-18 are not compatible with AVISynth AVISource.
3668 \end_layout
3670 \begin_layout Itemize
3671 No menus, command based interface (SDL).
3672 \end_layout
3674 \begin_layout Itemize
3675 Long commands don't scroll.
3676 \end_layout
3678 \begin_layout Section
3679 Changelog:
3680 \end_layout
3682 \begin_layout Subsection
3683 rr0-beta1
3684 \end_layout
3686 \begin_layout Itemize
3687 Fix -Wall warnings
3688 \end_layout
3690 \begin_layout Itemize
3691 Fix dumper video corruption with levels 10-18.
3692 \end_layout
3694 \begin_layout Subsection
3695 rr0-beta2
3696 \end_layout
3698 \begin_layout Itemize
3699 Autofire
3700 \end_layout
3702 \begin_layout Itemize
3703 Lots of code cleanups
3704 \end_layout
3706 \begin_layout Itemize
3707 Lua interface to settings
3708 \end_layout
3710 \begin_layout Itemize
3711 Allow specifying AVI borders without Lua
3712 \end_layout
3714 \begin_layout Itemize
3715 Fix scaling if vscale > 1 and originx > 0 (left border exists)
3716 \end_layout
3718 \begin_layout Itemize
3719 on_snoop lua callback
3720 \end_layout
3722 \begin_layout Itemize
3723 Faster movie loading and saving.
3724 \end_layout
3726 \begin_layout Subsection
3727 rr0-beta3
3728 \end_layout
3730 \begin_layout Itemize
3731 Joystick support
3732 \end_layout
3734 \begin_layout Subsection
3735 rr0-beta4
3736 \end_layout
3738 \begin_layout Itemize
3739 Fix multi-buttons
3740 \end_layout
3742 \begin_layout Itemize
3743 Save jukebox functionality.
3744 \end_layout
3746 \begin_layout Subsection
3747 rr0-beta5
3748 \end_layout
3750 \begin_layout Itemize
3751 Try to fix some nasty failing movie load edge cases
3752 \end_layout
3754 \begin_layout Itemize
3755 Allow specifying scripts to run on command line.
3756 \end_layout
3758 \begin_layout Subsection
3759 rr0-beta6
3760 \end_layout
3762 \begin_layout Itemize
3763 Major source code reorganization.
3764 \end_layout
3766 \begin_layout Itemize
3767 Backup savestates before overwriting.
3768 \end_layout
3770 \begin_layout Itemize
3771 Don't crash if loading initial state fails.
3772 \end_layout
3774 \begin_layout Subsection
3775 rr0-beta7
3776 \end_layout
3778 \begin_layout Itemize
3779 Fix firmware lookup
3780 \end_layout
3782 \begin_layout Itemize
3783 Fix author name parsing
3784 \end_layout
3786 \begin_layout Itemize
3787 Fix rerecord counting
3788 \end_layout
3790 \begin_layout Itemize
3791 (SDL) Print messages to console if SDL is uninitialized
3792 \end_layout
3794 \begin_layout Itemize
3795 Add movieinfo program
3796 \end_layout
3798 \begin_layout Itemize
3799 Fix loading movies starting from SRAM.
3800 \end_layout
3802 \begin_layout Subsection
3803 rr0-beta8
3804 \end_layout
3806 \begin_layout Itemize
3807 Add support for unattended dumping
3808 \end_layout
3810 \begin_layout Itemize
3811 Fix compiling for Win32
3812 \end_layout
3814 \begin_layout Itemize
3815 Don't lock up if sound can't be initialized
3816 \end_layout
3818 \begin_layout Itemize
3819 Strip trailing CR from commands
3820 \end_layout
3822 \begin_layout Itemize
3823 Don't try to do dubious things in global ctors (fix crash on startup)
3824 \end_layout
3826 \begin_layout Subsection
3827 rr0-beta9
3828 \end_layout
3830 \begin_layout Itemize
3831 Small documentation tweaking
3832 \end_layout
3834 \begin_layout Itemize
3835 Fix make clean
3836 \end_layout
3838 \begin_layout Itemize
3839 Fix major bug in modifier matching
3840 \end_layout
3842 \begin_layout Subsection
3843 rr0-beta10
3844 \end_layout
3846 \begin_layout Itemize
3847 Lots of documentation fixes
3848 \end_layout
3850 \begin_layout Itemize
3851 Use dedicated callbacks for event backcomm., not commands.
3852 \end_layout
3854 \begin_layout Itemize
3855 Ensure that the watchdog is not hit when executing delayed reset.
3856 \end_layout
3858 \begin_layout Itemize
3859 Remove errant tab from joystick message.
3860 \end_layout
3862 \begin_layout Subsection
3863 rr0-beta11
3864 \end_layout
3866 \begin_layout Itemize
3867 Make autofire operate in absolute time, not linear time
3868 \end_layout
3870 \begin_layout Itemize
3871 Reinitialize controls when resuming from loadstate
3872 \end_layout
3874 \begin_layout Itemize
3875 Some more code cleanups
3876 \end_layout
3878 \begin_layout Itemize
3879 If Lua allocator fails, call OOM_panic()
3880 \end_layout
3882 \begin_layout Itemize
3883 Byte/word/dword/qword sized host memory write/read functions.
3884 \end_layout
3886 \begin_layout Itemize
3887 Dump at correct framerate if dumping interlaced NTSC (height=448).
3888 \end_layout
3890 \begin_layout Subsection
3891 rr0-beta12
3892 \end_layout
3894 \begin_layout Itemize
3895 Actually include the complete source code
3896 \end_layout
3898 \begin_layout Itemize
3899 Keep track of RTC
3900 \end_layout
3902 \begin_layout Subsection
3903 rr0-beta13
3904 \end_layout
3906 \begin_layout Itemize
3907 Document {save,start}time.{,sub}second.
3908 \end_layout
3910 \begin_layout Itemize
3911 Intercept time() from bsnes core.
3912 \end_layout
3914 \begin_layout Subsection
3915 rr0-beta14
3916 \end_layout
3918 \begin_layout Itemize
3919 Allow disabling time() interception (allow build on Mac OS X)
3920 \end_layout
3922 \begin_layout Itemize
3923 Use SDLMain on Mac OS X (make SDL not crash)
3924 \end_layout
3926 \begin_layout Itemize
3927 Disable delayed resets (just plain too buggy for now).
3928 \end_layout
3930 \begin_layout Itemize
3931 Code cleanups
3932 \end_layout
3934 \begin_layout Itemize
3935 Use 16-bit for graphics/video instead of 32-bit.
3936 \end_layout
3938 \begin_layout Itemize
3939 gui.rectangle/gui.pixel
3940 \end_layout
3942 \begin_layout Itemize
3943 gui.crosshair
3944 \end_layout
3946 \begin_layout Itemize
3947 New CSCD writer implementation.
3948 \end_layout
3950 \begin_layout Subsection
3951 rr0-beta15
3952 \end_layout
3954 \begin_layout Itemize
3955 Fix interaction of * and +.
3956 \end_layout
3958 \begin_layout Itemize
3959 Manual improvements
3960 \end_layout
3962 \begin_layout Itemize
3963 Use gettimeofday()/usleep(), these seem portable enough.
3964 \end_layout
3966 \begin_layout Itemize
3967 Move joystick axis manipulation to keymapper code.
3968 \end_layout
3970 \begin_layout Itemize
3971 Changes to how read-only works.
3972 \end_layout
3974 \begin_layout Itemize
3975 Refactor controller input code.
3976 \end_layout
3978 \end_body
3979 \end_document