lsnes rr1-Δ8ε1
[lsnes.git] / manual.lyx
blob92d9c59f75e96af329807adcb7b4c536ee36a217
1 #LyX 2.0 created this file. For more info see http://www.lyx.org/
2 \lyxformat 413
3 \begin_document
4 \begin_header
5 \textclass article
6 \use_default_options true
7 \maintain_unincluded_children false
8 \language finnish
9 \language_package default
10 \inputencoding auto
11 \fontencoding global
12 \font_roman default
13 \font_sans default
14 \font_typewriter default
15 \font_default_family default
16 \use_non_tex_fonts false
17 \font_sc false
18 \font_osf false
19 \font_sf_scale 100
20 \font_tt_scale 100
22 \graphics default
23 \default_output_format default
24 \output_sync 0
25 \bibtex_command default
26 \index_command default
27 \paperfontsize default
28 \use_hyperref false
29 \papersize default
30 \use_geometry false
31 \use_amsmath 1
32 \use_esint 1
33 \use_mhchem 1
34 \use_mathdots 1
35 \cite_engine basic
36 \use_bibtopic false
37 \use_indices false
38 \paperorientation portrait
39 \suppress_date false
40 \use_refstyle 1
41 \index Hakusana
42 \shortcut idx
43 \color #008000
44 \end_index
45 \secnumdepth 3
46 \tocdepth 3
47 \paragraph_separation indent
48 \paragraph_indentation default
49 \quotes_language english
50 \papercolumns 1
51 \papersides 1
52 \paperpagestyle default
53 \tracking_changes false
54 \output_changes false
55 \html_math_output 0
56 \html_css_as_file 0
57 \html_be_strict false
58 \end_header
60 \begin_body
62 \begin_layout Section
63 Introduction
64 \end_layout
66 \begin_layout Standard
67 lsnes is SNES rerecording emulator based on bsnes core.
68 \end_layout
70 \begin_layout Section
71 Dependencies
72 \end_layout
74 \begin_layout Enumerate
75 bsnes libsnes
76 \end_layout
78 \begin_deeper
79 \begin_layout Enumerate
80 v084-v087 (v084 or v085 for delayreset support)
81 \end_layout
83 \begin_layout Enumerate
84 accuracy or compatiblity core with debugger enabled.
85 \end_layout
87 \begin_layout Enumerate
88 Patched version (using included 7 patches)
89 \end_layout
91 \end_deeper
92 \begin_layout Enumerate
93 Zlib
94 \end_layout
96 \begin_layout Enumerate
97 boost_iostreams
98 \end_layout
100 \begin_layout Enumerate
101 boost_filesystem
102 \end_layout
104 \begin_layout Enumerate
105 boost_thread (if native std::thread is not available)
106 \end_layout
108 \begin_layout Enumerate
109 libsdl (SDL only)
110 \end_layout
112 \begin_layout Enumerate
113 sdlmain (SDL only, part of SDL)
114 \end_layout
116 \begin_layout Enumerate
117 boost_conversion (this is header-only library)
118 \end_layout
120 \begin_layout Enumerate
121 libswscale (wxwidgets graphics only)
122 \end_layout
124 \begin_layout Enumerate
125 Portaudio (portaudio sound only)
126 \end_layout
128 \begin_layout Enumerate
129 Lua (if Lua support is needed).
130 \end_layout
132 \begin_deeper
133 \begin_layout Itemize
134 Version 5.1.X or 5.2X.
135 \end_layout
137 \end_deeper
138 \begin_layout Enumerate
139 G++ 4.6 (bsnes doesn't seem to like 4.7).
140 \end_layout
142 \begin_layout Section
143 Building
144 \end_layout
146 \begin_layout Itemize
147 Copy bsnes sources (the bsnes subdirectory) to subdirectory 'bsnes'.
148 \end_layout
150 \begin_layout Itemize
151 Patch the bsnes sources with included patches (directory 'bsnes-patches/<version
153 \end_layout
155 \begin_layout Itemize
156 Edit options.build (or copy of that file)
157 \end_layout
159 \begin_layout Itemize
160 Run make (passing 'OPTIONS=<filename>' if using something else than options.build
162 \end_layout
164 \begin_layout Section
165 Command line options
166 \end_layout
168 \begin_layout Subsection
169 ROM options
170 \end_layout
172 \begin_layout Standard
173 <kind> in the following can be one of:
174 \end_layout
176 \begin_layout Itemize
177 rom: Cartridge ROM (BIOS for special carts).
178  This is required.
179 \end_layout
181 \begin_layout Itemize
182 bsx: BS-X (non-slotted) Game flash ROM.
183 \end_layout
185 \begin_layout Itemize
186 bsxslotted: BS-X (slotted) Game flash ROM.
187 \end_layout
189 \begin_layout Itemize
190 dmg: DMG game ROM
191 \end_layout
193 \begin_layout Itemize
194 slot-a: Sufami Turbo Slot A ROM
195 \end_layout
197 \begin_layout Itemize
198 slot-b: Sufami Turbo Slot B ROM
199 \end_layout
201 \begin_layout Subsubsection
202 --<kind>=<file> (lsnes/SDL, lsnes-avidump)
203 \end_layout
205 \begin_layout Standard
206 Load <file> as specified ROM (SFC/BS/DMG/ST file format).
207 \end_layout
209 \begin_layout Subsubsection
210 --<kind>-xml=<file> (lsnes/SDL, lsnes-avidump)
211 \end_layout
213 \begin_layout Standard
214 Override hardware detection for ROM, reading the values from <file> (BSNES
215  XML format).
216 \end_layout
218 \begin_layout Subsubsection
219 --ips-<kind>=<file> (lsnes/SDL, lsnes-avidump)
220 \end_layout
222 \begin_layout Standard
223 Apply BPS/IPS patch <file> to ROM <kind>.
224  If specified multiple times, the patches are applied in order.
225 \end_layout
227 \begin_layout Subsubsection
228 --ips-<kind>-xml=<file> (lsnes/SDL, lsnes-avidump)
229 \end_layout
231 \begin_layout Standard
232 Apply BPS/IPS patch <file> to XML of ROM <kind>.
233  If specified multiple times, the patches are applied in order.
234 \end_layout
236 \begin_layout Subsubsection
237 --ips-offset=<offset> (lsnes/SDL, lsnes-avidump)
238 \end_layout
240 \begin_layout Standard
241 Set offset to apply to IPS patches.
242  May be negative.
243  Handy for applying headered IPS patches (use offset of -512 for this).
244  The offset must be 0 for BPS patches.
245 \end_layout
247 \begin_layout Subsubsection
248 --pal
249 \end_layout
251 \begin_layout Standard
252 Force ROM to be considered PAL-only.
253 \end_layout
255 \begin_layout Itemize
256 Only works on SNES and SGB ROMs (not BS-X or Sufami Turbo).
257 \end_layout
259 \begin_layout Itemize
260 Attempting to load NTSC movie file will error out.
261 \end_layout
263 \begin_layout Subsubsection
264 --ntsc
265 \end_layout
267 \begin_layout Standard
268 Force ROM to be considered NTSC-only.
269 \end_layout
271 \begin_layout Itemize
272 Attempting to load PAL movie file will error out.
273 \end_layout
275 \begin_layout Subsection
276 Session options
277 \end_layout
279 \begin_layout Subsubsection
280 --pause
281 \end_layout
283 \begin_layout Standard
284 Start paused
285 \end_layout
287 \begin_layout Subsubsection
288 <filename> (lsnes/SDL, lsnes-avidump, movieinfo)
289 \end_layout
291 \begin_layout Standard
292 Load <filename> as movie or savestate file.
293  All other session options are ignored.
294 \end_layout
296 \begin_layout Subsubsection
297 --port1=<device> (lsnes/SDL)
298 \end_layout
300 \begin_layout Standard
301 Set type of port1.
302  Valid values are:
303 \end_layout
305 \begin_layout Itemize
306 none: No device connected
307 \end_layout
309 \begin_layout Itemize
310 gamepad: One gamepad (the default)
311 \end_layout
313 \begin_layout Itemize
314 multitap: Four gamepads (warning: makes most games refuse to start)
315 \end_layout
317 \begin_layout Itemize
318 mouse: Mouse.
319 \end_layout
321 \begin_layout Subsubsection
322 --port2=<type> (lsnes/SDL)
323 \end_layout
325 \begin_layout Standard
326 Set type of port2.
327  Valid values are:
328 \end_layout
330 \begin_layout Itemize
331 none: No device connected (the default)
332 \end_layout
334 \begin_layout Itemize
335 gamepad: One gamepad
336 \end_layout
338 \begin_layout Itemize
339 multitap: Four gamepads.
340 \end_layout
342 \begin_layout Itemize
343 mouse: Mouse
344 \end_layout
346 \begin_layout Itemize
347 superscope: Super Scope
348 \end_layout
350 \begin_layout Itemize
351 justifier: One justifier
352 \end_layout
354 \begin_layout Itemize
355 justifiers: Two justifiers
356 \end_layout
358 \begin_layout Subsubsection
359 --gamename=<name> (lsnes/SDL)
360 \end_layout
362 \begin_layout Standard
363 Set the name of game to <name>.
364  Default is blank.
365 \end_layout
367 \begin_layout Subsubsection
368 --author=<name> (lsnes/SDL)
369 \end_layout
371 \begin_layout Standard
372 Add author with full name of <name> (no nickname).
373 \end_layout
375 \begin_layout Subsubsection
376 --author=|<name> (lsnes/SDL)
377 \end_layout
379 \begin_layout Standard
380 Add author with nickname of <name> (no full name).
381 \end_layout
383 \begin_layout Subsubsection
384 --author=<fullname>|<nickname> (lsnes/SDL)
385 \end_layout
387 \begin_layout Standard
388 Add author with full name of <fullname> and nickname of <nickname>.
389 \end_layout
391 \begin_layout Subsubsection
392 --rtc-second=<value> (lsnes/SDL)
393 \end_layout
395 \begin_layout Standard
396 Set RTC second (0 is 1st January 1970 00:00:00Z).
397  Default is 1,000,000,000.
398 \end_layout
400 \begin_layout Subsubsection
401 --rtc-subsecond=<value> (lsnes/SDL)
402 \end_layout
404 \begin_layout Standard
405 Set RTC subsecond.
406  Range is 0-.
407  Unit is CPU cycle.
408  Default is 0.
409 \end_layout
411 \begin_layout Subsection
412 Misc.
413  options:
414 \end_layout
416 \begin_layout Subsubsection
417 --run=<file> (lsnes/SDL)
418 \end_layout
420 \begin_layout Standard
421 After running main RC file, run this file.
422  If multiple are specified, these execute in order specified.
423 \end_layout
425 \begin_layout Subsection
426 dump options (lsnes-dumpavi only)
427 \end_layout
429 \begin_layout Subsubsection
430 --dumper=<dumper>
431 \end_layout
433 \begin_layout Standard
434 Set the dumper to use (required).
435  Use 'list' for listing of known dumpers.
436 \end_layout
438 \begin_layout Subsubsection
439 --mode=<mode>
440 \end_layout
442 \begin_layout Standard
443 Set the mode to use (required for dumpers with multiple modes, forbidden
444  otherwise).
445  Use 'list' for known modes.
446 \end_layout
448 \begin_layout Subsubsection
449 --prefix=<prefix>
450 \end_layout
452 \begin_layout Standard
453 Set dump prefix.
454  Default is 
455 \begin_inset Quotes eld
456 \end_inset
458 avidump
459 \begin_inset Quotes erd
460 \end_inset
463 \end_layout
465 \begin_layout Subsubsection
466 --option=<name>=<value>
467 \end_layout
469 \begin_layout Standard
470 Set option <name> to value <value>.
471 \end_layout
473 \begin_layout Subsubsection
474 --length=<length>
475 \end_layout
477 \begin_layout Standard
478 Set number of frames to dump.
479  Mandatory.
480 \end_layout
482 \begin_layout Subsubsection
483 --lua=<script>
484 \end_layout
486 \begin_layout Standard
487 Run specified lua script (lsnes-dumpavi does not have initialization files).
488 \end_layout
490 \begin_layout Subsubsection
491 --load-library=<library>
492 \end_layout
494 \begin_layout Standard
495 Load the specified shared object / dynamic library / dynamic link library.
496 \end_layout
498 \begin_layout Section
499 Startup file lsnes.rc
500 \end_layout
502 \begin_layout Standard
503 Upon startup, lsnes (lsnes/SDL only) executes file lsnes.rc as commands.
504  This file is located in:
505 \end_layout
507 \begin_layout Itemize
508 Windows: %APPDATA%
509 \backslash
510 lsnes
511 \backslash
512 lsnes.rc (if %APPDATA% exists)
513 \end_layout
515 \begin_layout Itemize
516 Unix: $XDG_CONFIG_HOME/lsnes/lsnes.rc (if $XDG_CONFIG_HOME exists)
517 \end_layout
519 \begin_layout Itemize
520 Unix: $HOME/.config/lsnes/lsnes.rc (if $HOME exists)
521 \end_layout
523 \begin_layout Itemize
524 All: ./lsnes.rc (fallback default).
525 \end_layout
527 \begin_layout Standard
528 If leading directories do not exist, attempt to create them is made.
529 \end_layout
531 \begin_layout Section
532 Internal commands
533 \end_layout
535 \begin_layout Itemize
536 Commands beginning with '*' invoke the corresponding command without alias
537  expansion.
538 \end_layout
540 \begin_layout Itemize
541 If command starts with '+' (after possible '*'), the command is executed
542  as-is when button is pressed, and when button is released, it is executed
543  with '+' replaced by '-'.
544 \end_layout
546 \begin_layout Itemize
547 Commands without '+' execute only on negative edge (release).
548 \end_layout
550 \begin_layout Subsection
551 Settings:
552 \end_layout
554 \begin_layout Standard
555 Settings control various aspects of emulator behaviour.
556 \end_layout
558 \begin_layout Subsubsection
559 set-setting <setting> <value>
560 \end_layout
562 \begin_layout Standard
563 Sets setting <setting> to value <value> (may be empty).
564 \end_layout
566 \begin_layout Subsubsection
567 unset-setting <setting>
568 \end_layout
570 \begin_layout Standard
571 Try to unset setting <setting> (not all settings can be unset).
572 \end_layout
574 \begin_layout Subsubsection
575 get-setting <setting>
576 \end_layout
578 \begin_layout Standard
579 Read value of setting <setting>
580 \end_layout
582 \begin_layout Subsubsection
583 show-settings
584 \end_layout
586 \begin_layout Standard
587 Print names and values of all settings.
588 \end_layout
590 \begin_layout Subsection
591 Keybindings
592 \end_layout
594 \begin_layout Standard
595 Keybindings bind commands or aliases to keys (or pseudo-keys).
597 \end_layout
599 \begin_layout Standard
600 Notes:
601 \end_layout
603 \begin_layout Itemize
604 Do not bind edge active (+/-) commands to keys with modifiers, that won't
605  work right!
606 \end_layout
608 \begin_layout Itemize
609 Names of keys and modifiers are platform-dependent.
610 \end_layout
612 \begin_layout Itemize
613 Be careful before binding pseudo-keys (such as joystick axes, buttons or
614  hats) with modifiers.
615  That may or may not work right.
616 \end_layout
618 \begin_layout Subsubsection
619 bind-key [<mod>/<modmask>] <key> <command>
620 \end_layout
622 \begin_layout Standard
623 Bind <command> to key <key> (activating if modifiers in <modmask> (comma-seperat
624 ed list) are set as <mod> (comma-seperated list).
625 \end_layout
627 \begin_layout Standard
628 The names of keys and modifiers are platform-dependent.
629 \end_layout
631 \begin_layout Subsubsection
632 unbind-key [<mod>/<modmask>] <key>
633 \end_layout
635 \begin_layout Standard
636 Unbind command from <key> (with specified <mod> and <modmask>).
637 \end_layout
639 \begin_layout Subsubsection
640 set-axis <axis> [disabled | axis | axis-inverse | pressure0- | pressure0+
641  | pressure-0 | pressure-+ | pressure+0 | pressure+-] [minus=<val>] [zero=<val>]
642  [plus=<val>] [tolerance=<val>]
643 \end_layout
645 \begin_layout Standard
646 Set axis parameters for axis <axis>.
647 \end_layout
649 \begin_layout Itemize
650 disabled: Disable axis
651 \end_layout
653 \begin_layout Itemize
654 axis: Normal axis
655 \end_layout
657 \begin_layout Itemize
658 axis-inverse: Inverse axis
659 \end_layout
661 \begin_layout Itemize
662 pressure0-: Pressure sensitive.
663  Released at 0, pressed at -.
664 \end_layout
666 \begin_layout Itemize
667 pressure0+: Pressure sensitive.
668  Released at 0, pressed at +.
669 \end_layout
671 \begin_layout Itemize
672 pressure-0: Pressure sensitive.
673  Released at -, pressed at 0.
674 \end_layout
676 \begin_layout Itemize
677 pressure-+: Pressure sensitive.
678  Released at -, pressed at +.
679 \end_layout
681 \begin_layout Itemize
682 pressure+0: Pressure sensitive.
683  Released at +, pressed at 0.
684 \end_layout
686 \begin_layout Itemize
687 pressure+-: Pressure sensitive.
688  Released at +, pressed at -.
689 \end_layout
691 \begin_layout Itemize
692 minus=<val>: Calibration at extreme minus position (-32768-32767)
693 \end_layout
695 \begin_layout Itemize
696 zero=<val>: Calibration at neutral position (-32768-32767)
697 \end_layout
699 \begin_layout Itemize
700 plus=<val>: Calibration at extreme plus position (-32768-32767)
701 \end_layout
703 \begin_layout Itemize
704 tolerance=<value>: Center band tolerance (0<x<1).
705  The smaller the value, the more sensitive the control is.
706 \end_layout
708 \begin_layout Subsubsection
709 show-bindings
710 \end_layout
712 \begin_layout Standard
713 Print all key bindings in effect.
714 \end_layout
716 \begin_layout Subsection
717 Aliases
718 \end_layout
720 \begin_layout Standard
721 Aliases bind command to sequence of commands.
722  After alias has been defined, it replaces the command it shadows.
723 \end_layout
725 \begin_layout Standard
726 Notes:
727 \end_layout
729 \begin_layout Itemize
730 You can't alias command to itself.
731 \end_layout
733 \begin_layout Itemize
734 Aliases starting with +/- are edge active just like ordinary commands starting
735  with +/-.
736 \end_layout
738 \begin_layout Itemize
739 One command can be aliased to multiple commands.
740 \end_layout
742 \begin_layout Subsubsection
743 alias-command <command> <expansion>
744 \end_layout
746 \begin_layout Standard
747 Append <expansion> to alias <command>.
748  If alias does not already exist, it is created.
749 \end_layout
751 \begin_layout Subsubsection
752 unalias-command <command>
753 \end_layout
755 \begin_layout Standard
756 Clear alias expansion for <command>.
757 \end_layout
759 \begin_layout Subsubsection
760 show-aliases
761 \end_layout
763 \begin_layout Standard
764 Print all aliases and their expansions in effect.
765 \end_layout
767 \begin_layout Subsection
768 run-script <script>
769 \end_layout
771 \begin_layout Standard
772 Run <script> as if commands were entered on the command line.
773 \end_layout
775 \begin_layout Subsection
776 Video dumping
777 \end_layout
779 \begin_layout Standard
780 Following commands control video dumping:
781 \end_layout
783 \begin_layout Subsubsection
784 start-dump <dumper> [<mode>] <prefix/filename>
785 \end_layout
787 \begin_layout Standard
788 Start dumping using dumper <dumper>.
789  If mode is present or not and if prefix or filename is present depends
790  on the dumper and dumper mode.
791 \end_layout
793 \begin_layout Standard
794 The following dumpers are available:
795 \end_layout
797 \begin_layout Itemize
798 INTERNAL-AVI-CSCD: Internal CSCD in .avi dumper.
799 \end_layout
801 \begin_deeper
802 \begin_layout Itemize
803 Mode: uncompressed/pcm: Uncompressed video, PCM audio.
804  Takes prefix.
805 \end_layout
807 \begin_layout Itemize
808 Mode: cscd/pcm: CSCD video, PCM audio.
809  Takes prefix.
810 \end_layout
812 \end_deeper
813 \begin_layout Itemize
814 INTERNAL-JMD: Internal .jmd dumper.
815 \end_layout
817 \begin_deeper
818 \begin_layout Itemize
819 Does not take mode.
820 \end_layout
822 \begin_layout Itemize
823 Takes a filename.
824 \end_layout
826 \end_deeper
827 \begin_layout Itemize
828 INTERNAL-RAW: Internal RAW dumper.
829 \end_layout
831 \begin_deeper
832 \begin_layout Itemize
833 Does not take mode.
834 \end_layout
836 \begin_layout Itemize
837 Takes a prefix.
838 \end_layout
840 \begin_layout Itemize
841 Sound is big-endian signed 16-bit, usually at 32040.5Hz.
842 \end_layout
844 \begin_layout Itemize
845 Video is always upscaled to double resolution (512x448 / 512 x 478).
846 \end_layout
848 \begin_layout Itemize
849 Video framerate is usually 322445/6448 fps for PAL and 10738636/178683 fps
850  for NTSC.
851 \end_layout
853 \end_deeper
854 \begin_layout Itemize
855 INTERNAL-SDMP: Internal SDMP dumper.
856 \end_layout
858 \begin_deeper
859 \begin_layout Itemize
860 Mode 'ms': Multi-segment.
861  Takes prefix.
862 \end_layout
864 \begin_layout Itemize
865 Mode 'ss': Single-segment.
866  Takes filename.
867 \end_layout
869 \end_deeper
870 \begin_layout Subsubsection
871 end-dump <dumper>
872 \end_layout
874 \begin_layout Standard
875 End dumping using <dumper>
876 \end_layout
878 \begin_layout Subsubsection
879 show-dumpers [<dumper>]
880 \end_layout
882 \begin_layout Standard
883 Show the list of dumpers or list of modes for <dumper>
884 \end_layout
886 \begin_layout Subsection
887 Memory manipulation
888 \end_layout
890 \begin_layout Standard
891 <address> may be decimal or hexadecimal (prefixed with '0x').
892  <value> can be hexadecimal (prefixed with '0x'), unsigned or signed (prefixed
893  with '-') decimal.
894 \end_layout
896 \begin_layout Standard
897 The available element <sizes> are:
898 \end_layout
900 \begin_layout Itemize
901 byte: 1 byte
902 \end_layout
904 \begin_layout Itemize
905 word: 2 bytes
906 \end_layout
908 \begin_layout Itemize
909 dword: 4 bytes
910 \end_layout
912 \begin_layout Itemize
913 qword: 8 bytes
914 \end_layout
916 \begin_layout Standard
917 When reading RAM and ROM, multi-byte reads/writes are big-endian.
918  When dealing with DSP memory, multi-byte reads/writes are native-endian
919  (do not use operand sizes exceeding DSP bitness, except dword is OK for
920  24-bit memory).
921 \end_layout
923 \begin_layout Subsubsection
924 read-<size> <address>
925 \end_layout
927 \begin_layout Standard
928 Read the value of byte in <address>.
929 \end_layout
931 \begin_layout Subsubsection
932 read-s<size> <address>
933 \end_layout
935 \begin_layout Standard
936 Read the value of signed byte in <address>.
937 \end_layout
939 \begin_layout Subsubsection
940 write-<size> <address> <value>
941 \end_layout
943 \begin_layout Standard
944 Write <value> to byte in address <address>.
945 \end_layout
947 \begin_layout Subsubsection
948 search-memory reset
949 \end_layout
951 \begin_layout Standard
952 Reset the memory search
953 \end_layout
955 \begin_layout Subsubsection
956 search-memory count
957 \end_layout
959 \begin_layout Standard
960 Print number of candidates remaining
961 \end_layout
963 \begin_layout Subsubsection
964 search-memory print
965 \end_layout
967 \begin_layout Standard
968 Print all candidates remaining
969 \end_layout
971 \begin_layout Subsubsection
972 search-memory <usflag><sizeflag><op>
973 \end_layout
975 \begin_layout Standard
976 Searches memory for addresses satisfying criteria.
977 \end_layout
979 \begin_layout Standard
980 <usflag> can be:
981 \end_layout
983 \begin_layout Itemize
984 u: unsigned
985 \end_layout
987 \begin_layout Itemize
988 s: signed
989 \end_layout
991 \begin_layout Standard
992 <sizeflag> can be:
993 \end_layout
995 \begin_layout Itemize
996 b: byte
997 \end_layout
999 \begin_layout Itemize
1000 w: word
1001 \end_layout
1003 \begin_layout Itemize
1004 d: dword
1005 \end_layout
1007 \begin_layout Itemize
1008 q: qword
1009 \end_layout
1011 \begin_layout Standard
1012 <op> can be:
1013 \end_layout
1015 \begin_layout Itemize
1016 lt: < previous value.
1017 \end_layout
1019 \begin_layout Itemize
1020 le: <= previous value.
1021 \end_layout
1023 \begin_layout Itemize
1024 eq: = previous value.
1025 \end_layout
1027 \begin_layout Itemize
1028 ne: != previous value.
1029 \end_layout
1031 \begin_layout Itemize
1032 ge: >= previous value.
1033 \end_layout
1035 \begin_layout Itemize
1036 gt: > previous value.
1037 \end_layout
1039 \begin_layout Subsubsection
1040 search-memory <sizeflag> <value>
1041 \end_layout
1043 \begin_layout Standard
1044 Searches for addresses that currently have value <value>.
1045  <sizeflag> is as in previous command.
1046 \end_layout
1048 \begin_layout Subsection
1049 Main commands
1050 \end_layout
1052 \begin_layout Standard
1053 These commands are not available in lsnesrc, but are available after ROM
1054  has been loaded.
1055 \end_layout
1057 \begin_layout Subsubsection
1058 quit-emulator [/y]
1059 \end_layout
1061 \begin_layout Standard
1062 Quits the emulator (asking for confirmation).
1063  If /y is given, no confirmation is asked.
1064 \end_layout
1066 \begin_layout Subsubsection
1067 pause-emulator
1068 \end_layout
1070 \begin_layout Standard
1071 Toggle paused/unpaused
1072 \end_layout
1074 \begin_layout Subsubsection
1075 +advance-frame 
1076 \end_layout
1078 \begin_layout Standard
1079 Advance frame.
1080  If the button is still held after configurable timeout expires, game unpauses
1081  for the duration frame advance is held.
1082 \end_layout
1084 \begin_layout Subsubsection
1085 +advance-poll 
1086 \end_layout
1088 \begin_layout Standard
1089 Advance subframe.
1090  If the button is still held after configurable timeout expires, game unpauses
1091  for the duration frame advance is held.
1092 \end_layout
1094 \begin_layout Subsubsection
1095 advance-skiplag 
1096 \end_layout
1098 \begin_layout Standard
1099 Skip to first poll in frame after current.
1100 \end_layout
1102 \begin_layout Subsubsection
1103 reset 
1104 \end_layout
1106 \begin_layout Standard
1107 Reset the SNES after this frame.
1108 \end_layout
1110 \begin_layout Subsubsection
1111 load <filename> 
1112 \end_layout
1114 \begin_layout Standard
1115 Load savestate <filename> in current mode.
1116 \end_layout
1118 \begin_layout Subsubsection
1119 load-state <filename> 
1120 \end_layout
1122 \begin_layout Standard
1123 Load savestate <filename> in readwrite mode.
1124 \end_layout
1126 \begin_layout Subsubsection
1127 load-readonly <filename> 
1128 \end_layout
1130 \begin_layout Standard
1131 Load savestate <filename> in readonly mode.
1132 \end_layout
1134 \begin_layout Subsubsection
1135 load-preserve <filename> 
1136 \end_layout
1138 \begin_layout Standard
1139 Load savestate <filename> in readonly mode, preserving current events.
1140 \end_layout
1142 \begin_layout Subsubsection
1143 load-movie <filename> 
1144 \end_layout
1146 \begin_layout Standard
1147 Load savestate <filename>, ignoring save part in readonly mode.
1148 \end_layout
1150 \begin_layout Subsubsection
1151 save-state <filename> 
1152 \end_layout
1154 \begin_layout Standard
1155 Save system state to <filename> as soon as possible.
1156 \end_layout
1158 \begin_layout Subsubsection
1159 save-movie <filename> 
1160 \end_layout
1162 \begin_layout Standard
1163 Save movie to <filename>.
1164 \end_layout
1166 \begin_layout Subsubsection
1167 set-rwmode 
1168 \end_layout
1170 \begin_layout Standard
1171 Set read-write mode.
1172 \end_layout
1174 \begin_layout Subsubsection
1175 set-romode 
1176 \end_layout
1178 \begin_layout Standard
1179 Set read-only mode
1180 \end_layout
1182 \begin_layout Subsubsection
1183 toggle-rwmode 
1184 \end_layout
1186 \begin_layout Standard
1187 Toggle between read-only and read-write modes.
1188 \end_layout
1190 \begin_layout Subsubsection
1191 set-gamename <name> 
1192 \end_layout
1194 \begin_layout Standard
1195 Set name of the game to <name>
1196 \end_layout
1198 \begin_layout Subsubsection
1199 get-gamename 
1200 \end_layout
1202 \begin_layout Standard
1203 Print the name of the game.
1204 \end_layout
1206 \begin_layout Subsubsection
1207 add-author <author> 
1208 \end_layout
1210 \begin_layout Standard
1211 Adds new author <author>.
1212  If <author> does not contain '|' it is full name.
1213  If it contains '|', '|' splits the full name and nickname.
1214 \end_layout
1216 \begin_layout Subsubsection
1217 edit-author <num> <author> 
1218 \end_layout
1220 \begin_layout Standard
1221 Edit the author in slot <num> (0-based) to be <author> (see add-author for
1222  format)
1223 \end_layout
1225 \begin_layout Subsubsection
1226 remove-author <num> 
1227 \end_layout
1229 \begin_layout Standard
1230 Remove author in slot <num>
1231 \end_layout
1233 \begin_layout Subsubsection
1234 print-authors 
1235 \end_layout
1237 \begin_layout Standard
1238 Print authors.
1239 \end_layout
1241 \begin_layout Subsubsection
1242 test-1, test-2, test-3
1243 \end_layout
1245 \begin_layout Standard
1246 Internal test commands.
1247  Don't use.
1248 \end_layout
1250 \begin_layout Subsubsection
1251 take-screenshot <filename> 
1252 \end_layout
1254 \begin_layout Standard
1255 Save screenshot to <filename>.
1256 \end_layout
1258 \begin_layout Subsubsection
1259 +controller<num><button>
1260 \end_layout
1262 \begin_layout Standard
1263 Press button <button> on controller <num> (1-8).
1264  The following button names are known:
1265 \end_layout
1267 \begin_layout Itemize
1268 left
1269 \end_layout
1271 \begin_layout Itemize
1272 right
1273 \end_layout
1275 \begin_layout Itemize
1277 \end_layout
1279 \begin_layout Itemize
1280 down
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
1297 \end_layout
1299 \begin_layout Itemize
1301 \end_layout
1303 \begin_layout Itemize
1305 \end_layout
1307 \begin_layout Itemize
1308 select
1309 \end_layout
1311 \begin_layout Itemize
1312 start
1313 \end_layout
1315 \begin_layout Itemize
1316 trigger
1317 \end_layout
1319 \begin_layout Itemize
1320 cursor
1321 \end_layout
1323 \begin_layout Itemize
1324 pause
1325 \end_layout
1327 \begin_layout Itemize
1328 turbo
1329 \end_layout
1331 \begin_layout Subsubsection
1332 controllerh<num><button>
1333 \end_layout
1335 \begin_layout Standard
1336 Hold/unhold button <button> on controller <num> (1-8).
1337  See +controller for button names.
1338 \end_layout
1340 \begin_layout Subsubsection
1341 controllerf<num><button>
1342 \end_layout
1344 \begin_layout Standard
1345 Hold/unhold button <button> on controller <num> (1-8) for the next frame.
1346  See +controller for button names.
1347 \end_layout
1349 \begin_layout Standard
1350 Cauntion: Does not work properly if outside frame advance.
1351 \end_layout
1353 \begin_layout Subsubsection
1354 autofire (<pattern>|-)...
1355 \end_layout
1357 \begin_layout Standard
1358 Set autofire pattern.
1359  Each parameter is comma-separated list of button names (in form of 1start,
1360  1A, 2B, etc..) to hold on that frame.
1361  After reaching the end of pattern, the pattern restarts from the beginning.
1362 \end_layout
1364 \begin_layout Subsubsection
1365 repaint
1366 \end_layout
1368 \begin_layout Standard
1369 Force a repaint.
1370 \end_layout
1372 \begin_layout Subsection
1373 Save jukebox 
1374 \end_layout
1376 \begin_layout Subsubsection
1377 cycle-jukebox-backward
1378 \end_layout
1380 \begin_layout Standard
1381 Cycle save jukebox backwards.
1382 \end_layout
1384 \begin_layout Subsubsection
1385 cycle-jukebox-forward
1386 \end_layout
1388 \begin_layout Standard
1389 Cycle save jukebox forwards
1390 \end_layout
1392 \begin_layout Subsubsection
1393 load-jukebox
1394 \end_layout
1396 \begin_layout Standard
1397 Do load from jukebox (current mode).
1398 \end_layout
1400 \begin_layout Subsubsection
1401 save-jukebox
1402 \end_layout
1404 \begin_layout Standard
1405 Do state save to jukebox.
1406 \end_layout
1408 \begin_layout Subsection
1409 Lua 
1410 \end_layout
1412 \begin_layout Standard
1413 Only available if lua support is compiled in.
1414 \end_layout
1416 \begin_layout Subsubsection
1417 evaluate-lua <luacode>
1418 \end_layout
1420 \begin_layout Standard
1421 Run Lua code <luacode> using built-in Lua interpretter.
1422 \end_layout
1424 \begin_layout Subsubsection
1425 run-lua <script>
1426 \end_layout
1428 \begin_layout Standard
1429 Run specified lua file using built-in Lua interpretter.
1430 \end_layout
1432 \begin_layout Subsection
1433 Memory watch
1434 \end_layout
1436 \begin_layout Subsubsection
1437 add-watch <name> <expression>
1438 \end_layout
1440 \begin_layout Standard
1441 Adds new watch (or modifies old one).
1442 \end_layout
1444 \begin_layout Subsubsection
1445 remove-watch <name>
1446 \end_layout
1448 \begin_layout Standard
1449 Remove a watch.
1450 \end_layout
1452 \begin_layout Subsection
1453 Sound 
1454 \end_layout
1456 \begin_layout Subsubsection
1457 enable-sound <on/off> 
1458 \end_layout
1460 \begin_layout Standard
1461 Enable/Disable sound.
1462 \end_layout
1464 \begin_layout Subsubsection
1465 set-sound-device <device> 
1466 \end_layout
1468 \begin_layout Standard
1469 Set sound device to <device>
1470 \end_layout
1472 \begin_layout Subsubsection
1473 show-sound-status 
1474 \end_layout
1476 \begin_layout Standard
1477 Show status of sound system.
1478 \end_layout
1480 \begin_layout Subsubsection
1481 show-sound-devices
1482 \end_layout
1484 \begin_layout Standard
1485 Show all available devices.
1486 \end_layout
1488 \begin_layout Subsubsection
1489 set-volume <multiplier>
1490 \end_layout
1492 \begin_layout Standard
1493 Set the volume multiplier to <multiplier>.
1494  1 is normal volume, and higher numbers are louder.
1495 \end_layout
1497 \begin_layout Subsubsection
1498 set-volume <multiplier>%
1499 \end_layout
1501 \begin_layout Standard
1502 Set the volume multiplier to <multiplier> percent.
1503  100 is normal volume, and higher numbers are louder.
1504 \end_layout
1506 \begin_layout Subsubsection
1507 set-volume <multiplier>dB
1508 \end_layout
1510 \begin_layout Standard
1511 Set the volume multiplier to <multiplier> dB.
1512  0 is normal volume, and higher numbers are louder.
1513  The value may be negative.
1514 \end_layout
1516 \begin_layout Subsection
1517 SDL Platform commands 
1518 \end_layout
1520 \begin_layout Standard
1521 The following are valid on SDL platform.
1522 \end_layout
1524 \begin_layout Subsubsection
1525 identify-key
1526 \end_layout
1528 \begin_layout Standard
1529 Asks to press a key and then identifies that (pseudo-)key.
1530 \end_layout
1532 \begin_layout Subsubsection
1533 toggle-console 
1534 \end_layout
1536 \begin_layout Standard
1537 Toggle between windowed/fullscreen console.
1538 \end_layout
1540 \begin_layout Subsubsection
1541 scroll-fullup 
1542 \end_layout
1544 \begin_layout Standard
1545 Scroll messages window as far back as it goes.
1546 \end_layout
1548 \begin_layout Subsubsection
1549 scroll-fulldown 
1550 \end_layout
1552 \begin_layout Standard
1553 Scroll messages window as far forward as it goes.
1554 \end_layout
1556 \begin_layout Subsubsection
1557 scroll-up 
1558 \end_layout
1560 \begin_layout Standard
1561 Scroll messages window back one screenful.
1562 \end_layout
1564 \begin_layout Subsubsection
1565 scroll-down 
1566 \end_layout
1568 \begin_layout Standard
1569 Scroll messages window forward one screenful.
1570 \end_layout
1572 \begin_layout Subsubsection
1573 prompt-command <command>
1574 \end_layout
1576 \begin_layout Standard
1577 Enter command prompt, with prompt prepopulated with specified command.
1578 \end_layout
1580 \begin_layout Section
1581 Settings
1582 \end_layout
1584 \begin_layout Subsection
1585 Core settings
1586 \end_layout
1588 \begin_layout Subsubsection
1589 firmwarepath
1590 \end_layout
1592 \begin_layout Standard
1593 Set where bsnes looks for firmware files.
1594  Default is 
1595 \begin_inset Quotes eld
1596 \end_inset
1599 \begin_inset Quotes erd
1600 \end_inset
1603 \end_layout
1605 \begin_layout Subsubsection
1606 target
1607 \end_layout
1609 \begin_layout Standard
1610 Set the target .
1611  Numeric, range is 0.001 to 
1612 \begin_inset Quotes eld
1613 \end_inset
1615 infinite
1616 \begin_inset Quotes erd
1617 \end_inset
1620  Default is native framerate.
1621 \end_layout
1623 \begin_layout Subsubsection
1624 savecompression
1625 \end_layout
1627 \begin_layout Standard
1628 Set save compression level (integer 0-9).
1629  Default is 7 (0 is no compression).
1630 \end_layout
1632 \begin_layout Subsubsection
1633 advance-timeout
1634 \end_layout
1636 \begin_layout Standard
1637 Set the frame advance timeout in milliseconds.
1638  Numeric integer, range is 0-999999999.
1639  Default is 500.
1640 \end_layout
1642 \begin_layout Subsection
1643 AVI dumper settings
1644 \end_layout
1646 \begin_layout Subsubsection
1647 avi-large
1648 \end_layout
1650 \begin_layout Standard
1651 AVI dumper: Always dump at 512x448 or 512x478 regardless of what the console
1652  outputs.
1653 \end_layout
1655 \begin_layout Subsubsection
1656 avi-left-border
1657 \end_layout
1659 \begin_layout Standard
1660 AVI dumper: Set the default left border thickness (unless lua overrides)
1661  for dumps.
1662  Range 0-8191.
1663  Default is 0.
1664 \end_layout
1666 \begin_layout Subsubsection
1667 avi-right-border
1668 \end_layout
1670 \begin_layout Standard
1671 AVI dumper: Set the default right border thickness (unless lua overrides)
1672  for dumps.
1673  Range 0-8191.
1674  Default is 0.
1675 \end_layout
1677 \begin_layout Subsubsection
1678 avi-top-border
1679 \end_layout
1681 \begin_layout Standard
1682 AVI dumper: Set the default top border thickness (unless lua overrides)
1683  for dumps.
1684  Range 0-8191.
1685  Default is 0.
1686 \end_layout
1688 \begin_layout Subsubsection
1689 avi-bottom-border
1690 \end_layout
1692 \begin_layout Standard
1693 AVI dumper: Set the default bottom border thickness (unless lua overrides)
1694  for dumps.
1695  Range 0-8191.
1696  Default is 0.
1697 \end_layout
1699 \begin_layout Subsubsection
1700 avi-maxframes
1701 \end_layout
1703 \begin_layout Standard
1704 AVI dumper: Maximum number of frames per dump segment (0 => unlimited).
1705  Range 0-999999999.
1706  Default is 0.
1707 \end_layout
1709 \begin_layout Subsubsection
1710 avi-compresison
1711 \end_layout
1713 \begin_layout Standard
1714 AVI dumper: Compression level (0-18).
1715 \end_layout
1717 \begin_layout Itemize
1718 Compression levels 10 and above are not compatible with stock CSCD codec.
1719 \end_layout
1721 \begin_layout Itemize
1722 Recomended level is 7.
1723 \end_layout
1725 \begin_layout Subsubsection
1726 avi-soundrate
1727 \end_layout
1729 \begin_layout Standard
1730 AVI dumper: Set method of determining the sound rate.
1731 \end_layout
1733 \begin_layout Itemize
1734 0: Pick nearest of 8, 11.025, 12, 16, 22.05, 24, 32, 44.1, 48, 64, 88.2, 96,
1735  128, 176.4 and 192 kHz.
1736 \end_layout
1738 \begin_layout Itemize
1739 1: Round down to nearest integer.
1740 \end_layout
1742 \begin_layout Itemize
1743 2: Round up to nearest ingeter.
1744 \end_layout
1746 \begin_layout Subsection
1747 JMD options
1748 \end_layout
1750 \begin_layout Subsubsection
1751 jmd-copression
1752 \end_layout
1754 \begin_layout Standard
1755 JMD dumper: Compression level (0-9).
1756 \end_layout
1758 \begin_layout Subsection
1759 SDL platform settings
1760 \end_layout
1762 \begin_layout Subsubsection
1763 autorepeat-first-delay
1764 \end_layout
1766 \begin_layout Standard
1767 Sets the delay for first character in typematic autorepeat.
1768 \end_layout
1770 \begin_layout Subsubsection
1771 autorepeat-subsequent-delay
1772 \end_layout
1774 \begin_layout Standard
1775 Sets the delay for subsequent characters in typematic autorepeat.
1776 \end_layout
1778 \begin_layout Section
1779 Lua functions
1780 \end_layout
1782 \begin_layout Subsection
1783 Core (in main table)
1784 \end_layout
1786 \begin_layout Subsubsection
1787 print
1788 \end_layout
1790 \begin_layout Standard
1791 Print line to message console.
1792 \end_layout
1794 \begin_layout Subsubsection
1795 exec(string command)
1796 \end_layout
1798 \begin_layout Standard
1799 Run command as it was entered on the command line
1800 \end_layout
1802 \begin_layout Subsubsection
1803 utime()
1804 \end_layout
1806 \begin_layout Standard
1807 Returns two values.
1808  First is time since some epoch in seconds, the second is microseconds mod
1809  10^6 since that epoch.
1810 \end_layout
1812 \begin_layout Subsubsection
1813 emulator_ready()
1814 \end_layout
1816 \begin_layout Standard
1817 Returns true if emulator has finished booting, false if not (on_startup()
1818  will be issued later).
1819 \end_layout
1821 \begin_layout Subsubsection
1822 set_idle_timeout(number timeout)
1823 \end_layout
1825 \begin_layout Standard
1826 Set number of microseconds to block idle for.
1827  After this timeout has expired, on_idle() will be called once.
1828 \end_layout
1830 \begin_layout Subsubsection
1831 set_timer_timeout(number timeout)
1832 \end_layout
1834 \begin_layout Standard
1835 Set number of microseconds to block timer for.
1836  After this timeout has expired, on_timer() will be called once.
1837 \end_layout
1839 \begin_layout Subsection
1840 Table bit:
1841 \end_layout
1843 \begin_layout Standard
1844 Bitwise logical functions and related.
1845 \end_layout
1847 \begin_layout Subsubsection
1848 bit.none(number...) / bit.bnot(number...)
1849 \end_layout
1851 \begin_layout Standard
1852 48-bit bitwise NOT / NONE function (set bits that are set in none of the
1853  arguments).
1854 \end_layout
1856 \begin_layout Subsubsection
1857 bit.any(number...) / bit.bor(number...)
1858 \end_layout
1860 \begin_layout Standard
1861 48-bit bitwise OR / ANY function (set bits that are set in any of the arguments).
1862 \end_layout
1864 \begin_layout Subsubsection
1865 bit.all(number...) / bit.band(number...)
1866 \end_layout
1868 \begin_layout Standard
1869 48-bit bitwise AND / ALL function (set bits that are set in all of the arguments
1871 \end_layout
1873 \begin_layout Subsubsection
1874 bit.parity(number...) / bit.bxor(number...)
1875 \end_layout
1877 \begin_layout Standard
1878 48-bit bitwise XOR / PARITY function (set bits that are set in odd number
1879  of the arguments).
1880 \end_layout
1882 \begin_layout Subsubsection
1883 bit.lrotate(number base[, number amount[, number bits]])
1884 \end_layout
1886 \begin_layout Standard
1887 Rotate bits-bit (max 48, default 48) number left by amount (default 1) places.
1888 \end_layout
1890 \begin_layout Subsubsection
1891 bit.rrotate(number base[, number amount[, number bits]])
1892 \end_layout
1894 \begin_layout Standard
1895 Rotate bits-bit (max 48, default 48) number right by amount (default 1)
1896  places.
1897 \end_layout
1899 \begin_layout Subsubsection
1900 bit.lshift(number base[, number amount[, number bits]])
1901 \end_layout
1903 \begin_layout Standard
1904 Shift bits-bit (max 48, default 48) number left by amount (default 1) places.
1905  The new bits are filled with zeroes.
1906 \end_layout
1908 \begin_layout Subsubsection
1909 bit.lrshift(number base[, number amount[, number bits]])
1910 \end_layout
1912 \begin_layout Standard
1913 Shift bits-bit (max 48, default 48) number logically right by amount (default
1914  1) places.
1915  The new bits are filled with zeroes.
1916 \end_layout
1918 \begin_layout Subsubsection
1919 bit.arshift(number base[, number amount[, number bits]])
1920 \end_layout
1922 \begin_layout Standard
1923 Shift bits-bit (max 48, default 48) number arithmetically right by amount
1924  (default 1) places.
1925  The new bits are shifted in with copy of the high bit.
1926 \end_layout
1928 \begin_layout Subsubsection
1929 bit.extract(number base[, number bit0[, number bit1,...]])
1930 \end_layout
1932 \begin_layout Standard
1933 Returns number that has bit0-th bit as bit 0, bit1-th bit as 1 and so on.
1934 \end_layout
1936 \begin_layout Standard
1937 Notes: 
1938 \end_layout
1940 \begin_layout Itemize
1941 Bit numbers up to 51 should work reliably (then things start falling apart
1942  due to double precision issues).
1943 \end_layout
1945 \begin_layout Itemize
1946 There are two special bit positions, true and false, standing for always
1947  set bit and always clear bit.
1948 \end_layout
1950 \begin_layout Subsubsection
1951 bit.value([number bit1[, number bit2,...]])
1952 \end_layout
1954 \begin_layout Standard
1955 Returns bitwise OR of 1 left shifted by bit1 places, 1 left shifted by bit2
1956  places and so on.
1957  As special value, nil argument is no-op.
1958 \end_layout
1960 \begin_layout Subsection
1961 Table gui:
1962 \end_layout
1964 \begin_layout Standard
1965 Most of these functions can only be called in on_paint and on_video callbacks.
1966  Exceptions are noted.
1967 \end_layout
1969 \begin_layout Standard
1970 Colors are 32-bit.
1971  Bits 0-7 are the blue component, bits 8-15 are the green component, bits
1972  16-23 are the red component, bits 24-31 are alpha component (0 is fully
1973  opaque, 255 is almost transparent).
1974  -1 is the fully transparent color.
1975  Alpha values greater than 127 do work.
1976 \end_layout
1978 \begin_layout Standard
1979 Origin of coordinates is at top left corner of game display area.
1980  Left and top gaps correspond to negative coordinates.
1981 \end_layout
1983 \begin_layout Subsubsection
1984 gui.resolution()
1985 \end_layout
1987 \begin_layout Standard
1988 Returns 2-tuple (hresolution, vresolution).
1989 \end_layout
1991 \begin_layout Subsubsection
1992 gui.<class>_gap(number gap)
1993 \end_layout
1995 \begin_layout Standard
1996 Set the <class> (left, right, top, bottom) gap to specified value (max gap
1997  is 8191).
1998 \end_layout
2000 \begin_layout Subsubsection
2001 gui.text(number x, number y, string text[, number fgc[, number bgc]])
2002 \end_layout
2004 \begin_layout Standard
2005 Draw specified text on the GUI (each character cell is 8 or 16 wide and
2006  16 high).
2007  Parameters:
2008 \end_layout
2010 \begin_layout Itemize
2011 x: X-coordinate to start the drawing from (and x-coordinate at begining
2012  of the lines).
2013 \end_layout
2015 \begin_layout Itemize
2016 y: Y-coordinate to start the drawing from.
2017 \end_layout
2019 \begin_layout Itemize
2020 text: The text to draw.
2021 \end_layout
2023 \begin_layout Itemize
2024 fgc: Text color (default is 0xFFFFFF (white))
2025 \end_layout
2027 \begin_layout Itemize
2028 bgc: Background color (default is -1 (transparent))
2029 \end_layout
2031 \begin_layout Subsubsection
2032 gui.textH(number x, number y, string text[, number fgc[, number bgc]])
2033 \end_layout
2035 \begin_layout Standard
2036 Like gui.text, but draw using double-width.
2037 \end_layout
2039 \begin_layout Subsubsection
2040 gui.textV(number x, number y, string text[, number fgc[, number bgc]])
2041 \end_layout
2043 \begin_layout Standard
2044 Like gui.text, but draw using double-height.
2045 \end_layout
2047 \begin_layout Subsubsection
2048 gui.textHV(number x, number y, string text[, number fgc[, number bgc]])
2049 \end_layout
2051 \begin_layout Standard
2052 Like gui.text, but draw using double-width/double-height.
2053 \end_layout
2055 \begin_layout Subsubsection
2056 gui.rectangle(number x, number y, number width, number height[, number thickness[
2057 , number outline[, number fill]]])
2058 \end_layout
2060 \begin_layout Standard
2061 Draw rectangle on the GUI.
2062  Parameters:
2063 \end_layout
2065 \begin_layout Itemize
2066 x: X-coordinate of left edge.
2067 \end_layout
2069 \begin_layout Itemize
2070 y: Y-coordinate of upper edge.
2071 \end_layout
2073 \begin_layout Itemize
2074 width: Width of rectangle.
2075 \end_layout
2077 \begin_layout Itemize
2078 height: Height of rectangle.
2079 \end_layout
2081 \begin_layout Itemize
2082 thickness: Thickness of outline (default is 1).
2083 \end_layout
2085 \begin_layout Itemize
2086 outline: Color of outline (default is 0xFFFFFF (white))
2087 \end_layout
2089 \begin_layout Itemize
2090 fill: Color of fill (default is -1 (transparent))
2091 \end_layout
2093 \begin_layout Subsubsection
2094 gui.box(number x, number y, number width, number height[, number thickness[,
2095  number outline1[,number outline2[, number fill]]]])
2096 \end_layout
2098 \begin_layout Standard
2099 Draw rectangle with 3D effect on the GUI.
2100  Parameters:
2101 \end_layout
2103 \begin_layout Itemize
2104 x: X-coordinate of left edge.
2105 \end_layout
2107 \begin_layout Itemize
2108 y: Y-coordinate of upper edge.
2109 \end_layout
2111 \begin_layout Itemize
2112 width: Width of rectangle.
2113 \end_layout
2115 \begin_layout Itemize
2116 height: Height of rectangle.
2117 \end_layout
2119 \begin_layout Itemize
2120 thickness: Thickness of outline (default is 1).
2121 \end_layout
2123 \begin_layout Itemize
2124 outline1: First color of outline (default is 0xFFFFFF (white))
2125 \end_layout
2127 \begin_layout Itemize
2128 outline2: First color of outline (default is 0x808080 (dark gray))
2129 \end_layout
2131 \begin_layout Itemize
2132 fill: Color of fill (default is 0xC0C0C0 (light grayy))
2133 \end_layout
2135 \begin_layout Subsubsection
2136 gui.pixel(number x, number y[, number color])
2137 \end_layout
2139 \begin_layout Standard
2140 Draw one pixel on the GUI.
2141  Parameters:
2142 \end_layout
2144 \begin_layout Itemize
2145 x: X-coordinate of the pixel
2146 \end_layout
2148 \begin_layout Itemize
2149 y: Y-coordinate of the pixel
2150 \end_layout
2152 \begin_layout Itemize
2153 color: Color of the pixel (default is 0xFFFFFF (white))
2154 \end_layout
2156 \begin_layout Subsubsection
2157 gui.crosshair(number x, number y[, number length[, number color]])
2158 \end_layout
2160 \begin_layout Standard
2161 Draw a crosshair.
2162  Parameters:
2163 \end_layout
2165 \begin_layout Itemize
2166 x: X-coordinate of the crosshair
2167 \end_layout
2169 \begin_layout Itemize
2170 y: Y-coordinate of the crosshair
2171 \end_layout
2173 \begin_layout Itemize
2174 length: Length of the crosshair lines (default 10).
2175 \end_layout
2177 \begin_layout Itemize
2178 color: Color of the crosshair (default is 0xFFFFFF (white))
2179 \end_layout
2181 \begin_layout Subsubsection
2182 gui.line(number x1, number y1, number x2, number y2[, number color])
2183 \end_layout
2185 \begin_layout Standard
2186 Draw a thin line.
2187  Parameters:
2188 \end_layout
2190 \begin_layout Itemize
2191 x1: X-coordinate of one end.
2192 \end_layout
2194 \begin_layout Itemize
2195 y1: Y-coordinate of one end.
2196 \end_layout
2198 \begin_layout Itemize
2199 x2: X-coordinate of the other end.
2200 \end_layout
2202 \begin_layout Itemize
2203 y2: Y-coordinate of the other end.
2204 \end_layout
2206 \begin_layout Itemize
2207 color: Color of the line (default is 0xFFFFFF (white)).
2208 \end_layout
2210 \begin_layout Subsubsection
2211 gui.circle(number x, number y, number r[, number thick[, number border[,
2212  number fil]]])
2213 \end_layout
2215 \begin_layout Standard
2216 Draw a circle.
2217  Parameters.
2218 \end_layout
2220 \begin_layout Itemize
2221 x: X-coordinate of the center
2222 \end_layout
2224 \begin_layout Itemize
2225 y: Y-coordinate of the center
2226 \end_layout
2228 \begin_layout Itemize
2229 r: The radius of the circle
2230 \end_layout
2232 \begin_layout Itemize
2233 thick: Border thickness
2234 \end_layout
2236 \begin_layout Itemize
2237 border: Border color (default is 0xFFFFFF (white))
2238 \end_layout
2240 \begin_layout Itemize
2241 fill: Fill color (default is -1 (transparent)).
2242 \end_layout
2244 \begin_layout Subsubsection
2245 gui.bitmap_draw(number x, number y, bitmap bitmap, palette palette)
2246 \end_layout
2248 \begin_layout Standard
2249 Draw a bitmap on screen with specified palette.
2250  Parameters:
2251 \end_layout
2253 \begin_layout Itemize
2254 x: X-coordinate of left edge.
2255 \end_layout
2257 \begin_layout Itemize
2258 y: Y-coordinate of top edge.
2259 \end_layout
2261 \begin_layout Itemize
2262 bitmap: The bitmap to draw
2263 \end_layout
2265 \begin_layout Itemize
2266 palette: The palette to draw the bitmap using.
2267 \end_layout
2269 \begin_layout Subsubsection
2270 gui.bitmap_draw(number x, number y, dbitmap bitmap)
2271 \end_layout
2273 \begin_layout Standard
2274 Draw a bitmap on screen.
2275  Parameters:
2276 \end_layout
2278 \begin_layout Itemize
2279 x: X-coordinate of left edge.
2280 \end_layout
2282 \begin_layout Itemize
2283 y: Y-coordinate of top edge.
2284 \end_layout
2286 \begin_layout Itemize
2287 bitmap: The bitmap to draw
2288 \end_layout
2290 \begin_layout Subsubsection
2291 gui.palette_new()
2292 \end_layout
2294 \begin_layout Standard
2295 Returns a new palette (initially all transparent).
2296  Can be used anywhere.
2297 \end_layout
2299 \begin_layout Subsubsection
2300 gui.bitmap_new(number w, number h, boolean direct[, bool icolor])
2301 \end_layout
2303 \begin_layout Standard
2304 Returns a new bitmap/dbitmap.
2305  Can be used anywhere.
2306  Parameters:
2307 \end_layout
2309 \begin_layout Itemize
2310 w: The width of new bitmap
2311 \end_layout
2313 \begin_layout Itemize
2314 h: The height of new bitmap
2315 \end_layout
2317 \begin_layout Itemize
2318 direct: If true, the returned bitmap is dbitmap, otherwise bitmap.
2319 \end_layout
2321 \begin_layout Itemize
2322 icolor: Initital fill color (defaults to 0 on BITMAP, -1 on DBITMAP)
2323 \end_layout
2325 \begin_layout Subsubsection
2326 gui.bitmap_load(string file)
2327 \end_layout
2329 \begin_layout Standard
2330 Returns loaded bitmap/dbitmap (if bitmap, the second return value is palette
2331  for bitmap).
2332  Can be used anywhere.
2333  Parameters:
2334 \end_layout
2336 \begin_layout Itemize
2337 file: The name of file to load.
2338 \end_layout
2340 \begin_layout Subsubsection
2341 gui.palette_set(palette palette, number index, number color)
2342 \end_layout
2344 \begin_layout Standard
2345 Sets color in palette.
2346  Can be used anywhere.
2347  Parameters:
2348 \end_layout
2350 \begin_layout Itemize
2351 palette: The palette to manipulate
2352 \end_layout
2354 \begin_layout Itemize
2355 index: Index of color (0-65535).
2356 \end_layout
2358 \begin_layout Itemize
2359 color: The color value.
2360 \end_layout
2362 \begin_layout Subsubsection
2363 gui.bitmap_pset(bitmap/dbitmap bitmap, number x, number y, number color)
2364 \end_layout
2366 \begin_layout Standard
2367 Sets specified pixel in bitmap.
2368  Can be used anywhere.
2369  Parameters:
2370 \end_layout
2372 \begin_layout Itemize
2373 bitmap: The bitmap to manipulate
2374 \end_layout
2376 \begin_layout Itemize
2377 x: The x-coordinate of the pixel.
2378 \end_layout
2380 \begin_layout Itemize
2381 y: The y-coordinate of the pixel.
2382 \end_layout
2384 \begin_layout Itemize
2385 color: If bitmap is a bitmap, color index (0-65535).
2386  Otherwise color value.
2387 \end_layout
2389 \begin_layout Subsubsection
2390 gui.bitmap_size(bitmap/dbitmap bitmap)
2391 \end_layout
2393 \begin_layout Standard
2394 Get size of bitmap.
2395  Can be used anywhere.
2396  Parameters:
2397 \end_layout
2399 \begin_layout Itemize
2400 bitmap: The bitmap to query.
2401 \end_layout
2403 \begin_layout Standard
2404 The first return is the width, the second is the height.
2405 \end_layout
2407 \begin_layout Subsubsection
2408 gui.bitmap_blit(bitmap/dbitmap dest, number dx, number dy, bitmap/dbitmap
2409  src, number sx, number sy, number w, number h[, number ck])
2410 \end_layout
2412 \begin_layout Standard
2413 Blit a part of bitmap to another.
2414  Can be used anywhere.
2415  Parameters:
2416 \end_layout
2418 \begin_layout Itemize
2419 dest: Destination to blit to.
2420 \end_layout
2422 \begin_layout Itemize
2423 dx: left edge of target
2424 \end_layout
2426 \begin_layout Itemize
2427 dy: Top edge of target
2428 \end_layout
2430 \begin_layout Itemize
2431 src: The source to blit from.
2432  Must be of the same type as destination.
2433 \end_layout
2435 \begin_layout Itemize
2436 sx: left edge of source
2437 \end_layout
2439 \begin_layout Itemize
2440 sy: Top edge of source
2441 \end_layout
2443 \begin_layout Itemize
2444 w: Width of region
2445 \end_layout
2447 \begin_layout Itemize
2448 h: Height of region.
2449 \end_layout
2451 \begin_layout Itemize
2452 ck: Color key.
2453  Pixels of this color are not blitted.
2454 \end_layout
2456 \begin_deeper
2457 \begin_layout Itemize
2458 If bitmaps are bitmaps, this is color index of colorkey.
2459  Values outside range 0-65535 cause no key to be used as colorkey.
2460 \end_layout
2462 \begin_layout Itemize
2463 If bitmaps are dbitmaps, this color value of colorkey.
2464 \end_layout
2466 \begin_layout Itemize
2467 May be absent or nil for no colorkey blit.
2468 \end_layout
2470 \end_deeper
2471 \begin_layout Subsubsection
2472 gui.repaint()
2473 \end_layout
2475 \begin_layout Standard
2476 Request on_repaint() to happen as soon as possible.
2477  Can be used anywhere.
2478 \end_layout
2480 \begin_layout Subsubsection
2481 gui.subframe_update(boolean on)
2482 \end_layout
2484 \begin_layout Standard
2485 Request subframe updates (calling on_paint() on subframes) to happen (on=true)
2486  or not happen (on=false).
2487  Can be used anywhere.
2488 \end_layout
2490 \begin_layout Subsubsection
2491 gui.screenshot(string filename)
2492 \end_layout
2494 \begin_layout Standard
2495 Write PNG screenshot of the current frame (no drawings) to specified file.
2496  Can be used anywhere.
2497 \end_layout
2499 \begin_layout Subsubsection
2500 gui.color(number r, number g, number b[, number a])
2501 \end_layout
2503 \begin_layout Standard
2504 Returns color (in notation Lua scripts use) corresponding to color (r,g,b),
2505  each component in scale 0-255.
2506  If a is specified, that is alpha (0 is fully transparent, 256(sic) is fully
2507  opaque).
2508  The default alpha is 256.
2509 \end_layout
2511 \begin_layout Subsubsection
2512 gui.status(string name, string value)
2513 \end_layout
2515 \begin_layout Standard
2516 Set status field 
2517 \begin_inset Quotes eld
2518 \end_inset
2520 L[<name>]
2521 \begin_inset Quotes erd
2522 \end_inset
2524  to <value> in status area.
2525  Can be used anywhere.
2526 \end_layout
2528 \begin_layout Subsubsection
2529 gui.rainbow(number step, number steps[, number color])
2530 \end_layout
2532 \begin_layout Standard
2533 Perform hue rotation of color <color> (default bright red), by <step> steps.
2534  The number of steps per full rotation is given by absolute value of <steps>.
2535 \end_layout
2537 \begin_layout Standard
2538 If <steps> is negative, the rotation will be counterclockwise.
2539 \end_layout
2541 \begin_layout Subsection
2542 table input
2543 \end_layout
2545 \begin_layout Standard
2546 Input handling.
2547  Only available in on_input callback.
2548 \end_layout
2550 \begin_layout Subsubsection
2551 input.get(number controller, number index)
2552 \end_layout
2554 \begin_layout Standard
2555 Read the specified index (0-11) from specified controller (0-7).
2556  Notes:
2557 \end_layout
2559 \begin_layout Itemize
2560 Uses physical controller numbering.
2561  Gamepad in port 2 is controller 4, not 1!
2562 \end_layout
2564 \begin_layout Subsubsection
2565 input.set(number controller, number index, number value)
2566 \end_layout
2568 \begin_layout Standard
2569 Write the specified index (0-11) from specified controller (0-7), storing
2570  value.
2571  Notes:
2572 \end_layout
2574 \begin_layout Itemize
2575 Uses physical controller numbering.
2576  Gamepad in port 2 is controller 4, not 1!
2577 \end_layout
2579 \begin_layout Subsubsection
2580 input.geta(number controller)
2581 \end_layout
2583 \begin_layout Standard
2584 Get input state for entiere controller.
2585  Returns 13 return values.
2586 \end_layout
2588 \begin_layout Itemize
2589 1st return value: Bitmask: bit i is set if i:th index is nonzero
2590 \end_layout
2592 \begin_layout Itemize
2593 2nd-13th return value: value of i:th index.
2594 \end_layout
2596 \begin_layout Subsubsection
2597 input.seta(number controller, number bitmask, number args...)
2598 \end_layout
2600 \begin_layout Standard
2601 Set state for entiere controller.
2602  args is up to 12 values for indices (overriding values in bitmask if specified).
2603 \end_layout
2605 \begin_layout Subsubsection
2606 input.controllertype(number controller)
2607 \end_layout
2609 \begin_layout Standard
2610 Get the type of controller as string.
2611  Valid values are:
2612 \end_layout
2614 \begin_layout Itemize
2615 gamepad
2616 \end_layout
2618 \begin_layout Itemize
2619 mouse
2620 \end_layout
2622 \begin_layout Itemize
2623 justifier
2624 \end_layout
2626 \begin_layout Itemize
2627 superscope
2628 \end_layout
2630 \begin_layout Subsubsection
2631 input.reset([number cycles])
2632 \end_layout
2634 \begin_layout Standard
2635 Execute reset.
2636  If cycles is greater than zero, do delayed reset.
2637  0 (or no value) causes immediate reset.
2638 \end_layout
2640 \begin_layout Itemize
2641 Only available with subframe flag false.
2642 \end_layout
2644 \begin_layout Subsubsection
2645 input.raw()
2646 \end_layout
2648 \begin_layout Standard
2649 Returns table of tables of all available keys and axes.
2650  The first table is indexed by key name (platform-dependent!), and the inner
2651  table has the following fields:
2652 \end_layout
2654 \begin_layout Itemize
2655 last_rawval: Last reported raw value for control.
2656 \end_layout
2658 \begin_layout Itemize
2659 ktype: Type of key (disabled, key, mouse, axis, axis-inverse, hat, pressure-m0,
2660  pressure-mp, pressure-0m, pressure-0p, pressure-pm, pressure-p0).
2661 \end_layout
2663 \begin_layout Itemize
2664 cal_left: Minimum calibration value.
2665  Only meaningful with axis and pressure types.
2666 \end_layout
2668 \begin_layout Itemize
2669 cal_center: Center calibration value.
2670  Only meaningful with axis and pressure types.
2671 \end_layout
2673 \begin_layout Itemize
2674 cal_right: Maximum calibration value.
2675  Only meaningful with axis and pressure types.
2676 \end_layout
2678 \begin_layout Itemize
2679 cal_tolerance: Dead zone tolerance.
2680  Only meaningful with axis and pressure types.
2681 \end_layout
2683 \begin_layout Subsubsection
2684 input.keyhook(key, state)
2685 \end_layout
2687 \begin_layout Standard
2688 Requests that keyhook events to be sent for key (state=true) or not sent
2689  (state=false).
2690 \end_layout
2692 \begin_layout Subsection
2693 Table hostmemory
2694 \end_layout
2696 \begin_layout Standard
2697 Host memory handling (extra memory saved to savestates).
2698  Host memory starts empty.
2699 \end_layout
2701 \begin_layout Subsubsection
2702 hostmemory.read(number address)
2703 \end_layout
2705 \begin_layout Standard
2706 Reads hostmemory slot address.
2707  Slot numbers out of range return false instead of numeric.
2708 \end_layout
2710 \begin_layout Subsubsection
2711 hostmemory.write(number address, number value)
2712 \end_layout
2714 \begin_layout Standard
2715 Writes hostmemory slot with 0-255.
2716  Slot numbers out of range cause extension of host memory slot space.
2717 \end_layout
2719 \begin_layout Subsubsection
2720 hostmemory.readbyte(number address)
2721 \end_layout
2723 \begin_layout Standard
2724 Read unsigned byte (1 element) from given address.
2725  Slots out of range return false.
2726 \end_layout
2728 \begin_layout Subsubsection
2729 hostmemory.writebyte(number address, number value)
2730 \end_layout
2732 \begin_layout Standard
2733 Write unsigned byte (1 element) to given slot.
2734  Slot numbers out of range cause extension.
2735 \end_layout
2737 \begin_layout Subsubsection
2738 hostmemory.readsbyte(number address)
2739 \end_layout
2741 \begin_layout Standard
2742 Read signed byte (1 element) from given address.
2743  Slots out of range return false.
2744 \end_layout
2746 \begin_layout Subsubsection
2747 hostmemory.writesbyte(number address, number value)
2748 \end_layout
2750 \begin_layout Standard
2751 Write signed byte (1 element) to given slot.
2752  Slot numbers out of range cause extension.
2753 \end_layout
2755 \begin_layout Subsubsection
2756 hostmemory.readword(number address)
2757 \end_layout
2759 \begin_layout Standard
2760 Read unsigned word (2 elements) from given address.
2761  Slots out of range return false.
2762 \end_layout
2764 \begin_layout Subsubsection
2765 hostmemory.writeword(number address, number value)
2766 \end_layout
2768 \begin_layout Standard
2769 Write unsigned word (2 elements) to given slot.
2770  Slot numbers out of range cause extension.
2771 \end_layout
2773 \begin_layout Subsubsection
2774 hostmemory.readsword(number address)
2775 \end_layout
2777 \begin_layout Standard
2778 Read signed word (2 elements) from given address.
2779  Slots out of range return false.
2780 \end_layout
2782 \begin_layout Subsubsection
2783 hostmemory.writesword(number address, number value)
2784 \end_layout
2786 \begin_layout Standard
2787 Write signed word (2 elements) to given slot.
2788  Slot numbers out of range cause extension.
2789 \end_layout
2791 \begin_layout Subsubsection
2792 hostmemory.readdword(number address)
2793 \end_layout
2795 \begin_layout Standard
2796 Read unsigned doubleword (4 elements) from given address.
2797  Slots out of range return false.
2798 \end_layout
2800 \begin_layout Subsubsection
2801 hostmemory.writedword(number address, number value)
2802 \end_layout
2804 \begin_layout Standard
2805 Write unsigned doubleword (4 elements) to given slot.
2806  Slot numbers out of range cause extension.
2807 \end_layout
2809 \begin_layout Subsubsection
2810 hostmemory.readsdword(number address)
2811 \end_layout
2813 \begin_layout Standard
2814 Read signed doubleword (4 elements) from given address.
2815  Slots out of range return false.
2816 \end_layout
2818 \begin_layout Subsubsection
2819 hostmemory.writesdword(number address, number value)
2820 \end_layout
2822 \begin_layout Standard
2823 Write signed doubleword (4 elements) to given slot.
2824  Slot numbers out of range cause extension.
2825 \end_layout
2827 \begin_layout Subsubsection
2828 hostmemory.readqword(number address)
2829 \end_layout
2831 \begin_layout Standard
2832 Read unsigned quadword (8 elements) from given address.
2833  Slots out of range return false.
2834 \end_layout
2836 \begin_layout Subsubsection
2837 hostmemory.writeqword(number address, number value)
2838 \end_layout
2840 \begin_layout Standard
2841 Write unsigned quadword (4 elements) to given slot.
2842  Slot numbers out of range cause extension.
2843 \end_layout
2845 \begin_layout Subsubsection
2846 hostmemory.readsqword(number address)
2847 \end_layout
2849 \begin_layout Standard
2850 Read signed quadword (8 elements) from given address.
2851  Slots out of range return false.
2852 \end_layout
2854 \begin_layout Subsubsection
2855 hostmemory.writesqword(number address, number value)
2856 \end_layout
2858 \begin_layout Standard
2859 Write signed quadword (8 elements) to given slot.
2860  Slot numbers out of range cause extension.
2861 \end_layout
2863 \begin_layout Subsection
2864 Table movie
2865 \end_layout
2867 \begin_layout Standard
2868 Movie handling
2869 \end_layout
2871 \begin_layout Subsubsection
2872 movie.currentframe()
2873 \end_layout
2875 \begin_layout Standard
2876 Return number of current frame.
2877 \end_layout
2879 \begin_layout Subsubsection
2880 movie.framecount()
2881 \end_layout
2883 \begin_layout Standard
2884 Return number of frames in movie.
2885 \end_layout
2887 \begin_layout Subsubsection
2888 movie.readonly()
2889 \end_layout
2891 \begin_layout Standard
2892 Return true if in readonly mode, false if in readwrite.
2893 \end_layout
2895 \begin_layout Subsubsection
2896 movie.set_readwrite()
2897 \end_layout
2899 \begin_layout Standard
2900 Set readwrite mode (does not cause on_readwrite callback).
2901 \end_layout
2903 \begin_layout Subsubsection
2904 movie.frame_subframes(number frame)
2905 \end_layout
2907 \begin_layout Standard
2908 Count number of subframes in specified frame (frame numbers are 1-based)
2909  and return that.
2910 \end_layout
2912 \begin_layout Subsubsection
2913 movie.read_subframe(number frame, number subframe)
2914 \end_layout
2916 \begin_layout Standard
2917 Read specifed subframe in specified frame and return data as array (100
2918  elements, numbered 0-99 currently).
2919 \end_layout
2921 \begin_layout Subsection
2922 Table settings
2923 \end_layout
2925 \begin_layout Standard
2926 Routines for settings manipulation
2927 \end_layout
2929 \begin_layout Subsubsection
2930 settings.get(string name)
2931 \end_layout
2933 \begin_layout Standard
2934 Get value of setting.
2935  If setting is blank, returns false.
2936  If setting value can't be obtained, returns (nil, error message).
2937 \end_layout
2939 \begin_layout Subsubsection
2940 settings.set(string name, string value)
2941 \end_layout
2943 \begin_layout Standard
2944 Set value of setting.
2945  If setting can't be set, returns (nil, error message).
2946 \end_layout
2948 \begin_layout Subsubsection
2949 settings.is_set(string name)
2950 \end_layout
2952 \begin_layout Standard
2953 Returns if setting is set.
2954  If setting does not exist, returns (nil, error message).
2955 \end_layout
2957 \begin_layout Subsubsection
2958 settings.blank(string name)
2959 \end_layout
2961 \begin_layout Standard
2962 Blanks a setting and returns true.
2963  If setting can't be blanked, returns (nil, error message).
2964 \end_layout
2966 \begin_layout Subsection
2967 Table memory
2968 \end_layout
2970 \begin_layout Standard
2971 Contains various functions for managing memory
2972 \end_layout
2974 \begin_layout Subsubsection
2975 memory.vma_count()
2976 \end_layout
2978 \begin_layout Standard
2979 Returns the number of VMAs
2980 \end_layout
2982 \begin_layout Subsubsection
2983 memory.read_vma(number index)
2984 \end_layout
2986 \begin_layout Standard
2987 Reads the specified VMA (indices start from zero).
2988  Trying to read invalid VMA gives nil.
2989  The read VMA is table with the following fields:
2990 \end_layout
2992 \begin_layout Itemize
2993 region_name (string): The readable name of the VMA
2994 \end_layout
2996 \begin_layout Itemize
2997 baseaddr (number): Base address of the VMA
2998 \end_layout
3000 \begin_layout Itemize
3001 lastaddr (number): Last address in the VMA.
3002 \end_layout
3004 \begin_layout Itemize
3005 size (number): The size of VMA in bytes.
3006 \end_layout
3008 \begin_layout Itemize
3009 readonly (boolean): True of the VMA corresponds to ROM.
3010 \end_layout
3012 \begin_layout Itemize
3013 native_endian (boolean): True if the VMA has native endian as opposed to
3014  little endian.
3015 \end_layout
3017 \begin_layout Subsubsection
3018 memory.find_vma(number address)
3019 \end_layout
3021 \begin_layout Standard
3022 Finds the VMA containing specified address.
3023  Returns table in the same format as read_vma or nil if not found.
3024 \end_layout
3026 \begin_layout Subsubsection
3027 memory.readbyte(number address)
3028 \end_layout
3030 \begin_layout Standard
3031 Reads the specified address as unsigned byte and returns the result.
3032 \end_layout
3034 \begin_layout Subsubsection
3035 memory.readsbyte(number address)
3036 \end_layout
3038 \begin_layout Standard
3039 Reads the specified address as signed byte and returns the result.
3040 \end_layout
3042 \begin_layout Subsubsection
3043 memory.writebyte(number address, number value)
3044 \end_layout
3046 \begin_layout Standard
3047 Writes the specified value (negative values undergo 2's complement) to specified
3048  address (as a byte).
3049 \end_layout
3051 \begin_layout Subsubsection
3052 memory.readword(number address)
3053 \end_layout
3055 \begin_layout Standard
3056 Reads the specified address as unsigned word and returns the result.
3057 \end_layout
3059 \begin_layout Subsubsection
3060 memory.readsword(number address)
3061 \end_layout
3063 \begin_layout Standard
3064 Reads the specified address as signed word and returns the result.
3065 \end_layout
3067 \begin_layout Subsubsection
3068 memory.writeword(number address, number value)
3069 \end_layout
3071 \begin_layout Standard
3072 Writes the specified value (negative values undergo 2's complement) to specified
3073  address (as a word).
3074 \end_layout
3076 \begin_layout Subsubsection
3077 memory.readdword(number address)
3078 \end_layout
3080 \begin_layout Standard
3081 Reads the specified address as unsigned doubleword and returns the result.
3082 \end_layout
3084 \begin_layout Subsubsection
3085 memory.readsdword(number address)
3086 \end_layout
3088 \begin_layout Standard
3089 Reads the specified address as signed doubleword and returns the result.
3090 \end_layout
3092 \begin_layout Subsubsection
3093 memory.writedword(number address, number value)
3094 \end_layout
3096 \begin_layout Standard
3097 Writes the specified value (negative values undergo 2's complement) to specified
3098  address (as a doubleword).
3099 \end_layout
3101 \begin_layout Subsubsection
3102 memory.readqword(number address)
3103 \end_layout
3105 \begin_layout Standard
3106 Reads the specified address as unsigned quadword and returns the result.
3107 \end_layout
3109 \begin_layout Subsubsection
3110 memory.readsqword(number address)
3111 \end_layout
3113 \begin_layout Standard
3114 Reads the specified address as signed quadword and returns the result.
3115 \end_layout
3117 \begin_layout Subsubsection
3118 memory.writeqword(number address, number value)
3119 \end_layout
3121 \begin_layout Standard
3122 Writes the specified value (negative values undergo 2's complement) to specified
3123  address (as a quadword).
3124 \end_layout
3126 \begin_layout Subsubsection
3127 memory.hash_region(number base, number size)
3128 \end_layout
3130 \begin_layout Standard
3131 Hash specified number of bytes starting from specified address and return
3132  the SHA-256.
3133 \end_layout
3135 \begin_layout Subsection
3136 Table _SYSTEM
3137 \end_layout
3139 \begin_layout Standard
3140 Contains copy of global variables from time of Lua initialization.
3141  Non-writeable.
3142 \end_layout
3144 \begin_layout Subsection
3145 Callbacks
3146 \end_layout
3148 \begin_layout Standard
3149 Various callbacks to Lua that can occur.
3150 \end_layout
3152 \begin_layout Subsubsection
3153 Callback: on_paint(bool not_synth)
3154 \end_layout
3156 \begin_layout Standard
3157 Called when screen is being painted.
3158  Any gui.* calls requiring graphic context draw on the screen.
3159 \end_layout
3161 \begin_layout Standard
3162 not_synth is true if this hook is being called in response to received frame,
3163  false otherwise.
3164 \end_layout
3166 \begin_layout Subsubsection
3167 Callback: on_video()
3168 \end_layout
3170 \begin_layout Standard
3171 Called when video dump frame is being painted.
3172  Any gui.* calls requiring graphic context draw on the video.
3173 \end_layout
3175 \begin_layout Subsubsection
3176 Callback: on_frame_emulated()
3177 \end_layout
3179 \begin_layout Standard
3180 Called when emulating frame has completed and on_paint()/on_video() calls
3181  are about to be issued.
3182 \end_layout
3184 \begin_layout Subsubsection
3185 Callback: on_frame()
3186 \end_layout
3188 \begin_layout Standard
3189 Called on each starting whole frame.
3190 \end_layout
3192 \begin_layout Subsubsection
3193 Callback: on_startup()
3194 \end_layout
3196 \begin_layout Standard
3197 Called when the emulator is starting (lsnes.rc and --run files has been run).
3198 \end_layout
3200 \begin_layout Subsubsection
3201 Callback: on_rewind()
3202 \end_layout
3204 \begin_layout Standard
3205 Called when rewind movie to beginning has completed.
3206 \end_layout
3208 \begin_layout Subsubsection
3209 Callback: on_pre_load(string name)
3210 \end_layout
3212 \begin_layout Standard
3213 Called just before savestate/movie load occurs (note: loads are always delayed,
3214  so this occurs even when load was initiated by lua).
3215 \end_layout
3217 \begin_layout Subsubsection
3218 Callback: on_err_load(string name)
3219 \end_layout
3221 \begin_layout Standard
3222 Called if loadstate goes wrong.
3223 \end_layout
3225 \begin_layout Subsubsection
3226 Callback: on_post_load(string name, boolean was_savestate)
3227 \end_layout
3229 \begin_layout Standard
3230 Called on successful loadstate.
3231  was_savestate gives if this was a savestate or a movie.
3232 \end_layout
3234 \begin_layout Subsubsection
3235 Callback: on_pre_save(string name, boolean is_savestate)
3236 \end_layout
3238 \begin_layout Standard
3239 Called just before savestate save occurs (note: movie saves are synchronous
3240  and won't trigger these callbacks if called from Lua).
3241 \end_layout
3243 \begin_layout Subsubsection
3244 Callback: on_err_save(string name)
3245 \end_layout
3247 \begin_layout Standard
3248 Called if savestate goes wrong.
3249 \end_layout
3251 \begin_layout Subsubsection
3252 Callback: on_post_save(string name, boolean is_savestate)
3253 \end_layout
3255 \begin_layout Standard
3256 Called on successful savaestate.
3257  is_savestate gives if this was a savestate or a movie.
3258 \end_layout
3260 \begin_layout Subsubsection
3261 Callback: on_quit()
3262 \end_layout
3264 \begin_layout Standard
3265 Called when emulator is shutting down.
3266 \end_layout
3268 \begin_layout Subsubsection
3269 Callback: on_input(boolean subframe)
3270 \end_layout
3272 \begin_layout Standard
3273 Called when emulator is just sending input to bsnes core.
3274  Warning: This is called even in readonly mode, but the results are ignored.
3275 \end_layout
3277 \begin_layout Subsubsection
3278 Callback: on_reset()
3279 \end_layout
3281 \begin_layout Standard
3282 Called when SNES is reset.
3283 \end_layout
3285 \begin_layout Subsubsection
3286 Callback: on_readwrite()
3287 \end_layout
3289 \begin_layout Standard
3290 Called when moving into readwrite mode as result of 
3291 \begin_inset Quotes eld
3292 \end_inset
3294 set-rwmode
3295 \begin_inset Quotes erd
3296 \end_inset
3298  command (note: moving to rwmode by Lua won't trigger this, as per recursive
3299  entry protection).
3300 \end_layout
3302 \begin_layout Subsubsection
3303 Callback: on_snoop(number port, number controller, number index, number
3304  value)
3305 \end_layout
3307 \begin_layout Standard
3308 Called each time bsnes asks for input.
3309  The value is the final value to be sent to bsnes core (readonly mode, autohold
3310  and autofire have been taken into account).
3311  Might be useful when translating movies to format suitable for console
3312  verification.
3313  Note: There is no way to modify the value to be sent.
3314 \end_layout
3316 \begin_layout Subsubsection
3317 Callback: on_keyhook(string keyname, table state)
3318 \end_layout
3320 \begin_layout Standard
3321 Sent when key that has keyhook events requested changes state.
3322  Keyname is name of the key (group) and state is the state (same kind as
3323  table values in input.raw).
3324 \end_layout
3326 \begin_layout Subsubsection
3327 Callback: on_idle()
3328 \end_layout
3330 \begin_layout Standard
3331 Called when requested by set_idle_timeout(), the timeout has expired and
3332  emulator is waiting.
3333 \end_layout
3335 \begin_layout Subsubsection
3336 Callback: on_timer()
3337 \end_layout
3339 \begin_layout Standard
3340 Called when requested by set_idle_timeout() and the timeout has expired
3341  (regardless if emulator is waiting).
3342 \end_layout
3344 \begin_layout Section
3345 Memory watch expression syntax
3346 \end_layout
3348 \begin_layout Standard
3349 Memory watch expressions are in RPN (Reverse Polish Notation).
3350  At the end of expression, the top entry on stack is taken as the final
3351  result.
3352 \end_layout
3354 \begin_layout Standard
3355 Notations:
3356 \end_layout
3358 \begin_layout Itemize
3359 Evaluation order is strictly left to right.
3360 \end_layout
3362 \begin_layout Itemize
3363 a is the entry on top of stack
3364 \end_layout
3366 \begin_layout Itemize
3367 b is the entry immediately below top of stack
3368 \end_layout
3370 \begin_layout Itemize
3371 ; separates values to be pushed (no intermediate pop).
3372 \end_layout
3374 \begin_layout Itemize
3375 After end of element, all used stack slots are popped and all results are
3376  pushed.
3377 \end_layout
3379 \begin_layout Itemize
3380 When pushing multiple values, the pushes occur in order shown.
3381 \end_layout
3383 \begin_layout Standard
3384 The following operators are available:
3385 \end_layout
3387 \begin_layout Itemize
3388 + : a + b
3389 \end_layout
3391 \begin_layout Itemize
3392 - : a - b
3393 \end_layout
3395 \begin_layout Itemize
3396 * : a * b
3397 \end_layout
3399 \begin_layout Itemize
3400 / : a / b
3401 \end_layout
3403 \begin_layout Itemize
3404 % : a % b
3405 \end_layout
3407 \begin_layout Itemize
3408 a : atan(a)
3409 \end_layout
3411 \begin_layout Itemize
3412 b : read_signed_byte(a)
3413 \end_layout
3415 \begin_layout Itemize
3416 c : cos(a)
3417 \end_layout
3419 \begin_layout Itemize
3420 d : read_signed_dword(a)
3421 \end_layout
3423 \begin_layout Itemize
3424 i : quotent(a / b)
3425 \end_layout
3427 \begin_layout Itemize
3428 p :
3429 \begin_inset Formula $\pi$
3430 \end_inset
3433 \end_layout
3435 \begin_layout Itemize
3436 q : read_signed_qword(a)
3437 \end_layout
3439 \begin_layout Itemize
3440 r : sqrt(a)
3441 \end_layout
3443 \begin_layout Itemize
3444 s : sin(a)
3445 \end_layout
3447 \begin_layout Itemize
3448 t : tan(a)
3449 \end_layout
3451 \begin_layout Itemize
3452 u : a; a
3453 \end_layout
3455 \begin_layout Itemize
3456 w : read_signed_word(a)
3457 \end_layout
3459 \begin_layout Itemize
3460 A : atan2(a, b)
3461 \end_layout
3463 \begin_layout Itemize
3464 B : read_unsigned_byte(a)
3465 \end_layout
3467 \begin_layout Itemize
3468 C<number>z : Push number <number> to stack.
3469 \end_layout
3471 \begin_layout Itemize
3472 D : read_unsigned_dword(a)
3473 \end_layout
3475 \begin_layout Itemize
3476 C0x<number>z : Push number <number> (hexadecimal) to stack.
3477 \end_layout
3479 \begin_layout Itemize
3480 Q : read_unsigned_qword(a)
3481 \end_layout
3483 \begin_layout Itemize
3484 R<digit> : round a to <digit> digits.
3485 \end_layout
3487 \begin_layout Itemize
3488 W : read_unsigned_word(a)
3489 \end_layout
3491 \begin_layout Subsection
3492 Example:
3493 \end_layout
3495 \begin_layout Standard
3496 C0x007e0878zWC0x007e002czW-
3497 \end_layout
3499 \begin_layout Enumerate
3500 Push value 0x7e0878 on top of stack (C0x007e0878z).
3501 \end_layout
3503 \begin_layout Enumerate
3504 Pop the value on top of stack (0x7e0878), read word value at that address
3505  and push the result,call it x1 (W).
3506 \end_layout
3508 \begin_layout Enumerate
3509 Push value 0x7e002c on top of stack (C0x007e002cz).
3510 \end_layout
3512 \begin_layout Enumerate
3513 Pop the value on top of stack (0x7e002c), read word value at that address
3514  and push the result,call it x2 (W).
3515 \end_layout
3517 \begin_layout Enumerate
3518 Pop the two top numbers on stack, x1 and x2, substract x1 from x2 and push
3519  x2 - x1 (-).
3520 \end_layout
3522 \begin_layout Enumerate
3523 Since the expression ends, the final memory watch result is the top one
3524  on stack, which is x2 - x1.
3525 \end_layout
3527 \begin_layout Section
3528 Modifier and key names:
3529 \end_layout
3531 \begin_layout Subsection
3532 SDL Platform
3533 \end_layout
3535 \begin_layout Subsubsection
3536 Modifier names
3537 \end_layout
3539 \begin_layout Standard
3540 Following modifier names are known:
3541 \end_layout
3543 \begin_layout Itemize
3544 ctrl, lctrl, rctrl: Control keys
3545 \end_layout
3547 \begin_layout Itemize
3548 alt, lalt, ralt: ALT keys.
3549 \end_layout
3551 \begin_layout Itemize
3552 shift, lshift, rshift: Shift keys.
3553 \end_layout
3555 \begin_layout Itemize
3556 meta, lmeta, rmeta: Meta keys.
3557 \end_layout
3559 \begin_layout Itemize
3560 num, caps: Numlock/Capslock (these are sticky!)
3561 \end_layout
3563 \begin_layout Itemize
3564 mode: Mode select.
3565 \end_layout
3567 \begin_layout Subsubsection
3568 Key names
3569 \end_layout
3571 \begin_layout Standard
3572 Following key names are known:
3573 \end_layout
3575 \begin_layout Itemize
3576 backspace, tab, clear, return, pause, escape, space, exclaim, quotedbl,
3577  hash, dollar, ampersand, quote, leftparen, rightparen, asterisk, plus,
3578  comma, minus, period, slash, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, colon, semicolon,
3579  less, equals, greater, question, at, leftbracket, backslash, rightbracket,
3580  caret, underscore, backquote, a, b, c, d, e, f, g, h, i, j, k, l, m, n,
3581  o, p, q, r, s, t, u, v, w, x, y, z, delete, world_0, world_1, world_2,
3582  world_3, world_4, world_5, world_6, world_7, world_8, world_9, world_10,
3583  world_11, world_12, world_13, world_14, world_15, world_16, world_17, world_18,
3584  world_19, world_20, world_21, world_22, world_23, world_24, world_25, world_26,
3585  world_27, world_28, world_29, world_30, world_31, world_32, world_33, world_34,
3586  world_35, world_36, world_37, world_38, world_39, world_40, world_41, world_42,
3587  world_43, world_44, world_45, world_46, world_47, world_48, world_49, world_50,
3588  world_51, world_52, world_53, world_54, world_55, world_56, world_57, world_58,
3589  world_59, world_60, world_61, world_62, world_63, world_64, world_65, world_66,
3590  world_67, world_68, world_69, world_70, world_71, world_72, world_73, world_74,
3591  world_75, world_76, world_77, world_78, world_79, world_80, world_81, world_82,
3592  world_83, world_84, world_85, world_86, world_87, world_88, world_89, world_90,
3593  world_91, world_92, world_93, world_94, world_95, kp0, kp1, kp2, kp3, kp4,
3594  kp5, kp6, kp7, kp8, kp9, kp_period, kp_divide, kp_multiply, kp_minus, kp_plus,
3595  kp_enter, kp_equals, up, down, right, left, insert, home, end, pageup,
3596  pagedown, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14,
3597  f15, numlock, capslock, scrollock, rshift, lshift, rctrl, lctrl, ralt,
3598  lalt, rmeta, lmeta, lsuper, rsuper, mode, compose, help, print, sysreq,
3599  break, menu, power, euro, undo
3600 \end_layout
3602 \begin_layout Itemize
3603 Names of form 'key<n>' where <n> is 0-255 are interpretted as key having
3604  hardware-dependent scan code of <n> (useful to bind those keys that don't
3605  have symbolic names).
3606 \end_layout
3608 \begin_layout Subsubsection
3609 Joystick pseudo-keys:
3610 \end_layout
3612 \begin_layout Itemize
3613 joystick<num>button<button>: Joystick <num> (0-based) button <button> (0-based).
3614 \end_layout
3616 \begin_layout Itemize
3617 joystick<num>hat<hat>n: Joystick <num> (0-based) hat <hat> (0-based) up.
3618 \end_layout
3620 \begin_layout Itemize
3621 joystick<num>hat<hat>w: Joystick <num> (0-based) hat <hat> (0-based) left.
3622 \end_layout
3624 \begin_layout Itemize
3625 joystick<num>hat<hat>s: Joystick <num> (0-based) hat <hat> (0-based) down.
3626 \end_layout
3628 \begin_layout Itemize
3629 joystick<num>hat<hat>e: Joystick <num> (0-based) hat <hat> (0-based) right.
3630 \end_layout
3632 \begin_layout Itemize
3633 joystick<num>axis<axis>-: Joystick <num> (0-based) axis <axis> negative
3634  position (axis modes axis and axis_inverse).
3635 \end_layout
3637 \begin_layout Itemize
3638 joystick<num>axis<axis>+: Joystick <num> (0-based) axis <axis> positive
3639  position (axis modes axis and axis_inverse).
3640 \end_layout
3642 \begin_layout Itemize
3643 joystick<num>axis<axis>: Joystick <num> (0-based) axis <axis> pressure (axis
3644  modes pressure_*).
3645 \end_layout
3647 \begin_layout Subsubsection
3648 Special buttons:
3649 \end_layout
3651 \begin_layout Itemize
3652 Escape: Enter/Exit Command mode, cancel modal dialogs.
3653 \end_layout
3655 \begin_layout Itemize
3656 Return (also KPEnter): Execute command, ok modal dialog.
3657 \end_layout
3659 \begin_layout Itemize
3660 Pgup/Up (also KP8/9 if no num lock, CTRL+P; command mode): Previous command
3661  in command history
3662 \end_layout
3664 \begin_layout Itemize
3665 Pgdn/Down(also KP2/3 if no num lock, CTRL+N; command mode): Next command
3666  in command history
3667 \end_layout
3669 \begin_layout Itemize
3670 Home (also KP7 if no num lock, CTRL+A; command mode): Beginning of command.
3671 \end_layout
3673 \begin_layout Itemize
3674 End (also KP1 if no num lock, CTRL+E; command mode): End of command.
3675 \end_layout
3677 \begin_layout Itemize
3678 Left (also KP4 if no num lock, CTRL+B; command mode): Move cursor left.
3679 \end_layout
3681 \begin_layout Itemize
3682 Right (also KP6 if no num lock, CTRL+F; command mode): Move cursor right.
3683 \end_layout
3685 \begin_layout Itemize
3686 Delete (also KP.
3687  if no num lock; command mode): Delete character to right of cursor.
3688 \end_layout
3690 \begin_layout Itemize
3691 Insert (also KP0 if no num lock; command mode): Toggle between insert /
3692  overwrite modes.
3693 \end_layout
3695 \begin_layout Itemize
3696 Backspace (command mode): Delete character to left of cursor.
3697 \end_layout
3699 \begin_layout Itemize
3700 CTRL+LEFT (also ALT+B; command mode): Previous word.
3701 \end_layout
3703 \begin_layout Itemize
3704 CTRL+RIGHT (also ALT+F; command mode): Next word.
3705 \end_layout
3707 \begin_layout Itemize
3708 ALT+D (also CTRL+W; command mode): Delete word.
3709 \end_layout
3711 \begin_layout Itemize
3712 LCTRL+LALT+ESCAPE: Ungraceful shutdown (leaves dump corrupted!).
3713 \end_layout
3715 \begin_layout Subsection
3716 wxWidgets platform
3717 \end_layout
3719 \begin_layout Subsubsection
3720 Modifier names:
3721 \end_layout
3723 \begin_layout Standard
3724 Following modifier names are known:
3725 \end_layout
3727 \begin_layout Itemize
3729 \end_layout
3731 \begin_layout Itemize
3732 ctrl
3733 \end_layout
3735 \begin_layout Itemize
3736 shift 
3737 \end_layout
3739 \begin_layout Itemize
3740 meta
3741 \end_layout
3743 \begin_layout Itemize
3744 cmd (Mac OS X only)
3745 \end_layout
3747 \begin_layout Subsubsection
3748 Key names:
3749 \end_layout
3751 \begin_layout Standard
3752 Following key names are known:
3753 \end_layout
3755 \begin_layout Itemize
3756 back, tab, return, escape, space, exclaim, quotedbl, hash, dollar, percent,
3757  ampersand, quote, leftparen, rightparen, asterisk, plus, comma, minus,
3758  period, slash, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, colon, semicolon, less, equals,
3759  greater, question, at, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p,
3760  q, r, s, t, u, v, w, x, y, z, leftbracket, backslash, rightbracket, caret,
3761  underscore, backquote, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p,
3762  q, r, s, t, u, v, w, x, y, z, leftcurly, pipe, rightcurly, tilde, delete,
3763  start, lbutton, rbutton, cancel, mbutton, clear, shift, alt, control, menu,
3764  pause, capital, end, home, lefT, up, right, down, select, print, execute,
3765  snapshot, insert, help, numpad0, numpad1, numpad2, numpad3, numpad4, numpad5,
3766  numpad6, numpad7, numpad8, numpad9, multiply, add, separator, subtract,
3767  decimal, divide, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13,
3768  f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, numlock, scroll,
3769  pageup, pagedown, numpad_space, numpad_tab, numpad_enter, numpad_f1, numpad_f2,
3770  numpad_f3, numpad_f4, numpad_home, numpad_left, numpad_up, numpad_right,
3771  numpad_down, numpad_pageup, numpad_pagedown, numpad_end, numpad_begin,
3772  numpad_insert, numpad_delete, numpad_equal, numpad_multiply, numpad_add,
3773  numpad_separator, numpad_subtract, numpad_decimal, numpad_divide, windows_left,
3774  windows_right, windows_menu, command, special1, special2, special3, special4,
3775  special5, special6, special7, special8, special9, special10, special11,
3776  special12, special13, special14, special15, special16, special17, special18,
3777  special19, special20
3778 \end_layout
3780 \begin_layout Section
3781 Movie file format
3782 \end_layout
3784 \begin_layout Standard
3785 Movie file is .zip archive in itself, normal ZIP archive tools work on it
3786  (note: If you recompress it, do not use compression methods other than
3787  store and deflate and especially do not use encryption of any kind).
3788 \end_layout
3790 \begin_layout Subsection
3791 Detecting clean start/SRAM/Savestate
3792 \end_layout
3794 \begin_layout Itemize
3795 If file has member 
3796 \begin_inset Quotes eld
3797 \end_inset
3799 savestate
3800 \begin_inset Quotes erd
3801 \end_inset
3803  it is savestate, otherwise:
3804 \end_layout
3806 \begin_layout Itemize
3807 If file has members with names starting 
3808 \begin_inset Quotes eld
3809 \end_inset
3811 moviesram.
3812 \begin_inset Quotes erd
3813 \end_inset
3815  it is movie starting from SRAM, otherwise:
3816 \end_layout
3818 \begin_layout Itemize
3819 It is movie starting from clear state.
3820 \end_layout
3822 \begin_layout Subsection
3823 Member: gametype
3824 \end_layout
3826 \begin_layout Standard
3827 Type of game ROM and region (as one line).
3828  Valid values are:
3829 \end_layout
3831 \begin_layout Standard
3832 \begin_inset Tabular
3833 <lyxtabular version="3" rows="8" columns="3">
3834 <features tabularvalignment="middle">
3835 <column alignment="center" valignment="top" width="0">
3836 <column alignment="center" valignment="top" width="0">
3837 <column alignment="center" valignment="top" width="0">
3838 <row>
3839 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
3840 \begin_inset Text
3842 \begin_layout Plain Layout
3843 Value
3844 \end_layout
3846 \end_inset
3847 </cell>
3848 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
3849 \begin_inset Text
3851 \begin_layout Plain Layout
3852 System
3853 \end_layout
3855 \end_inset
3856 </cell>
3857 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
3858 \begin_inset Text
3860 \begin_layout Plain Layout
3861 Region
3862 \end_layout
3864 \end_inset
3865 </cell>
3866 </row>
3867 <row>
3868 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
3869 \begin_inset Text
3871 \begin_layout Plain Layout
3872 snes_pal
3873 \end_layout
3875 \end_inset
3876 </cell>
3877 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
3878 \begin_inset Text
3880 \begin_layout Plain Layout
3881 Super NES
3882 \end_layout
3884 \end_inset
3885 </cell>
3886 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
3887 \begin_inset Text
3889 \begin_layout Plain Layout
3891 \end_layout
3893 \end_inset
3894 </cell>
3895 </row>
3896 <row>
3897 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
3898 \begin_inset Text
3900 \begin_layout Plain Layout
3901 sgb_pal
3902 \end_layout
3904 \end_inset
3905 </cell>
3906 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
3907 \begin_inset Text
3909 \begin_layout Plain Layout
3910 Super Game Boy
3911 \end_layout
3913 \end_inset
3914 </cell>
3915 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
3916 \begin_inset Text
3918 \begin_layout Plain Layout
3920 \end_layout
3922 \end_inset
3923 </cell>
3924 </row>
3925 <row>
3926 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
3927 \begin_inset Text
3929 \begin_layout Plain Layout
3930 snes_ntsc
3931 \end_layout
3933 \end_inset
3934 </cell>
3935 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
3936 \begin_inset Text
3938 \begin_layout Plain Layout
3939 Super NES
3940 \end_layout
3942 \end_inset
3943 </cell>
3944 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
3945 \begin_inset Text
3947 \begin_layout Plain Layout
3948 NTSC
3949 \end_layout
3951 \end_inset
3952 </cell>
3953 </row>
3954 <row>
3955 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
3956 \begin_inset Text
3958 \begin_layout Plain Layout
3959 sgb_ntsc
3960 \end_layout
3962 \end_inset
3963 </cell>
3964 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
3965 \begin_inset Text
3967 \begin_layout Plain Layout
3968 Super Game Boy
3969 \end_layout
3971 \end_inset
3972 </cell>
3973 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
3974 \begin_inset Text
3976 \begin_layout Plain Layout
3977 NTSC
3978 \end_layout
3980 \end_inset
3981 </cell>
3982 </row>
3983 <row>
3984 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
3985 \begin_inset Text
3987 \begin_layout Plain Layout
3989 \end_layout
3991 \end_inset
3992 </cell>
3993 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
3994 \begin_inset Text
3996 \begin_layout Plain Layout
3997 BS-X (non-slotted)
3998 \end_layout
4000 \end_inset
4001 </cell>
4002 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
4003 \begin_inset Text
4005 \begin_layout Plain Layout
4006 NTSC
4007 \end_layout
4009 \end_inset
4010 </cell>
4011 </row>
4012 <row>
4013 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
4014 \begin_inset Text
4016 \begin_layout Plain Layout
4017 bsxslotted
4018 \end_layout
4020 \end_inset
4021 </cell>
4022 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
4023 \begin_inset Text
4025 \begin_layout Plain Layout
4026 BS-X (slotted)
4027 \end_layout
4029 \end_inset
4030 </cell>
4031 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
4032 \begin_inset Text
4034 \begin_layout Plain Layout
4035 NTSC
4036 \end_layout
4038 \end_inset
4039 </cell>
4040 </row>
4041 <row>
4042 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
4043 \begin_inset Text
4045 \begin_layout Plain Layout
4046 sufamiturbo
4047 \end_layout
4049 \end_inset
4050 </cell>
4051 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
4052 \begin_inset Text
4054 \begin_layout Plain Layout
4055 Sufami Turbo
4056 \end_layout
4058 \end_inset
4059 </cell>
4060 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
4061 \begin_inset Text
4063 \begin_layout Plain Layout
4064 NTSC
4065 \end_layout
4067 \end_inset
4068 </cell>
4069 </row>
4070 </lyxtabular>
4072 \end_inset
4075 \end_layout
4077 \begin_layout Standard
4078 Frame rates are:
4079 \end_layout
4081 \begin_layout Standard
4082 \begin_inset Tabular
4083 <lyxtabular version="3" rows="3" columns="2">
4084 <features tabularvalignment="middle">
4085 <column alignment="center" valignment="top" width="0">
4086 <column alignment="center" valignment="top" width="0">
4087 <row>
4088 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
4089 \begin_inset Text
4091 \begin_layout Plain Layout
4092 Region
4093 \end_layout
4095 \end_inset
4096 </cell>
4097 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
4098 \begin_inset Text
4100 \begin_layout Plain Layout
4101 Framerate (fps)
4102 \end_layout
4104 \end_inset
4105 </cell>
4106 </row>
4107 <row>
4108 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
4109 \begin_inset Text
4111 \begin_layout Plain Layout
4113 \end_layout
4115 \end_inset
4116 </cell>
4117 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
4118 \begin_inset Text
4120 \begin_layout Plain Layout
4121 322445/6448
4122 \end_layout
4124 \end_inset
4125 </cell>
4126 </row>
4127 <row>
4128 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
4129 \begin_inset Text
4131 \begin_layout Plain Layout
4132 NTSC
4133 \end_layout
4135 \end_inset
4136 </cell>
4137 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
4138 \begin_inset Text
4140 \begin_layout Plain Layout
4141 10738636/178683
4142 \end_layout
4144 \end_inset
4145 </cell>
4146 </row>
4147 </lyxtabular>
4149 \end_inset
4152 \end_layout
4154 \begin_layout Subsection
4155 Member: port1
4156 \end_layout
4158 \begin_layout Standard
4159 Contains type of port #1 (as one line).
4160  Valid values are 'none', 'gamepad', 'multitap' and 'mouse'.
4161  If not present, defaults to 'gamepad'.
4162 \end_layout
4164 \begin_layout Subsection
4165 Member: port2
4166 \end_layout
4168 \begin_layout Standard
4169 Contains type of port #2 (as one line).
4170  Valid values are 'none', 'gamepad', 'multitap', 'mouse', 'superscope',
4171  'justifier' and 'justifiers'.
4172  If not present, defaults to 'none'.
4173 \end_layout
4175 \begin_layout Subsection
4176 Member: gamename
4177 \end_layout
4179 \begin_layout Standard
4180 Contains name of the game (as one line).
4181 \end_layout
4183 \begin_layout Subsection
4184 Member: authors
4185 \end_layout
4187 \begin_layout Standard
4188 Contains authors, one per line.
4189  Part before '|' is the full name, part after is the nickname.
4190 \end_layout
4192 \begin_layout Subsection
4193 Member: systemid
4194 \end_layout
4196 \begin_layout Standard
4197 Always 
4198 \begin_inset Quotes eld
4199 \end_inset
4201 lsnes-rr1
4202 \begin_inset Quotes erd
4203 \end_inset
4205  (one line).
4206  Used to reject other saves.
4207 \end_layout
4209 \begin_layout Subsection
4210 Member: controlsversion
4211 \end_layout
4213 \begin_layout Standard
4214 Always 
4215 \begin_inset Quotes eld
4216 \end_inset
4219 \begin_inset Quotes erd
4220 \end_inset
4222  (one line).
4223  Used to identify what controls are there.
4224 \end_layout
4226 \begin_layout Subsection
4227 Member: 
4228 \begin_inset Quotes eld
4229 \end_inset
4231 coreversion
4232 \begin_inset Quotes erd
4233 \end_inset
4236 \end_layout
4238 \begin_layout Standard
4239 Contains bsnes core version number (as one line).
4240 \end_layout
4242 \begin_layout Subsection
4243 Member: projectid
4244 \end_layout
4246 \begin_layout Standard
4247 Contains project ID (as one line).
4248  Used to identify if two movies are part of the same project.
4249 \end_layout
4251 \begin_layout Subsection
4252 Member: {rom,slota,slotb}{,xml}.sha256
4253 \end_layout
4255 \begin_layout Standard
4256 Contains SHA-256 of said ROM or ROM mapping file (as one line).
4257  Absent if corresponding file is absent.
4258 \end_layout
4260 \begin_layout Subsection
4261 Member: moviesram.<name>
4262 \end_layout
4264 \begin_layout Standard
4265 Raw binary startup SRAM of kind <name>.
4266  Only present in savestates and movies starting from SRAM.
4267 \end_layout
4269 \begin_layout Subsection
4270 Member: saveframe
4271 \end_layout
4273 \begin_layout Standard
4274 Contains frame number (as one line) of frame movie was saved on.
4275  Only present in savestates.
4276 \end_layout
4278 \begin_layout Subsection
4279 Member: lagcounter
4280 \end_layout
4282 \begin_layout Standard
4283 Current value of lag counter (as one line).
4284  Only present in savestates.
4285 \end_layout
4287 \begin_layout Subsection
4288 Member: pollcounters
4289 \end_layout
4291 \begin_layout Standard
4292 Contains poll counters (currently 100 of them), one per line.
4293  Each line is raw poll count if DRDY is set for it.
4294  Otherwise it is negative poll count minus one.
4295  Only present in savestates.
4296 \end_layout
4298 \begin_layout Subsection
4299 Member: hostmemory
4300 \end_layout
4302 \begin_layout Standard
4303 Raw binary dump of host memory.
4304  Only present in savestates.
4305 \end_layout
4307 \begin_layout Subsection
4308 Member: savestate
4309 \end_layout
4311 \begin_layout Standard
4312 The raw binary savestate itself.
4313  Savestate detection uses this file, only present in savestates.
4314 \end_layout
4316 \begin_layout Subsection
4317 Member: screenshot
4318 \end_layout
4320 \begin_layout Standard
4321 Screenshot of current frame.
4322  Only present in savestates.
4323  First 2 bytes are big-endian width of image, rest are 24-bit RGB image
4324  data.
4325  Height of image is inferred from the width and size of data.
4326 \end_layout
4328 \begin_layout Subsection
4329 Member: sram.<name>
4330 \end_layout
4332 \begin_layout Standard
4333 Raw binary SRAM of kind <name> at time of savestate.
4334  Only present in savestates.
4335 \end_layout
4337 \begin_layout Subsection
4338 Member: input
4339 \end_layout
4341 \begin_layout Standard
4342 The actual input track, one line per subframe (blank lines are skipped).
4343 \end_layout
4345 \begin_layout Itemize
4346 If the first byte of each line is '.', ' ', <tab> or '|', then the line is
4347  part of same frame as previous, otherwise it starts a new frame.
4348 \end_layout
4350 \begin_layout Itemize
4351 First subframe must start a new frame.
4352 \end_layout
4354 \begin_layout Standard
4355 Length of movie in frames is number of lines in input file that start a
4356  new frame.
4357 \end_layout
4359 \begin_layout Subsection
4360 Member: rerecords
4361 \end_layout
4363 \begin_layout Standard
4364 Contains textual base-10 rerecord count (as one line; emulator just writes
4365  this, it doesn't read it) + 1.
4366 \end_layout
4368 \begin_layout Subsection
4369 Member: rrdata
4370 \end_layout
4372 \begin_layout Standard
4373 This member stores set of load IDs.
4374  There is one load ID per rerecord (plus one corresponding to start of project).
4375 \end_layout
4377 \begin_layout Itemize
4378 This member constists of concatenation of records
4379 \end_layout
4381 \begin_layout Itemize
4382 Each record is 2-36 bytes long and can represent 1-16,843,009 consequtive
4383  IDs.
4384 \end_layout
4386 \begin_layout Itemize
4387 IDs are interpretted as 256-bit big-endian integers with warparound.
4388 \end_layout
4390 \begin_layout Itemize
4391 Initial predicted ID is all zeroes.
4392 \end_layout
4394 \begin_layout Standard
4395 Format of each record is:
4396 \end_layout
4398 \begin_layout Itemize
4399 1 byte: Opcode byte.
4400  Bits 0-4 are prefix length (prefixlen), bits 5-6 are count length (countlen).
4401  Bit 7 is unused.
4402 \end_layout
4404 \begin_layout Itemize
4405 32-prefixlen bytes of ID.
4406 \end_layout
4408 \begin_layout Itemize
4409 countlen bytes of big-endian count (count).
4410 \end_layout
4412 \begin_layout Standard
4413 Records are processed as follows:
4414 \end_layout
4416 \begin_layout Itemize
4417 To form the first ID encoded by record, take the first prefixlen bytes predicted
4418  ID and append the read ID value to it.
4419  The result is the first ID encoded.
4420 \end_layout
4422 \begin_layout Itemize
4423 If countlen is 0, record encodes 1 ID.
4424 \end_layout
4426 \begin_layout Itemize
4427 If countlen is 1, record encodes 2+count IDs.
4428 \end_layout
4430 \begin_layout Itemize
4431 If countlen is 2, record encodes 258+count IDs.
4432 \end_layout
4434 \begin_layout Itemize
4435 If countlen is 3, record encodes 65794+count IDs.
4436 \end_layout
4438 \begin_layout Itemize
4439 The new predicted ID is the next ID after last one encoded by the record.
4440 \end_layout
4442 \begin_layout Standard
4443 The number of rerecords + 1 is equal to the sum of number of IDs encoded
4444  by all records.
4445 \end_layout
4447 \begin_layout Subsection
4448 Member: starttime.second
4449 \end_layout
4451 \begin_layout Standard
4452 Movie starting time, second part.
4453  Epoch is Unix epoch.
4454  Default is 1,000,000,000.
4455 \end_layout
4457 \begin_layout Subsection
4458 Member: starttime.subsecond
4459 \end_layout
4461 \begin_layout Standard
4462 Movie starting time, subsecond part.
4463  Unit is CPU clocks.
4464  Default is 0.
4465 \end_layout
4467 \begin_layout Subsection
4468 Member: savetime.second
4469 \end_layout
4471 \begin_layout Standard
4472 Movie saving time, second part.
4473  Default is starttime.second.
4474  Only present in savestates.
4475 \end_layout
4477 \begin_layout Subsection
4478 Member: savetime.subsecond
4479 \end_layout
4481 \begin_layout Standard
4482 Movie saving time, subsecond part.
4483  Default is starttime.subsecond.
4484  Only present in savestates.
4485 \end_layout
4487 \begin_layout Section
4488 Quick'n'dirty encode guide
4489 \end_layout
4491 \begin_layout Enumerate
4492 Start the emulator and load the movie file.
4493 \end_layout
4495 \begin_layout Enumerate
4496 Set large AVI option 'set-setting avi-large on'
4497 \end_layout
4499 \begin_layout Enumerate
4500 Enable dumping 'dump-avi tmpdump' 
4501 \end_layout
4503 \begin_layout Enumerate
4504 Unpause and let it run until you want to end dumping.
4505 \end_layout
4507 \begin_layout Enumerate
4508 Close the emulator (closing the window is the easiest way).
4509  Or use 'end-avi'.
4510 \end_layout
4512 \begin_layout Enumerate
4513 For each tmpdump*.avi file created, on command prompt, do 'x264 --crf 10
4514  -o tmpdump_<numbers>.mkv tmpdump_<numbers>.avi'.
4515 \end_layout
4517 \begin_layout Enumerate
4518 Do 'sox tmpdump.sox tmpdump.ogg rate -v 32000'
4519 \end_layout
4521 \begin_layout Enumerate
4522 Do 'mkvmerge -o tmpdump_video.mkv tmpdump_0000000.mkv + tmpdump_0000001.mkv
4523  + tmpdump_0000002.mkv' (list every tmpdump_<numbers>.mkv, with + in between).
4524 \end_layout
4526 \begin_layout Enumerate
4527 Do 'mkvmerge -o final.mkv tmpdump_video.mkv tmpdump.ogg'.
4528  Now final.mkv contains quick'n'dirty encode.
4529 \end_layout
4531 \begin_layout Section
4532 Axis configurations for some gamepad types:
4533 \end_layout
4535 \begin_layout Subsection
4536 XBox360 controller:
4537 \end_layout
4539 \begin_layout Standard
4540 Axes 2 and 5 (joystick<n>axis2 and joystick<n>axis5) should be set to pressure-+.
4541 \end_layout
4543 \begin_layout LyX-Code
4544 set-axis joystick0axis2 pressure-+
4545 \end_layout
4547 \begin_layout LyX-Code
4548 set-axis joystick0axis5 pressure-+
4549 \end_layout
4551 \begin_layout Itemize
4552 This is needed for SDL only.
4553  EVDEV sets those types correctly.
4554 \end_layout
4556 \begin_layout Subsection
4557 PS3 
4558 \begin_inset Quotes eld
4559 \end_inset
4561 sixaxis
4562 \begin_inset Quotes erd
4563 \end_inset
4565  controller:
4566 \end_layout
4568 \begin_layout Standard
4569 Axes 8-19 should be disabled.
4570 \end_layout
4572 \begin_layout LyX-Code
4573 set-axis joystick0axis8 disabled
4574 \end_layout
4576 \begin_layout LyX-Code
4577 set-axis joystick0axis9 disabled
4578 \end_layout
4580 \begin_layout LyX-Code
4581 set-axis joystick0axis10 disabled
4582 \end_layout
4584 \begin_layout LyX-Code
4585 set-axis joystick0axis11 disabled
4586 \end_layout
4588 \begin_layout LyX-Code
4589 set-axis joystick0axis12 disabled
4590 \end_layout
4592 \begin_layout LyX-Code
4593 set-axis joystick0axis13 disabled
4594 \end_layout
4596 \begin_layout LyX-Code
4597 set-axis joystick0axis14 disabled
4598 \end_layout
4600 \begin_layout LyX-Code
4601 set-axis joystick0axis15 disabled
4602 \end_layout
4604 \begin_layout LyX-Code
4605 set-axis joystick0axis16 disabled
4606 \end_layout
4608 \begin_layout LyX-Code
4609 set-axis joystick0axis17 disabled
4610 \end_layout
4612 \begin_layout LyX-Code
4613 set-axis joystick0axis18 disabled
4614 \end_layout
4616 \begin_layout LyX-Code
4617 set-axis joystick0axis19 disabled
4618 \end_layout
4620 \begin_layout Section
4621 Errata:
4622 \end_layout
4624 \begin_layout Subsection
4625 Problems from BSNES core:
4626 \end_layout
4628 \begin_layout Itemize
4629 The whole pending save stuff.
4630 \end_layout
4632 \begin_layout Itemize
4633 Lack of layer hiding.
4634 \end_layout
4636 \begin_layout Itemize
4637 It is slow (especially accuracy).
4638 \end_layout
4640 \begin_layout Itemize
4641 Firmwares can't be loaded from ZIP archives.
4642 \end_layout
4644 \begin_layout Subsection
4645 Other problems:
4646 \end_layout
4648 \begin_layout Itemize
4649 Modifiers don't work with pseudo-keys (SDL, EVDEV).
4650 \end_layout
4652 \begin_layout Itemize
4653 Audio for last dumped frame is not itself dumped.
4654 \end_layout
4656 \begin_layout Itemize
4657 Audio in UI is pretty bad in quality if game doesn't run at full speed.
4658 \end_layout
4660 \begin_layout Itemize
4661 AVI compression levels 10-18 are not compatible with AVISynth AVISource.
4662 \end_layout
4664 \begin_layout Itemize
4665 No menus, command based interface (SDL).
4666 \end_layout
4668 \begin_layout Itemize
4669 Long commands don't scroll.
4670 \end_layout
4672 \begin_layout Itemize
4673 Wxwidgets UI is still buggy.
4674 \end_layout
4676 \begin_layout Section
4677 Changelog:
4678 \end_layout
4680 \begin_layout Subsection
4681 rr0-beta1
4682 \end_layout
4684 \begin_layout Itemize
4685 Fix -Wall warnings
4686 \end_layout
4688 \begin_layout Itemize
4689 Fix dumper video corruption with levels 10-18.
4690 \end_layout
4692 \begin_layout Subsection
4693 rr0-beta2
4694 \end_layout
4696 \begin_layout Itemize
4697 Autofire
4698 \end_layout
4700 \begin_layout Itemize
4701 Lots of code cleanups
4702 \end_layout
4704 \begin_layout Itemize
4705 Lua interface to settings
4706 \end_layout
4708 \begin_layout Itemize
4709 Allow specifying AVI borders without Lua
4710 \end_layout
4712 \begin_layout Itemize
4713 Fix scaling if vscale > 1 and originx > 0 (left border exists)
4714 \end_layout
4716 \begin_layout Itemize
4717 on_snoop lua callback
4718 \end_layout
4720 \begin_layout Itemize
4721 Faster movie loading and saving.
4722 \end_layout
4724 \begin_layout Subsection
4725 rr0-beta3
4726 \end_layout
4728 \begin_layout Itemize
4729 Joystick support
4730 \end_layout
4732 \begin_layout Subsection
4733 rr0-beta4
4734 \end_layout
4736 \begin_layout Itemize
4737 Fix multi-buttons
4738 \end_layout
4740 \begin_layout Itemize
4741 Save jukebox functionality.
4742 \end_layout
4744 \begin_layout Subsection
4745 rr0-beta5
4746 \end_layout
4748 \begin_layout Itemize
4749 Try to fix some nasty failing movie load edge cases
4750 \end_layout
4752 \begin_layout Itemize
4753 Allow specifying scripts to run on command line.
4754 \end_layout
4756 \begin_layout Subsection
4757 rr0-beta6
4758 \end_layout
4760 \begin_layout Itemize
4761 Major source code reorganization.
4762 \end_layout
4764 \begin_layout Itemize
4765 Backup savestates before overwriting.
4766 \end_layout
4768 \begin_layout Itemize
4769 Don't crash if loading initial state fails.
4770 \end_layout
4772 \begin_layout Subsection
4773 rr0-beta7
4774 \end_layout
4776 \begin_layout Itemize
4777 Fix firmware lookup
4778 \end_layout
4780 \begin_layout Itemize
4781 Fix author name parsing
4782 \end_layout
4784 \begin_layout Itemize
4785 Fix rerecord counting
4786 \end_layout
4788 \begin_layout Itemize
4789 (SDL) Print messages to console if SDL is uninitialized
4790 \end_layout
4792 \begin_layout Itemize
4793 Add movieinfo program
4794 \end_layout
4796 \begin_layout Itemize
4797 Fix loading movies starting from SRAM.
4798 \end_layout
4800 \begin_layout Subsection
4801 rr0-beta8
4802 \end_layout
4804 \begin_layout Itemize
4805 Add support for unattended dumping
4806 \end_layout
4808 \begin_layout Itemize
4809 Fix compiling for Win32
4810 \end_layout
4812 \begin_layout Itemize
4813 Don't lock up if sound can't be initialized
4814 \end_layout
4816 \begin_layout Itemize
4817 Strip trailing CR from commands
4818 \end_layout
4820 \begin_layout Itemize
4821 Don't try to do dubious things in global ctors (fix crash on startup)
4822 \end_layout
4824 \begin_layout Subsection
4825 rr0-beta9
4826 \end_layout
4828 \begin_layout Itemize
4829 Small documentation tweaking
4830 \end_layout
4832 \begin_layout Itemize
4833 Fix make clean
4834 \end_layout
4836 \begin_layout Itemize
4837 Fix major bug in modifier matching
4838 \end_layout
4840 \begin_layout Subsection
4841 rr0-beta10
4842 \end_layout
4844 \begin_layout Itemize
4845 Lots of documentation fixes
4846 \end_layout
4848 \begin_layout Itemize
4849 Use dedicated callbacks for event backcomm., not commands.
4850 \end_layout
4852 \begin_layout Itemize
4853 Ensure that the watchdog is not hit when executing delayed reset.
4854 \end_layout
4856 \begin_layout Itemize
4857 Remove errant tab from joystick message.
4858 \end_layout
4860 \begin_layout Subsection
4861 rr0-beta11
4862 \end_layout
4864 \begin_layout Itemize
4865 Make autofire operate in absolute time, not linear time
4866 \end_layout
4868 \begin_layout Itemize
4869 Reinitialize controls when resuming from loadstate
4870 \end_layout
4872 \begin_layout Itemize
4873 Some more code cleanups
4874 \end_layout
4876 \begin_layout Itemize
4877 If Lua allocator fails, call OOM_panic()
4878 \end_layout
4880 \begin_layout Itemize
4881 Byte/word/dword/qword sized host memory write/read functions.
4882 \end_layout
4884 \begin_layout Itemize
4885 Dump at correct framerate if dumping interlaced NTSC (height=448).
4886 \end_layout
4888 \begin_layout Subsection
4889 rr0-beta12
4890 \end_layout
4892 \begin_layout Itemize
4893 Actually include the complete source code
4894 \end_layout
4896 \begin_layout Itemize
4897 Keep track of RTC
4898 \end_layout
4900 \begin_layout Subsection
4901 rr0-beta13
4902 \end_layout
4904 \begin_layout Itemize
4905 Document {save,start}time.{,sub}second.
4906 \end_layout
4908 \begin_layout Itemize
4909 Intercept time() from bsnes core.
4910 \end_layout
4912 \begin_layout Subsection
4913 rr0-beta14
4914 \end_layout
4916 \begin_layout Itemize
4917 Allow disabling time() interception (allow build on Mac OS X)
4918 \end_layout
4920 \begin_layout Itemize
4921 Use SDLMain on Mac OS X (make SDL not crash)
4922 \end_layout
4924 \begin_layout Itemize
4925 Disable delayed resets (just plain too buggy for now).
4926 \end_layout
4928 \begin_layout Itemize
4929 Code cleanups
4930 \end_layout
4932 \begin_layout Itemize
4933 Use 16-bit for graphics/video instead of 32-bit.
4934 \end_layout
4936 \begin_layout Itemize
4937 gui.rectangle/gui.pixel
4938 \end_layout
4940 \begin_layout Itemize
4941 gui.crosshair
4942 \end_layout
4944 \begin_layout Itemize
4945 New CSCD writer implementation.
4946 \end_layout
4948 \begin_layout Subsection
4949 rr0-beta15
4950 \end_layout
4952 \begin_layout Itemize
4953 Fix interaction of * and +.
4954 \end_layout
4956 \begin_layout Itemize
4957 Manual improvements
4958 \end_layout
4960 \begin_layout Itemize
4961 Use gettimeofday()/usleep(), these seem portable enough.
4962 \end_layout
4964 \begin_layout Itemize
4965 Move joystick axis manipulation to keymapper code.
4966 \end_layout
4968 \begin_layout Itemize
4969 Changes to how read-only works.
4970 \end_layout
4972 \begin_layout Itemize
4973 Refactor controller input code.
4974 \end_layout
4976 \begin_layout Subsection
4977 rr0-beta16
4978 \end_layout
4980 \begin_layout Itemize
4981 Fix mouseclick scale compensation.
4982 \end_layout
4984 \begin_layout Itemize
4985 Draw area boundaries correctly in SDL code.
4986 \end_layout
4988 \begin_layout Itemize
4989 gui.screenshot.
4990 \end_layout
4992 \begin_layout Itemize
4993 Fix CSCD output (buffer overrun and race condition).
4994 \end_layout
4996 \begin_layout Subsection
4997 rr0-beta17
4998 \end_layout
5000 \begin_layout Itemize
5001 JMD dumping support.
5002 \end_layout
5004 \begin_layout Itemize
5005 Allow unattended dumping to JMD.
5006 \end_layout
5008 \begin_layout Itemize
5009 Move to BSNES v083.
5010 \end_layout
5012 \begin_layout Itemize
5013 Switch back to 32-bit colors.
5014 \end_layout
5016 \begin_layout Itemize
5017 Add Lua function gui.color.
5018 \end_layout
5020 \begin_layout Itemize
5021 Use some new C++11 features in GCC 4.6.
5022 \end_layout
5024 \begin_layout Itemize
5025 Be prepared for core frequency changes.
5026 \end_layout
5028 \begin_layout Itemize
5029 Pass colors in one chunk from Lua.
5030 \end_layout
5032 \begin_layout Subsection
5033 rr0-beta18
5034 \end_layout
5036 \begin_layout Itemize
5037 New lua functions gui.line(), gui.status() and gui.circle(), memory.vma_count(),
5038  memory.read_vma() and memory.find_vma().
5039 \end_layout
5041 \begin_layout Itemize
5042 Numerious documentation fixups
5043 \end_layout
5045 \begin_layout Itemize
5046 RTC time format changed
5047 \end_layout
5049 \begin_layout Itemize
5050 Reformat flags display
5051 \end_layout
5053 \begin_layout Itemize
5054 Allow lua package name to be overridden
5055 \end_layout
5057 \begin_layout Itemize
5058 SDUMP (high-quality dumping).
5059 \end_layout
5061 \begin_layout Itemize
5062 Split platform support to plugins.
5063 \end_layout
5065 \begin_layout Itemize
5066 Make all sound plugins support basic sound commands
5067 \end_layout
5069 \begin_layout Itemize
5070 Support portaudio for sound.
5071 \end_layout
5073 \begin_layout Itemize
5074 Allow disable Lua/SDL searching.
5075 \end_layout
5077 \begin_layout Itemize
5078 Upconvert colors when copying lcscreen to screen.
5079 \end_layout
5081 \begin_layout Itemize
5082 Reorganize source tree.
5083 \end_layout
5085 \begin_layout Itemize
5086 Evdev joystick support.
5087 \end_layout
5089 \begin_layout Itemize
5090 Refactor more code into generic window code.
5091 \end_layout
5093 \begin_layout Subsection
5094 rr0-beta19
5095 \end_layout
5097 \begin_layout Itemize
5098 Refactor message handling.
5099 \end_layout
5101 \begin_layout Itemize
5102 Rework makefile
5103 \end_layout
5105 \begin_layout Itemize
5106 Documentation fixes
5107 \end_layout
5109 \begin_layout Itemize
5110 Finish pending saves before load/quit.
5111 \end_layout
5113 \begin_layout Itemize
5114 Wxwidgets graphics plugin.
5115 \end_layout
5117 \begin_layout Subsection
5118 rr0-beta20
5119 \end_layout
5121 \begin_layout Itemize
5122 Get rid of win32-crap.[ch]pp.
5123 \end_layout
5125 \begin_layout Itemize
5126 Move files around a lot.
5127 \end_layout
5129 \begin_layout Itemize
5130 Get rid of need for host C++ compiler.
5131 \end_layout
5133 \begin_layout Itemize
5134 Bsnes v084 core.
5135 \end_layout
5137 \begin_layout Itemize
5138 Refactor inter-component communication.
5139 \end_layout
5141 \begin_layout Itemize
5142 Fix zero luma.
5143 \end_layout
5145 \begin_layout Itemize
5146 Fix crash on multiline aliases.
5147 \end_layout
5149 \begin_layout Itemize
5150 Load/Save settings in wxwidgets gui.
5151 \end_layout
5153 \begin_layout Subsection
5154 rr0-beta21
5155 \end_layout
5157 \begin_layout Itemize
5158 Patch problems in bsnes core
5159 \end_layout
5161 \begin_layout Itemize
5162 SNES is little-endian, not big-endian!
5163 \end_layout
5165 \begin_layout Itemize
5166 Fix memory corruption in lcscreen::load()
5167 \end_layout
5169 \begin_layout Subsection
5170 rr0-beta22
5171 \end_layout
5173 \begin_layout Itemize
5174 Fix interpretting repeat counts in rrdata loading.
5175 \end_layout
5177 \begin_layout Itemize
5178 New lua callback: on_frame()
5179 \end_layout
5181 \begin_layout Itemize
5182 Remove calls to runtosave() that aren't supposed to be there
5183 \end_layout
5185 \begin_layout Itemize
5186 Lua function: movie.read_rtc()
5187 \end_layout
5189 \begin_layout Itemize
5190 Ignore src/fonts/font.cpp
5191 \end_layout
5193 \begin_layout Itemize
5194 Fix more bsnes core problems
5195 \end_layout
5197 \begin_layout Itemize
5198 Control bsnes random seeding
5199 \end_layout
5201 \begin_layout Itemize
5202 Pause-on-end
5203 \end_layout
5205 \begin_layout Itemize
5206 Some bsnes core debugging features (state dump and state hash)
5207 \end_layout
5209 \begin_layout Itemize
5210 Fix titlebar version number (no, the last version wasn't 'lsnes-0-beta21',
5211  it was 'lsnes rr0-beta21').
5212 \end_layout
5214 \begin_layout Subsection
5215 rr0-beta23
5216 \end_layout
5218 \begin_layout Itemize
5219 Fix memory corruption due to macro/field mixup
5220 \end_layout
5222 \begin_layout Itemize
5223 search-memory update
5224 \end_layout
5226 \begin_layout Itemize
5227 Allow direct-mapped framebuffer
5228 \end_layout
5230 \begin_layout Itemize
5231 SDL: Use SDL_ANYFORMAT if possible
5232 \end_layout
5234 \begin_layout Itemize
5235 SDMP2SOX: 2s delay modes.
5236 \end_layout
5238 \begin_layout Itemize
5239 Wxwidgets: Cleanups
5240 \end_layout
5242 \begin_layout Itemize
5243 Use sed -E, not sed -r.
5244  Fixes building on Mac OS X.
5245 \end_layout
5247 \begin_layout Itemize
5248 Wxwidgets: Save jukebox on exit
5249 \end_layout
5251 \begin_layout Itemize
5252 Fix RTC if using load-movie on savestate.
5253 \end_layout
5255 \begin_layout Itemize
5256 Fix crash related to full console mode.
5257 \end_layout
5259 \begin_layout Subsection
5260 rr0-beta24
5261 \end_layout
5263 \begin_layout Itemize
5264 Wxwidgets: Allow bringing application to foreground on Mac OS X.
5265 \end_layout
5267 \begin_layout Itemize
5268 Wxwidgets: Allow compiling on Mac OS X.
5269 \end_layout
5271 \begin_layout Itemize
5272 Use movie compare instead of movie hashing (faster save/load).
5273 \end_layout
5275 \begin_layout Itemize
5276 Lua: _SYSTEM table.
5277 \end_layout
5279 \begin_layout Subsection
5280 rr0-beta25
5281 \end_layout
5283 \begin_layout Itemize
5284 sdmp2sox: Pad soundtrack if using -l or -L.
5285 \end_layout
5287 \begin_layout Itemize
5288 sdmp2sox: Fix NTSC overscan.
5289 \end_layout
5291 \begin_layout Itemize
5292 sdmp2sox: Add AR correction mode.
5293 \end_layout
5295 \begin_layout Itemize
5296 call lua_close() when exiting.
5297 \end_layout
5299 \begin_layout Itemize
5300 Fix zip_writer bug causing warnings from info-zip and error from advzip.
5301 \end_layout
5303 \begin_layout Subsection
5304 rr0-beta26
5305 \end_layout
5307 \begin_layout Itemize
5308 Fix IPS patching code (use bsnes core IPS patcher).
5309 \end_layout
5311 \begin_layout Itemize
5312 Implement BPS patching (using bsnes core IPS patcher).
5313 \end_layout
5315 \begin_layout Itemize
5316 Add feature to load headered ROMs.
5317 \end_layout
5319 \begin_layout Subsection
5320 rr0-beta27
5321 \end_layout
5323 \begin_layout Itemize
5324 Show command names when showing keybindings
5325 \end_layout
5327 \begin_layout Subsection
5329 \end_layout
5331 \begin_layout Itemize
5332 Fix pause-on-end to be actually controllable
5333 \end_layout
5335 \begin_layout Itemize
5336 SDL: Poll all events in queue, not just first one (fixes slowness in command
5337  typing)
5338 \end_layout
5340 \begin_layout Itemize
5341 Wxwidgets: Fix ROM loading.
5342 \end_layout
5344 \begin_layout Subsection
5345 rr1-beta0
5346 \end_layout
5348 \begin_layout Itemize
5349 Lua: Add gui.textH, gui.textV, gui.textHV
5350 \end_layout
5352 \begin_layout Itemize
5353 Fix text colors on SDL on Mac OS X
5354 \end_layout
5356 \begin_layout Itemize
5357 Mode 'F' for finished in readonly mode.
5358 \end_layout
5360 \begin_layout Itemize
5361 Fix some WS errors.
5362 \end_layout
5364 \begin_layout Itemize
5365 Reliably pause after skip poll
5366 \end_layout
5368 \begin_layout Itemize
5369 Split UI and core into their own threads
5370 \end_layout
5372 \begin_layout Subsection
5373 rr1-beta1
5374 \end_layout
5376 \begin_layout Itemize
5377 Remove leftover dummy SRAM slot
5378 \end_layout
5380 \begin_layout Itemize
5381 Fix controller numbers.
5382 \end_layout
5384 \begin_layout Subsection
5385 rr1-beta2
5386 \end_layout
5388 \begin_layout Itemize
5389 Fix lsnes-dumpavi after interface change.
5390 \end_layout
5392 \begin_layout Itemize
5393 Also give BSNES patches for v085.
5394 \end_layout
5396 \begin_layout Itemize
5397 Pack movie data in memory.
5398 \end_layout
5400 \begin_layout Subsection
5401 rr1-beta3
5402 \end_layout
5404 \begin_layout Itemize
5405 Fix framecount/length given when loading movies.
5406 \end_layout
5408 \begin_layout Itemize
5409 Controller command memory leak fixes.
5410 \end_layout
5412 \begin_layout Itemize
5413 Don't leak palette if freeing screen object.
5414 \end_layout
5416 \begin_layout Subsection
5417 rr1-beta4
5418 \end_layout
5420 \begin_layout Itemize
5421 Detect revisions.
5422 \end_layout
5424 \begin_layout Itemize
5425 Wxwidgets: Allow controlling dumper from the menu.
5426 \end_layout
5428 \begin_layout Subsection
5429 rr1-beta5
5430 \end_layout
5432 \begin_layout Itemize
5433 Rewrite parts of manual
5434 \end_layout
5436 \begin_layout Itemize
5437 Lua: Make it work with Lua 5.2.
5438 \end_layout
5440 \begin_layout Subsection
5441 rr1-beta6
5442 \end_layout
5444 \begin_layout Itemize
5445 Win32: Fix compile errors.
5446 \end_layout
5448 \begin_layout Subsection
5449 rr1-beta7
5450 \end_layout
5452 \begin_layout Itemize
5453 Refactor controller input code.
5454 \end_layout
5456 \begin_layout Itemize
5457 Fix crash when using command line on SDL / Mac OS X.
5458 \end_layout
5460 \begin_layout Subsection
5461 rr1-beta8
5462 \end_layout
5464 \begin_layout Itemize
5465 Delete core/coroutine (obsolete)
5466 \end_layout
5468 \begin_layout Itemize
5469 Lag input display by one frame.
5470 \end_layout
5472 \begin_layout Itemize
5473 Rewind movie to beginning function.
5474 \end_layout
5476 \begin_layout Itemize
5477 Fix wrong frame number reported to Lua when repainting after loadstate
5478 \end_layout
5480 \begin_layout Itemize
5481 Support UI editing of jukebox
5482 \end_layout
5484 \begin_layout Itemize
5485 Wxwidgets: Save settings on exit.
5486 \end_layout
5488 \begin_layout Itemize
5489 Support ${project} for filenames
5490 \end_layout
5492 \begin_layout Itemize
5493 SDL: Fix command history
5494 \end_layout
5496 \begin_layout Subsection
5497 rr1-beta9
5498 \end_layout
5500 \begin_layout Itemize
5501 Fix some order-of-global-ctor bugs.
5502 \end_layout
5504 \begin_layout Subsection
5505 rr1-beta10
5506 \end_layout
5508 \begin_layout Itemize
5509 Fix crashes when quitting on Win32.
5510 \end_layout
5512 \begin_layout Subsection
5513 rr1-beta11
5514 \end_layout
5516 \begin_layout Itemize
5517 EVDEV: Queue keypresses from joystick, don't send directly
5518 \end_layout
5520 \begin_layout Itemize
5521 Wxwidgets: Load-Preserve that actually works.
5522 \end_layout
5524 \begin_layout Subsection
5525 rr1-beta12
5526 \end_layout
5528 \begin_layout Itemize
5529 Wxwidgets: GUI for memory search.
5530 \end_layout
5532 \begin_layout Itemize
5533 Warn about using synchronous queue in UI callback.
5534 \end_layout
5536 \begin_layout Subsection
5537 rr1-beta13
5538 \end_layout
5540 \begin_layout Itemize
5541 Remember last saved file for each ROM
5542 \end_layout
5544 \begin_layout Itemize
5545 Support MT dumping via boost.
5546 \end_layout
5548 \begin_layout Itemize
5549 Lua: input.raw
5550 \end_layout
5552 \begin_layout Itemize
5553 Lua: input.keyhook
5554 \end_layout
5556 \begin_layout Itemize
5557 Make mouse be ordinary input instead of special-casing
5558 \end_layout
5560 \begin_layout Itemize
5561 SDL: Don't screw up commands with NUL codepoints.
5562 \end_layout
5564 \begin_layout Subsection
5565 rr1-beta14
5566 \end_layout
5568 \begin_layout Itemize
5569 Merge status panel and main window
5570 \end_layout
5572 \begin_layout Itemize
5573 True movie slot support (the rest of it)
5574 \end_layout
5576 \begin_layout Itemize
5577 SDL: Fix compilation error
5578 \end_layout
5580 \begin_layout Itemize
5581 Elminate cross calls in dump menu code.
5582 \end_layout
5584 \begin_layout Subsection
5585 rr1-beta15
5586 \end_layout
5588 \begin_layout Itemize
5589 Cancel pending saves command
5590 \end_layout
5592 \begin_layout Itemize
5593 Wxwidgets: Code refactoring
5594 \end_layout
5596 \begin_layout Itemize
5597 Wxwidgets: Fix system -> reset
5598 \end_layout
5600 \begin_layout Itemize
5601 Wxwidgets: Read watch expressions in the right thread
5602 \end_layout
5604 \begin_layout Subsection
5605 rr1-beta16
5606 \end_layout
5608 \begin_layout Itemize
5609 Wxwidgets: Don't prompt for member when running Lua script (Lua doesn't
5610  support that).
5611 \end_layout
5613 \begin_layout Itemize
5614 Wxwidgets: 128 -> 1024 Autohold slots (in case more are needed).
5615 \end_layout
5617 \begin_layout Itemize
5618 Don't append trailing '-' to prefix when saving movie.
5619 \end_layout
5621 \begin_layout Itemize
5622 Fix ROM/savestate handling (don't let user mismatch ROM and savestates).
5623 \end_layout
5625 \begin_layout Subsection
5627 \end_layout
5629 \begin_layout Itemize
5630 Document memory watch syntax.
5631 \end_layout
5633 \begin_layout Subsection
5634 rr1-delta1
5635 \end_layout
5637 \begin_layout Itemize
5638 Fix unattended dumping (lsnes-dumpavi)
5639 \end_layout
5641 \begin_layout Itemize
5642 Support RAW dumping
5643 \end_layout
5645 \begin_layout Itemize
5646 Use adv_dumper instead of the old interface in lsnes-dumpavi (changes syntax)
5647 \end_layout
5649 \begin_layout Itemize
5650 Add option to control sample rate preturbation in AVI dumper
5651 \end_layout
5653 \begin_layout Subsection
5654 rr1-delta2
5655 \end_layout
5657 \begin_layout Itemize
5658 Wxwidgets: Fix dumper submodes
5659 \end_layout
5661 \begin_layout Itemize
5662 Set core controller types before loadstate
5663 \end_layout
5665 \begin_layout Subsection
5666 rr1-delta2epsilon1
5667 \end_layout
5669 \begin_layout Itemize
5670 Fix compiling with bsnes v086.
5671 \end_layout
5673 \begin_layout Subsection
5674 rr1-delta3
5675 \end_layout
5677 \begin_layout Itemize
5678 Don't prompt before quitting
5679 \end_layout
5681 \begin_layout Itemize
5682 Start unpaused, preserve pause/unpause over load.
5683 \end_layout
5685 \begin_layout Itemize
5686 Try to autodetect if ROM is headered.
5687 \end_layout
5689 \begin_layout Itemize
5690 Wxwidgets: Only bring up ROM patching screen if specifically requested.
5691 \end_layout
5693 \begin_layout Itemize
5694 Allow configuring some hotkeys.
5695 \end_layout
5697 \begin_layout Subsection
5698 rr1-delta4
5699 \end_layout
5701 \begin_layout Itemize
5702 Lots of code cleanups
5703 \end_layout
5705 \begin_layout Itemize
5706 Fix JMD compression (JMD dumping was broken)
5707 \end_layout
5709 \begin_layout Itemize
5710 Don't crash if Lua C function throws an exception.
5711 \end_layout
5713 \begin_layout Itemize
5714 Support bitmap drawing in Lua.
5715 \end_layout
5717 \begin_layout Itemize
5718 Fix bsnes v085/v086 patches.
5719 \end_layout
5721 \begin_layout Itemize
5722 Improve stability on win32.
5723 \end_layout
5725 \begin_layout Subsection
5726 rr1-delta4epsilon1
5727 \end_layout
5729 \begin_layout Itemize
5730 Don't corrupt movie if movie length is integer multiple of frames per page.
5731 \end_layout
5733 \begin_layout Subsection
5734 rr1-delta5
5735 \end_layout
5737 \begin_layout Itemize
5738 New Lua hooks: on_rewind, on_frame_emulated, on_idle, on_timer
5739 \end_layout
5741 \begin_layout Itemize
5742 New Lua functions: emulator_ready(), utime(), set_idle_timeout(), set_timer_time
5743 out(), bit.extract(), bit.value(), input.geta(), input.seta() and input.controllertyp
5745 \end_layout
5747 \begin_layout Itemize
5748 Wxwidgets: Fix internal focus lost (hotkeys stop working)
5749 \end_layout
5751 \begin_layout Itemize
5752 Wxwidgets: Fix broken modifiers
5753 \end_layout
5755 \begin_layout Itemize
5756 on_paint has parameter now.
5757 \end_layout
5759 \begin_layout Itemize
5760 Optional initital fill for bitmaps
5761 \end_layout
5763 \begin_layout Itemize
5764 Fix palette changing.
5765 \end_layout
5767 \begin_layout Itemize
5768 Optimize rendering a bit.
5769 \end_layout
5771 \begin_layout Itemize
5772 Bsnes v087 support.
5773 \end_layout
5775 \begin_layout Subsection
5776 rr1-delta5epsilon1
5777 \end_layout
5779 \begin_layout Itemize
5780 Movieinfo: Fix display of port #2 type.
5781 \end_layout
5783 \begin_layout Itemize
5784 Call on_input() after loadstate.
5785 \end_layout
5787 \begin_layout Subsection
5788 rr1-delta5epsilon2
5789 \end_layout
5791 \begin_layout Itemize
5792 Fix writing port2 data to movie.
5793 \end_layout
5795 \begin_layout Itemize
5796 Fix SRAM handling with Bsnes v087.
5797 \end_layout
5799 \begin_layout Subsection
5800 rr1-delta6
5801 \end_layout
5803 \begin_layout Itemize
5804 Library loading support
5805 \end_layout
5807 \begin_layout Itemize
5808 Built-in TSCC encoder
5809 \end_layout
5811 \begin_layout Itemize
5812 Hi-color (256T colors) dumping.
5813 \end_layout
5815 \begin_layout Itemize
5816 Dump over TCP/IP(v6)
5817 \end_layout
5819 \begin_layout Itemize
5820 Hidable status panel
5821 \end_layout
5823 \begin_layout Itemize
5824 Turbo toggle/hold
5825 \end_layout
5827 \begin_layout Itemize
5828 Adjustable sound volume
5829 \end_layout
5831 \begin_layout Itemize
5832 Screen scaling
5833 \end_layout
5835 \begin_layout Itemize
5836 Allow DnD into filename boxes
5837 \end_layout
5839 \begin_layout Itemize
5840 Configurable paths
5841 \end_layout
5843 \begin_layout Itemize
5844 Portaudio: Fix speaker popping at start
5845 \end_layout
5847 \begin_layout Itemize
5848 Lots of UI changes
5849 \end_layout
5851 \begin_layout Itemize
5852 Speed adjustment menu
5853 \end_layout
5855 \begin_layout Itemize
5856 Win32 joystick support
5857 \end_layout
5859 \begin_layout Itemize
5860 Lua: gui.rainbow and gui.box
5861 \end_layout
5863 \begin_layout Itemize
5864 Split key lists into classes (the key list was large!)
5865 \end_layout
5867 \begin_layout Itemize
5868 More save slots support
5869 \end_layout
5871 \begin_layout Itemize
5872 Wxwidgets (wxJoystick) joystick support
5873 \end_layout
5875 \begin_layout Subsection
5876 rr1-delta7
5877 \end_layout
5879 \begin_layout Itemize
5880 Lots of internal joystick refactoring
5881 \end_layout
5883 \begin_layout Itemize
5884 Evdev: Add mapping for BTN_TOOL_QUINTTAP
5885 \end_layout
5887 \begin_layout Itemize
5888 Wxwidgets: Settings mode (open settings without ROM)
5889 \end_layout
5891 \begin_layout Itemize
5892 Wxwidgets: Prompt key to use option
5893 \end_layout
5895 \begin_layout Itemize
5896 Wxwidgets: Fix crash if key goes away underneath
5897 \end_layout
5899 \begin_layout Itemize
5900 Wxwidgets: Fix mouse position in presence of scaling
5901 \end_layout
5903 \begin_layout Itemize
5904 AVI dumper: Mode 4 (high-quality resampling to common rate using SRC)
5905 \end_layout
5907 \begin_layout Itemize
5908 Wxwidgets: Redesign hotkeys dialog to avoid tree control (tree control doesn't
5909  seem to work well on WinXP)
5910 \end_layout
5912 \begin_layout Itemize
5913 Start paused option.
5914 \end_layout
5916 \begin_layout Subsection
5917 rr1-delta7epsilon1
5918 \end_layout
5920 \begin_layout Itemize
5921 AVI: ZMBV support
5922 \end_layout
5924 \begin_layout Itemize
5925 lsnes-dumpavi: Start Lua before starting dumper
5926 \end_layout
5928 \begin_layout Itemize
5929 AVI: Fix secondary audio in mode 4.
5930 \end_layout
5932 \begin_layout Subsection
5933 rr1-delta7epsilon2
5934 \end_layout
5936 \begin_layout Itemize
5937 AVI: Refactor ZMBV a bit.
5938 \end_layout
5940 \begin_layout Itemize
5941 Fix error reading analog values from movie file
5942 \end_layout
5944 \begin_layout Subsection
5945 rr1-delta8
5946 \end_layout
5948 \begin_layout Itemize
5949 Delayed reset support
5950 \end_layout
5952 \begin_layout Itemize
5953 Lua: memory.hash_region
5954 \end_layout
5956 \begin_layout Subsection
5957 rr1-delta8epsilon1
5958 \end_layout
5960 \begin_layout Itemize
5961 Rework the build system
5962 \end_layout
5964 \begin_layout Itemize
5965 Typing input support
5966 \end_layout
5968 \begin_layout Itemize
5969 Fix building with bsnes v086 and v087.
5970 \end_layout
5972 \begin_layout Itemize
5973 SDL: Save settings on exit
5974 \end_layout
5976 \begin_layout Itemize
5977 SDL: Command to enter command line mode with given command.
5978 \end_layout
5980 \begin_layout Itemize
5981 SDL: More advanced command editing.
5982 \end_layout
5984 \end_body
5985 \end_document