lsnes-dumpavi: Change order of dumper startup and lua startup
[lsnes.git] / manual.lyx
blob7a8e150069a65d048547b2d8a9679c28158e6518
1 #LyX 2.0 created this file. For more info see http://www.lyx.org/
2 \lyxformat 413
3 \begin_document
4 \begin_header
5 \textclass article
6 \use_default_options true
7 \maintain_unincluded_children false
8 \language finnish
9 \language_package default
10 \inputencoding auto
11 \fontencoding global
12 \font_roman default
13 \font_sans default
14 \font_typewriter default
15 \font_default_family default
16 \use_non_tex_fonts false
17 \font_sc false
18 \font_osf false
19 \font_sf_scale 100
20 \font_tt_scale 100
22 \graphics default
23 \default_output_format default
24 \output_sync 0
25 \bibtex_command default
26 \index_command default
27 \paperfontsize default
28 \use_hyperref false
29 \papersize default
30 \use_geometry false
31 \use_amsmath 1
32 \use_esint 1
33 \use_mhchem 1
34 \use_mathdots 1
35 \cite_engine basic
36 \use_bibtopic false
37 \use_indices false
38 \paperorientation portrait
39 \suppress_date false
40 \use_refstyle 1
41 \index Hakusana
42 \shortcut idx
43 \color #008000
44 \end_index
45 \secnumdepth 3
46 \tocdepth 3
47 \paragraph_separation indent
48 \paragraph_indentation default
49 \quotes_language english
50 \papercolumns 1
51 \papersides 1
52 \paperpagestyle default
53 \tracking_changes false
54 \output_changes false
55 \html_math_output 0
56 \html_css_as_file 0
57 \html_be_strict false
58 \end_header
60 \begin_body
62 \begin_layout Section
63 Introduction
64 \end_layout
66 \begin_layout Standard
67 lsnes is SNES rerecording emulator based on bsnes core.
68 \end_layout
70 \begin_layout Section
71 Dependencies
72 \end_layout
74 \begin_layout Enumerate
75 bsnes libsnes
76 \end_layout
78 \begin_deeper
79 \begin_layout Enumerate
80 v084 or 085
81 \end_layout
83 \begin_layout Enumerate
84 accuracy or compatiblity core.
85 \end_layout
87 \begin_layout Enumerate
88 Patched version (using included 6 patches)
89 \end_layout
91 \end_deeper
92 \begin_layout Enumerate
93 Zlib
94 \end_layout
96 \begin_layout Enumerate
97 boost_iostreams
98 \end_layout
100 \begin_layout Enumerate
101 boost_filesystem
102 \end_layout
104 \begin_layout Enumerate
105 boost_thread
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 std::thread and co (for threaded dumper only, not needed if std::thread
130  is available)
131 \end_layout
133 \begin_layout Enumerate
134 Lua (if Lua support is needed).
135 \end_layout
137 \begin_layout Itemize
138 Version 5.1.X or 5.2X.
139 \end_layout
141 \begin_layout Section
142 Building
143 \end_layout
145 \begin_layout Standard
146 Building is via makefile, the following options are available:
147 \end_layout
149 \begin_layout Itemize
150 CROSS_PREFIX=<prefix>
151 \end_layout
153 \begin_deeper
154 \begin_layout Itemize
155 Prefix to apply to commands when building executables / object files for
156  the target architecture.
158 \end_layout
160 \begin_layout Itemize
161 Default is blank.
162 \end_layout
164 \end_deeper
165 \begin_layout Itemize
166 CC=<name>
167 \end_layout
169 \begin_deeper
170 \begin_layout Itemize
171 Name of C++ compiler.
172 \end_layout
174 \begin_layout Itemize
175 CROSS_PREFIX is prepended if compiling for target architecture.
176 \end_layout
178 \begin_layout Itemize
179 This needs to be at least GCC 4.6.
180 \end_layout
182 \begin_layout Itemize
183 Set to 'g++-mp-4.6' if compiling on Mac OS X using GCC 4.6 from Macports.
184 \end_layout
186 \begin_layout Itemize
187 Default is 'g++'.
188 \end_layout
190 \end_deeper
191 \begin_layout Itemize
192 HOSTCC=<name>
193 \end_layout
195 \begin_deeper
196 \begin_layout Itemize
197 Name of host C++ compiler.
198 \end_layout
200 \begin_layout Itemize
201 Default is value of 'CC' option.
202 \end_layout
204 \end_deeper
205 \begin_layout Itemize
206 USER_HOSTCCFLAGS=<flags>:
207 \end_layout
209 \begin_deeper
210 \begin_layout Itemize
211 Compiler flags to pass when compiling/linking for host architecture.
212 \end_layout
214 \begin_layout Itemize
215 Default is blank.
216 \end_layout
218 \end_deeper
219 \begin_layout Itemize
220 USER_CFLAGS=<flags>
221 \end_layout
223 \begin_deeper
224 \begin_layout Itemize
225 Extra flags to pass when compiling for target architecture
226 \end_layout
228 \begin_layout Itemize
229 Default is blank.
230 \end_layout
232 \end_deeper
233 \begin_layout Itemize
234 USER_LDFLAGS=<flags>: 
235 \end_layout
237 \begin_deeper
238 \begin_layout Itemize
239 Extra flags to pass when linking for target architecture.
240 \end_layout
242 \begin_layout Itemize
243 Default is blank.
244 \end_layout
246 \end_deeper
247 \begin_layout Itemize
248 USER_PLATFORM_CFLAGS=<flags>
249 \end_layout
251 \begin_deeper
252 \begin_layout Itemize
253 Extra flags to pass when compiling files using platform-dependent code for
254  target architecture.
255 \end_layout
257 \begin_layout Itemize
258 Default is blank.
259 \end_layout
261 \end_deeper
262 \begin_layout Itemize
263 USER_PLATFORM_LDFLAGS=<flags>
264 \end_layout
266 \begin_deeper
267 \begin_layout Itemize
268 Extra flags to pass when linking files using platform-dependent code for
269  target architecture.
270 \end_layout
272 \begin_layout Itemize
273 Default is blank.
274 \end_layout
276 \end_deeper
277 \begin_layout Itemize
278 FONT_SRC=<file>
279 \end_layout
281 \begin_deeper
282 \begin_layout Itemize
283 Set the font file to use.
284 \end_layout
286 \begin_layout Itemize
287 Currently the valid values are:
288 \end_layout
290 \begin_deeper
291 \begin_layout Itemize
292 cp437.hex: Standard VGA font (256 characters).
293 \end_layout
295 \begin_layout Itemize
296 unifontfull-5.1.20080820.hex: GNU unifont (covers most of Unicode BMP)
297 \end_layout
299 \end_deeper
300 \begin_layout Itemize
301 Default is 'unifontfull-5.1.20080820.hex'
302 \end_layout
304 \end_deeper
305 \begin_layout Itemize
306 LUA=<package>
307 \end_layout
309 \begin_deeper
310 \begin_layout Itemize
311 Package to use for Lua support.
312 \end_layout
314 \begin_layout Itemize
315 Usually valid value is 'lua' or 'lua5.1'.
316 \end_layout
318 \begin_layout Itemize
319 Default is not to build Lua support.
320 \end_layout
322 \end_deeper
323 \begin_layout Itemize
324 THREADS=<value>
325 \end_layout
327 \begin_deeper
328 \begin_layout Itemize
329 Override platform default for dumper threading support.
330 \end_layout
332 \begin_layout Itemize
333 Threading is default on Linux.
334 \end_layout
336 \begin_layout Itemize
337 'YES' tries to use threading (std::thread).
338 \end_layout
340 \begin_layout Itemize
341 'BOOST' tries to use threading (boost::thread).
342 \end_layout
344 \begin_layout Itemize
345 'NO' disables threading.
346 \end_layout
348 \begin_layout Itemize
349 Note: This has absolutely nothing to do with platform threading.
350 \end_layout
352 \end_deeper
353 \begin_layout Itemize
354 BSNES_IS_COMPAT=<anything>
355 \end_layout
357 \begin_deeper
358 \begin_layout Itemize
359 Signals that BSNES core used is compatiblity core, not accuracy core.
360 \end_layout
362 \begin_layout Itemize
363 Default is to assume accuracy core.
364 \end_layout
366 \end_deeper
367 \begin_layout Itemize
368 SECRET_RABBIT_CODE=<anything>
369 \end_layout
371 \begin_deeper
372 \begin_layout Itemize
373 Signals that SRC (a.k.a.
374  libsamplerate) should be used for high-quality samplerate conversions.
375 \end_layout
377 \end_deeper
378 \begin_layout Itemize
379 JOYSTICK=<implementation>
380 \end_layout
382 \begin_deeper
383 \begin_layout Itemize
384 Set joystick implementation.
385  Valid values are:
386 \end_layout
388 \begin_deeper
389 \begin_layout Itemize
390 SDL: Use SDL for joystick (requires SDL graphics)
391 \end_layout
393 \begin_layout Itemize
394 EVDEV: Use EVDEV for joystick (Linux only).
395 \end_layout
397 \begin_layout Itemize
398 WIN32MM: Use Win32mm for joystick (Windows only).
399 \end_layout
401 \begin_layout Itemize
402 WXWIDGETS: Use Wxwidgets for joystick (requires WXWIDGETS graphics)
403 \end_layout
405 \begin_layout Itemize
406 DUMMY: Disable joystick support.
407 \end_layout
409 \end_deeper
410 \begin_layout Itemize
411 Default is SDL.
412 \end_layout
414 \end_deeper
415 \begin_layout Itemize
416 SOUND=<implementation>
417 \end_layout
419 \begin_deeper
420 \begin_layout Itemize
421 Set sound implementation.
422  Valid values are:
423 \end_layout
425 \begin_deeper
426 \begin_layout Itemize
427 SDL: Use SDL for sound (requires SDL graphics)
428 \end_layout
430 \begin_layout Itemize
431 PORTAUDIO: Use Portaudio for sound.
432 \end_layout
434 \begin_layout Itemize
435 DUMMY: Disable sound support
436 \end_layout
438 \end_deeper
439 \begin_layout Itemize
440 Default is SDL.
441 \end_layout
443 \end_deeper
444 \begin_layout Itemize
445 GRAPHICS=<implementation>
446 \end_layout
448 \begin_deeper
449 \begin_layout Itemize
450 Set windowing library to use.
451  Valid values are:
452 \end_layout
454 \begin_deeper
455 \begin_layout Itemize
456 SDL: Use SDL for graphics
457 \end_layout
459 \begin_layout Itemize
460 WXWIDGETS: Use wxWidgets for graphics.
461 \end_layout
463 \end_deeper
464 \begin_layout Itemize
465 Default is SDL.
466 \end_layout
468 \end_deeper
469 \begin_layout Section
470 Command line options
471 \end_layout
473 \begin_layout Subsection
474 ROM options
475 \end_layout
477 \begin_layout Standard
478 <kind> in the following can be one of:
479 \end_layout
481 \begin_layout Itemize
482 rom: Cartridge ROM (BIOS for special carts).
483  This is required.
484 \end_layout
486 \begin_layout Itemize
487 bsx: BS-X (non-slotted) Game flash ROM.
488 \end_layout
490 \begin_layout Itemize
491 bsxslotted: BS-X (slotted) Game flash ROM.
492 \end_layout
494 \begin_layout Itemize
495 dmg: DMG game ROM
496 \end_layout
498 \begin_layout Itemize
499 slot-a: Sufami Turbo Slot A ROM
500 \end_layout
502 \begin_layout Itemize
503 slot-b: Sufami Turbo Slot B ROM
504 \end_layout
506 \begin_layout Subsubsection
507 --<kind>=<file> (lsnes/SDL, lsnes-avidump)
508 \end_layout
510 \begin_layout Standard
511 Load <file> as specified ROM (SFC/BS/DMG/ST file format).
512 \end_layout
514 \begin_layout Subsubsection
515 --<kind>-xml=<file> (lsnes/SDL, lsnes-avidump)
516 \end_layout
518 \begin_layout Standard
519 Override hardware detection for ROM, reading the values from <file> (BSNES
520  XML format).
521 \end_layout
523 \begin_layout Subsubsection
524 --ips-<kind>=<file> (lsnes/SDL, lsnes-avidump)
525 \end_layout
527 \begin_layout Standard
528 Apply BPS/IPS patch <file> to ROM <kind>.
529  If specified multiple times, the patches are applied in order.
530 \end_layout
532 \begin_layout Subsubsection
533 --ips-<kind>-xml=<file> (lsnes/SDL, lsnes-avidump)
534 \end_layout
536 \begin_layout Standard
537 Apply BPS/IPS patch <file> to XML of ROM <kind>.
538  If specified multiple times, the patches are applied in order.
539 \end_layout
541 \begin_layout Subsubsection
542 --ips-offset=<offset> (lsnes/SDL, lsnes-avidump)
543 \end_layout
545 \begin_layout Standard
546 Set offset to apply to IPS patches.
547  May be negative.
548  Handy for applying headered IPS patches (use offset of -512 for this).
549  The offset must be 0 for BPS patches.
550 \end_layout
552 \begin_layout Subsubsection
553 --pal
554 \end_layout
556 \begin_layout Standard
557 Force ROM to be considered PAL-only.
558 \end_layout
560 \begin_layout Itemize
561 Only works on SNES and SGB ROMs (not BS-X or Sufami Turbo).
562 \end_layout
564 \begin_layout Itemize
565 Attempting to load NTSC movie file will error out.
566 \end_layout
568 \begin_layout Subsubsection
569 --ntsc
570 \end_layout
572 \begin_layout Standard
573 Force ROM to be considered NTSC-only.
574 \end_layout
576 \begin_layout Itemize
577 Attempting to load PAL movie file will error out.
578 \end_layout
580 \begin_layout Subsection
581 Session options
582 \end_layout
584 \begin_layout Subsubsection
585 --pause
586 \end_layout
588 \begin_layout Standard
589 Start paused
590 \end_layout
592 \begin_layout Subsubsection
593 <filename> (lsnes/SDL, lsnes-avidump, movieinfo)
594 \end_layout
596 \begin_layout Standard
597 Load <filename> as movie or savestate file.
598  All other session options are ignored.
599 \end_layout
601 \begin_layout Subsubsection
602 --port1=<device> (lsnes/SDL)
603 \end_layout
605 \begin_layout Standard
606 Set type of port1.
607  Valid values are:
608 \end_layout
610 \begin_layout Itemize
611 none: No device connected
612 \end_layout
614 \begin_layout Itemize
615 gamepad: One gamepad (the default)
616 \end_layout
618 \begin_layout Itemize
619 multitap: Four gamepads (warning: makes most games refuse to start)
620 \end_layout
622 \begin_layout Itemize
623 mouse: Mouse.
624 \end_layout
626 \begin_layout Subsubsection
627 --port2=<type> (lsnes/SDL)
628 \end_layout
630 \begin_layout Standard
631 Set type of port2.
632  Valid values are:
633 \end_layout
635 \begin_layout Itemize
636 none: No device connected (the default)
637 \end_layout
639 \begin_layout Itemize
640 gamepad: One gamepad
641 \end_layout
643 \begin_layout Itemize
644 multitap: Four gamepads.
645 \end_layout
647 \begin_layout Itemize
648 mouse: Mouse
649 \end_layout
651 \begin_layout Itemize
652 superscope: Super Scope
653 \end_layout
655 \begin_layout Itemize
656 justifier: One justifier
657 \end_layout
659 \begin_layout Itemize
660 justifiers: Two justifiers
661 \end_layout
663 \begin_layout Subsubsection
664 --gamename=<name> (lsnes/SDL)
665 \end_layout
667 \begin_layout Standard
668 Set the name of game to <name>.
669  Default is blank.
670 \end_layout
672 \begin_layout Subsubsection
673 --author=<name> (lsnes/SDL)
674 \end_layout
676 \begin_layout Standard
677 Add author with full name of <name> (no nickname).
678 \end_layout
680 \begin_layout Subsubsection
681 --author=|<name> (lsnes/SDL)
682 \end_layout
684 \begin_layout Standard
685 Add author with nickname of <name> (no full name).
686 \end_layout
688 \begin_layout Subsubsection
689 --author=<fullname>|<nickname> (lsnes/SDL)
690 \end_layout
692 \begin_layout Standard
693 Add author with full name of <fullname> and nickname of <nickname>.
694 \end_layout
696 \begin_layout Subsubsection
697 --rtc-second=<value> (lsnes/SDL)
698 \end_layout
700 \begin_layout Standard
701 Set RTC second (0 is 1st January 1970 00:00:00Z).
702  Default is 1,000,000,000.
703 \end_layout
705 \begin_layout Subsubsection
706 --rtc-subsecond=<value> (lsnes/SDL)
707 \end_layout
709 \begin_layout Standard
710 Set RTC subsecond.
711  Range is 0-.
712  Unit is CPU cycle.
713  Default is 0.
714 \end_layout
716 \begin_layout Subsection
717 Misc.
718  options:
719 \end_layout
721 \begin_layout Subsubsection
722 --run=<file> (lsnes/SDL)
723 \end_layout
725 \begin_layout Standard
726 After running main RC file, run this file.
727  If multiple are specified, these execute in order specified.
728 \end_layout
730 \begin_layout Subsection
731 dump options (lsnes-dumpavi only)
732 \end_layout
734 \begin_layout Subsubsection
735 --dumper=<dumper>
736 \end_layout
738 \begin_layout Standard
739 Set the dumper to use (required).
740  Use 'list' for listing of known dumpers.
741 \end_layout
743 \begin_layout Subsubsection
744 --mode=<mode>
745 \end_layout
747 \begin_layout Standard
748 Set the mode to use (required for dumpers with multiple modes, forbidden
749  otherwise).
750  Use 'list' for known modes.
751 \end_layout
753 \begin_layout Subsubsection
754 --prefix=<prefix>
755 \end_layout
757 \begin_layout Standard
758 Set dump prefix.
759  Default is 
760 \begin_inset Quotes eld
761 \end_inset
763 avidump
764 \begin_inset Quotes erd
765 \end_inset
768 \end_layout
770 \begin_layout Subsubsection
771 --option=<name>=<value>
772 \end_layout
774 \begin_layout Standard
775 Set option <name> to value <value>.
776 \end_layout
778 \begin_layout Subsubsection
779 --length=<length>
780 \end_layout
782 \begin_layout Standard
783 Set number of frames to dump.
784  Mandatory.
785 \end_layout
787 \begin_layout Subsubsection
788 --lua=<script>
789 \end_layout
791 \begin_layout Standard
792 Run specified lua script (lsnes-dumpavi does not have initialization files).
793 \end_layout
795 \begin_layout Subsubsection
796 --load-library=<library>
797 \end_layout
799 \begin_layout Standard
800 Load the specified shared object / dynamic library / dynamic link library.
801 \end_layout
803 \begin_layout Section
804 Startup file lsnes.rc
805 \end_layout
807 \begin_layout Standard
808 Upon startup, lsnes (lsnes/SDL only) executes file lsnes.rc as commands.
809  This file is located in:
810 \end_layout
812 \begin_layout Itemize
813 Windows: %APPDATA%
814 \backslash
815 lsnes
816 \backslash
817 lsnes.rc (if %APPDATA% exists)
818 \end_layout
820 \begin_layout Itemize
821 Unix: $XDG_CONFIG_HOME/lsnes/lsnes.rc (if $XDG_CONFIG_HOME exists)
822 \end_layout
824 \begin_layout Itemize
825 Unix: $HOME/.config/lsnes/lsnes.rc (if $HOME exists)
826 \end_layout
828 \begin_layout Itemize
829 All: ./lsnes.rc (fallback default).
830 \end_layout
832 \begin_layout Standard
833 If leading directories do not exist, attempt to create them is made.
834 \end_layout
836 \begin_layout Section
837 Internal commands
838 \end_layout
840 \begin_layout Itemize
841 Commands beginning with '*' invoke the corresponding command without alias
842  expansion.
843 \end_layout
845 \begin_layout Itemize
846 If command starts with '+' (after possible '*'), the command is executed
847  as-is when button is pressed, and when button is released, it is executed
848  with '+' replaced by '-'.
849 \end_layout
851 \begin_layout Itemize
852 Commands without '+' execute only on negative edge (release).
853 \end_layout
855 \begin_layout Subsection
856 Settings:
857 \end_layout
859 \begin_layout Standard
860 Settings control various aspects of emulator behaviour.
861 \end_layout
863 \begin_layout Subsubsection
864 set-setting <setting> <value>
865 \end_layout
867 \begin_layout Standard
868 Sets setting <setting> to value <value> (may be empty).
869 \end_layout
871 \begin_layout Subsubsection
872 unset-setting <setting>
873 \end_layout
875 \begin_layout Standard
876 Try to unset setting <setting> (not all settings can be unset).
877 \end_layout
879 \begin_layout Subsubsection
880 get-setting <setting>
881 \end_layout
883 \begin_layout Standard
884 Read value of setting <setting>
885 \end_layout
887 \begin_layout Subsubsection
888 show-settings
889 \end_layout
891 \begin_layout Standard
892 Print names and values of all settings.
893 \end_layout
895 \begin_layout Subsection
896 Keybindings
897 \end_layout
899 \begin_layout Standard
900 Keybindings bind commands or aliases to keys (or pseudo-keys).
902 \end_layout
904 \begin_layout Standard
905 Notes:
906 \end_layout
908 \begin_layout Itemize
909 Do not bind edge active (+/-) commands to keys with modifiers, that won't
910  work right!
911 \end_layout
913 \begin_layout Itemize
914 Names of keys and modifiers are platform-dependent.
915 \end_layout
917 \begin_layout Itemize
918 Be careful before binding pseudo-keys (such as joystick axes, buttons or
919  hats) with modifiers.
920  That may or may not work right.
921 \end_layout
923 \begin_layout Subsubsection
924 bind-key [<mod>/<modmask>] <key> <command>
925 \end_layout
927 \begin_layout Standard
928 Bind <command> to key <key> (activating if modifiers in <modmask> (comma-seperat
929 ed list) are set as <mod> (comma-seperated list).
930 \end_layout
932 \begin_layout Standard
933 The names of keys and modifiers are platform-dependent.
934 \end_layout
936 \begin_layout Subsubsection
937 unbind-key [<mod>/<modmask>] <key>
938 \end_layout
940 \begin_layout Standard
941 Unbind command from <key> (with specified <mod> and <modmask>).
942 \end_layout
944 \begin_layout Subsubsection
945 set-axis <axis> [disabled | axis | axis-inverse | pressure0- | pressure0+
946  | pressure-0 | pressure-+ | pressure+0 | pressure+-] [minus=<val>] [zero=<val>]
947  [plus=<val>] [tolerance=<val>]
948 \end_layout
950 \begin_layout Standard
951 Set axis parameters for axis <axis>.
952 \end_layout
954 \begin_layout Itemize
955 disabled: Disable axis
956 \end_layout
958 \begin_layout Itemize
959 axis: Normal axis
960 \end_layout
962 \begin_layout Itemize
963 axis-inverse: Inverse axis
964 \end_layout
966 \begin_layout Itemize
967 pressure0-: Pressure sensitive.
968  Released at 0, pressed at -.
969 \end_layout
971 \begin_layout Itemize
972 pressure0+: Pressure sensitive.
973  Released at 0, pressed at +.
974 \end_layout
976 \begin_layout Itemize
977 pressure-0: Pressure sensitive.
978  Released at -, pressed at 0.
979 \end_layout
981 \begin_layout Itemize
982 pressure-+: Pressure sensitive.
983  Released at -, pressed at +.
984 \end_layout
986 \begin_layout Itemize
987 pressure+0: Pressure sensitive.
988  Released at +, pressed at 0.
989 \end_layout
991 \begin_layout Itemize
992 pressure+-: Pressure sensitive.
993  Released at +, pressed at -.
994 \end_layout
996 \begin_layout Itemize
997 minus=<val>: Calibration at extreme minus position (-32768-32767)
998 \end_layout
1000 \begin_layout Itemize
1001 zero=<val>: Calibration at neutral position (-32768-32767)
1002 \end_layout
1004 \begin_layout Itemize
1005 plus=<val>: Calibration at extreme plus position (-32768-32767)
1006 \end_layout
1008 \begin_layout Itemize
1009 tolerance=<value>: Center band tolerance (0<x<1).
1010  The smaller the value, the more sensitive the control is.
1011 \end_layout
1013 \begin_layout Subsubsection
1014 show-bindings
1015 \end_layout
1017 \begin_layout Standard
1018 Print all key bindings in effect.
1019 \end_layout
1021 \begin_layout Subsection
1022 Aliases
1023 \end_layout
1025 \begin_layout Standard
1026 Aliases bind command to sequence of commands.
1027  After alias has been defined, it replaces the command it shadows.
1028 \end_layout
1030 \begin_layout Standard
1031 Notes:
1032 \end_layout
1034 \begin_layout Itemize
1035 You can't alias command to itself.
1036 \end_layout
1038 \begin_layout Itemize
1039 Aliases starting with +/- are edge active just like ordinary commands starting
1040  with +/-.
1041 \end_layout
1043 \begin_layout Itemize
1044 One command can be aliased to multiple commands.
1045 \end_layout
1047 \begin_layout Subsubsection
1048 alias-command <command> <expansion>
1049 \end_layout
1051 \begin_layout Standard
1052 Append <expansion> to alias <command>.
1053  If alias does not already exist, it is created.
1054 \end_layout
1056 \begin_layout Subsubsection
1057 unalias-command <command>
1058 \end_layout
1060 \begin_layout Standard
1061 Clear alias expansion for <command>.
1062 \end_layout
1064 \begin_layout Subsubsection
1065 show-aliases
1066 \end_layout
1068 \begin_layout Standard
1069 Print all aliases and their expansions in effect.
1070 \end_layout
1072 \begin_layout Subsection
1073 run-script <script>
1074 \end_layout
1076 \begin_layout Standard
1077 Run <script> as if commands were entered on the command line.
1078 \end_layout
1080 \begin_layout Subsection
1081 Video dumping
1082 \end_layout
1084 \begin_layout Standard
1085 Following commands control video dumping:
1086 \end_layout
1088 \begin_layout Subsubsection
1089 start-dump <dumper> [<mode>] <prefix/filename>
1090 \end_layout
1092 \begin_layout Standard
1093 Start dumping using dumper <dumper>.
1094  If mode is present or not and if prefix or filename is present depends
1095  on the dumper and dumper mode.
1096 \end_layout
1098 \begin_layout Standard
1099 The following dumpers are available:
1100 \end_layout
1102 \begin_layout Itemize
1103 INTERNAL-AVI-CSCD: Internal CSCD in .avi dumper.
1104 \end_layout
1106 \begin_deeper
1107 \begin_layout Itemize
1108 Mode: uncompressed/pcm: Uncompressed video, PCM audio.
1109  Takes prefix.
1110 \end_layout
1112 \begin_layout Itemize
1113 Mode: cscd/pcm: CSCD video, PCM audio.
1114  Takes prefix.
1115 \end_layout
1117 \end_deeper
1118 \begin_layout Itemize
1119 INTERNAL-JMD: Internal .jmd dumper.
1120 \end_layout
1122 \begin_deeper
1123 \begin_layout Itemize
1124 Does not take mode.
1125 \end_layout
1127 \begin_layout Itemize
1128 Takes a filename.
1129 \end_layout
1131 \end_deeper
1132 \begin_layout Itemize
1133 INTERNAL-RAW: Internal RAW dumper.
1134 \end_layout
1136 \begin_deeper
1137 \begin_layout Itemize
1138 Does not take mode.
1139 \end_layout
1141 \begin_layout Itemize
1142 Takes a prefix.
1143 \end_layout
1145 \begin_layout Itemize
1146 Sound is big-endian signed 16-bit, usually at 32040.5Hz.
1147 \end_layout
1149 \begin_layout Itemize
1150 Video is always upscaled to double resolution (512x448 / 512 x 478).
1151 \end_layout
1153 \begin_layout Itemize
1154 Video framerate is usually 322445/6448 fps for PAL and 10738636/178683 fps
1155  for NTSC.
1156 \end_layout
1158 \end_deeper
1159 \begin_layout Itemize
1160 INTERNAL-SDMP: Internal SDMP dumper.
1161 \end_layout
1163 \begin_deeper
1164 \begin_layout Itemize
1165 Mode 'ms': Multi-segment.
1166  Takes prefix.
1167 \end_layout
1169 \begin_layout Itemize
1170 Mode 'ss': Single-segment.
1171  Takes filename.
1172 \end_layout
1174 \end_deeper
1175 \begin_layout Subsubsection
1176 end-dump <dumper>
1177 \end_layout
1179 \begin_layout Standard
1180 End dumping using <dumper>
1181 \end_layout
1183 \begin_layout Subsubsection
1184 show-dumpers [<dumper>]
1185 \end_layout
1187 \begin_layout Standard
1188 Show the list of dumpers or list of modes for <dumper>
1189 \end_layout
1191 \begin_layout Subsection
1192 Memory manipulation
1193 \end_layout
1195 \begin_layout Standard
1196 <address> may be decimal or hexadecimal (prefixed with '0x').
1197  <value> can be hexadecimal (prefixed with '0x'), unsigned or signed (prefixed
1198  with '-') decimal.
1199 \end_layout
1201 \begin_layout Standard
1202 The available element <sizes> are:
1203 \end_layout
1205 \begin_layout Itemize
1206 byte: 1 byte
1207 \end_layout
1209 \begin_layout Itemize
1210 word: 2 bytes
1211 \end_layout
1213 \begin_layout Itemize
1214 dword: 4 bytes
1215 \end_layout
1217 \begin_layout Itemize
1218 qword: 8 bytes
1219 \end_layout
1221 \begin_layout Standard
1222 When reading RAM and ROM, multi-byte reads/writes are big-endian.
1223  When dealing with DSP memory, multi-byte reads/writes are native-endian
1224  (do not use operand sizes exceeding DSP bitness, except dword is OK for
1225  24-bit memory).
1226 \end_layout
1228 \begin_layout Subsubsection
1229 read-<size> <address>
1230 \end_layout
1232 \begin_layout Standard
1233 Read the value of byte in <address>.
1234 \end_layout
1236 \begin_layout Subsubsection
1237 read-s<size> <address>
1238 \end_layout
1240 \begin_layout Standard
1241 Read the value of signed byte in <address>.
1242 \end_layout
1244 \begin_layout Subsubsection
1245 write-<size> <address> <value>
1246 \end_layout
1248 \begin_layout Standard
1249 Write <value> to byte in address <address>.
1250 \end_layout
1252 \begin_layout Subsubsection
1253 search-memory reset
1254 \end_layout
1256 \begin_layout Standard
1257 Reset the memory search
1258 \end_layout
1260 \begin_layout Subsubsection
1261 search-memory count
1262 \end_layout
1264 \begin_layout Standard
1265 Print number of candidates remaining
1266 \end_layout
1268 \begin_layout Subsubsection
1269 search-memory print
1270 \end_layout
1272 \begin_layout Standard
1273 Print all candidates remaining
1274 \end_layout
1276 \begin_layout Subsubsection
1277 search-memory <usflag><sizeflag><op>
1278 \end_layout
1280 \begin_layout Standard
1281 Searches memory for addresses satisfying criteria.
1282 \end_layout
1284 \begin_layout Standard
1285 <usflag> can be:
1286 \end_layout
1288 \begin_layout Itemize
1289 u: unsigned
1290 \end_layout
1292 \begin_layout Itemize
1293 s: signed
1294 \end_layout
1296 \begin_layout Standard
1297 <sizeflag> can be:
1298 \end_layout
1300 \begin_layout Itemize
1301 b: byte
1302 \end_layout
1304 \begin_layout Itemize
1305 w: word
1306 \end_layout
1308 \begin_layout Itemize
1309 d: dword
1310 \end_layout
1312 \begin_layout Itemize
1313 q: qword
1314 \end_layout
1316 \begin_layout Standard
1317 <op> can be:
1318 \end_layout
1320 \begin_layout Itemize
1321 lt: < previous value.
1322 \end_layout
1324 \begin_layout Itemize
1325 le: <= previous value.
1326 \end_layout
1328 \begin_layout Itemize
1329 eq: = previous value.
1330 \end_layout
1332 \begin_layout Itemize
1333 ne: != previous value.
1334 \end_layout
1336 \begin_layout Itemize
1337 ge: >= previous value.
1338 \end_layout
1340 \begin_layout Itemize
1341 gt: > previous value.
1342 \end_layout
1344 \begin_layout Subsubsection
1345 search-memory <sizeflag> <value>
1346 \end_layout
1348 \begin_layout Standard
1349 Searches for addresses that currently have value <value>.
1350  <sizeflag> is as in previous command.
1351 \end_layout
1353 \begin_layout Subsection
1354 Main commands
1355 \end_layout
1357 \begin_layout Standard
1358 These commands are not available in lsnesrc, but are available after ROM
1359  has been loaded.
1360 \end_layout
1362 \begin_layout Subsubsection
1363 quit-emulator [/y]
1364 \end_layout
1366 \begin_layout Standard
1367 Quits the emulator (asking for confirmation).
1368  If /y is given, no confirmation is asked.
1369 \end_layout
1371 \begin_layout Subsubsection
1372 pause-emulator
1373 \end_layout
1375 \begin_layout Standard
1376 Toggle paused/unpaused
1377 \end_layout
1379 \begin_layout Subsubsection
1380 +advance-frame 
1381 \end_layout
1383 \begin_layout Standard
1384 Advance frame.
1385  If the button is still held after configurable timeout expires, game unpauses
1386  for the duration frame advance is held.
1387 \end_layout
1389 \begin_layout Subsubsection
1390 +advance-poll 
1391 \end_layout
1393 \begin_layout Standard
1394 Advance subframe.
1395  If the button is still held after configurable timeout expires, game unpauses
1396  for the duration frame advance is held.
1397 \end_layout
1399 \begin_layout Subsubsection
1400 advance-skiplag 
1401 \end_layout
1403 \begin_layout Standard
1404 Skip to first poll in frame after current.
1405 \end_layout
1407 \begin_layout Subsubsection
1408 reset 
1409 \end_layout
1411 \begin_layout Standard
1412 Reset the SNES after this frame.
1413 \end_layout
1415 \begin_layout Subsubsection
1416 load <filename> 
1417 \end_layout
1419 \begin_layout Standard
1420 Load savestate <filename> in current mode.
1421 \end_layout
1423 \begin_layout Subsubsection
1424 load-state <filename> 
1425 \end_layout
1427 \begin_layout Standard
1428 Load savestate <filename> in readwrite mode.
1429 \end_layout
1431 \begin_layout Subsubsection
1432 load-readonly <filename> 
1433 \end_layout
1435 \begin_layout Standard
1436 Load savestate <filename> in readonly mode.
1437 \end_layout
1439 \begin_layout Subsubsection
1440 load-preserve <filename> 
1441 \end_layout
1443 \begin_layout Standard
1444 Load savestate <filename> in readonly mode, preserving current events.
1445 \end_layout
1447 \begin_layout Subsubsection
1448 load-movie <filename> 
1449 \end_layout
1451 \begin_layout Standard
1452 Load savestate <filename>, ignoring save part in readonly mode.
1453 \end_layout
1455 \begin_layout Subsubsection
1456 save-state <filename> 
1457 \end_layout
1459 \begin_layout Standard
1460 Save system state to <filename> as soon as possible.
1461 \end_layout
1463 \begin_layout Subsubsection
1464 save-movie <filename> 
1465 \end_layout
1467 \begin_layout Standard
1468 Save movie to <filename>.
1469 \end_layout
1471 \begin_layout Subsubsection
1472 set-rwmode 
1473 \end_layout
1475 \begin_layout Standard
1476 Set read-write mode.
1477 \end_layout
1479 \begin_layout Subsubsection
1480 set-romode 
1481 \end_layout
1483 \begin_layout Standard
1484 Set read-only mode
1485 \end_layout
1487 \begin_layout Subsubsection
1488 toggle-rwmode 
1489 \end_layout
1491 \begin_layout Standard
1492 Toggle between read-only and read-write modes.
1493 \end_layout
1495 \begin_layout Subsubsection
1496 set-gamename <name> 
1497 \end_layout
1499 \begin_layout Standard
1500 Set name of the game to <name>
1501 \end_layout
1503 \begin_layout Subsubsection
1504 get-gamename 
1505 \end_layout
1507 \begin_layout Standard
1508 Print the name of the game.
1509 \end_layout
1511 \begin_layout Subsubsection
1512 add-author <author> 
1513 \end_layout
1515 \begin_layout Standard
1516 Adds new author <author>.
1517  If <author> does not contain '|' it is full name.
1518  If it contains '|', '|' splits the full name and nickname.
1519 \end_layout
1521 \begin_layout Subsubsection
1522 edit-author <num> <author> 
1523 \end_layout
1525 \begin_layout Standard
1526 Edit the author in slot <num> (0-based) to be <author> (see add-author for
1527  format)
1528 \end_layout
1530 \begin_layout Subsubsection
1531 remove-author <num> 
1532 \end_layout
1534 \begin_layout Standard
1535 Remove author in slot <num>
1536 \end_layout
1538 \begin_layout Subsubsection
1539 print-authors 
1540 \end_layout
1542 \begin_layout Standard
1543 Print authors.
1544 \end_layout
1546 \begin_layout Subsubsection
1547 test-1, test-2, test-3
1548 \end_layout
1550 \begin_layout Standard
1551 Internal test commands.
1552  Don't use.
1553 \end_layout
1555 \begin_layout Subsubsection
1556 take-screenshot <filename> 
1557 \end_layout
1559 \begin_layout Standard
1560 Save screenshot to <filename>.
1561 \end_layout
1563 \begin_layout Subsubsection
1564 +controller<num><button>
1565 \end_layout
1567 \begin_layout Standard
1568 Press button <button> on controller <num> (1-8).
1569  The following button names are known:
1570 \end_layout
1572 \begin_layout Itemize
1573 left
1574 \end_layout
1576 \begin_layout Itemize
1577 right
1578 \end_layout
1580 \begin_layout Itemize
1582 \end_layout
1584 \begin_layout Itemize
1585 down
1586 \end_layout
1588 \begin_layout Itemize
1590 \end_layout
1592 \begin_layout Itemize
1594 \end_layout
1596 \begin_layout Itemize
1598 \end_layout
1600 \begin_layout Itemize
1602 \end_layout
1604 \begin_layout Itemize
1606 \end_layout
1608 \begin_layout Itemize
1610 \end_layout
1612 \begin_layout Itemize
1613 select
1614 \end_layout
1616 \begin_layout Itemize
1617 start
1618 \end_layout
1620 \begin_layout Itemize
1621 trigger
1622 \end_layout
1624 \begin_layout Itemize
1625 cursor
1626 \end_layout
1628 \begin_layout Itemize
1629 pause
1630 \end_layout
1632 \begin_layout Itemize
1633 turbo
1634 \end_layout
1636 \begin_layout Subsubsection
1637 controllerh<num><button>
1638 \end_layout
1640 \begin_layout Standard
1641 Hold/unhold button <button> on controller <num> (1-8).
1642  See +controller for button names.
1643 \end_layout
1645 \begin_layout Subsubsection
1646 autofire (<pattern>|-)...
1647 \end_layout
1649 \begin_layout Standard
1650 Set autofire pattern.
1651  Each parameter is comma-separated list of button names (in form of 1start,
1652  1A, 2B, etc..) to hold on that frame.
1653  After reaching the end of pattern, the pattern restarts from the beginning.
1654 \end_layout
1656 \begin_layout Subsubsection
1657 repaint
1658 \end_layout
1660 \begin_layout Standard
1661 Force a repaint.
1662 \end_layout
1664 \begin_layout Subsection
1665 Save jukebox 
1666 \end_layout
1668 \begin_layout Subsubsection
1669 cycle-jukebox-backward
1670 \end_layout
1672 \begin_layout Standard
1673 Cycle save jukebox backwards.
1674 \end_layout
1676 \begin_layout Subsubsection
1677 cycle-jukebox-forward
1678 \end_layout
1680 \begin_layout Standard
1681 Cycle save jukebox forwards
1682 \end_layout
1684 \begin_layout Subsubsection
1685 load-jukebox
1686 \end_layout
1688 \begin_layout Standard
1689 Do load from jukebox (current mode).
1690 \end_layout
1692 \begin_layout Subsubsection
1693 save-jukebox
1694 \end_layout
1696 \begin_layout Standard
1697 Do state save to jukebox.
1698 \end_layout
1700 \begin_layout Subsection
1701 Lua 
1702 \end_layout
1704 \begin_layout Standard
1705 Only available if lua support is compiled in.
1706 \end_layout
1708 \begin_layout Subsubsection
1709 evaluate-lua <luacode>
1710 \end_layout
1712 \begin_layout Standard
1713 Run Lua code <luacode> using built-in Lua interpretter.
1714 \end_layout
1716 \begin_layout Subsubsection
1717 run-lua <script>
1718 \end_layout
1720 \begin_layout Standard
1721 Run specified lua file using built-in Lua interpretter.
1722 \end_layout
1724 \begin_layout Subsection
1725 Memory watch
1726 \end_layout
1728 \begin_layout Subsubsection
1729 add-watch <name> <expression>
1730 \end_layout
1732 \begin_layout Standard
1733 Adds new watch (or modifies old one).
1734 \end_layout
1736 \begin_layout Subsubsection
1737 remove-watch <name>
1738 \end_layout
1740 \begin_layout Standard
1741 Remove a watch.
1742 \end_layout
1744 \begin_layout Subsection
1745 Sound 
1746 \end_layout
1748 \begin_layout Subsubsection
1749 enable-sound <on/off> 
1750 \end_layout
1752 \begin_layout Standard
1753 Enable/Disable sound.
1754 \end_layout
1756 \begin_layout Subsubsection
1757 set-sound-device <device> 
1758 \end_layout
1760 \begin_layout Standard
1761 Set sound device to <device>
1762 \end_layout
1764 \begin_layout Subsubsection
1765 show-sound-status 
1766 \end_layout
1768 \begin_layout Standard
1769 Show status of sound system.
1770 \end_layout
1772 \begin_layout Subsubsection
1773 show-sound-devices
1774 \end_layout
1776 \begin_layout Standard
1777 Show all available devices.
1778 \end_layout
1780 \begin_layout Subsubsection
1781 set-volume <multiplier>
1782 \end_layout
1784 \begin_layout Standard
1785 Set the volume multiplier to <multiplier>.
1786  1 is normal volume, and higher numbers are louder.
1787 \end_layout
1789 \begin_layout Subsubsection
1790 set-volume <multiplier>%
1791 \end_layout
1793 \begin_layout Standard
1794 Set the volume multiplier to <multiplier> percent.
1795  100 is normal volume, and higher numbers are louder.
1796 \end_layout
1798 \begin_layout Subsubsection
1799 set-volume <multiplier>dB
1800 \end_layout
1802 \begin_layout Standard
1803 Set the volume multiplier to <multiplier> dB.
1804  0 is normal volume, and higher numbers are louder.
1805  The value may be negative.
1806 \end_layout
1808 \begin_layout Subsection
1809 SDL Platform commands 
1810 \end_layout
1812 \begin_layout Standard
1813 The following are valid on SDL platform.
1814 \end_layout
1816 \begin_layout Subsubsection
1817 identify-key
1818 \end_layout
1820 \begin_layout Standard
1821 Asks to press a key and then identifies that (pseudo-)key.
1822 \end_layout
1824 \begin_layout Subsubsection
1825 toggle-console 
1826 \end_layout
1828 \begin_layout Standard
1829 Toggle between windowed/fullscreen console.
1830 \end_layout
1832 \begin_layout Subsubsection
1833 scroll-fullup 
1834 \end_layout
1836 \begin_layout Standard
1837 Scroll messages window as far back as it goes.
1838 \end_layout
1840 \begin_layout Subsubsection
1841 scroll-fulldown 
1842 \end_layout
1844 \begin_layout Standard
1845 Scroll messages window as far forward as it goes.
1846 \end_layout
1848 \begin_layout Subsubsection
1849 scroll-up 
1850 \end_layout
1852 \begin_layout Standard
1853 Scroll messages window back one screenful.
1854 \end_layout
1856 \begin_layout Subsubsection
1857 scroll-down 
1858 \end_layout
1860 \begin_layout Standard
1861 Scroll messages window forward one screenful.
1862 \end_layout
1864 \begin_layout Section
1865 Settings
1866 \end_layout
1868 \begin_layout Subsection
1869 Core settings
1870 \end_layout
1872 \begin_layout Subsubsection
1873 firmwarepath
1874 \end_layout
1876 \begin_layout Standard
1877 Set where bsnes looks for firmware files.
1878  Default is 
1879 \begin_inset Quotes eld
1880 \end_inset
1883 \begin_inset Quotes erd
1884 \end_inset
1887 \end_layout
1889 \begin_layout Subsubsection
1890 targetfps
1891 \end_layout
1893 \begin_layout Standard
1894 Set the target fps.
1895  Numeric, range is 0.001 to 
1896 \begin_inset Quotes eld
1897 \end_inset
1899 infinite
1900 \begin_inset Quotes erd
1901 \end_inset
1904  Default is native framerate.
1905 \end_layout
1907 \begin_layout Subsubsection
1908 savecompression
1909 \end_layout
1911 \begin_layout Standard
1912 Set save compression level (integer 0-9).
1913  Default is 7 (0 is no compression).
1914 \end_layout
1916 \begin_layout Subsubsection
1917 advance-timeout
1918 \end_layout
1920 \begin_layout Standard
1921 Set the frame advance timeout in milliseconds.
1922  Numeric integer, range is 0-999999999.
1923  Default is 500.
1924 \end_layout
1926 \begin_layout Subsection
1927 AVI dumper settings
1928 \end_layout
1930 \begin_layout Subsubsection
1931 avi-large
1932 \end_layout
1934 \begin_layout Standard
1935 AVI dumper: Always dump at 512x448 or 512x478 regardless of what the console
1936  outputs.
1937 \end_layout
1939 \begin_layout Subsubsection
1940 avi-left-border
1941 \end_layout
1943 \begin_layout Standard
1944 AVI dumper: Set the default left border thickness (unless lua overrides)
1945  for dumps.
1946  Range 0-8191.
1947  Default is 0.
1948 \end_layout
1950 \begin_layout Subsubsection
1951 avi-right-border
1952 \end_layout
1954 \begin_layout Standard
1955 AVI dumper: Set the default right border thickness (unless lua overrides)
1956  for dumps.
1957  Range 0-8191.
1958  Default is 0.
1959 \end_layout
1961 \begin_layout Subsubsection
1962 avi-top-border
1963 \end_layout
1965 \begin_layout Standard
1966 AVI dumper: Set the default top border thickness (unless lua overrides)
1967  for dumps.
1968  Range 0-8191.
1969  Default is 0.
1970 \end_layout
1972 \begin_layout Subsubsection
1973 avi-bottom-border
1974 \end_layout
1976 \begin_layout Standard
1977 AVI dumper: Set the default bottom border thickness (unless lua overrides)
1978  for dumps.
1979  Range 0-8191.
1980  Default is 0.
1981 \end_layout
1983 \begin_layout Subsubsection
1984 avi-maxframes
1985 \end_layout
1987 \begin_layout Standard
1988 AVI dumper: Maximum number of frames per dump segment (0 => unlimited).
1989  Range 0-999999999.
1990  Default is 0.
1991 \end_layout
1993 \begin_layout Subsubsection
1994 avi-compresison
1995 \end_layout
1997 \begin_layout Standard
1998 AVI dumper: Compression level (0-18).
1999 \end_layout
2001 \begin_layout Itemize
2002 Compression levels 10 and above are not compatible with stock CSCD codec.
2003 \end_layout
2005 \begin_layout Itemize
2006 Recomended level is 7.
2007 \end_layout
2009 \begin_layout Subsubsection
2010 avi-soundrate
2011 \end_layout
2013 \begin_layout Standard
2014 AVI dumper: Set method of determining the sound rate.
2015 \end_layout
2017 \begin_layout Itemize
2018 0: Pick nearest of 8, 11.025, 12, 16, 22.05, 24, 32, 44.1, 48, 64, 88.2, 96,
2019  128, 176.4 and 192 kHz.
2020 \end_layout
2022 \begin_layout Itemize
2023 1: Round down to nearest integer.
2024 \end_layout
2026 \begin_layout Itemize
2027 2: Round up to nearest ingeter.
2028 \end_layout
2030 \begin_layout Subsection
2031 JMD options
2032 \end_layout
2034 \begin_layout Subsubsection
2035 jmd-copression
2036 \end_layout
2038 \begin_layout Standard
2039 JMD dumper: Compression level (0-9).
2040 \end_layout
2042 \begin_layout Subsection
2043 SDL platform settings
2044 \end_layout
2046 \begin_layout Subsubsection
2047 autorepeat-first-delay
2048 \end_layout
2050 \begin_layout Standard
2051 Sets the delay for first character in typematic autorepeat.
2052 \end_layout
2054 \begin_layout Subsubsection
2055 autorepeat-subsequent-delay
2056 \end_layout
2058 \begin_layout Standard
2059 Sets the delay for subsequent characters in typematic autorepeat.
2060 \end_layout
2062 \begin_layout Section
2063 Lua functions
2064 \end_layout
2066 \begin_layout Subsection
2067 Core (in main table)
2068 \end_layout
2070 \begin_layout Subsubsection
2071 print
2072 \end_layout
2074 \begin_layout Standard
2075 Print line to message console.
2076 \end_layout
2078 \begin_layout Subsubsection
2079 exec(string command)
2080 \end_layout
2082 \begin_layout Standard
2083 Run command as it was entered on the command line
2084 \end_layout
2086 \begin_layout Subsubsection
2087 utime()
2088 \end_layout
2090 \begin_layout Standard
2091 Returns two values.
2092  First is time since some epoch in seconds, the second is microseconds mod
2093  10^6 since that epoch.
2094 \end_layout
2096 \begin_layout Subsubsection
2097 emulator_ready()
2098 \end_layout
2100 \begin_layout Standard
2101 Returns true if emulator has finished booting, false if not (on_startup()
2102  will be issued later).
2103 \end_layout
2105 \begin_layout Subsubsection
2106 set_idle_timeout(number timeout)
2107 \end_layout
2109 \begin_layout Standard
2110 Set number of microseconds to block idle for.
2111  After this timeout has expired, on_idle() will be called once.
2112 \end_layout
2114 \begin_layout Subsubsection
2115 set_timer_timeout(number timeout)
2116 \end_layout
2118 \begin_layout Standard
2119 Set number of microseconds to block timer for.
2120  After this timeout has expired, on_timer() will be called once.
2121 \end_layout
2123 \begin_layout Subsection
2124 Table bit:
2125 \end_layout
2127 \begin_layout Standard
2128 Bitwise logical functions and related.
2129 \end_layout
2131 \begin_layout Subsubsection
2132 bit.none(number...) / bit.bnot(number...)
2133 \end_layout
2135 \begin_layout Standard
2136 48-bit bitwise NOT / NONE function (set bits that are set in none of the
2137  arguments).
2138 \end_layout
2140 \begin_layout Subsubsection
2141 bit.any(number...) / bit.bor(number...)
2142 \end_layout
2144 \begin_layout Standard
2145 48-bit bitwise OR / ANY function (set bits that are set in any of the arguments).
2146 \end_layout
2148 \begin_layout Subsubsection
2149 bit.all(number...) / bit.band(number...)
2150 \end_layout
2152 \begin_layout Standard
2153 48-bit bitwise AND / ALL function (set bits that are set in all of the arguments
2155 \end_layout
2157 \begin_layout Subsubsection
2158 bit.parity(number...) / bit.bxor(number...)
2159 \end_layout
2161 \begin_layout Standard
2162 48-bit bitwise XOR / PARITY function (set bits that are set in odd number
2163  of the arguments).
2164 \end_layout
2166 \begin_layout Subsubsection
2167 bit.lrotate(number base[, number amount[, number bits]])
2168 \end_layout
2170 \begin_layout Standard
2171 Rotate bits-bit (max 48, default 48) number left by amount (default 1) places.
2172 \end_layout
2174 \begin_layout Subsubsection
2175 bit.rrotate(number base[, number amount[, number bits]])
2176 \end_layout
2178 \begin_layout Standard
2179 Rotate bits-bit (max 48, default 48) number right by amount (default 1)
2180  places.
2181 \end_layout
2183 \begin_layout Subsubsection
2184 bit.lshift(number base[, number amount[, number bits]])
2185 \end_layout
2187 \begin_layout Standard
2188 Shift bits-bit (max 48, default 48) number left by amount (default 1) places.
2189  The new bits are filled with zeroes.
2190 \end_layout
2192 \begin_layout Subsubsection
2193 bit.lrshift(number base[, number amount[, number bits]])
2194 \end_layout
2196 \begin_layout Standard
2197 Shift bits-bit (max 48, default 48) number logically right by amount (default
2198  1) places.
2199  The new bits are filled with zeroes.
2200 \end_layout
2202 \begin_layout Subsubsection
2203 bit.arshift(number base[, number amount[, number bits]])
2204 \end_layout
2206 \begin_layout Standard
2207 Shift bits-bit (max 48, default 48) number arithmetically right by amount
2208  (default 1) places.
2209  The new bits are shifted in with copy of the high bit.
2210 \end_layout
2212 \begin_layout Subsubsection
2213 bit.extract(number base[, number bit0[, number bit1,...]])
2214 \end_layout
2216 \begin_layout Standard
2217 Returns number that has bit0-th bit as bit 0, bit1-th bit as 1 and so on.
2218 \end_layout
2220 \begin_layout Standard
2221 Notes: 
2222 \end_layout
2224 \begin_layout Itemize
2225 Bit numbers up to 51 should work reliably (then things start falling apart
2226  due to double precision issues).
2227 \end_layout
2229 \begin_layout Itemize
2230 There are two special bit positions, true and false, standing for always
2231  set bit and always clear bit.
2232 \end_layout
2234 \begin_layout Subsubsection
2235 bit.value([number bit1[, number bit2,...]])
2236 \end_layout
2238 \begin_layout Standard
2239 Returns bitwise OR of 1 left shifted by bit1 places, 1 left shifted by bit2
2240  places and so on.
2241  As special value, nil argument is no-op.
2242 \end_layout
2244 \begin_layout Subsection
2245 Table gui:
2246 \end_layout
2248 \begin_layout Standard
2249 Most of these functions can only be called in on_paint and on_video callbacks.
2250  Exceptions are noted.
2251 \end_layout
2253 \begin_layout Standard
2254 Colors are 32-bit.
2255  Bits 0-7 are the blue component, bits 8-15 are the green component, bits
2256  16-23 are the red component, bits 24-31 are alpha component (0 is fully
2257  opaque, 255 is almost transparent).
2258  -1 is the fully transparent color.
2259  Alpha values greater than 127 do work.
2260 \end_layout
2262 \begin_layout Standard
2263 Origin of coordinates is at top left corner of game display area.
2264  Left and top gaps correspond to negative coordinates.
2265 \end_layout
2267 \begin_layout Subsubsection
2268 gui.resolution()
2269 \end_layout
2271 \begin_layout Standard
2272 Returns 2-tuple (hresolution, vresolution).
2273 \end_layout
2275 \begin_layout Subsubsection
2276 gui.<class>_gap(number gap)
2277 \end_layout
2279 \begin_layout Standard
2280 Set the <class> (left, right, top, bottom) gap to specified value (max gap
2281  is 8191).
2282 \end_layout
2284 \begin_layout Subsubsection
2285 gui.text(number x, number y, string text[, number fgc[, number bgc]])
2286 \end_layout
2288 \begin_layout Standard
2289 Draw specified text on the GUI (each character cell is 8 or 16 wide and
2290  16 high).
2291  Parameters:
2292 \end_layout
2294 \begin_layout Itemize
2295 x: X-coordinate to start the drawing from (and x-coordinate at begining
2296  of the lines).
2297 \end_layout
2299 \begin_layout Itemize
2300 y: Y-coordinate to start the drawing from.
2301 \end_layout
2303 \begin_layout Itemize
2304 text: The text to draw.
2305 \end_layout
2307 \begin_layout Itemize
2308 fgc: Text color (default is 0xFFFFFF (white))
2309 \end_layout
2311 \begin_layout Itemize
2312 bgc: Background color (default is -1 (transparent))
2313 \end_layout
2315 \begin_layout Subsubsection
2316 gui.textH(number x, number y, string text[, number fgc[, number bgc]])
2317 \end_layout
2319 \begin_layout Standard
2320 Like gui.text, but draw using double-width.
2321 \end_layout
2323 \begin_layout Subsubsection
2324 gui.textV(number x, number y, string text[, number fgc[, number bgc]])
2325 \end_layout
2327 \begin_layout Standard
2328 Like gui.text, but draw using double-height.
2329 \end_layout
2331 \begin_layout Subsubsection
2332 gui.textHV(number x, number y, string text[, number fgc[, number bgc]])
2333 \end_layout
2335 \begin_layout Standard
2336 Like gui.text, but draw using double-width/double-height.
2337 \end_layout
2339 \begin_layout Subsubsection
2340 gui.rectangle(number x, number y, number width, number height[, number thickness[
2341 , number outline[, number fill]]])
2342 \end_layout
2344 \begin_layout Standard
2345 Draw rectangle on the GUI.
2346  Parameters:
2347 \end_layout
2349 \begin_layout Itemize
2350 x: X-coordinate of left edge.
2351 \end_layout
2353 \begin_layout Itemize
2354 y: Y-coordinate of upper edge.
2355 \end_layout
2357 \begin_layout Itemize
2358 width: Width of rectangle.
2359 \end_layout
2361 \begin_layout Itemize
2362 height: Height of rectangle.
2363 \end_layout
2365 \begin_layout Itemize
2366 thickness: Thickness of outline (default is 1).
2367 \end_layout
2369 \begin_layout Itemize
2370 outline: Color of outline (default is 0xFFFFFF (white))
2371 \end_layout
2373 \begin_layout Itemize
2374 fill: Color of fill (default is -1 (transparent))
2375 \end_layout
2377 \begin_layout Subsubsection
2378 gui.box(number x, number y, number width, number height[, number thickness[,
2379  number outline1[,number outline2[, number fill]]]])
2380 \end_layout
2382 \begin_layout Standard
2383 Draw rectangle with 3D effect on the GUI.
2384  Parameters:
2385 \end_layout
2387 \begin_layout Itemize
2388 x: X-coordinate of left edge.
2389 \end_layout
2391 \begin_layout Itemize
2392 y: Y-coordinate of upper edge.
2393 \end_layout
2395 \begin_layout Itemize
2396 width: Width of rectangle.
2397 \end_layout
2399 \begin_layout Itemize
2400 height: Height of rectangle.
2401 \end_layout
2403 \begin_layout Itemize
2404 thickness: Thickness of outline (default is 1).
2405 \end_layout
2407 \begin_layout Itemize
2408 outline1: First color of outline (default is 0xFFFFFF (white))
2409 \end_layout
2411 \begin_layout Itemize
2412 outline2: First color of outline (default is 0x808080 (dark gray))
2413 \end_layout
2415 \begin_layout Itemize
2416 fill: Color of fill (default is 0xC0C0C0 (light grayy))
2417 \end_layout
2419 \begin_layout Subsubsection
2420 gui.pixel(number x, number y[, number color])
2421 \end_layout
2423 \begin_layout Standard
2424 Draw one pixel on the GUI.
2425  Parameters:
2426 \end_layout
2428 \begin_layout Itemize
2429 x: X-coordinate of the pixel
2430 \end_layout
2432 \begin_layout Itemize
2433 y: Y-coordinate of the pixel
2434 \end_layout
2436 \begin_layout Itemize
2437 color: Color of the pixel (default is 0xFFFFFF (white))
2438 \end_layout
2440 \begin_layout Subsubsection
2441 gui.crosshair(number x, number y[, number length[, number color]])
2442 \end_layout
2444 \begin_layout Standard
2445 Draw a crosshair.
2446  Parameters:
2447 \end_layout
2449 \begin_layout Itemize
2450 x: X-coordinate of the crosshair
2451 \end_layout
2453 \begin_layout Itemize
2454 y: Y-coordinate of the crosshair
2455 \end_layout
2457 \begin_layout Itemize
2458 length: Length of the crosshair lines (default 10).
2459 \end_layout
2461 \begin_layout Itemize
2462 color: Color of the crosshair (default is 0xFFFFFF (white))
2463 \end_layout
2465 \begin_layout Subsubsection
2466 gui.line(number x1, number y1, number x2, number y2[, number color])
2467 \end_layout
2469 \begin_layout Standard
2470 Draw a thin line.
2471  Parameters:
2472 \end_layout
2474 \begin_layout Itemize
2475 x1: X-coordinate of one end.
2476 \end_layout
2478 \begin_layout Itemize
2479 y1: Y-coordinate of one end.
2480 \end_layout
2482 \begin_layout Itemize
2483 x2: X-coordinate of the other end.
2484 \end_layout
2486 \begin_layout Itemize
2487 y2: Y-coordinate of the other end.
2488 \end_layout
2490 \begin_layout Itemize
2491 color: Color of the line (default is 0xFFFFFF (white)).
2492 \end_layout
2494 \begin_layout Subsubsection
2495 gui.circle(number x, number y, number r[, number thick[, number border[,
2496  number fil]]])
2497 \end_layout
2499 \begin_layout Standard
2500 Draw a circle.
2501  Parameters.
2502 \end_layout
2504 \begin_layout Itemize
2505 x: X-coordinate of the center
2506 \end_layout
2508 \begin_layout Itemize
2509 y: Y-coordinate of the center
2510 \end_layout
2512 \begin_layout Itemize
2513 r: The radius of the circle
2514 \end_layout
2516 \begin_layout Itemize
2517 thick: Border thickness
2518 \end_layout
2520 \begin_layout Itemize
2521 border: Border color (default is 0xFFFFFF (white))
2522 \end_layout
2524 \begin_layout Itemize
2525 fill: Fill color (default is -1 (transparent)).
2526 \end_layout
2528 \begin_layout Subsubsection
2529 gui.bitmap_draw(number x, number y, bitmap bitmap, palette palette)
2530 \end_layout
2532 \begin_layout Standard
2533 Draw a bitmap on screen with specified palette.
2534  Parameters:
2535 \end_layout
2537 \begin_layout Itemize
2538 x: X-coordinate of left edge.
2539 \end_layout
2541 \begin_layout Itemize
2542 y: Y-coordinate of top edge.
2543 \end_layout
2545 \begin_layout Itemize
2546 bitmap: The bitmap to draw
2547 \end_layout
2549 \begin_layout Itemize
2550 palette: The palette to draw the bitmap using.
2551 \end_layout
2553 \begin_layout Subsubsection
2554 gui.bitmap_draw(number x, number y, dbitmap bitmap)
2555 \end_layout
2557 \begin_layout Standard
2558 Draw a bitmap on screen.
2559  Parameters:
2560 \end_layout
2562 \begin_layout Itemize
2563 x: X-coordinate of left edge.
2564 \end_layout
2566 \begin_layout Itemize
2567 y: Y-coordinate of top edge.
2568 \end_layout
2570 \begin_layout Itemize
2571 bitmap: The bitmap to draw
2572 \end_layout
2574 \begin_layout Subsubsection
2575 gui.palette_new()
2576 \end_layout
2578 \begin_layout Standard
2579 Returns a new palette (initially all transparent).
2580  Can be used anywhere.
2581 \end_layout
2583 \begin_layout Subsubsection
2584 gui.bitmap_new(number w, number h, boolean direct[, bool icolor])
2585 \end_layout
2587 \begin_layout Standard
2588 Returns a new bitmap/dbitmap.
2589  Can be used anywhere.
2590  Parameters:
2591 \end_layout
2593 \begin_layout Itemize
2594 w: The width of new bitmap
2595 \end_layout
2597 \begin_layout Itemize
2598 h: The height of new bitmap
2599 \end_layout
2601 \begin_layout Itemize
2602 direct: If true, the returned bitmap is dbitmap, otherwise bitmap.
2603 \end_layout
2605 \begin_layout Itemize
2606 icolor: Initital fill color (defaults to 0 on BITMAP, -1 on DBITMAP)
2607 \end_layout
2609 \begin_layout Subsubsection
2610 gui.bitmap_load(string file)
2611 \end_layout
2613 \begin_layout Standard
2614 Returns loaded bitmap/dbitmap (if bitmap, the second return value is palette
2615  for bitmap).
2616  Can be used anywhere.
2617  Parameters:
2618 \end_layout
2620 \begin_layout Itemize
2621 file: The name of file to load.
2622 \end_layout
2624 \begin_layout Subsubsection
2625 gui.palette_set(palette palette, number index, number color)
2626 \end_layout
2628 \begin_layout Standard
2629 Sets color in palette.
2630  Can be used anywhere.
2631  Parameters:
2632 \end_layout
2634 \begin_layout Itemize
2635 palette: The palette to manipulate
2636 \end_layout
2638 \begin_layout Itemize
2639 index: Index of color (0-65535).
2640 \end_layout
2642 \begin_layout Itemize
2643 color: The color value.
2644 \end_layout
2646 \begin_layout Subsubsection
2647 gui.bitmap_pset(bitmap/dbitmap bitmap, number x, number y, number color)
2648 \end_layout
2650 \begin_layout Standard
2651 Sets specified pixel in bitmap.
2652  Can be used anywhere.
2653  Parameters:
2654 \end_layout
2656 \begin_layout Itemize
2657 bitmap: The bitmap to manipulate
2658 \end_layout
2660 \begin_layout Itemize
2661 x: The x-coordinate of the pixel.
2662 \end_layout
2664 \begin_layout Itemize
2665 y: The y-coordinate of the pixel.
2666 \end_layout
2668 \begin_layout Itemize
2669 color: If bitmap is a bitmap, color index (0-65535).
2670  Otherwise color value.
2671 \end_layout
2673 \begin_layout Subsubsection
2674 gui.bitmap_size(bitmap/dbitmap bitmap)
2675 \end_layout
2677 \begin_layout Standard
2678 Get size of bitmap.
2679  Can be used anywhere.
2680  Parameters:
2681 \end_layout
2683 \begin_layout Itemize
2684 bitmap: The bitmap to query.
2685 \end_layout
2687 \begin_layout Standard
2688 The first return is the width, the second is the height.
2689 \end_layout
2691 \begin_layout Subsubsection
2692 gui.bitmap_blit(bitmap/dbitmap dest, number dx, number dy, bitmap/dbitmap
2693  src, number sx, number sy, number w, number h[, number ck])
2694 \end_layout
2696 \begin_layout Standard
2697 Blit a part of bitmap to another.
2698  Can be used anywhere.
2699  Parameters:
2700 \end_layout
2702 \begin_layout Itemize
2703 dest: Destination to blit to.
2704 \end_layout
2706 \begin_layout Itemize
2707 dx: left edge of target
2708 \end_layout
2710 \begin_layout Itemize
2711 dy: Top edge of target
2712 \end_layout
2714 \begin_layout Itemize
2715 src: The source to blit from.
2716  Must be of the same type as destination.
2717 \end_layout
2719 \begin_layout Itemize
2720 sx: left edge of source
2721 \end_layout
2723 \begin_layout Itemize
2724 sy: Top edge of source
2725 \end_layout
2727 \begin_layout Itemize
2728 w: Width of region
2729 \end_layout
2731 \begin_layout Itemize
2732 h: Height of region.
2733 \end_layout
2735 \begin_layout Itemize
2736 ck: Color key.
2737  Pixels of this color are not blitted.
2738 \end_layout
2740 \begin_deeper
2741 \begin_layout Itemize
2742 If bitmaps are bitmaps, this is color index of colorkey.
2743  Values outside range 0-65535 cause no key to be used as colorkey.
2744 \end_layout
2746 \begin_layout Itemize
2747 If bitmaps are dbitmaps, this color value of colorkey.
2748 \end_layout
2750 \begin_layout Itemize
2751 May be absent or nil for no colorkey blit.
2752 \end_layout
2754 \end_deeper
2755 \begin_layout Subsubsection
2756 gui.repaint()
2757 \end_layout
2759 \begin_layout Standard
2760 Request on_repaint() to happen as soon as possible.
2761  Can be used anywhere.
2762 \end_layout
2764 \begin_layout Subsubsection
2765 gui.subframe_update(boolean on)
2766 \end_layout
2768 \begin_layout Standard
2769 Request subframe updates (calling on_paint() on subframes) to happen (on=true)
2770  or not happen (on=false).
2771  Can be used anywhere.
2772 \end_layout
2774 \begin_layout Subsubsection
2775 gui.screenshot(string filename)
2776 \end_layout
2778 \begin_layout Standard
2779 Write PNG screenshot of the current frame (no drawings) to specified file.
2780  Can be used anywhere.
2781 \end_layout
2783 \begin_layout Subsubsection
2784 gui.color(number r, number g, number b[, number a])
2785 \end_layout
2787 \begin_layout Standard
2788 Returns color (in notation Lua scripts use) corresponding to color (r,g,b),
2789  each component in scale 0-255.
2790  If a is specified, that is alpha (0 is fully transparent, 256(sic) is fully
2791  opaque).
2792  The default alpha is 256.
2793 \end_layout
2795 \begin_layout Subsubsection
2796 gui.status(string name, string value)
2797 \end_layout
2799 \begin_layout Standard
2800 Set status field 
2801 \begin_inset Quotes eld
2802 \end_inset
2804 L[<name>]
2805 \begin_inset Quotes erd
2806 \end_inset
2808  to <value> in status area.
2809  Can be used anywhere.
2810 \end_layout
2812 \begin_layout Subsubsection
2813 gui.rainbow(number step, number steps[, number color])
2814 \end_layout
2816 \begin_layout Standard
2817 Perform hue rotation of color <color> (default bright red), by <step> steps.
2818  The number of steps per full rotation is given by absolute value of <steps>.
2819 \end_layout
2821 \begin_layout Standard
2822 If <steps> is negative, the rotation will be counterclockwise.
2823 \end_layout
2825 \begin_layout Subsection
2826 table input
2827 \end_layout
2829 \begin_layout Standard
2830 Input handling.
2831  Only available in on_input callback.
2832 \end_layout
2834 \begin_layout Subsubsection
2835 input.get(number controller, number index)
2836 \end_layout
2838 \begin_layout Standard
2839 Read the specified index (0-11) from specified controller (0-7).
2840  Notes:
2841 \end_layout
2843 \begin_layout Itemize
2844 Uses physical controller numbering.
2845  Gamepad in port 2 is controller 4, not 1!
2846 \end_layout
2848 \begin_layout Subsubsection
2849 input.set(number controller, number index, number value)
2850 \end_layout
2852 \begin_layout Standard
2853 Write the specified index (0-11) from specified controller (0-7), storing
2854  value.
2855  Notes:
2856 \end_layout
2858 \begin_layout Itemize
2859 Uses physical controller numbering.
2860  Gamepad in port 2 is controller 4, not 1!
2861 \end_layout
2863 \begin_layout Subsubsection
2864 input.geta(number controller)
2865 \end_layout
2867 \begin_layout Standard
2868 Get input state for entiere controller.
2869  Returns 13 return values.
2870 \end_layout
2872 \begin_layout Itemize
2873 1st return value: Bitmask: bit i is set if i:th index is nonzero
2874 \end_layout
2876 \begin_layout Itemize
2877 2nd-13th return value: value of i:th index.
2878 \end_layout
2880 \begin_layout Subsubsection
2881 input.seta(number controller, number bitmask, number args...)
2882 \end_layout
2884 \begin_layout Standard
2885 Set state for entiere controller.
2886  args is up to 12 values for indices (overriding values in bitmask if specified).
2887 \end_layout
2889 \begin_layout Subsubsection
2890 input.controllertype(number controller)
2891 \end_layout
2893 \begin_layout Standard
2894 Get the type of controller as string.
2895  Valid values are:
2896 \end_layout
2898 \begin_layout Itemize
2899 gamepad
2900 \end_layout
2902 \begin_layout Itemize
2903 mouse
2904 \end_layout
2906 \begin_layout Itemize
2907 justifier
2908 \end_layout
2910 \begin_layout Itemize
2911 superscope
2912 \end_layout
2914 \begin_layout Subsubsection
2915 input.reset([number cycles])
2916 \end_layout
2918 \begin_layout Standard
2919 Execute reset.
2920  If cycles is greater than zero, do delayed reset.
2921  0 (or no value) causes immediate reset.
2922 \end_layout
2924 \begin_layout Itemize
2925 Only available with subframe flag false.
2926 \end_layout
2928 \begin_layout Subsubsection
2929 input.raw()
2930 \end_layout
2932 \begin_layout Standard
2933 Returns table of tables of all available keys and axes.
2934  The first table is indexed by key name (platform-dependent!), and the inner
2935  table has the following fields:
2936 \end_layout
2938 \begin_layout Itemize
2939 last_rawval: Last reported raw value for control.
2940 \end_layout
2942 \begin_layout Itemize
2943 ktype: Type of key (disabled, key, mouse, axis, axis-inverse, hat, pressure-m0,
2944  pressure-mp, pressure-0m, pressure-0p, pressure-pm, pressure-p0).
2945 \end_layout
2947 \begin_layout Itemize
2948 cal_left: Minimum calibration value.
2949  Only meaningful with axis and pressure types.
2950 \end_layout
2952 \begin_layout Itemize
2953 cal_center: Center calibration value.
2954  Only meaningful with axis and pressure types.
2955 \end_layout
2957 \begin_layout Itemize
2958 cal_right: Maximum calibration value.
2959  Only meaningful with axis and pressure types.
2960 \end_layout
2962 \begin_layout Itemize
2963 cal_tolerance: Dead zone tolerance.
2964  Only meaningful with axis and pressure types.
2965 \end_layout
2967 \begin_layout Subsubsection
2968 input.keyhook(key, state)
2969 \end_layout
2971 \begin_layout Standard
2972 Requests that keyhook events to be sent for key (state=true) or not sent
2973  (state=false).
2974 \end_layout
2976 \begin_layout Subsection
2977 Table hostmemory
2978 \end_layout
2980 \begin_layout Standard
2981 Host memory handling (extra memory saved to savestates).
2982  Host memory starts empty.
2983 \end_layout
2985 \begin_layout Subsubsection
2986 hostmemory.read(number address)
2987 \end_layout
2989 \begin_layout Standard
2990 Reads hostmemory slot address.
2991  Slot numbers out of range return false instead of numeric.
2992 \end_layout
2994 \begin_layout Subsubsection
2995 hostmemory.write(number address, number value)
2996 \end_layout
2998 \begin_layout Standard
2999 Writes hostmemory slot with 0-255.
3000  Slot numbers out of range cause extension of host memory slot space.
3001 \end_layout
3003 \begin_layout Subsubsection
3004 hostmemory.readbyte(number address)
3005 \end_layout
3007 \begin_layout Standard
3008 Read unsigned byte (1 element) from given address.
3009  Slots out of range return false.
3010 \end_layout
3012 \begin_layout Subsubsection
3013 hostmemory.writebyte(number address, number value)
3014 \end_layout
3016 \begin_layout Standard
3017 Write unsigned byte (1 element) to given slot.
3018  Slot numbers out of range cause extension.
3019 \end_layout
3021 \begin_layout Subsubsection
3022 hostmemory.readsbyte(number address)
3023 \end_layout
3025 \begin_layout Standard
3026 Read signed byte (1 element) from given address.
3027  Slots out of range return false.
3028 \end_layout
3030 \begin_layout Subsubsection
3031 hostmemory.writesbyte(number address, number value)
3032 \end_layout
3034 \begin_layout Standard
3035 Write signed byte (1 element) to given slot.
3036  Slot numbers out of range cause extension.
3037 \end_layout
3039 \begin_layout Subsubsection
3040 hostmemory.readword(number address)
3041 \end_layout
3043 \begin_layout Standard
3044 Read unsigned word (2 elements) from given address.
3045  Slots out of range return false.
3046 \end_layout
3048 \begin_layout Subsubsection
3049 hostmemory.writeword(number address, number value)
3050 \end_layout
3052 \begin_layout Standard
3053 Write unsigned word (2 elements) to given slot.
3054  Slot numbers out of range cause extension.
3055 \end_layout
3057 \begin_layout Subsubsection
3058 hostmemory.readsword(number address)
3059 \end_layout
3061 \begin_layout Standard
3062 Read signed word (2 elements) from given address.
3063  Slots out of range return false.
3064 \end_layout
3066 \begin_layout Subsubsection
3067 hostmemory.writesword(number address, number value)
3068 \end_layout
3070 \begin_layout Standard
3071 Write signed word (2 elements) to given slot.
3072  Slot numbers out of range cause extension.
3073 \end_layout
3075 \begin_layout Subsubsection
3076 hostmemory.readdword(number address)
3077 \end_layout
3079 \begin_layout Standard
3080 Read unsigned doubleword (4 elements) from given address.
3081  Slots out of range return false.
3082 \end_layout
3084 \begin_layout Subsubsection
3085 hostmemory.writedword(number address, number value)
3086 \end_layout
3088 \begin_layout Standard
3089 Write unsigned doubleword (4 elements) to given slot.
3090  Slot numbers out of range cause extension.
3091 \end_layout
3093 \begin_layout Subsubsection
3094 hostmemory.readsdword(number address)
3095 \end_layout
3097 \begin_layout Standard
3098 Read signed doubleword (4 elements) from given address.
3099  Slots out of range return false.
3100 \end_layout
3102 \begin_layout Subsubsection
3103 hostmemory.writesdword(number address, number value)
3104 \end_layout
3106 \begin_layout Standard
3107 Write signed doubleword (4 elements) to given slot.
3108  Slot numbers out of range cause extension.
3109 \end_layout
3111 \begin_layout Subsubsection
3112 hostmemory.readqword(number address)
3113 \end_layout
3115 \begin_layout Standard
3116 Read unsigned quadword (8 elements) from given address.
3117  Slots out of range return false.
3118 \end_layout
3120 \begin_layout Subsubsection
3121 hostmemory.writeqword(number address, number value)
3122 \end_layout
3124 \begin_layout Standard
3125 Write unsigned quadword (4 elements) to given slot.
3126  Slot numbers out of range cause extension.
3127 \end_layout
3129 \begin_layout Subsubsection
3130 hostmemory.readsqword(number address)
3131 \end_layout
3133 \begin_layout Standard
3134 Read signed quadword (8 elements) from given address.
3135  Slots out of range return false.
3136 \end_layout
3138 \begin_layout Subsubsection
3139 hostmemory.writesqword(number address, number value)
3140 \end_layout
3142 \begin_layout Standard
3143 Write signed quadword (8 elements) to given slot.
3144  Slot numbers out of range cause extension.
3145 \end_layout
3147 \begin_layout Subsection
3148 Table movie
3149 \end_layout
3151 \begin_layout Standard
3152 Movie handling
3153 \end_layout
3155 \begin_layout Subsubsection
3156 movie.currentframe()
3157 \end_layout
3159 \begin_layout Standard
3160 Return number of current frame.
3161 \end_layout
3163 \begin_layout Subsubsection
3164 movie.framecount()
3165 \end_layout
3167 \begin_layout Standard
3168 Return number of frames in movie.
3169 \end_layout
3171 \begin_layout Subsubsection
3172 movie.readonly()
3173 \end_layout
3175 \begin_layout Standard
3176 Return true if in readonly mode, false if in readwrite.
3177 \end_layout
3179 \begin_layout Subsubsection
3180 movie.set_readwrite()
3181 \end_layout
3183 \begin_layout Standard
3184 Set readwrite mode (does not cause on_readwrite callback).
3185 \end_layout
3187 \begin_layout Subsubsection
3188 movie.frame_subframes(number frame)
3189 \end_layout
3191 \begin_layout Standard
3192 Count number of subframes in specified frame (frame numbers are 1-based)
3193  and return that.
3194 \end_layout
3196 \begin_layout Subsubsection
3197 movie.read_subframe(number frame, number subframe)
3198 \end_layout
3200 \begin_layout Standard
3201 Read specifed subframe in specified frame and return data as array (100
3202  elements, numbered 0-99 currently).
3203 \end_layout
3205 \begin_layout Subsection
3206 Table settings
3207 \end_layout
3209 \begin_layout Standard
3210 Routines for settings manipulation
3211 \end_layout
3213 \begin_layout Subsubsection
3214 settings.get(string name)
3215 \end_layout
3217 \begin_layout Standard
3218 Get value of setting.
3219  If setting is blank, returns false.
3220  If setting value can't be obtained, returns (nil, error message).
3221 \end_layout
3223 \begin_layout Subsubsection
3224 settings.set(string name, string value)
3225 \end_layout
3227 \begin_layout Standard
3228 Set value of setting.
3229  If setting can't be set, returns (nil, error message).
3230 \end_layout
3232 \begin_layout Subsubsection
3233 settings.is_set(string name)
3234 \end_layout
3236 \begin_layout Standard
3237 Returns if setting is set.
3238  If setting does not exist, returns (nil, error message).
3239 \end_layout
3241 \begin_layout Subsubsection
3242 settings.blank(string name)
3243 \end_layout
3245 \begin_layout Standard
3246 Blanks a setting and returns true.
3247  If setting can't be blanked, returns (nil, error message).
3248 \end_layout
3250 \begin_layout Subsection
3251 Table memory
3252 \end_layout
3254 \begin_layout Standard
3255 Contains various functions for managing memory
3256 \end_layout
3258 \begin_layout Subsubsection
3259 memory.vma_count()
3260 \end_layout
3262 \begin_layout Standard
3263 Returns the number of VMAs
3264 \end_layout
3266 \begin_layout Subsubsection
3267 memory.read_vma(number index)
3268 \end_layout
3270 \begin_layout Standard
3271 Reads the specified VMA (indices start from zero).
3272  Trying to read invalid VMA gives nil.
3273  The read VMA is table with the following fields:
3274 \end_layout
3276 \begin_layout Itemize
3277 region_name (string): The readable name of the VMA
3278 \end_layout
3280 \begin_layout Itemize
3281 baseaddr (number): Base address of the VMA
3282 \end_layout
3284 \begin_layout Itemize
3285 lastaddr (number): Last address in the VMA.
3286 \end_layout
3288 \begin_layout Itemize
3289 size (number): The size of VMA in bytes.
3290 \end_layout
3292 \begin_layout Itemize
3293 readonly (boolean): True of the VMA corresponds to ROM.
3294 \end_layout
3296 \begin_layout Itemize
3297 native_endian (boolean): True if the VMA has native endian as opposed to
3298  little endian.
3299 \end_layout
3301 \begin_layout Subsubsection
3302 memory.find_vma(number address)
3303 \end_layout
3305 \begin_layout Standard
3306 Finds the VMA containing specified address.
3307  Returns table in the same format as read_vma or nil if not found.
3308 \end_layout
3310 \begin_layout Subsubsection
3311 memory.readbyte(number address)
3312 \end_layout
3314 \begin_layout Standard
3315 Reads the specified address as unsigned byte and returns the result.
3316 \end_layout
3318 \begin_layout Subsubsection
3319 memory.readsbyte(number address)
3320 \end_layout
3322 \begin_layout Standard
3323 Reads the specified address as signed byte and returns the result.
3324 \end_layout
3326 \begin_layout Subsubsection
3327 memory.writebyte(number address, number value)
3328 \end_layout
3330 \begin_layout Standard
3331 Writes the specified value (negative values undergo 2's complement) to specified
3332  address (as a byte).
3333 \end_layout
3335 \begin_layout Subsubsection
3336 memory.readword(number address)
3337 \end_layout
3339 \begin_layout Standard
3340 Reads the specified address as unsigned word and returns the result.
3341 \end_layout
3343 \begin_layout Subsubsection
3344 memory.readsword(number address)
3345 \end_layout
3347 \begin_layout Standard
3348 Reads the specified address as signed word and returns the result.
3349 \end_layout
3351 \begin_layout Subsubsection
3352 memory.writeword(number address, number value)
3353 \end_layout
3355 \begin_layout Standard
3356 Writes the specified value (negative values undergo 2's complement) to specified
3357  address (as a word).
3358 \end_layout
3360 \begin_layout Subsubsection
3361 memory.readdword(number address)
3362 \end_layout
3364 \begin_layout Standard
3365 Reads the specified address as unsigned doubleword and returns the result.
3366 \end_layout
3368 \begin_layout Subsubsection
3369 memory.readsdword(number address)
3370 \end_layout
3372 \begin_layout Standard
3373 Reads the specified address as signed doubleword and returns the result.
3374 \end_layout
3376 \begin_layout Subsubsection
3377 memory.writedword(number address, number value)
3378 \end_layout
3380 \begin_layout Standard
3381 Writes the specified value (negative values undergo 2's complement) to specified
3382  address (as a doubleword).
3383 \end_layout
3385 \begin_layout Subsubsection
3386 memory.readqword(number address)
3387 \end_layout
3389 \begin_layout Standard
3390 Reads the specified address as unsigned quadword and returns the result.
3391 \end_layout
3393 \begin_layout Subsubsection
3394 memory.readsqword(number address)
3395 \end_layout
3397 \begin_layout Standard
3398 Reads the specified address as signed quadword and returns the result.
3399 \end_layout
3401 \begin_layout Subsubsection
3402 memory.writeqword(number address, number value)
3403 \end_layout
3405 \begin_layout Standard
3406 Writes the specified value (negative values undergo 2's complement) to specified
3407  address (as a quadword).
3408 \end_layout
3410 \begin_layout Subsection
3411 Table _SYSTEM
3412 \end_layout
3414 \begin_layout Standard
3415 Contains copy of global variables from time of Lua initialization.
3416  Non-writeable.
3417 \end_layout
3419 \begin_layout Subsection
3420 Callbacks
3421 \end_layout
3423 \begin_layout Standard
3424 Various callbacks to Lua that can occur.
3425 \end_layout
3427 \begin_layout Subsubsection
3428 Callback: on_paint(bool not_synth)
3429 \end_layout
3431 \begin_layout Standard
3432 Called when screen is being painted.
3433  Any gui.* calls requiring graphic context draw on the screen.
3434 \end_layout
3436 \begin_layout Standard
3437 not_synth is true if this hook is being called in response to received frame,
3438  false otherwise.
3439 \end_layout
3441 \begin_layout Subsubsection
3442 Callback: on_video()
3443 \end_layout
3445 \begin_layout Standard
3446 Called when video dump frame is being painted.
3447  Any gui.* calls requiring graphic context draw on the video.
3448 \end_layout
3450 \begin_layout Subsubsection
3451 Callback: on_frame_emulated()
3452 \end_layout
3454 \begin_layout Standard
3455 Called when emulating frame has completed and on_paint()/on_video() calls
3456  are about to be issued.
3457 \end_layout
3459 \begin_layout Subsubsection
3460 Callback: on_frame()
3461 \end_layout
3463 \begin_layout Standard
3464 Called on each starting whole frame.
3465 \end_layout
3467 \begin_layout Subsubsection
3468 Callback: on_startup()
3469 \end_layout
3471 \begin_layout Standard
3472 Called when the emulator is starting (lsnes.rc and --run files has been run).
3473 \end_layout
3475 \begin_layout Subsubsection
3476 Callback: on_rewind()
3477 \end_layout
3479 \begin_layout Standard
3480 Called when rewind movie to beginning has completed.
3481 \end_layout
3483 \begin_layout Subsubsection
3484 Callback: on_pre_load(string name)
3485 \end_layout
3487 \begin_layout Standard
3488 Called just before savestate/movie load occurs (note: loads are always delayed,
3489  so this occurs even when load was initiated by lua).
3490 \end_layout
3492 \begin_layout Subsubsection
3493 Callback: on_err_load(string name)
3494 \end_layout
3496 \begin_layout Standard
3497 Called if loadstate goes wrong.
3498 \end_layout
3500 \begin_layout Subsubsection
3501 Callback: on_post_load(string name, boolean was_savestate)
3502 \end_layout
3504 \begin_layout Standard
3505 Called on successful loadstate.
3506  was_savestate gives if this was a savestate or a movie.
3507 \end_layout
3509 \begin_layout Subsubsection
3510 Callback: on_pre_save(string name, boolean is_savestate)
3511 \end_layout
3513 \begin_layout Standard
3514 Called just before savestate save occurs (note: movie saves are synchronous
3515  and won't trigger these callbacks if called from Lua).
3516 \end_layout
3518 \begin_layout Subsubsection
3519 Callback: on_err_save(string name)
3520 \end_layout
3522 \begin_layout Standard
3523 Called if savestate goes wrong.
3524 \end_layout
3526 \begin_layout Subsubsection
3527 Callback: on_post_save(string name, boolean is_savestate)
3528 \end_layout
3530 \begin_layout Standard
3531 Called on successful savaestate.
3532  is_savestate gives if this was a savestate or a movie.
3533 \end_layout
3535 \begin_layout Subsubsection
3536 Callback: on_quit()
3537 \end_layout
3539 \begin_layout Standard
3540 Called when emulator is shutting down.
3541 \end_layout
3543 \begin_layout Subsubsection
3544 Callback: on_input(boolean subframe)
3545 \end_layout
3547 \begin_layout Standard
3548 Called when emulator is just sending input to bsnes core.
3549  Warning: This is called even in readonly mode, but the results are ignored.
3550 \end_layout
3552 \begin_layout Subsubsection
3553 Callback: on_reset()
3554 \end_layout
3556 \begin_layout Standard
3557 Called when SNES is reset.
3558 \end_layout
3560 \begin_layout Subsubsection
3561 Callback: on_readwrite()
3562 \end_layout
3564 \begin_layout Standard
3565 Called when moving into readwrite mode as result of 
3566 \begin_inset Quotes eld
3567 \end_inset
3569 set-rwmode
3570 \begin_inset Quotes erd
3571 \end_inset
3573  command (note: moving to rwmode by Lua won't trigger this, as per recursive
3574  entry protection).
3575 \end_layout
3577 \begin_layout Subsubsection
3578 Callback: on_snoop(number port, number controller, number index, number
3579  value)
3580 \end_layout
3582 \begin_layout Standard
3583 Called each time bsnes asks for input.
3584  The value is the final value to be sent to bsnes core (readonly mode, autohold
3585  and autofire have been taken into account).
3586  Might be useful when translating movies to format suitable for console
3587  verification.
3588  Note: There is no way to modify the value to be sent.
3589 \end_layout
3591 \begin_layout Subsubsection
3592 Callback: on_keyhook(string keyname, table state)
3593 \end_layout
3595 \begin_layout Standard
3596 Sent when key that has keyhook events requested changes state.
3597  Keyname is name of the key (group) and state is the state (same kind as
3598  table values in input.raw).
3599 \end_layout
3601 \begin_layout Subsubsection
3602 Callback: on_idle()
3603 \end_layout
3605 \begin_layout Standard
3606 Called when requested by set_idle_timeout(), the timeout has expired and
3607  emulator is waiting.
3608 \end_layout
3610 \begin_layout Subsubsection
3611 Callback: on_timer()
3612 \end_layout
3614 \begin_layout Standard
3615 Called when requested by set_idle_timeout() and the timeout has expired
3616  (regardless if emulator is waiting).
3617 \end_layout
3619 \begin_layout Section
3620 Memory watch expression syntax
3621 \end_layout
3623 \begin_layout Standard
3624 Memory watch expressions are in RPN (Reverse Polish Notation).
3625  At the end of expression, the top entry on stack is taken as the final
3626  result.
3627 \end_layout
3629 \begin_layout Standard
3630 Notations:
3631 \end_layout
3633 \begin_layout Itemize
3634 Evaluation order is strictly left to right.
3635 \end_layout
3637 \begin_layout Itemize
3638 a is the entry on top of stack
3639 \end_layout
3641 \begin_layout Itemize
3642 b is the entry immediately below top of stack
3643 \end_layout
3645 \begin_layout Itemize
3646 ; separates values to be pushed (no intermediate pop).
3647 \end_layout
3649 \begin_layout Itemize
3650 After end of element, all used stack slots are popped and all results are
3651  pushed.
3652 \end_layout
3654 \begin_layout Itemize
3655 When pushing multiple values, the pushes occur in order shown.
3656 \end_layout
3658 \begin_layout Standard
3659 The following operators are available:
3660 \end_layout
3662 \begin_layout Itemize
3663 + : a + b
3664 \end_layout
3666 \begin_layout Itemize
3667 - : a - b
3668 \end_layout
3670 \begin_layout Itemize
3671 * : a * b
3672 \end_layout
3674 \begin_layout Itemize
3675 / : a / b
3676 \end_layout
3678 \begin_layout Itemize
3679 % : a % b
3680 \end_layout
3682 \begin_layout Itemize
3683 a : atan(a)
3684 \end_layout
3686 \begin_layout Itemize
3687 b : read_signed_byte(a)
3688 \end_layout
3690 \begin_layout Itemize
3691 c : cos(a)
3692 \end_layout
3694 \begin_layout Itemize
3695 d : read_signed_dword(a)
3696 \end_layout
3698 \begin_layout Itemize
3699 i : quotent(a / b)
3700 \end_layout
3702 \begin_layout Itemize
3703 p :
3704 \begin_inset Formula $\pi$
3705 \end_inset
3708 \end_layout
3710 \begin_layout Itemize
3711 q : read_signed_qword(a)
3712 \end_layout
3714 \begin_layout Itemize
3715 r : sqrt(a)
3716 \end_layout
3718 \begin_layout Itemize
3719 s : sin(a)
3720 \end_layout
3722 \begin_layout Itemize
3723 t : tan(a)
3724 \end_layout
3726 \begin_layout Itemize
3727 u : a; a
3728 \end_layout
3730 \begin_layout Itemize
3731 w : read_signed_word(a)
3732 \end_layout
3734 \begin_layout Itemize
3735 A : atan2(a, b)
3736 \end_layout
3738 \begin_layout Itemize
3739 B : read_unsigned_byte(a)
3740 \end_layout
3742 \begin_layout Itemize
3743 C<number>z : Push number <number> to stack.
3744 \end_layout
3746 \begin_layout Itemize
3747 D : read_unsigned_dword(a)
3748 \end_layout
3750 \begin_layout Itemize
3751 C0x<number>z : Push number <number> (hexadecimal) to stack.
3752 \end_layout
3754 \begin_layout Itemize
3755 Q : read_unsigned_qword(a)
3756 \end_layout
3758 \begin_layout Itemize
3759 R<digit> : round a to <digit> digits.
3760 \end_layout
3762 \begin_layout Itemize
3763 W : read_unsigned_word(a)
3764 \end_layout
3766 \begin_layout Subsection
3767 Example:
3768 \end_layout
3770 \begin_layout Standard
3771 C0x007e0878zWC0x007e002czW-
3772 \end_layout
3774 \begin_layout Enumerate
3775 Push value 0x7e0878 on top of stack (C0x007e0878z).
3776 \end_layout
3778 \begin_layout Enumerate
3779 Pop the value on top of stack (0x7e0878), read word value at that address
3780  and push the result,call it x1 (W).
3781 \end_layout
3783 \begin_layout Enumerate
3784 Push value 0x7e002c on top of stack (C0x007e002cz).
3785 \end_layout
3787 \begin_layout Enumerate
3788 Pop the value on top of stack (0x7e002c), read word value at that address
3789  and push the result,call it x2 (W).
3790 \end_layout
3792 \begin_layout Enumerate
3793 Pop the two top numbers on stack, x1 and x2, substract x1 from x2 and push
3794  x2 - x1 (-).
3795 \end_layout
3797 \begin_layout Enumerate
3798 Since the expression ends, the final memory watch result is the top one
3799  on stack, which is x2 - x1.
3800 \end_layout
3802 \begin_layout Section
3803 Modifier and key names:
3804 \end_layout
3806 \begin_layout Subsection
3807 SDL Platform
3808 \end_layout
3810 \begin_layout Subsubsection
3811 Modifier names
3812 \end_layout
3814 \begin_layout Standard
3815 Following modifier names are known:
3816 \end_layout
3818 \begin_layout Itemize
3819 ctrl, lctrl, rctrl: Control keys
3820 \end_layout
3822 \begin_layout Itemize
3823 alt, lalt, ralt: ALT keys.
3824 \end_layout
3826 \begin_layout Itemize
3827 shift, lshift, rshift: Shift keys.
3828 \end_layout
3830 \begin_layout Itemize
3831 meta, lmeta, rmeta: Meta keys.
3832 \end_layout
3834 \begin_layout Itemize
3835 num, caps: Numlock/Capslock (these are sticky!)
3836 \end_layout
3838 \begin_layout Itemize
3839 mode: Mode select.
3840 \end_layout
3842 \begin_layout Subsubsection
3843 Key names
3844 \end_layout
3846 \begin_layout Standard
3847 Following key names are known:
3848 \end_layout
3850 \begin_layout Itemize
3851 backspace, tab, clear, return, pause, escape, space, exclaim, quotedbl,
3852  hash, dollar, ampersand, quote, leftparen, rightparen, asterisk, plus,
3853  comma, minus, period, slash, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, colon, semicolon,
3854  less, equals, greater, question, at, leftbracket, backslash, rightbracket,
3855  caret, underscore, backquote, a, b, c, d, e, f, g, h, i, j, k, l, m, n,
3856  o, p, q, r, s, t, u, v, w, x, y, z, delete, world_0, world_1, world_2,
3857  world_3, world_4, world_5, world_6, world_7, world_8, world_9, world_10,
3858  world_11, world_12, world_13, world_14, world_15, world_16, world_17, world_18,
3859  world_19, world_20, world_21, world_22, world_23, world_24, world_25, world_26,
3860  world_27, world_28, world_29, world_30, world_31, world_32, world_33, world_34,
3861  world_35, world_36, world_37, world_38, world_39, world_40, world_41, world_42,
3862  world_43, world_44, world_45, world_46, world_47, world_48, world_49, world_50,
3863  world_51, world_52, world_53, world_54, world_55, world_56, world_57, world_58,
3864  world_59, world_60, world_61, world_62, world_63, world_64, world_65, world_66,
3865  world_67, world_68, world_69, world_70, world_71, world_72, world_73, world_74,
3866  world_75, world_76, world_77, world_78, world_79, world_80, world_81, world_82,
3867  world_83, world_84, world_85, world_86, world_87, world_88, world_89, world_90,
3868  world_91, world_92, world_93, world_94, world_95, kp0, kp1, kp2, kp3, kp4,
3869  kp5, kp6, kp7, kp8, kp9, kp_period, kp_divide, kp_multiply, kp_minus, kp_plus,
3870  kp_enter, kp_equals, up, down, right, left, insert, home, end, pageup,
3871  pagedown, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14,
3872  f15, numlock, capslock, scrollock, rshift, lshift, rctrl, lctrl, ralt,
3873  lalt, rmeta, lmeta, lsuper, rsuper, mode, compose, help, print, sysreq,
3874  break, menu, power, euro, undo
3875 \end_layout
3877 \begin_layout Itemize
3878 Names of form 'key<n>' where <n> is 0-255 are interpretted as key having
3879  hardware-dependent scan code of <n> (useful to bind those keys that don't
3880  have symbolic names).
3881 \end_layout
3883 \begin_layout Subsubsection
3884 Joystick pseudo-keys:
3885 \end_layout
3887 \begin_layout Itemize
3888 joystick<num>button<button>: Joystick <num> (0-based) button <button> (0-based).
3889 \end_layout
3891 \begin_layout Itemize
3892 joystick<num>hat<hat>n: Joystick <num> (0-based) hat <hat> (0-based) up.
3893 \end_layout
3895 \begin_layout Itemize
3896 joystick<num>hat<hat>w: Joystick <num> (0-based) hat <hat> (0-based) left.
3897 \end_layout
3899 \begin_layout Itemize
3900 joystick<num>hat<hat>s: Joystick <num> (0-based) hat <hat> (0-based) down.
3901 \end_layout
3903 \begin_layout Itemize
3904 joystick<num>hat<hat>e: Joystick <num> (0-based) hat <hat> (0-based) right.
3905 \end_layout
3907 \begin_layout Itemize
3908 joystick<num>axis<axis>-: Joystick <num> (0-based) axis <axis> negative
3909  position (axis modes axis and axis_inverse).
3910 \end_layout
3912 \begin_layout Itemize
3913 joystick<num>axis<axis>+: Joystick <num> (0-based) axis <axis> positive
3914  position (axis modes axis and axis_inverse).
3915 \end_layout
3917 \begin_layout Itemize
3918 joystick<num>axis<axis>: Joystick <num> (0-based) axis <axis> pressure (axis
3919  modes pressure_*).
3920 \end_layout
3922 \begin_layout Subsubsection
3923 Special buttons:
3924 \end_layout
3926 \begin_layout Itemize
3927 Escape: Enter/Exit Command mode, cancel modal dialogs.
3928 \end_layout
3930 \begin_layout Itemize
3931 Return (also KPEnter): Execute command, ok modal dialog.
3932 \end_layout
3934 \begin_layout Itemize
3935 Pgup/Up (also KP8/9 if no num lock; command mode): Previous command in command
3936  history
3937 \end_layout
3939 \begin_layout Itemize
3940 Pgdn/Down(also KP2/3 if no num lock; command mode): Next command in command
3941  history
3942 \end_layout
3944 \begin_layout Itemize
3945 Home (also KP7 if no num lock; command mode): Beginning of command.
3946 \end_layout
3948 \begin_layout Itemize
3949 End (also KP1 if no num lock; command mode): End of command.
3950 \end_layout
3952 \begin_layout Itemize
3953 Left (also KP4 if no num lock; command mode): Move cursor left.
3954 \end_layout
3956 \begin_layout Itemize
3957 Right (also KP6 if no num lock; command mode): Move cursor right.
3958 \end_layout
3960 \begin_layout Itemize
3961 Delete (also KP.
3962  if no num lock; command mode): Delete character to right of cursor.
3963 \end_layout
3965 \begin_layout Itemize
3966 Insert (also KP0 if no num lock; command mode): Toggle between insert /
3967  overwrite modes.
3968 \end_layout
3970 \begin_layout Itemize
3971 Backspace (command mode): Delete character to left of cursor.
3972 \end_layout
3974 \begin_layout Itemize
3975 LCTRL+LALT+ESCAPE: Ungraceful shutdown (leaves dump corrupted!).
3976 \end_layout
3978 \begin_layout Subsection
3979 wxWidgets platform
3980 \end_layout
3982 \begin_layout Subsubsection
3983 Modifier names:
3984 \end_layout
3986 \begin_layout Standard
3987 Following modifier names are known:
3988 \end_layout
3990 \begin_layout Itemize
3992 \end_layout
3994 \begin_layout Itemize
3995 ctrl
3996 \end_layout
3998 \begin_layout Itemize
3999 shift 
4000 \end_layout
4002 \begin_layout Itemize
4003 meta
4004 \end_layout
4006 \begin_layout Itemize
4007 cmd (Mac OS X only)
4008 \end_layout
4010 \begin_layout Subsubsection
4011 Key names:
4012 \end_layout
4014 \begin_layout Standard
4015 Following key names are known:
4016 \end_layout
4018 \begin_layout Itemize
4019 back, tab, return, escape, space, exclaim, quotedbl, hash, dollar, percent,
4020  ampersand, quote, leftparen, rightparen, asterisk, plus, comma, minus,
4021  period, slash, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, colon, semicolon, less, equals,
4022  greater, question, at, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p,
4023  q, r, s, t, u, v, w, x, y, z, leftbracket, backslash, rightbracket, caret,
4024  underscore, backquote, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p,
4025  q, r, s, t, u, v, w, x, y, z, leftcurly, pipe, rightcurly, tilde, delete,
4026  start, lbutton, rbutton, cancel, mbutton, clear, shift, alt, control, menu,
4027  pause, capital, end, home, lefT, up, right, down, select, print, execute,
4028  snapshot, insert, help, numpad0, numpad1, numpad2, numpad3, numpad4, numpad5,
4029  numpad6, numpad7, numpad8, numpad9, multiply, add, separator, subtract,
4030  decimal, divide, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13,
4031  f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, numlock, scroll,
4032  pageup, pagedown, numpad_space, numpad_tab, numpad_enter, numpad_f1, numpad_f2,
4033  numpad_f3, numpad_f4, numpad_home, numpad_left, numpad_up, numpad_right,
4034  numpad_down, numpad_pageup, numpad_pagedown, numpad_end, numpad_begin,
4035  numpad_insert, numpad_delete, numpad_equal, numpad_multiply, numpad_add,
4036  numpad_separator, numpad_subtract, numpad_decimal, numpad_divide, windows_left,
4037  windows_right, windows_menu, command, special1, special2, special3, special4,
4038  special5, special6, special7, special8, special9, special10, special11,
4039  special12, special13, special14, special15, special16, special17, special18,
4040  special19, special20
4041 \end_layout
4043 \begin_layout Section
4044 Movie file format
4045 \end_layout
4047 \begin_layout Standard
4048 Movie file is .zip archive in itself, normal ZIP archive tools work on it
4049  (note: If you recompress it, do not use compression methods other than
4050  store and deflate and especially do not use encryption of any kind).
4051 \end_layout
4053 \begin_layout Subsection
4054 Detecting clean start/SRAM/Savestate
4055 \end_layout
4057 \begin_layout Itemize
4058 If file has member 
4059 \begin_inset Quotes eld
4060 \end_inset
4062 savestate
4063 \begin_inset Quotes erd
4064 \end_inset
4066  it is savestate, otherwise:
4067 \end_layout
4069 \begin_layout Itemize
4070 If file has members with names starting 
4071 \begin_inset Quotes eld
4072 \end_inset
4074 moviesram.
4075 \begin_inset Quotes erd
4076 \end_inset
4078  it is movie starting from SRAM, otherwise:
4079 \end_layout
4081 \begin_layout Itemize
4082 It is movie starting from clear state.
4083 \end_layout
4085 \begin_layout Subsection
4086 Member: gametype
4087 \end_layout
4089 \begin_layout Standard
4090 Type of game ROM and region (as one line).
4091  Valid values are:
4092 \end_layout
4094 \begin_layout Standard
4095 \begin_inset Tabular
4096 <lyxtabular version="3" rows="8" columns="3">
4097 <features tabularvalignment="middle">
4098 <column alignment="center" valignment="top" width="0">
4099 <column alignment="center" valignment="top" width="0">
4100 <column alignment="center" valignment="top" width="0">
4101 <row>
4102 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
4103 \begin_inset Text
4105 \begin_layout Plain Layout
4106 Value
4107 \end_layout
4109 \end_inset
4110 </cell>
4111 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
4112 \begin_inset Text
4114 \begin_layout Plain Layout
4115 System
4116 \end_layout
4118 \end_inset
4119 </cell>
4120 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
4121 \begin_inset Text
4123 \begin_layout Plain Layout
4124 Region
4125 \end_layout
4127 \end_inset
4128 </cell>
4129 </row>
4130 <row>
4131 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
4132 \begin_inset Text
4134 \begin_layout Plain Layout
4135 snes_pal
4136 \end_layout
4138 \end_inset
4139 </cell>
4140 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
4141 \begin_inset Text
4143 \begin_layout Plain Layout
4144 Super NES
4145 \end_layout
4147 \end_inset
4148 </cell>
4149 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
4150 \begin_inset Text
4152 \begin_layout Plain Layout
4154 \end_layout
4156 \end_inset
4157 </cell>
4158 </row>
4159 <row>
4160 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
4161 \begin_inset Text
4163 \begin_layout Plain Layout
4164 sgb_pal
4165 \end_layout
4167 \end_inset
4168 </cell>
4169 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
4170 \begin_inset Text
4172 \begin_layout Plain Layout
4173 Super Game Boy
4174 \end_layout
4176 \end_inset
4177 </cell>
4178 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
4179 \begin_inset Text
4181 \begin_layout Plain Layout
4183 \end_layout
4185 \end_inset
4186 </cell>
4187 </row>
4188 <row>
4189 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
4190 \begin_inset Text
4192 \begin_layout Plain Layout
4193 snes_ntsc
4194 \end_layout
4196 \end_inset
4197 </cell>
4198 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
4199 \begin_inset Text
4201 \begin_layout Plain Layout
4202 Super NES
4203 \end_layout
4205 \end_inset
4206 </cell>
4207 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
4208 \begin_inset Text
4210 \begin_layout Plain Layout
4211 NTSC
4212 \end_layout
4214 \end_inset
4215 </cell>
4216 </row>
4217 <row>
4218 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
4219 \begin_inset Text
4221 \begin_layout Plain Layout
4222 sgb_ntsc
4223 \end_layout
4225 \end_inset
4226 </cell>
4227 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
4228 \begin_inset Text
4230 \begin_layout Plain Layout
4231 Super Game Boy
4232 \end_layout
4234 \end_inset
4235 </cell>
4236 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
4237 \begin_inset Text
4239 \begin_layout Plain Layout
4240 NTSC
4241 \end_layout
4243 \end_inset
4244 </cell>
4245 </row>
4246 <row>
4247 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
4248 \begin_inset Text
4250 \begin_layout Plain Layout
4252 \end_layout
4254 \end_inset
4255 </cell>
4256 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
4257 \begin_inset Text
4259 \begin_layout Plain Layout
4260 BS-X (non-slotted)
4261 \end_layout
4263 \end_inset
4264 </cell>
4265 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
4266 \begin_inset Text
4268 \begin_layout Plain Layout
4269 NTSC
4270 \end_layout
4272 \end_inset
4273 </cell>
4274 </row>
4275 <row>
4276 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
4277 \begin_inset Text
4279 \begin_layout Plain Layout
4280 bsxslotted
4281 \end_layout
4283 \end_inset
4284 </cell>
4285 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
4286 \begin_inset Text
4288 \begin_layout Plain Layout
4289 BS-X (slotted)
4290 \end_layout
4292 \end_inset
4293 </cell>
4294 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
4295 \begin_inset Text
4297 \begin_layout Plain Layout
4298 NTSC
4299 \end_layout
4301 \end_inset
4302 </cell>
4303 </row>
4304 <row>
4305 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
4306 \begin_inset Text
4308 \begin_layout Plain Layout
4309 sufamiturbo
4310 \end_layout
4312 \end_inset
4313 </cell>
4314 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
4315 \begin_inset Text
4317 \begin_layout Plain Layout
4318 Sufami Turbo
4319 \end_layout
4321 \end_inset
4322 </cell>
4323 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
4324 \begin_inset Text
4326 \begin_layout Plain Layout
4327 NTSC
4328 \end_layout
4330 \end_inset
4331 </cell>
4332 </row>
4333 </lyxtabular>
4335 \end_inset
4338 \end_layout
4340 \begin_layout Standard
4341 Frame rates are:
4342 \end_layout
4344 \begin_layout Standard
4345 \begin_inset Tabular
4346 <lyxtabular version="3" rows="3" columns="2">
4347 <features tabularvalignment="middle">
4348 <column alignment="center" valignment="top" width="0">
4349 <column alignment="center" valignment="top" width="0">
4350 <row>
4351 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
4352 \begin_inset Text
4354 \begin_layout Plain Layout
4355 Region
4356 \end_layout
4358 \end_inset
4359 </cell>
4360 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
4361 \begin_inset Text
4363 \begin_layout Plain Layout
4364 Framerate (fps)
4365 \end_layout
4367 \end_inset
4368 </cell>
4369 </row>
4370 <row>
4371 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
4372 \begin_inset Text
4374 \begin_layout Plain Layout
4376 \end_layout
4378 \end_inset
4379 </cell>
4380 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
4381 \begin_inset Text
4383 \begin_layout Plain Layout
4384 322445/6448
4385 \end_layout
4387 \end_inset
4388 </cell>
4389 </row>
4390 <row>
4391 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
4392 \begin_inset Text
4394 \begin_layout Plain Layout
4395 NTSC
4396 \end_layout
4398 \end_inset
4399 </cell>
4400 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
4401 \begin_inset Text
4403 \begin_layout Plain Layout
4404 10738636/178683
4405 \end_layout
4407 \end_inset
4408 </cell>
4409 </row>
4410 </lyxtabular>
4412 \end_inset
4415 \end_layout
4417 \begin_layout Subsection
4418 Member: port1
4419 \end_layout
4421 \begin_layout Standard
4422 Contains type of port #1 (as one line).
4423  Valid values are 'none', 'gamepad', 'multitap' and 'mouse'.
4424  If not present, defaults to 'gamepad'.
4425 \end_layout
4427 \begin_layout Subsection
4428 Member: port2
4429 \end_layout
4431 \begin_layout Standard
4432 Contains type of port #2 (as one line).
4433  Valid values are 'none', 'gamepad', 'multitap', 'mouse', 'superscope',
4434  'justifier' and 'justifiers'.
4435  If not present, defaults to 'none'.
4436 \end_layout
4438 \begin_layout Subsection
4439 Member: gamename
4440 \end_layout
4442 \begin_layout Standard
4443 Contains name of the game (as one line).
4444 \end_layout
4446 \begin_layout Subsection
4447 Member: authors
4448 \end_layout
4450 \begin_layout Standard
4451 Contains authors, one per line.
4452  Part before '|' is the full name, part after is the nickname.
4453 \end_layout
4455 \begin_layout Subsection
4456 Member: systemid
4457 \end_layout
4459 \begin_layout Standard
4460 Always 
4461 \begin_inset Quotes eld
4462 \end_inset
4464 lsnes-rr1
4465 \begin_inset Quotes erd
4466 \end_inset
4468  (one line).
4469  Used to reject other saves.
4470 \end_layout
4472 \begin_layout Subsection
4473 Member: controlsversion
4474 \end_layout
4476 \begin_layout Standard
4477 Always 
4478 \begin_inset Quotes eld
4479 \end_inset
4482 \begin_inset Quotes erd
4483 \end_inset
4485  (one line).
4486  Used to identify what controls are there.
4487 \end_layout
4489 \begin_layout Subsection
4490 Member: 
4491 \begin_inset Quotes eld
4492 \end_inset
4494 coreversion
4495 \begin_inset Quotes erd
4496 \end_inset
4499 \end_layout
4501 \begin_layout Standard
4502 Contains bsnes core version number (as one line).
4503 \end_layout
4505 \begin_layout Subsection
4506 Member: projectid
4507 \end_layout
4509 \begin_layout Standard
4510 Contains project ID (as one line).
4511  Used to identify if two movies are part of the same project.
4512 \end_layout
4514 \begin_layout Subsection
4515 Member: {rom,slota,slotb}{,xml}.sha256
4516 \end_layout
4518 \begin_layout Standard
4519 Contains SHA-256 of said ROM or ROM mapping file (as one line).
4520  Absent if corresponding file is absent.
4521 \end_layout
4523 \begin_layout Subsection
4524 Member: moviesram.<name>
4525 \end_layout
4527 \begin_layout Standard
4528 Raw binary startup SRAM of kind <name>.
4529  Only present in savestates and movies starting from SRAM.
4530 \end_layout
4532 \begin_layout Subsection
4533 Member: saveframe
4534 \end_layout
4536 \begin_layout Standard
4537 Contains frame number (as one line) of frame movie was saved on.
4538  Only present in savestates.
4539 \end_layout
4541 \begin_layout Subsection
4542 Member: lagcounter
4543 \end_layout
4545 \begin_layout Standard
4546 Current value of lag counter (as one line).
4547  Only present in savestates.
4548 \end_layout
4550 \begin_layout Subsection
4551 Member: pollcounters
4552 \end_layout
4554 \begin_layout Standard
4555 Contains poll counters (currently 100 of them), one per line.
4556  Each line is raw poll count if DRDY is set for it.
4557  Otherwise it is negative poll count minus one.
4558  Only present in savestates.
4559 \end_layout
4561 \begin_layout Subsection
4562 Member: hostmemory
4563 \end_layout
4565 \begin_layout Standard
4566 Raw binary dump of host memory.
4567  Only present in savestates.
4568 \end_layout
4570 \begin_layout Subsection
4571 Member: savestate
4572 \end_layout
4574 \begin_layout Standard
4575 The raw binary savestate itself.
4576  Savestate detection uses this file, only present in savestates.
4577 \end_layout
4579 \begin_layout Subsection
4580 Member: screenshot
4581 \end_layout
4583 \begin_layout Standard
4584 Screenshot of current frame.
4585  Only present in savestates.
4586  First 2 bytes are big-endian width of image, rest are 24-bit RGB image
4587  data.
4588  Height of image is inferred from the width and size of data.
4589 \end_layout
4591 \begin_layout Subsection
4592 Member: sram.<name>
4593 \end_layout
4595 \begin_layout Standard
4596 Raw binary SRAM of kind <name> at time of savestate.
4597  Only present in savestates.
4598 \end_layout
4600 \begin_layout Subsection
4601 Member: input
4602 \end_layout
4604 \begin_layout Standard
4605 The actual input track, one line per subframe (blank lines are skipped).
4606 \end_layout
4608 \begin_layout Itemize
4609 If the first byte of each line is '.', ' ', <tab> or '|', then the line is
4610  part of same frame as previous, otherwise it starts a new frame.
4611 \end_layout
4613 \begin_layout Itemize
4614 First subframe must start a new frame.
4615 \end_layout
4617 \begin_layout Standard
4618 Length of movie in frames is number of lines in input file that start a
4619  new frame.
4620 \end_layout
4622 \begin_layout Subsection
4623 Member: rerecords
4624 \end_layout
4626 \begin_layout Standard
4627 Contains textual base-10 rerecord count (as one line; emulator just writes
4628  this, it doesn't read it) + 1.
4629 \end_layout
4631 \begin_layout Subsection
4632 Member: rrdata
4633 \end_layout
4635 \begin_layout Standard
4636 This member stores set of load IDs.
4637  There is one load ID per rerecord (plus one corresponding to start of project).
4638 \end_layout
4640 \begin_layout Itemize
4641 This member constists of concatenation of records
4642 \end_layout
4644 \begin_layout Itemize
4645 Each record is 2-36 bytes long and can represent 1-16,843,009 consequtive
4646  IDs.
4647 \end_layout
4649 \begin_layout Itemize
4650 IDs are interpretted as 256-bit big-endian integers with warparound.
4651 \end_layout
4653 \begin_layout Itemize
4654 Initial predicted ID is all zeroes.
4655 \end_layout
4657 \begin_layout Standard
4658 Format of each record is:
4659 \end_layout
4661 \begin_layout Itemize
4662 1 byte: Opcode byte.
4663  Bits 0-4 are prefix length (prefixlen), bits 5-6 are count length (countlen).
4664  Bit 7 is unused.
4665 \end_layout
4667 \begin_layout Itemize
4668 32-prefixlen bytes of ID.
4669 \end_layout
4671 \begin_layout Itemize
4672 countlen bytes of big-endian count (count).
4673 \end_layout
4675 \begin_layout Standard
4676 Records are processed as follows:
4677 \end_layout
4679 \begin_layout Itemize
4680 To form the first ID encoded by record, take the first prefixlen bytes predicted
4681  ID and append the read ID value to it.
4682  The result is the first ID encoded.
4683 \end_layout
4685 \begin_layout Itemize
4686 If countlen is 0, record encodes 1 ID.
4687 \end_layout
4689 \begin_layout Itemize
4690 If countlen is 1, record encodes 2+count IDs.
4691 \end_layout
4693 \begin_layout Itemize
4694 If countlen is 2, record encodes 258+count IDs.
4695 \end_layout
4697 \begin_layout Itemize
4698 If countlen is 3, record encodes 65794+count IDs.
4699 \end_layout
4701 \begin_layout Itemize
4702 The new predicted ID is the next ID after last one encoded by the record.
4703 \end_layout
4705 \begin_layout Standard
4706 The number of rerecords + 1 is equal to the sum of number of IDs encoded
4707  by all records.
4708 \end_layout
4710 \begin_layout Subsection
4711 Member: starttime.second
4712 \end_layout
4714 \begin_layout Standard
4715 Movie starting time, second part.
4716  Epoch is Unix epoch.
4717  Default is 1,000,000,000.
4718 \end_layout
4720 \begin_layout Subsection
4721 Member: starttime.subsecond
4722 \end_layout
4724 \begin_layout Standard
4725 Movie starting time, subsecond part.
4726  Unit is CPU clocks.
4727  Default is 0.
4728 \end_layout
4730 \begin_layout Subsection
4731 Member: savetime.second
4732 \end_layout
4734 \begin_layout Standard
4735 Movie saving time, second part.
4736  Default is starttime.second.
4737  Only present in savestates.
4738 \end_layout
4740 \begin_layout Subsection
4741 Member: savetime.subsecond
4742 \end_layout
4744 \begin_layout Standard
4745 Movie saving time, subsecond part.
4746  Default is starttime.subsecond.
4747  Only present in savestates.
4748 \end_layout
4750 \begin_layout Section
4751 Quick'n'dirty encode guide
4752 \end_layout
4754 \begin_layout Enumerate
4755 Start the emulator and load the movie file.
4756 \end_layout
4758 \begin_layout Enumerate
4759 Set large AVI option 'set-setting avi-large on'
4760 \end_layout
4762 \begin_layout Enumerate
4763 Enable dumping 'dump-avi tmpdump' 
4764 \end_layout
4766 \begin_layout Enumerate
4767 Unpause and let it run until you want to end dumping.
4768 \end_layout
4770 \begin_layout Enumerate
4771 Close the emulator (closing the window is the easiest way).
4772  Or use 'end-avi'.
4773 \end_layout
4775 \begin_layout Enumerate
4776 For each tmpdump*.avi file created, on command prompt, do 'x264 --crf 10
4777  -o tmpdump_<numbers>.mkv tmpdump_<numbers>.avi'.
4778 \end_layout
4780 \begin_layout Enumerate
4781 Do 'sox tmpdump.sox tmpdump.ogg rate -v 32000'
4782 \end_layout
4784 \begin_layout Enumerate
4785 Do 'mkvmerge -o tmpdump_video.mkv tmpdump_0000000.mkv + tmpdump_0000001.mkv
4786  + tmpdump_0000002.mkv' (list every tmpdump_<numbers>.mkv, with + in between).
4787 \end_layout
4789 \begin_layout Enumerate
4790 Do 'mkvmerge -o final.mkv tmpdump_video.mkv tmpdump.ogg'.
4791  Now final.mkv contains quick'n'dirty encode.
4792 \end_layout
4794 \begin_layout Section
4795 Axis configurations for some gamepad types:
4796 \end_layout
4798 \begin_layout Subsection
4799 XBox360 controller:
4800 \end_layout
4802 \begin_layout Standard
4803 Axes 2 and 5 (joystick<n>axis2 and joystick<n>axis5) should be set to pressure-+.
4804 \end_layout
4806 \begin_layout LyX-Code
4807 set-axis joystick0axis2 pressure-+
4808 \end_layout
4810 \begin_layout LyX-Code
4811 set-axis joystick0axis5 pressure-+
4812 \end_layout
4814 \begin_layout Itemize
4815 This is needed for SDL only.
4816  EVDEV sets those types correctly.
4817 \end_layout
4819 \begin_layout Subsection
4820 PS3 
4821 \begin_inset Quotes eld
4822 \end_inset
4824 sixaxis
4825 \begin_inset Quotes erd
4826 \end_inset
4828  controller:
4829 \end_layout
4831 \begin_layout Standard
4832 Axes 8-19 should be disabled.
4833 \end_layout
4835 \begin_layout LyX-Code
4836 set-axis joystick0axis8 disabled
4837 \end_layout
4839 \begin_layout LyX-Code
4840 set-axis joystick0axis9 disabled
4841 \end_layout
4843 \begin_layout LyX-Code
4844 set-axis joystick0axis10 disabled
4845 \end_layout
4847 \begin_layout LyX-Code
4848 set-axis joystick0axis11 disabled
4849 \end_layout
4851 \begin_layout LyX-Code
4852 set-axis joystick0axis12 disabled
4853 \end_layout
4855 \begin_layout LyX-Code
4856 set-axis joystick0axis13 disabled
4857 \end_layout
4859 \begin_layout LyX-Code
4860 set-axis joystick0axis14 disabled
4861 \end_layout
4863 \begin_layout LyX-Code
4864 set-axis joystick0axis15 disabled
4865 \end_layout
4867 \begin_layout LyX-Code
4868 set-axis joystick0axis16 disabled
4869 \end_layout
4871 \begin_layout LyX-Code
4872 set-axis joystick0axis17 disabled
4873 \end_layout
4875 \begin_layout LyX-Code
4876 set-axis joystick0axis18 disabled
4877 \end_layout
4879 \begin_layout LyX-Code
4880 set-axis joystick0axis19 disabled
4881 \end_layout
4883 \begin_layout Section
4884 Errata:
4885 \end_layout
4887 \begin_layout Subsection
4888 Problems from BSNES core:
4889 \end_layout
4891 \begin_layout Itemize
4892 The whole pending save stuff.
4893 \end_layout
4895 \begin_layout Itemize
4896 Lack of layer hiding.
4897 \end_layout
4899 \begin_layout Itemize
4900 It is slow (especially accuracy).
4901 \end_layout
4903 \begin_layout Itemize
4904 Firmwares can't be loaded from ZIP archives.
4905 \end_layout
4907 \begin_layout Subsection
4908 Other problems:
4909 \end_layout
4911 \begin_layout Itemize
4912 Modifiers don't work with pseudo-keys (SDL, EVDEV).
4913 \end_layout
4915 \begin_layout Itemize
4916 Audio for last dumped frame is not itself dumped.
4917 \end_layout
4919 \begin_layout Itemize
4920 Audio in UI is pretty bad in quality if game doesn't run at full speed.
4921 \end_layout
4923 \begin_layout Itemize
4924 AVI compression levels 10-18 are not compatible with AVISynth AVISource.
4925 \end_layout
4927 \begin_layout Itemize
4928 No menus, command based interface (SDL).
4929 \end_layout
4931 \begin_layout Itemize
4932 Long commands don't scroll.
4933 \end_layout
4935 \begin_layout Itemize
4936 Wxwidgets UI is still buggy.
4937 \end_layout
4939 \begin_layout Section
4940 Changelog:
4941 \end_layout
4943 \begin_layout Subsection
4944 rr0-beta1
4945 \end_layout
4947 \begin_layout Itemize
4948 Fix -Wall warnings
4949 \end_layout
4951 \begin_layout Itemize
4952 Fix dumper video corruption with levels 10-18.
4953 \end_layout
4955 \begin_layout Subsection
4956 rr0-beta2
4957 \end_layout
4959 \begin_layout Itemize
4960 Autofire
4961 \end_layout
4963 \begin_layout Itemize
4964 Lots of code cleanups
4965 \end_layout
4967 \begin_layout Itemize
4968 Lua interface to settings
4969 \end_layout
4971 \begin_layout Itemize
4972 Allow specifying AVI borders without Lua
4973 \end_layout
4975 \begin_layout Itemize
4976 Fix scaling if vscale > 1 and originx > 0 (left border exists)
4977 \end_layout
4979 \begin_layout Itemize
4980 on_snoop lua callback
4981 \end_layout
4983 \begin_layout Itemize
4984 Faster movie loading and saving.
4985 \end_layout
4987 \begin_layout Subsection
4988 rr0-beta3
4989 \end_layout
4991 \begin_layout Itemize
4992 Joystick support
4993 \end_layout
4995 \begin_layout Subsection
4996 rr0-beta4
4997 \end_layout
4999 \begin_layout Itemize
5000 Fix multi-buttons
5001 \end_layout
5003 \begin_layout Itemize
5004 Save jukebox functionality.
5005 \end_layout
5007 \begin_layout Subsection
5008 rr0-beta5
5009 \end_layout
5011 \begin_layout Itemize
5012 Try to fix some nasty failing movie load edge cases
5013 \end_layout
5015 \begin_layout Itemize
5016 Allow specifying scripts to run on command line.
5017 \end_layout
5019 \begin_layout Subsection
5020 rr0-beta6
5021 \end_layout
5023 \begin_layout Itemize
5024 Major source code reorganization.
5025 \end_layout
5027 \begin_layout Itemize
5028 Backup savestates before overwriting.
5029 \end_layout
5031 \begin_layout Itemize
5032 Don't crash if loading initial state fails.
5033 \end_layout
5035 \begin_layout Subsection
5036 rr0-beta7
5037 \end_layout
5039 \begin_layout Itemize
5040 Fix firmware lookup
5041 \end_layout
5043 \begin_layout Itemize
5044 Fix author name parsing
5045 \end_layout
5047 \begin_layout Itemize
5048 Fix rerecord counting
5049 \end_layout
5051 \begin_layout Itemize
5052 (SDL) Print messages to console if SDL is uninitialized
5053 \end_layout
5055 \begin_layout Itemize
5056 Add movieinfo program
5057 \end_layout
5059 \begin_layout Itemize
5060 Fix loading movies starting from SRAM.
5061 \end_layout
5063 \begin_layout Subsection
5064 rr0-beta8
5065 \end_layout
5067 \begin_layout Itemize
5068 Add support for unattended dumping
5069 \end_layout
5071 \begin_layout Itemize
5072 Fix compiling for Win32
5073 \end_layout
5075 \begin_layout Itemize
5076 Don't lock up if sound can't be initialized
5077 \end_layout
5079 \begin_layout Itemize
5080 Strip trailing CR from commands
5081 \end_layout
5083 \begin_layout Itemize
5084 Don't try to do dubious things in global ctors (fix crash on startup)
5085 \end_layout
5087 \begin_layout Subsection
5088 rr0-beta9
5089 \end_layout
5091 \begin_layout Itemize
5092 Small documentation tweaking
5093 \end_layout
5095 \begin_layout Itemize
5096 Fix make clean
5097 \end_layout
5099 \begin_layout Itemize
5100 Fix major bug in modifier matching
5101 \end_layout
5103 \begin_layout Subsection
5104 rr0-beta10
5105 \end_layout
5107 \begin_layout Itemize
5108 Lots of documentation fixes
5109 \end_layout
5111 \begin_layout Itemize
5112 Use dedicated callbacks for event backcomm., not commands.
5113 \end_layout
5115 \begin_layout Itemize
5116 Ensure that the watchdog is not hit when executing delayed reset.
5117 \end_layout
5119 \begin_layout Itemize
5120 Remove errant tab from joystick message.
5121 \end_layout
5123 \begin_layout Subsection
5124 rr0-beta11
5125 \end_layout
5127 \begin_layout Itemize
5128 Make autofire operate in absolute time, not linear time
5129 \end_layout
5131 \begin_layout Itemize
5132 Reinitialize controls when resuming from loadstate
5133 \end_layout
5135 \begin_layout Itemize
5136 Some more code cleanups
5137 \end_layout
5139 \begin_layout Itemize
5140 If Lua allocator fails, call OOM_panic()
5141 \end_layout
5143 \begin_layout Itemize
5144 Byte/word/dword/qword sized host memory write/read functions.
5145 \end_layout
5147 \begin_layout Itemize
5148 Dump at correct framerate if dumping interlaced NTSC (height=448).
5149 \end_layout
5151 \begin_layout Subsection
5152 rr0-beta12
5153 \end_layout
5155 \begin_layout Itemize
5156 Actually include the complete source code
5157 \end_layout
5159 \begin_layout Itemize
5160 Keep track of RTC
5161 \end_layout
5163 \begin_layout Subsection
5164 rr0-beta13
5165 \end_layout
5167 \begin_layout Itemize
5168 Document {save,start}time.{,sub}second.
5169 \end_layout
5171 \begin_layout Itemize
5172 Intercept time() from bsnes core.
5173 \end_layout
5175 \begin_layout Subsection
5176 rr0-beta14
5177 \end_layout
5179 \begin_layout Itemize
5180 Allow disabling time() interception (allow build on Mac OS X)
5181 \end_layout
5183 \begin_layout Itemize
5184 Use SDLMain on Mac OS X (make SDL not crash)
5185 \end_layout
5187 \begin_layout Itemize
5188 Disable delayed resets (just plain too buggy for now).
5189 \end_layout
5191 \begin_layout Itemize
5192 Code cleanups
5193 \end_layout
5195 \begin_layout Itemize
5196 Use 16-bit for graphics/video instead of 32-bit.
5197 \end_layout
5199 \begin_layout Itemize
5200 gui.rectangle/gui.pixel
5201 \end_layout
5203 \begin_layout Itemize
5204 gui.crosshair
5205 \end_layout
5207 \begin_layout Itemize
5208 New CSCD writer implementation.
5209 \end_layout
5211 \begin_layout Subsection
5212 rr0-beta15
5213 \end_layout
5215 \begin_layout Itemize
5216 Fix interaction of * and +.
5217 \end_layout
5219 \begin_layout Itemize
5220 Manual improvements
5221 \end_layout
5223 \begin_layout Itemize
5224 Use gettimeofday()/usleep(), these seem portable enough.
5225 \end_layout
5227 \begin_layout Itemize
5228 Move joystick axis manipulation to keymapper code.
5229 \end_layout
5231 \begin_layout Itemize
5232 Changes to how read-only works.
5233 \end_layout
5235 \begin_layout Itemize
5236 Refactor controller input code.
5237 \end_layout
5239 \begin_layout Subsection
5240 rr0-beta16
5241 \end_layout
5243 \begin_layout Itemize
5244 Fix mouseclick scale compensation.
5245 \end_layout
5247 \begin_layout Itemize
5248 Draw area boundaries correctly in SDL code.
5249 \end_layout
5251 \begin_layout Itemize
5252 gui.screenshot.
5253 \end_layout
5255 \begin_layout Itemize
5256 Fix CSCD output (buffer overrun and race condition).
5257 \end_layout
5259 \begin_layout Subsection
5260 rr0-beta17
5261 \end_layout
5263 \begin_layout Itemize
5264 JMD dumping support.
5265 \end_layout
5267 \begin_layout Itemize
5268 Allow unattended dumping to JMD.
5269 \end_layout
5271 \begin_layout Itemize
5272 Move to BSNES v083.
5273 \end_layout
5275 \begin_layout Itemize
5276 Switch back to 32-bit colors.
5277 \end_layout
5279 \begin_layout Itemize
5280 Add Lua function gui.color.
5281 \end_layout
5283 \begin_layout Itemize
5284 Use some new C++11 features in GCC 4.6.
5285 \end_layout
5287 \begin_layout Itemize
5288 Be prepared for core frequency changes.
5289 \end_layout
5291 \begin_layout Itemize
5292 Pass colors in one chunk from Lua.
5293 \end_layout
5295 \begin_layout Subsection
5296 rr0-beta18
5297 \end_layout
5299 \begin_layout Itemize
5300 New lua functions gui.line(), gui.status() and gui.circle(), memory.vma_count(),
5301  memory.read_vma() and memory.find_vma().
5302 \end_layout
5304 \begin_layout Itemize
5305 Numerious documentation fixups
5306 \end_layout
5308 \begin_layout Itemize
5309 RTC time format changed
5310 \end_layout
5312 \begin_layout Itemize
5313 Reformat flags display
5314 \end_layout
5316 \begin_layout Itemize
5317 Allow lua package name to be overridden
5318 \end_layout
5320 \begin_layout Itemize
5321 SDUMP (high-quality dumping).
5322 \end_layout
5324 \begin_layout Itemize
5325 Split platform support to plugins.
5326 \end_layout
5328 \begin_layout Itemize
5329 Make all sound plugins support basic sound commands
5330 \end_layout
5332 \begin_layout Itemize
5333 Support portaudio for sound.
5334 \end_layout
5336 \begin_layout Itemize
5337 Allow disable Lua/SDL searching.
5338 \end_layout
5340 \begin_layout Itemize
5341 Upconvert colors when copying lcscreen to screen.
5342 \end_layout
5344 \begin_layout Itemize
5345 Reorganize source tree.
5346 \end_layout
5348 \begin_layout Itemize
5349 Evdev joystick support.
5350 \end_layout
5352 \begin_layout Itemize
5353 Refactor more code into generic window code.
5354 \end_layout
5356 \begin_layout Subsection
5357 rr0-beta19
5358 \end_layout
5360 \begin_layout Itemize
5361 Refactor message handling.
5362 \end_layout
5364 \begin_layout Itemize
5365 Rework makefile
5366 \end_layout
5368 \begin_layout Itemize
5369 Documentation fixes
5370 \end_layout
5372 \begin_layout Itemize
5373 Finish pending saves before load/quit.
5374 \end_layout
5376 \begin_layout Itemize
5377 Wxwidgets graphics plugin.
5378 \end_layout
5380 \begin_layout Subsection
5381 rr0-beta20
5382 \end_layout
5384 \begin_layout Itemize
5385 Get rid of win32-crap.[ch]pp.
5386 \end_layout
5388 \begin_layout Itemize
5389 Move files around a lot.
5390 \end_layout
5392 \begin_layout Itemize
5393 Get rid of need for host C++ compiler.
5394 \end_layout
5396 \begin_layout Itemize
5397 Bsnes v084 core.
5398 \end_layout
5400 \begin_layout Itemize
5401 Refactor inter-component communication.
5402 \end_layout
5404 \begin_layout Itemize
5405 Fix zero luma.
5406 \end_layout
5408 \begin_layout Itemize
5409 Fix crash on multiline aliases.
5410 \end_layout
5412 \begin_layout Itemize
5413 Load/Save settings in wxwidgets gui.
5414 \end_layout
5416 \begin_layout Subsection
5417 rr0-beta21
5418 \end_layout
5420 \begin_layout Itemize
5421 Patch problems in bsnes core
5422 \end_layout
5424 \begin_layout Itemize
5425 SNES is little-endian, not big-endian!
5426 \end_layout
5428 \begin_layout Itemize
5429 Fix memory corruption in lcscreen::load()
5430 \end_layout
5432 \begin_layout Subsection
5433 rr0-beta22
5434 \end_layout
5436 \begin_layout Itemize
5437 Fix interpretting repeat counts in rrdata loading.
5438 \end_layout
5440 \begin_layout Itemize
5441 New lua callback: on_frame()
5442 \end_layout
5444 \begin_layout Itemize
5445 Remove calls to runtosave() that aren't supposed to be there
5446 \end_layout
5448 \begin_layout Itemize
5449 Lua function: movie.read_rtc()
5450 \end_layout
5452 \begin_layout Itemize
5453 Ignore src/fonts/font.cpp
5454 \end_layout
5456 \begin_layout Itemize
5457 Fix more bsnes core problems
5458 \end_layout
5460 \begin_layout Itemize
5461 Control bsnes random seeding
5462 \end_layout
5464 \begin_layout Itemize
5465 Pause-on-end
5466 \end_layout
5468 \begin_layout Itemize
5469 Some bsnes core debugging features (state dump and state hash)
5470 \end_layout
5472 \begin_layout Itemize
5473 Fix titlebar version number (no, the last version wasn't 'lsnes-0-beta21',
5474  it was 'lsnes rr0-beta21').
5475 \end_layout
5477 \begin_layout Subsection
5478 rr0-beta23
5479 \end_layout
5481 \begin_layout Itemize
5482 Fix memory corruption due to macro/field mixup
5483 \end_layout
5485 \begin_layout Itemize
5486 search-memory update
5487 \end_layout
5489 \begin_layout Itemize
5490 Allow direct-mapped framebuffer
5491 \end_layout
5493 \begin_layout Itemize
5494 SDL: Use SDL_ANYFORMAT if possible
5495 \end_layout
5497 \begin_layout Itemize
5498 SDMP2SOX: 2s delay modes.
5499 \end_layout
5501 \begin_layout Itemize
5502 Wxwidgets: Cleanups
5503 \end_layout
5505 \begin_layout Itemize
5506 Use sed -E, not sed -r.
5507  Fixes building on Mac OS X.
5508 \end_layout
5510 \begin_layout Itemize
5511 Wxwidgets: Save jukebox on exit
5512 \end_layout
5514 \begin_layout Itemize
5515 Fix RTC if using load-movie on savestate.
5516 \end_layout
5518 \begin_layout Itemize
5519 Fix crash related to full console mode.
5520 \end_layout
5522 \begin_layout Subsection
5523 rr0-beta24
5524 \end_layout
5526 \begin_layout Itemize
5527 Wxwidgets: Allow bringing application to foreground on Mac OS X.
5528 \end_layout
5530 \begin_layout Itemize
5531 Wxwidgets: Allow compiling on Mac OS X.
5532 \end_layout
5534 \begin_layout Itemize
5535 Use movie compare instead of movie hashing (faster save/load).
5536 \end_layout
5538 \begin_layout Itemize
5539 Lua: _SYSTEM table.
5540 \end_layout
5542 \begin_layout Subsection
5543 rr0-beta25
5544 \end_layout
5546 \begin_layout Itemize
5547 sdmp2sox: Pad soundtrack if using -l or -L.
5548 \end_layout
5550 \begin_layout Itemize
5551 sdmp2sox: Fix NTSC overscan.
5552 \end_layout
5554 \begin_layout Itemize
5555 sdmp2sox: Add AR correction mode.
5556 \end_layout
5558 \begin_layout Itemize
5559 call lua_close() when exiting.
5560 \end_layout
5562 \begin_layout Itemize
5563 Fix zip_writer bug causing warnings from info-zip and error from advzip.
5564 \end_layout
5566 \begin_layout Subsection
5567 rr0-beta26
5568 \end_layout
5570 \begin_layout Itemize
5571 Fix IPS patching code (use bsnes core IPS patcher).
5572 \end_layout
5574 \begin_layout Itemize
5575 Implement BPS patching (using bsnes core IPS patcher).
5576 \end_layout
5578 \begin_layout Itemize
5579 Add feature to load headered ROMs.
5580 \end_layout
5582 \begin_layout Subsection
5583 rr0-beta27
5584 \end_layout
5586 \begin_layout Itemize
5587 Show command names when showing keybindings
5588 \end_layout
5590 \begin_layout Subsection
5592 \end_layout
5594 \begin_layout Itemize
5595 Fix pause-on-end to be actually controllable
5596 \end_layout
5598 \begin_layout Itemize
5599 SDL: Poll all events in queue, not just first one (fixes slowness in command
5600  typing)
5601 \end_layout
5603 \begin_layout Itemize
5604 Wxwidgets: Fix ROM loading.
5605 \end_layout
5607 \begin_layout Subsection
5608 rr1-beta0
5609 \end_layout
5611 \begin_layout Itemize
5612 Lua: Add gui.textH, gui.textV, gui.textHV
5613 \end_layout
5615 \begin_layout Itemize
5616 Fix text colors on SDL on Mac OS X
5617 \end_layout
5619 \begin_layout Itemize
5620 Mode 'F' for finished in readonly mode.
5621 \end_layout
5623 \begin_layout Itemize
5624 Fix some WS errors.
5625 \end_layout
5627 \begin_layout Itemize
5628 Reliably pause after skip poll
5629 \end_layout
5631 \begin_layout Itemize
5632 Split UI and core into their own threads
5633 \end_layout
5635 \begin_layout Subsection
5636 rr1-beta1
5637 \end_layout
5639 \begin_layout Itemize
5640 Remove leftover dummy SRAM slot
5641 \end_layout
5643 \begin_layout Itemize
5644 Fix controller numbers.
5645 \end_layout
5647 \begin_layout Subsection
5648 rr1-beta2
5649 \end_layout
5651 \begin_layout Itemize
5652 Fix lsnes-dumpavi after interface change.
5653 \end_layout
5655 \begin_layout Itemize
5656 Also give BSNES patches for v085.
5657 \end_layout
5659 \begin_layout Itemize
5660 Pack movie data in memory.
5661 \end_layout
5663 \begin_layout Subsection
5664 rr1-beta3
5665 \end_layout
5667 \begin_layout Itemize
5668 Fix framecount/length given when loading movies.
5669 \end_layout
5671 \begin_layout Itemize
5672 Controller command memory leak fixes.
5673 \end_layout
5675 \begin_layout Itemize
5676 Don't leak palette if freeing screen object.
5677 \end_layout
5679 \begin_layout Subsection
5680 rr1-beta4
5681 \end_layout
5683 \begin_layout Itemize
5684 Detect revisions.
5685 \end_layout
5687 \begin_layout Itemize
5688 Wxwidgets: Allow controlling dumper from the menu.
5689 \end_layout
5691 \begin_layout Subsection
5692 rr1-beta5
5693 \end_layout
5695 \begin_layout Itemize
5696 Rewrite parts of manual
5697 \end_layout
5699 \begin_layout Itemize
5700 Lua: Make it work with Lua 5.2.
5701 \end_layout
5703 \begin_layout Subsection
5704 rr1-beta6
5705 \end_layout
5707 \begin_layout Itemize
5708 Win32: Fix compile errors.
5709 \end_layout
5711 \begin_layout Subsection
5712 rr1-beta7
5713 \end_layout
5715 \begin_layout Itemize
5716 Refactor controller input code.
5717 \end_layout
5719 \begin_layout Itemize
5720 Fix crash when using command line on SDL / Mac OS X.
5721 \end_layout
5723 \begin_layout Subsection
5724 rr1-beta8
5725 \end_layout
5727 \begin_layout Itemize
5728 Delete core/coroutine (obsolete)
5729 \end_layout
5731 \begin_layout Itemize
5732 Lag input display by one frame.
5733 \end_layout
5735 \begin_layout Itemize
5736 Rewind movie to beginning function.
5737 \end_layout
5739 \begin_layout Itemize
5740 Fix wrong frame number reported to Lua when repainting after loadstate
5741 \end_layout
5743 \begin_layout Itemize
5744 Support UI editing of jukebox
5745 \end_layout
5747 \begin_layout Itemize
5748 Wxwidgets: Save settings on exit.
5749 \end_layout
5751 \begin_layout Itemize
5752 Support ${project} for filenames
5753 \end_layout
5755 \begin_layout Itemize
5756 SDL: Fix command history
5757 \end_layout
5759 \begin_layout Subsection
5760 rr1-beta9
5761 \end_layout
5763 \begin_layout Itemize
5764 Fix some order-of-global-ctor bugs.
5765 \end_layout
5767 \begin_layout Subsection
5768 rr1-beta10
5769 \end_layout
5771 \begin_layout Itemize
5772 Fix crashes when quitting on Win32.
5773 \end_layout
5775 \begin_layout Subsection
5776 rr1-beta11
5777 \end_layout
5779 \begin_layout Itemize
5780 EVDEV: Queue keypresses from joystick, don't send directly
5781 \end_layout
5783 \begin_layout Itemize
5784 Wxwidgets: Load-Preserve that actually works.
5785 \end_layout
5787 \begin_layout Subsection
5788 rr1-beta12
5789 \end_layout
5791 \begin_layout Itemize
5792 Wxwidgets: GUI for memory search.
5793 \end_layout
5795 \begin_layout Itemize
5796 Warn about using synchronous queue in UI callback.
5797 \end_layout
5799 \begin_layout Subsection
5800 rr1-beta13
5801 \end_layout
5803 \begin_layout Itemize
5804 Remember last saved file for each ROM
5805 \end_layout
5807 \begin_layout Itemize
5808 Support MT dumping via boost.
5809 \end_layout
5811 \begin_layout Itemize
5812 Lua: input.raw
5813 \end_layout
5815 \begin_layout Itemize
5816 Lua: input.keyhook
5817 \end_layout
5819 \begin_layout Itemize
5820 Make mouse be ordinary input instead of special-casing
5821 \end_layout
5823 \begin_layout Itemize
5824 SDL: Don't screw up commands with NUL codepoints.
5825 \end_layout
5827 \begin_layout Subsection
5828 rr1-beta14
5829 \end_layout
5831 \begin_layout Itemize
5832 Merge status panel and main window
5833 \end_layout
5835 \begin_layout Itemize
5836 True movie slot support (the rest of it)
5837 \end_layout
5839 \begin_layout Itemize
5840 SDL: Fix compilation error
5841 \end_layout
5843 \begin_layout Itemize
5844 Elminate cross calls in dump menu code.
5845 \end_layout
5847 \begin_layout Subsection
5848 rr1-beta15
5849 \end_layout
5851 \begin_layout Itemize
5852 Cancel pending saves command
5853 \end_layout
5855 \begin_layout Itemize
5856 Wxwidgets: Code refactoring
5857 \end_layout
5859 \begin_layout Itemize
5860 Wxwidgets: Fix system -> reset
5861 \end_layout
5863 \begin_layout Itemize
5864 Wxwidgets: Read watch expressions in the right thread
5865 \end_layout
5867 \begin_layout Subsection
5868 rr1-beta16
5869 \end_layout
5871 \begin_layout Itemize
5872 Wxwidgets: Don't prompt for member when running Lua script (Lua doesn't
5873  support that).
5874 \end_layout
5876 \begin_layout Itemize
5877 Wxwidgets: 128 -> 1024 Autohold slots (in case more are needed).
5878 \end_layout
5880 \begin_layout Itemize
5881 Don't append trailing '-' to prefix when saving movie.
5882 \end_layout
5884 \begin_layout Itemize
5885 Fix ROM/savestate handling (don't let user mismatch ROM and savestates).
5886 \end_layout
5888 \begin_layout Subsection
5890 \end_layout
5892 \begin_layout Itemize
5893 Document memory watch syntax.
5894 \end_layout
5896 \begin_layout Subsection
5897 rr1-delta1
5898 \end_layout
5900 \begin_layout Itemize
5901 Fix unattended dumping (lsnes-dumpavi)
5902 \end_layout
5904 \begin_layout Itemize
5905 Support RAW dumping
5906 \end_layout
5908 \begin_layout Itemize
5909 Use adv_dumper instead of the old interface in lsnes-dumpavi (changes syntax)
5910 \end_layout
5912 \begin_layout Itemize
5913 Add option to control sample rate preturbation in AVI dumper
5914 \end_layout
5916 \begin_layout Subsection
5917 rr1-delta2
5918 \end_layout
5920 \begin_layout Itemize
5921 Wxwidgets: Fix dumper submodes
5922 \end_layout
5924 \begin_layout Itemize
5925 Set core controller types before loadstate
5926 \end_layout
5928 \begin_layout Subsection
5929 rr1-delta2epsilon1
5930 \end_layout
5932 \begin_layout Itemize
5933 Fix compiling with bsnes v086.
5934 \end_layout
5936 \begin_layout Subsection
5937 rr1-delta3
5938 \end_layout
5940 \begin_layout Itemize
5941 Don't prompt before quitting
5942 \end_layout
5944 \begin_layout Itemize
5945 Start unpaused, preserve pause/unpause over load.
5946 \end_layout
5948 \begin_layout Itemize
5949 Try to autodetect if ROM is headered.
5950 \end_layout
5952 \begin_layout Itemize
5953 Wxwidgets: Only bring up ROM patching screen if specifically requested.
5954 \end_layout
5956 \begin_layout Itemize
5957 Allow configuring some hotkeys.
5958 \end_layout
5960 \begin_layout Subsection
5961 rr1-delta4
5962 \end_layout
5964 \begin_layout Itemize
5965 Lots of code cleanups
5966 \end_layout
5968 \begin_layout Itemize
5969 Fix JMD compression (JMD dumping was broken)
5970 \end_layout
5972 \begin_layout Itemize
5973 Don't crash if Lua C function throws an exception.
5974 \end_layout
5976 \begin_layout Itemize
5977 Support bitmap drawing in Lua.
5978 \end_layout
5980 \begin_layout Itemize
5981 Fix bsnes v085/v086 patches.
5982 \end_layout
5984 \begin_layout Itemize
5985 Improve stability on win32.
5986 \end_layout
5988 \begin_layout Subsection
5989 rr1-delta4epsilon1
5990 \end_layout
5992 \begin_layout Itemize
5993 Don't corrupt movie if movie length is integer multiple of frames per page.
5994 \end_layout
5996 \begin_layout Subsection
5997 rr1-delta5
5998 \end_layout
6000 \begin_layout Itemize
6001 New Lua hooks: on_rewind, on_frame_emulated, on_idle, on_timer
6002 \end_layout
6004 \begin_layout Itemize
6005 New Lua functions: emulator_ready(), utime(), set_idle_timeout(), set_timer_time
6006 out(), bit.extract(), bit.value(), input.geta(), input.seta() and input.controllertyp
6008 \end_layout
6010 \begin_layout Itemize
6011 Wxwidgets: Fix internal focus lost (hotkeys stop working)
6012 \end_layout
6014 \begin_layout Itemize
6015 Wxwidgets: Fix broken modifiers
6016 \end_layout
6018 \begin_layout Itemize
6019 on_paint has parameter now.
6020 \end_layout
6022 \begin_layout Itemize
6023 Optional initital fill for bitmaps
6024 \end_layout
6026 \begin_layout Itemize
6027 Fix palette changing.
6028 \end_layout
6030 \begin_layout Itemize
6031 Optimize rendering a bit.
6032 \end_layout
6034 \begin_layout Itemize
6035 Bsnes v087 support.
6036 \end_layout
6038 \begin_layout Subsection
6039 rr1-delta5epsilon1
6040 \end_layout
6042 \begin_layout Itemize
6043 Movieinfo: Fix display of port #2 type.
6044 \end_layout
6046 \begin_layout Itemize
6047 Call on_input() after loadstate.
6048 \end_layout
6050 \begin_layout Subsection
6051 rr1-delta5epsilon2
6052 \end_layout
6054 \begin_layout Itemize
6055 Fix writing port2 data to movie.
6056 \end_layout
6058 \begin_layout Itemize
6059 Fix SRAM handling with Bsnes v087.
6060 \end_layout
6062 \begin_layout Subsection
6063 rr1-delta6
6064 \end_layout
6066 \begin_layout Itemize
6067 Library loading support
6068 \end_layout
6070 \begin_layout Itemize
6071 Built-in TSCC encoder
6072 \end_layout
6074 \begin_layout Itemize
6075 Hi-color (256T colors) dumping.
6076 \end_layout
6078 \begin_layout Itemize
6079 Dump over TCP/IP(v6)
6080 \end_layout
6082 \begin_layout Itemize
6083 Hidable status panel
6084 \end_layout
6086 \begin_layout Itemize
6087 Turbo toggle/hold
6088 \end_layout
6090 \begin_layout Itemize
6091 Adjustable sound volume
6092 \end_layout
6094 \begin_layout Itemize
6095 Screen scaling
6096 \end_layout
6098 \begin_layout Itemize
6099 Allow DnD into filename boxes
6100 \end_layout
6102 \begin_layout Itemize
6103 Configurable paths
6104 \end_layout
6106 \begin_layout Itemize
6107 Portaudio: Fix speaker popping at start
6108 \end_layout
6110 \begin_layout Itemize
6111 Lots of UI changes
6112 \end_layout
6114 \begin_layout Itemize
6115 Speed adjustment menu
6116 \end_layout
6118 \begin_layout Itemize
6119 Win32 joystick support
6120 \end_layout
6122 \begin_layout Itemize
6123 Lua: gui.rainbow and gui.box
6124 \end_layout
6126 \begin_layout Itemize
6127 Split key lists into classes (the key list was large!)
6128 \end_layout
6130 \begin_layout Itemize
6131 More save slots support
6132 \end_layout
6134 \begin_layout Itemize
6135 Wxwidgets (wxJoystick) joystick support
6136 \end_layout
6138 \begin_layout Subsection
6139 rr1-delta7
6140 \end_layout
6142 \begin_layout Itemize
6143 Lots of internal joystick refactoring
6144 \end_layout
6146 \begin_layout Itemize
6147 Evdev: Add mapping for BTN_TOOL_QUINTTAP
6148 \end_layout
6150 \begin_layout Itemize
6151 Wxwidgets: Settings mode (open settings without ROM)
6152 \end_layout
6154 \begin_layout Itemize
6155 Wxwidgets: Prompt key to use option
6156 \end_layout
6158 \begin_layout Itemize
6159 Wxwidgets: Fix crash if key goes away underneath
6160 \end_layout
6162 \begin_layout Itemize
6163 Wxwidgets: Fix mouse position in presence of scaling
6164 \end_layout
6166 \begin_layout Itemize
6167 AVI dumper: Mode 4 (high-quality resampling to common rate using SRC)
6168 \end_layout
6170 \begin_layout Itemize
6171 Wxwidgets: Redesign hotkeys dialog to avoid tree control (tree control doesn't
6172  seem to work well on WinXP)
6173 \end_layout
6175 \begin_layout Itemize
6176 Start paused option.
6177 \end_layout
6179 \end_body
6180 \end_document