lsnes rr1-Δ18ε1
[lsnes.git] / manual.lyx
blob1153a079d73d93ec1863f0b28450cae870c8b8db
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 (for bsnes SNES core)
76 \end_layout
78 \begin_deeper
79 \begin_layout Enumerate
80 v084-v087 (v084 or v085 for delayreset support)
81 \end_layout
83 \begin_layout Enumerate
84 accuracy or compatiblity core with debugger enabled.
85 \end_layout
87 \begin_layout Enumerate
88 Patched version (using included 7 patches)
89 \end_layout
91 \end_deeper
92 \begin_layout Enumerate
93 gambatte (for gambatte core)
94 \end_layout
96 \begin_deeper
97 \begin_layout Enumerate
98 SVN r320, r358 or r364
99 \end_layout
101 \begin_layout Enumerate
102 Patched with included patches
103 \end_layout
105 \end_deeper
106 \begin_layout Enumerate
107 Zlib
108 \end_layout
110 \begin_layout Enumerate
111 boost_iostreams
112 \end_layout
114 \begin_layout Enumerate
115 boost_filesystem
116 \end_layout
118 \begin_layout Enumerate
119 boost_thread (if native std::thread is not available)
120 \end_layout
122 \begin_layout Enumerate
123 libsdl (SDL only)
124 \end_layout
126 \begin_layout Enumerate
127 sdlmain (SDL only, part of SDL)
128 \end_layout
130 \begin_layout Enumerate
131 boost_conversion (this is header-only library)
132 \end_layout
134 \begin_layout Enumerate
135 libswscale (wxwidgets graphics only)
136 \end_layout
138 \begin_layout Enumerate
139 Portaudio (portaudio sound only)
140 \end_layout
142 \begin_layout Enumerate
143 libao (libao sound only)
144 \end_layout
146 \begin_layout Enumerate
147 Lua (if Lua support is needed) version 5.1.X or 5.2.X
148 \end_layout
150 \begin_layout Enumerate
151 G++ 4.6 or 4.7
152 \end_layout
154 \begin_layout Enumerate
155 libopus (optional, for commentary track tool)
156 \end_layout
158 \begin_layout Section
159 Building
160 \end_layout
162 \begin_layout Itemize
163 Copy bsnes sources (the bsnes subdirectory) to subdirectory 'bsnes' (for
164  bsnes core).
165 \end_layout
167 \begin_layout Itemize
168 Copy gambatte sources to subdirectory 'gambatte' (for gambatte core).
169 \end_layout
171 \begin_layout Itemize
172 Patch the bsnes sources with included patches (directory 'bsnes-patches/<version
173 >', bsnes core)
174 \end_layout
176 \begin_layout Itemize
177 Patch the gambatte sources with included patches (directory 'gambatte-patches/<v
178 ersion>', gambatte core)
179 \end_layout
181 \begin_layout Itemize
182 Edit options.build (or copy of that file)
183 \end_layout
185 \begin_layout Itemize
186 Run make (passing 'OPTIONS=<filename>' if using something else than options.build
188 \end_layout
190 \begin_layout Section
191 Command line options
192 \end_layout
194 \begin_layout Subsection
195 ROM options
196 \end_layout
198 \begin_layout Subsubsection
199 --rom=<file> (lsnes/SDL, lsnes/wxwidgets, lsnes-avidump)
200 \end_layout
202 \begin_layout Standard
203 Load <file> as ROM.
204 \end_layout
206 \begin_layout Subsubsection
207 <file> (lsnes/wxwidgets)
208 \end_layout
210 \begin_layout Standard
211 Load <file> as ROM.
212 \end_layout
214 \begin_layout Subsection
215 Session options
216 \end_layout
218 \begin_layout Subsubsection
219 --pause
220 \end_layout
222 \begin_layout Standard
223 Start paused
224 \end_layout
226 \begin_layout Subsubsection
227 <filename> (lsnes/SDL, lsnes-avidump, movieinfo)
228 \end_layout
230 \begin_layout Standard
231 Load <filename> as movie or savestate file.
232  All other session options are ignored.
233 \end_layout
235 \begin_layout Subsubsection
236 --port1=<device> (lsnes/SDL, bsnes core only)
237 \end_layout
239 \begin_layout Standard
240 Set type of port1.
241  Valid values are:
242 \end_layout
244 \begin_layout Itemize
245 none: No device connected
246 \end_layout
248 \begin_layout Itemize
249 gamepad: One gamepad (the default)
250 \end_layout
252 \begin_layout Itemize
253 multitap: Four gamepads (warning: makes most games refuse to start)
254 \end_layout
256 \begin_layout Itemize
257 mouse: Mouse.
258 \end_layout
260 \begin_layout Subsubsection
261 --port2=<type> (lsnes/SDL, bsnes core only)
262 \end_layout
264 \begin_layout Standard
265 Set type of port2.
266  Valid values are:
267 \end_layout
269 \begin_layout Itemize
270 none: No device connected (the default)
271 \end_layout
273 \begin_layout Itemize
274 gamepad: One gamepad
275 \end_layout
277 \begin_layout Itemize
278 multitap: Four gamepads.
279 \end_layout
281 \begin_layout Itemize
282 mouse: Mouse
283 \end_layout
285 \begin_layout Itemize
286 superscope: Super Scope
287 \end_layout
289 \begin_layout Itemize
290 justifier: One justifier
291 \end_layout
293 \begin_layout Itemize
294 justifiers: Two justifiers
295 \end_layout
297 \begin_layout Subsubsection
298 --gamename=<name> (lsnes/SDL)
299 \end_layout
301 \begin_layout Standard
302 Set the name of game to <name>.
303  Default is blank.
304 \end_layout
306 \begin_layout Subsubsection
307 --author=<name> (lsnes/SDL)
308 \end_layout
310 \begin_layout Standard
311 Add author with full name of <name> (no nickname).
312 \end_layout
314 \begin_layout Subsubsection
315 --author=|<name> (lsnes/SDL)
316 \end_layout
318 \begin_layout Standard
319 Add author with nickname of <name> (no full name).
320 \end_layout
322 \begin_layout Subsubsection
323 --author=<fullname>|<nickname> (lsnes/SDL)
324 \end_layout
326 \begin_layout Standard
327 Add author with full name of <fullname> and nickname of <nickname>.
328 \end_layout
330 \begin_layout Subsubsection
331 --rtc-second=<value> (lsnes/SDL)
332 \end_layout
334 \begin_layout Standard
335 Set RTC second (0 is 1st January 1970 00:00:00Z).
336  Default is 1,000,000,000.
337 \end_layout
339 \begin_layout Subsubsection
340 --rtc-subsecond=<value> (lsnes/SDL)
341 \end_layout
343 \begin_layout Standard
344 Set RTC subsecond.
345  Range is 0-.
346  Unit is CPU cycle.
347  Default is 0.
348 \end_layout
350 \begin_layout Subsubsection
351 --anchor-savestate=<file> (lsnes/SDL)
352 \end_layout
354 \begin_layout Standard
355 Set the anchor savestate file.
356 \end_layout
358 \begin_layout Subsubsection
359 --load=<file> (lsnes/wxwidgets)
360 \end_layout
362 \begin_layout Standard
363 After loading the ROM, load <file> as savestate/movie.
364 \end_layout
366 \begin_layout Subsection
367 Misc.
368  options:
369 \end_layout
371 \begin_layout Subsubsection
372 --run=<file> (lsnes/SDL)
373 \end_layout
375 \begin_layout Standard
376 After running main RC file, run this file.
377  If multiple are specified, these execute in order specified.
378 \end_layout
380 \begin_layout Subsubsection
381 --lua=<file> (lsnes/wxwidgets)
382 \end_layout
384 \begin_layout Standard
385 Run this Lua file on startup
386 \end_layout
388 \begin_layout Subsection
389 dump options (lsnes-dumpavi only)
390 \end_layout
392 \begin_layout Subsubsection
393 --dumper=<dumper>
394 \end_layout
396 \begin_layout Standard
397 Set the dumper to use (required).
398  Use 'list' for listing of known dumpers.
399 \end_layout
401 \begin_layout Subsubsection
402 --mode=<mode>
403 \end_layout
405 \begin_layout Standard
406 Set the mode to use (required for dumpers with multiple modes, forbidden
407  otherwise).
408  Use 'list' for known modes.
409 \end_layout
411 \begin_layout Subsubsection
412 --prefix=<prefix>
413 \end_layout
415 \begin_layout Standard
416 Set dump prefix.
417  Default is 
418 \begin_inset Quotes eld
419 \end_inset
421 avidump
422 \begin_inset Quotes erd
423 \end_inset
426 \end_layout
428 \begin_layout Subsubsection
429 --option=<name>=<value>
430 \end_layout
432 \begin_layout Standard
433 Set option <name> to value <value>.
434 \end_layout
436 \begin_layout Subsubsection
437 --length=<length>
438 \end_layout
440 \begin_layout Standard
441 Set number of frames to dump.
442  Mandatory.
443 \end_layout
445 \begin_layout Subsubsection
446 --lua=<script>
447 \end_layout
449 \begin_layout Standard
450 Run specified lua script (lsnes-dumpavi does not have initialization files).
451 \end_layout
453 \begin_layout Subsubsection
454 --load-library=<library>
455 \end_layout
457 \begin_layout Standard
458 Load the specified shared object / dynamic library / dynamic link library.
459 \end_layout
461 \begin_layout Section
462 Startup file lsnes.rc
463 \end_layout
465 \begin_layout Standard
466 Upon startup, lsnes (lsnes/SDL only) executes file lsnes.rc as commands.
467  This file is located in:
468 \end_layout
470 \begin_layout Itemize
471 Windows: %APPDATA%
472 \backslash
473 lsnes
474 \backslash
475 lsnes.rc (if %APPDATA% exists)
476 \end_layout
478 \begin_layout Itemize
479 Unix: $XDG_CONFIG_HOME/lsnes/lsnes.rc (if $XDG_CONFIG_HOME exists)
480 \end_layout
482 \begin_layout Itemize
483 Unix: $HOME/.config/lsnes/lsnes.rc (if $HOME exists)
484 \end_layout
486 \begin_layout Itemize
487 All: ./lsnes.rc (fallback default).
488 \end_layout
490 \begin_layout Standard
491 If leading directories do not exist, attempt to create them is made.
492 \end_layout
494 \begin_layout Section
495 Internal commands
496 \end_layout
498 \begin_layout Itemize
499 Commands beginning with '*' invoke the corresponding command without alias
500  expansion.
501 \end_layout
503 \begin_layout Itemize
504 If command starts with '+' (after possible '*'), the command is executed
505  as-is when button is pressed, and when button is released, it is executed
506  with '+' replaced by '-'.
507 \end_layout
509 \begin_layout Itemize
510 Commands without '+' execute only on negative edge (release).
511 \end_layout
513 \begin_layout Subsection
514 Settings:
515 \end_layout
517 \begin_layout Standard
518 Settings control various aspects of emulator behaviour.
519 \end_layout
521 \begin_layout Subsubsection
522 set-setting <setting> <value>
523 \end_layout
525 \begin_layout Standard
526 Sets setting <setting> to value <value> (may be empty).
527 \end_layout
529 \begin_layout Subsubsection
530 unset-setting <setting>
531 \end_layout
533 \begin_layout Standard
534 Try to unset setting <setting> (not all settings can be unset).
535 \end_layout
537 \begin_layout Subsubsection
538 get-setting <setting>
539 \end_layout
541 \begin_layout Standard
542 Read value of setting <setting>
543 \end_layout
545 \begin_layout Subsubsection
546 show-settings
547 \end_layout
549 \begin_layout Standard
550 Print names and values of all settings.
551 \end_layout
553 \begin_layout Subsection
554 Keybindings
555 \end_layout
557 \begin_layout Standard
558 Keybindings bind commands or aliases to keys (or pseudo-keys).
560 \end_layout
562 \begin_layout Standard
563 Notes:
564 \end_layout
566 \begin_layout Itemize
567 Do not bind edge active (+/-) commands to keys with modifiers, that won't
568  work right!
569 \end_layout
571 \begin_layout Itemize
572 Names of keys and modifiers are platform-dependent.
573 \end_layout
575 \begin_layout Itemize
576 Be careful before binding pseudo-keys (such as joystick axes, buttons or
577  hats) with modifiers.
578  That may or may not work right.
579 \end_layout
581 \begin_layout Subsubsection
582 bind-key [<mod>/<modmask>] <key> <command>
583 \end_layout
585 \begin_layout Standard
586 Bind <command> to key <key> (activating if modifiers in <modmask> (comma-seperat
587 ed list) are set as <mod> (comma-seperated list).
588 \end_layout
590 \begin_layout Standard
591 The names of keys and modifiers are platform-dependent.
592 \end_layout
594 \begin_layout Subsubsection
595 unbind-key [<mod>/<modmask>] <key>
596 \end_layout
598 \begin_layout Standard
599 Unbind command from <key> (with specified <mod> and <modmask>).
600 \end_layout
602 \begin_layout Subsubsection
603 set-axis <axis> [disabled | axis | axis-inverse | pressure0- | pressure0+
604  | pressure-0 | pressure-+ | pressure+0 | pressure+-] [minus=<val>] [zero=<val>]
605  [plus=<val>] [tolerance=<val>]
606 \end_layout
608 \begin_layout Standard
609 Set axis parameters for axis <axis>.
610 \end_layout
612 \begin_layout Itemize
613 disabled: Disable axis
614 \end_layout
616 \begin_layout Itemize
617 axis: Normal axis
618 \end_layout
620 \begin_layout Itemize
621 axis-inverse: Inverse axis
622 \end_layout
624 \begin_layout Itemize
625 pressure0-: Pressure sensitive.
626  Released at 0, pressed at -.
627 \end_layout
629 \begin_layout Itemize
630 pressure0+: Pressure sensitive.
631  Released at 0, pressed at +.
632 \end_layout
634 \begin_layout Itemize
635 pressure-0: Pressure sensitive.
636  Released at -, pressed at 0.
637 \end_layout
639 \begin_layout Itemize
640 pressure-+: Pressure sensitive.
641  Released at -, pressed at +.
642 \end_layout
644 \begin_layout Itemize
645 pressure+0: Pressure sensitive.
646  Released at +, pressed at 0.
647 \end_layout
649 \begin_layout Itemize
650 pressure+-: Pressure sensitive.
651  Released at +, pressed at -.
652 \end_layout
654 \begin_layout Itemize
655 minus=<val>: Calibration at extreme minus position (-32768-32767)
656 \end_layout
658 \begin_layout Itemize
659 zero=<val>: Calibration at neutral position (-32768-32767)
660 \end_layout
662 \begin_layout Itemize
663 plus=<val>: Calibration at extreme plus position (-32768-32767)
664 \end_layout
666 \begin_layout Itemize
667 tolerance=<value>: Center band tolerance (0<x<1).
668  The smaller the value, the more sensitive the control is.
669 \end_layout
671 \begin_layout Subsubsection
672 show-bindings
673 \end_layout
675 \begin_layout Standard
676 Print all key bindings in effect.
677 \end_layout
679 \begin_layout Subsection
680 Aliases
681 \end_layout
683 \begin_layout Standard
684 Aliases bind command to sequence of commands.
685  After alias has been defined, it replaces the command it shadows.
686 \end_layout
688 \begin_layout Standard
689 Notes:
690 \end_layout
692 \begin_layout Itemize
693 You can't alias command to itself.
694 \end_layout
696 \begin_layout Itemize
697 Aliases starting with +/- are edge active just like ordinary commands starting
698  with +/-.
699 \end_layout
701 \begin_layout Itemize
702 One command can be aliased to multiple commands.
703 \end_layout
705 \begin_layout Subsubsection
706 alias-command <command> <expansion>
707 \end_layout
709 \begin_layout Standard
710 Append <expansion> to alias <command>.
711  If alias does not already exist, it is created.
712 \end_layout
714 \begin_layout Subsubsection
715 unalias-command <command>
716 \end_layout
718 \begin_layout Standard
719 Clear alias expansion for <command>.
720 \end_layout
722 \begin_layout Subsubsection
723 show-aliases
724 \end_layout
726 \begin_layout Standard
727 Print all aliases and their expansions in effect.
728 \end_layout
730 \begin_layout Subsection
731 run-script <script>
732 \end_layout
734 \begin_layout Standard
735 Run <script> as if commands were entered on the command line.
736 \end_layout
738 \begin_layout Subsection
739 Video dumping
740 \end_layout
742 \begin_layout Standard
743 Following commands control video dumping:
744 \end_layout
746 \begin_layout Subsubsection
747 start-dump <dumper> [<mode>] <prefix/filename>
748 \end_layout
750 \begin_layout Standard
751 Start dumping using dumper <dumper>.
752  If mode is present or not and if prefix or filename is present depends
753  on the dumper and dumper mode.
754 \end_layout
756 \begin_layout Standard
757 The following dumpers are available:
758 \end_layout
760 \begin_layout Itemize
761 INTERNAL-AVI-CSCD: Internal CSCD in .avi dumper.
762 \end_layout
764 \begin_deeper
765 \begin_layout Itemize
766 Mode: uncompressed/pcm: Uncompressed video, PCM audio.
767  Takes prefix.
768 \end_layout
770 \begin_layout Itemize
771 Mode: cscd/pcm: CSCD video, PCM audio.
772  Takes prefix.
773 \end_layout
775 \end_deeper
776 \begin_layout Itemize
777 INTERNAL-JMD: Internal .jmd dumper.
778 \end_layout
780 \begin_deeper
781 \begin_layout Itemize
782 Does not take mode.
783 \end_layout
785 \begin_layout Itemize
786 Takes a filename.
787 \end_layout
789 \end_deeper
790 \begin_layout Itemize
791 INTERNAL-RAW: Internal RAW dumper.
792 \end_layout
794 \begin_deeper
795 \begin_layout Itemize
796 Does not take mode.
797 \end_layout
799 \begin_layout Itemize
800 Takes a prefix.
801 \end_layout
803 \begin_layout Itemize
804 Sound is big-endian signed 16-bit, usually at 32040.5Hz.
805 \end_layout
807 \begin_layout Itemize
808 Video is always upscaled to double resolution (512x448 / 512 x 478).
809 \end_layout
811 \begin_layout Itemize
812 Video framerate is usually 322445/6448 fps for PAL and 10738636/178683 fps
813  for NTSC.
814 \end_layout
816 \end_deeper
817 \begin_layout Itemize
818 INTERNAL-SDMP: Internal SDMP dumper.
819 \end_layout
821 \begin_deeper
822 \begin_layout Itemize
823 Mode 'ms': Multi-segment.
824  Takes prefix.
825 \end_layout
827 \begin_layout Itemize
828 Mode 'ss': Single-segment.
829  Takes filename.
830 \end_layout
832 \end_deeper
833 \begin_layout Subsubsection
834 end-dump <dumper>
835 \end_layout
837 \begin_layout Standard
838 End dumping using <dumper>
839 \end_layout
841 \begin_layout Subsubsection
842 show-dumpers [<dumper>]
843 \end_layout
845 \begin_layout Standard
846 Show the list of dumpers or list of modes for <dumper>
847 \end_layout
849 \begin_layout Subsection
850 Memory manipulation
851 \end_layout
853 \begin_layout Standard
854 <address> may be decimal or hexadecimal (prefixed with '0x').
855  <value> can be hexadecimal (prefixed with '0x'), unsigned or signed (prefixed
856  with '-') decimal.
857 \end_layout
859 \begin_layout Standard
860 The available element <sizes> are:
861 \end_layout
863 \begin_layout Itemize
864 byte: 1 byte
865 \end_layout
867 \begin_layout Itemize
868 word: 2 bytes
869 \end_layout
871 \begin_layout Itemize
872 dword: 4 bytes
873 \end_layout
875 \begin_layout Itemize
876 qword: 8 bytes
877 \end_layout
879 \begin_layout Standard
880 When reading RAM and ROM, multi-byte reads/writes are big-endian.
881  When dealing with DSP memory, multi-byte reads/writes are native-endian
882  (do not use operand sizes exceeding DSP bitness, except dword is OK for
883  24-bit memory).
884 \end_layout
886 \begin_layout Subsubsection
887 read-<size> <address>
888 \end_layout
890 \begin_layout Standard
891 Read the value of byte in <address>.
892 \end_layout
894 \begin_layout Subsubsection
895 read-s<size> <address>
896 \end_layout
898 \begin_layout Standard
899 Read the value of signed byte in <address>.
900 \end_layout
902 \begin_layout Subsubsection
903 write-<size> <address> <value>
904 \end_layout
906 \begin_layout Standard
907 Write <value> to byte in address <address>.
908 \end_layout
910 \begin_layout Subsubsection
911 search-memory reset
912 \end_layout
914 \begin_layout Standard
915 Reset the memory search
916 \end_layout
918 \begin_layout Subsubsection
919 search-memory count
920 \end_layout
922 \begin_layout Standard
923 Print number of candidates remaining
924 \end_layout
926 \begin_layout Subsubsection
927 search-memory print
928 \end_layout
930 \begin_layout Standard
931 Print all candidates remaining
932 \end_layout
934 \begin_layout Subsubsection
935 search-memory <usflag><sizeflag><op>
936 \end_layout
938 \begin_layout Standard
939 Searches memory for addresses satisfying criteria.
940 \end_layout
942 \begin_layout Standard
943 <usflag> can be:
944 \end_layout
946 \begin_layout Itemize
947 u: unsigned
948 \end_layout
950 \begin_layout Itemize
951 s: signed
952 \end_layout
954 \begin_layout Standard
955 <sizeflag> can be:
956 \end_layout
958 \begin_layout Itemize
959 b: byte
960 \end_layout
962 \begin_layout Itemize
963 w: word
964 \end_layout
966 \begin_layout Itemize
967 d: dword
968 \end_layout
970 \begin_layout Itemize
971 q: qword
972 \end_layout
974 \begin_layout Standard
975 <op> can be:
976 \end_layout
978 \begin_layout Itemize
979 lt: < previous value.
980 \end_layout
982 \begin_layout Itemize
983 le: <= previous value.
984 \end_layout
986 \begin_layout Itemize
987 eq: = previous value.
988 \end_layout
990 \begin_layout Itemize
991 ne: != previous value.
992 \end_layout
994 \begin_layout Itemize
995 ge: >= previous value.
996 \end_layout
998 \begin_layout Itemize
999 gt: > previous value.
1000 \end_layout
1002 \begin_layout Subsubsection
1003 search-memory <sizeflag> <value>
1004 \end_layout
1006 \begin_layout Standard
1007 Searches for addresses that currently have value <value>.
1008  <sizeflag> is as in previous command.
1009 \end_layout
1011 \begin_layout Subsection
1012 Main commands
1013 \end_layout
1015 \begin_layout Standard
1016 These commands are not available in lsnesrc, but are available after ROM
1017  has been loaded.
1018 \end_layout
1020 \begin_layout Subsubsection
1021 quit-emulator [/y]
1022 \end_layout
1024 \begin_layout Standard
1025 Quits the emulator (asking for confirmation).
1026  If /y is given, no confirmation is asked.
1027 \end_layout
1029 \begin_layout Subsubsection
1030 pause-emulator
1031 \end_layout
1033 \begin_layout Standard
1034 Toggle paused/unpaused
1035 \end_layout
1037 \begin_layout Subsubsection
1038 +advance-frame 
1039 \end_layout
1041 \begin_layout Standard
1042 Advance frame.
1043  If the button is still held after configurable timeout expires, game unpauses
1044  for the duration frame advance is held.
1045 \end_layout
1047 \begin_layout Subsubsection
1048 +advance-poll 
1049 \end_layout
1051 \begin_layout Standard
1052 Advance subframe.
1053  If the button is still held after configurable timeout expires, game unpauses
1054  for the duration frame advance is held.
1055 \end_layout
1057 \begin_layout Subsubsection
1058 advance-skiplag 
1059 \end_layout
1061 \begin_layout Standard
1062 Skip to first poll in frame after current.
1063 \end_layout
1065 \begin_layout Subsubsection
1066 reset 
1067 \end_layout
1069 \begin_layout Standard
1070 Reset the SNES after this frame.
1071 \end_layout
1073 \begin_layout Subsubsection
1074 load <filename> 
1075 \end_layout
1077 \begin_layout Standard
1078 Load savestate <filename> in current mode.
1079 \end_layout
1081 \begin_layout Subsubsection
1082 load-state <filename> 
1083 \end_layout
1085 \begin_layout Standard
1086 Load savestate <filename> in readwrite mode.
1087 \end_layout
1089 \begin_layout Subsubsection
1090 load-readonly <filename> 
1091 \end_layout
1093 \begin_layout Standard
1094 Load savestate <filename> in readonly mode.
1095 \end_layout
1097 \begin_layout Subsubsection
1098 load-preserve <filename> 
1099 \end_layout
1101 \begin_layout Standard
1102 Load savestate <filename> in readonly mode, preserving current events.
1103 \end_layout
1105 \begin_layout Subsubsection
1106 load-movie <filename> 
1107 \end_layout
1109 \begin_layout Standard
1110 Load savestate <filename>, ignoring save part in readonly mode.
1111 \end_layout
1113 \begin_layout Subsubsection
1114 save-state <filename> 
1115 \end_layout
1117 \begin_layout Standard
1118 Save system state to <filename> as soon as possible.
1119 \end_layout
1121 \begin_layout Subsubsection
1122 save-movie <filename> 
1123 \end_layout
1125 \begin_layout Standard
1126 Save movie to <filename>.
1127 \end_layout
1129 \begin_layout Subsubsection
1130 set-rwmode 
1131 \end_layout
1133 \begin_layout Standard
1134 Set read-write mode.
1135 \end_layout
1137 \begin_layout Subsubsection
1138 set-romode 
1139 \end_layout
1141 \begin_layout Standard
1142 Set read-only mode
1143 \end_layout
1145 \begin_layout Subsubsection
1146 toggle-rwmode 
1147 \end_layout
1149 \begin_layout Standard
1150 Toggle between read-only and read-write modes.
1151 \end_layout
1153 \begin_layout Subsubsection
1154 set-gamename <name> 
1155 \end_layout
1157 \begin_layout Standard
1158 Set name of the game to <name>
1159 \end_layout
1161 \begin_layout Subsubsection
1162 get-gamename 
1163 \end_layout
1165 \begin_layout Standard
1166 Print the name of the game.
1167 \end_layout
1169 \begin_layout Subsubsection
1170 add-author <author> 
1171 \end_layout
1173 \begin_layout Standard
1174 Adds new author <author>.
1175  If <author> does not contain '|' it is full name.
1176  If it contains '|', '|' splits the full name and nickname.
1177 \end_layout
1179 \begin_layout Subsubsection
1180 edit-author <num> <author> 
1181 \end_layout
1183 \begin_layout Standard
1184 Edit the author in slot <num> (0-based) to be <author> (see add-author for
1185  format)
1186 \end_layout
1188 \begin_layout Subsubsection
1189 remove-author <num> 
1190 \end_layout
1192 \begin_layout Standard
1193 Remove author in slot <num>
1194 \end_layout
1196 \begin_layout Subsubsection
1197 print-authors 
1198 \end_layout
1200 \begin_layout Standard
1201 Print authors.
1202 \end_layout
1204 \begin_layout Subsubsection
1205 test-1, test-2, test-3
1206 \end_layout
1208 \begin_layout Standard
1209 Internal test commands.
1210  Don't use.
1211 \end_layout
1213 \begin_layout Subsubsection
1214 take-screenshot <filename> 
1215 \end_layout
1217 \begin_layout Standard
1218 Save screenshot to <filename>.
1219 \end_layout
1221 \begin_layout Subsubsection
1222 +controller<num><button>
1223 \end_layout
1225 \begin_layout Standard
1226 Press button <button> on controller <num> (1-8).
1227  The following button names are known:
1228 \end_layout
1230 \begin_layout Itemize
1231 left
1232 \end_layout
1234 \begin_layout Itemize
1235 right
1236 \end_layout
1238 \begin_layout Itemize
1240 \end_layout
1242 \begin_layout Itemize
1243 down
1244 \end_layout
1246 \begin_layout Itemize
1248 \end_layout
1250 \begin_layout Itemize
1252 \end_layout
1254 \begin_layout Itemize
1256 \end_layout
1258 \begin_layout Itemize
1260 \end_layout
1262 \begin_layout Itemize
1264 \end_layout
1266 \begin_layout Itemize
1268 \end_layout
1270 \begin_layout Itemize
1271 select
1272 \end_layout
1274 \begin_layout Itemize
1275 start
1276 \end_layout
1278 \begin_layout Itemize
1279 trigger
1280 \end_layout
1282 \begin_layout Itemize
1283 cursor
1284 \end_layout
1286 \begin_layout Itemize
1287 pause
1288 \end_layout
1290 \begin_layout Itemize
1291 turbo
1292 \end_layout
1294 \begin_layout Subsubsection
1295 controllerh<num><button>
1296 \end_layout
1298 \begin_layout Standard
1299 Hold/unhold button <button> on controller <num> (1-8).
1300  See +controller for button names.
1301 \end_layout
1303 \begin_layout Subsubsection
1304 controllerf<num><button>
1305 \end_layout
1307 \begin_layout Standard
1308 Hold/unhold button <button> on controller <num> (1-8) for the next frame.
1309  See +controller for button names.
1310 \end_layout
1312 \begin_layout Standard
1313 Cauntion: Does not work properly if outside frame advance.
1314 \end_layout
1316 \begin_layout Subsubsection
1317 autofire (<pattern>|-)...
1318 \end_layout
1320 \begin_layout Standard
1321 Set autofire pattern.
1322  Each parameter is comma-separated list of button names (in form of 1start,
1323  1A, 2B, etc..) to hold on that frame.
1324  After reaching the end of pattern, the pattern restarts from the beginning.
1325 \end_layout
1327 \begin_layout Subsubsection
1328 repaint
1329 \end_layout
1331 \begin_layout Standard
1332 Force a repaint.
1333 \end_layout
1335 \begin_layout Subsection
1336 Save jukebox 
1337 \end_layout
1339 \begin_layout Subsubsection
1340 cycle-jukebox-backward
1341 \end_layout
1343 \begin_layout Standard
1344 Cycle save jukebox backwards.
1345 \end_layout
1347 \begin_layout Subsubsection
1348 cycle-jukebox-forward
1349 \end_layout
1351 \begin_layout Standard
1352 Cycle save jukebox forwards
1353 \end_layout
1355 \begin_layout Subsubsection
1356 load-jukebox
1357 \end_layout
1359 \begin_layout Standard
1360 Do load from jukebox (current mode).
1361 \end_layout
1363 \begin_layout Subsubsection
1364 save-jukebox
1365 \end_layout
1367 \begin_layout Standard
1368 Do state save to jukebox.
1369 \end_layout
1371 \begin_layout Subsection
1372 Lua 
1373 \end_layout
1375 \begin_layout Standard
1376 Only available if lua support is compiled in.
1377 \end_layout
1379 \begin_layout Subsubsection
1380 evaluate-lua <luacode>
1381 \end_layout
1383 \begin_layout Standard
1384 Run Lua code <luacode> using built-in Lua interpretter.
1385 \end_layout
1387 \begin_layout Subsubsection
1388 L <luacode>
1389 \end_layout
1391 \begin_layout Standard
1392 Synonym for evaluate-lua.
1393 \end_layout
1395 \begin_layout Subsubsection
1396 run-lua <script>
1397 \end_layout
1399 \begin_layout Standard
1400 Run specified lua file using built-in Lua interpretter.
1401 \end_layout
1403 \begin_layout Subsubsection
1404 reset-lua
1405 \end_layout
1407 \begin_layout Standard
1408 Clear the Lua VM state and restore to factory defaults.
1409 \end_layout
1411 \begin_layout Subsection
1412 Memory watch
1413 \end_layout
1415 \begin_layout Subsubsection
1416 add-watch <name> <expression>
1417 \end_layout
1419 \begin_layout Standard
1420 Adds new watch (or modifies old one).
1421 \end_layout
1423 \begin_layout Subsubsection
1424 remove-watch <name>
1425 \end_layout
1427 \begin_layout Standard
1428 Remove a watch.
1429 \end_layout
1431 \begin_layout Subsection
1432 Sound 
1433 \end_layout
1435 \begin_layout Subsubsection
1436 enable-sound <on/off> 
1437 \end_layout
1439 \begin_layout Standard
1440 Enable/Disable sound.
1441 \end_layout
1443 \begin_layout Subsubsection
1444 set-sound-device <device> 
1445 \end_layout
1447 \begin_layout Standard
1448 Set sound device to <device>
1449 \end_layout
1451 \begin_layout Subsubsection
1452 show-sound-status 
1453 \end_layout
1455 \begin_layout Standard
1456 Show status of sound system.
1457 \end_layout
1459 \begin_layout Subsubsection
1460 show-sound-devices
1461 \end_layout
1463 \begin_layout Standard
1464 Show all available devices.
1465 \end_layout
1467 \begin_layout Subsubsection
1468 set-volume <multiplier>
1469 \end_layout
1471 \begin_layout Standard
1472 Set the volume multiplier to <multiplier>.
1473  1 is normal volume, and higher numbers are louder.
1474 \end_layout
1476 \begin_layout Subsubsection
1477 set-volume <multiplier>%
1478 \end_layout
1480 \begin_layout Standard
1481 Set the volume multiplier to <multiplier> percent.
1482  100 is normal volume, and higher numbers are louder.
1483 \end_layout
1485 \begin_layout Subsubsection
1486 set-volume <multiplier>dB
1487 \end_layout
1489 \begin_layout Standard
1490 Set the volume multiplier to <multiplier> dB.
1491  0 is normal volume, and higher numbers are louder.
1492  The value may be negative.
1493 \end_layout
1495 \begin_layout Subsection
1496 Misc.
1497 \end_layout
1499 \begin_layout Subsubsection
1500 reload-rom [<file>]
1501 \end_layout
1503 \begin_layout Standard
1504 Reloads the main ROM image from <file>.
1505 \end_layout
1507 \begin_layout Subsubsection
1508 edit-subtitle <firstframe> <length> [<text>]
1509 \end_layout
1511 \begin_layout Standard
1512 Edit or delete a subtitle.
1513 \end_layout
1515 \begin_layout Subsubsection
1516 list-subtitle
1517 \end_layout
1519 \begin_layout Standard
1520 List subtitles.
1521 \end_layout
1523 \begin_layout Subsection
1524 Commentary track
1525 \end_layout
1527 \begin_layout Subsubsection
1528 list-streams
1529 \end_layout
1531 \begin_layout Standard
1532 List streams
1533 \end_layout
1535 \begin_layout Subsubsection
1536 play-stream <id>
1537 \end_layout
1539 \begin_layout Standard
1540 Play stream <id>.
1541 \end_layout
1543 \begin_layout Subsubsection
1544 delete-stream <id>
1545 \end_layout
1547 \begin_layout Standard
1548 Delete stream <id>
1549 \end_layout
1551 \begin_layout Subsubsection
1552 change-timebase <id> <newbase>
1553 \end_layout
1555 \begin_layout Standard
1556 Change time base of <id> to <newbase>.
1557  The time base can be given as samples (integer) or second (postfix with
1558  s).
1559 \end_layout
1561 \begin_layout Subsubsection
1562 import-stream-opus <timebase> <file>
1563 \end_layout
1565 \begin_layout Standard
1566 Import opus stream from <file>, placing it at <timebase>.
1567  This operation is lossless.
1568 \end_layout
1570 \begin_layout Subsubsection
1571 import-stream-pcm <timebase> <file>
1572 \end_layout
1574 \begin_layout Standard
1575 Import PCM (.sox, 1ch@48kHz) stream from <file>, placing it at <timebase>.
1576 \end_layout
1578 \begin_layout Subsubsection
1579 export-stream-opus <id> <file>
1580 \end_layout
1582 \begin_layout Standard
1583 Export stream <id> as opus stream to <file>.
1584  This operation is lossless.
1585 \end_layout
1587 \begin_layout Subsubsection
1588 export-stream-pcm <id> <file>
1589 \end_layout
1591 \begin_layout Standard
1592 Export stream <id> as PCM (.sox) stream to <file>.
1594 \end_layout
1596 \begin_layout Subsubsection
1597 export-superstream <file>
1598 \end_layout
1600 \begin_layout Standard
1601 Export the entiere superstream as PCM (.sox) stream to <file>.
1602 \end_layout
1604 \begin_layout Subsubsection
1605 load-collection <file>
1606 \end_layout
1608 \begin_layout Standard
1609 Load collection (if there is existing collection, unload it) from <file>
1610 \end_layout
1612 \begin_layout Subsubsection
1613 unload-collection
1614 \end_layout
1616 \begin_layout Standard
1617 Unload collection.
1618 \end_layout
1620 \begin_layout Subsubsection
1621 +tangent
1622 \end_layout
1624 \begin_layout Standard
1625 Tangent for recording voice for commentary track.
1626  While pressed, record a stream.
1627 \end_layout
1629 \begin_layout Subsection
1630 SDL Platform commands 
1631 \end_layout
1633 \begin_layout Standard
1634 The following are valid on SDL platform.
1635 \end_layout
1637 \begin_layout Subsubsection
1638 identify-key
1639 \end_layout
1641 \begin_layout Standard
1642 Asks to press a key and then identifies that (pseudo-)key.
1643 \end_layout
1645 \begin_layout Subsubsection
1646 toggle-console 
1647 \end_layout
1649 \begin_layout Standard
1650 Toggle between windowed/fullscreen console.
1651 \end_layout
1653 \begin_layout Subsubsection
1654 scroll-fullup 
1655 \end_layout
1657 \begin_layout Standard
1658 Scroll messages window as far back as it goes.
1659 \end_layout
1661 \begin_layout Subsubsection
1662 scroll-fulldown 
1663 \end_layout
1665 \begin_layout Standard
1666 Scroll messages window as far forward as it goes.
1667 \end_layout
1669 \begin_layout Subsubsection
1670 scroll-up 
1671 \end_layout
1673 \begin_layout Standard
1674 Scroll messages window back one screenful.
1675 \end_layout
1677 \begin_layout Subsubsection
1678 scroll-down 
1679 \end_layout
1681 \begin_layout Standard
1682 Scroll messages window forward one screenful.
1683 \end_layout
1685 \begin_layout Subsubsection
1686 prompt-command <command>
1687 \end_layout
1689 \begin_layout Standard
1690 Enter command prompt, with prompt prepopulated with specified command.
1691 \end_layout
1693 \begin_layout Section
1694 Settings
1695 \end_layout
1697 \begin_layout Subsection
1698 Core settings
1699 \end_layout
1701 \begin_layout Subsubsection
1702 firmwarepath
1703 \end_layout
1705 \begin_layout Standard
1706 Set where bsnes looks for firmware files.
1707  Default is 
1708 \begin_inset Quotes eld
1709 \end_inset
1712 \begin_inset Quotes erd
1713 \end_inset
1716 \end_layout
1718 \begin_layout Subsubsection
1719 target
1720 \end_layout
1722 \begin_layout Standard
1723 Set the target .
1724  Numeric, range is 0.001 to 
1725 \begin_inset Quotes eld
1726 \end_inset
1728 infinite
1729 \begin_inset Quotes erd
1730 \end_inset
1733  Default is native framerate.
1734 \end_layout
1736 \begin_layout Subsubsection
1737 savecompression
1738 \end_layout
1740 \begin_layout Standard
1741 Set save compression level (integer 0-9).
1742  Default is 7 (0 is no compression).
1743 \end_layout
1745 \begin_layout Subsubsection
1746 advance-timeout
1747 \end_layout
1749 \begin_layout Standard
1750 Set the frame advance timeout in milliseconds.
1751  Numeric integer, range is 0-999999999.
1752  Default is 500.
1753 \end_layout
1755 \begin_layout Subsubsection
1756 advance-subframe-timeout
1757 \end_layout
1759 \begin_layout Standard
1760 Subframe advance timeout in milliseconds.
1761  Default is 100.
1762 \end_layout
1764 \begin_layout Subsubsection
1765 save-every-frame (bsnes only)
1766 \end_layout
1768 \begin_layout Standard
1769 If true, simulate saving on each frame.
1770  Trades off emulation accuracy for sync stability.
1771  Also needed if the movie assumes saving on each frame for rewind.
1772 \end_layout
1774 \begin_layout Subsection
1775 AVI dumper settings
1776 \end_layout
1778 \begin_layout Subsubsection
1779 avi-large
1780 \end_layout
1782 \begin_layout Standard
1783 AVI dumper: Always dump at 512x448 or 512x478 regardless of what the console
1784  outputs.
1785 \end_layout
1787 \begin_layout Subsubsection
1788 avi-left-border
1789 \end_layout
1791 \begin_layout Standard
1792 AVI dumper: Set the default left border thickness (unless lua overrides)
1793  for dumps.
1794  Range 0-8191.
1795  Default is 0.
1796 \end_layout
1798 \begin_layout Subsubsection
1799 avi-right-border
1800 \end_layout
1802 \begin_layout Standard
1803 AVI dumper: Set the default right border thickness (unless lua overrides)
1804  for dumps.
1805  Range 0-8191.
1806  Default is 0.
1807 \end_layout
1809 \begin_layout Subsubsection
1810 avi-top-border
1811 \end_layout
1813 \begin_layout Standard
1814 AVI dumper: Set the default top border thickness (unless lua overrides)
1815  for dumps.
1816  Range 0-8191.
1817  Default is 0.
1818 \end_layout
1820 \begin_layout Subsubsection
1821 avi-bottom-border
1822 \end_layout
1824 \begin_layout Standard
1825 AVI dumper: Set the default bottom border thickness (unless lua overrides)
1826  for dumps.
1827  Range 0-8191.
1828  Default is 0.
1829 \end_layout
1831 \begin_layout Subsubsection
1832 avi-maxframes
1833 \end_layout
1835 \begin_layout Standard
1836 AVI dumper: Maximum number of frames per dump segment (0 => unlimited).
1837  Range 0-999999999.
1838  Default is 0.
1839 \end_layout
1841 \begin_layout Subsubsection
1842 avi-compresison
1843 \end_layout
1845 \begin_layout Standard
1846 AVI dumper: Compression level (0-18).
1847 \end_layout
1849 \begin_layout Itemize
1850 Compression levels 10 and above are not compatible with stock CSCD codec.
1851 \end_layout
1853 \begin_layout Itemize
1854 Recomended level is 7.
1855 \end_layout
1857 \begin_layout Subsubsection
1858 avi-soundrate
1859 \end_layout
1861 \begin_layout Standard
1862 AVI dumper: Set method of determining the sound rate.
1863 \end_layout
1865 \begin_layout Itemize
1866 0: Pick nearest of 8, 11.025, 12, 16, 22.05, 24, 32, 44.1, 48, 64, 88.2, 96,
1867  128, 176.4 and 192 kHz.
1868 \end_layout
1870 \begin_layout Itemize
1871 1: Round down to nearest integer.
1872 \end_layout
1874 \begin_layout Itemize
1875 2: Round up to nearest ingeter.
1876 \end_layout
1878 \begin_layout Subsection
1879 JMD options
1880 \end_layout
1882 \begin_layout Subsubsection
1883 jmd-copression
1884 \end_layout
1886 \begin_layout Standard
1887 JMD dumper: Compression level (0-9).
1888 \end_layout
1890 \begin_layout Subsection
1891 SDL platform settings
1892 \end_layout
1894 \begin_layout Subsubsection
1895 autorepeat-first-delay
1896 \end_layout
1898 \begin_layout Standard
1899 Sets the delay for first character in typematic autorepeat.
1900 \end_layout
1902 \begin_layout Subsubsection
1903 autorepeat-subsequent-delay
1904 \end_layout
1906 \begin_layout Standard
1907 Sets the delay for subsequent characters in typematic autorepeat.
1908 \end_layout
1910 \begin_layout Section
1911 Lua functions
1912 \end_layout
1914 \begin_layout Subsection
1915 Core (in main table)
1916 \end_layout
1918 \begin_layout Subsubsection
1919 print
1920 \end_layout
1922 \begin_layout Standard
1923 Print line to message console.
1924 \end_layout
1926 \begin_layout Subsubsection
1927 tostringx
1928 \end_layout
1930 \begin_layout Standard
1931 Convert arbitrary lua value into a string (using same conversions as print)
1932  and return the result.
1933 \end_layout
1935 \begin_layout Subsubsection
1936 exec(string command)
1937 \end_layout
1939 \begin_layout Standard
1940 Run command as it was entered on the command line
1941 \end_layout
1943 \begin_layout Subsubsection
1944 utime()
1945 \end_layout
1947 \begin_layout Standard
1948 Returns two values.
1949  First is time since some epoch in seconds, the second is microseconds mod
1950  10^6 since that epoch.
1951 \end_layout
1953 \begin_layout Subsubsection
1954 emulator_ready()
1955 \end_layout
1957 \begin_layout Standard
1958 Returns true if emulator has finished booting, false if not (on_startup()
1959  will be issued later).
1960 \end_layout
1962 \begin_layout Subsubsection
1963 set_idle_timeout(number timeout)
1964 \end_layout
1966 \begin_layout Standard
1967 Set number of microseconds to block idle for.
1968  After this timeout has expired, on_idle() will be called once.
1969 \end_layout
1971 \begin_layout Subsubsection
1972 set_timer_timeout(number timeout)
1973 \end_layout
1975 \begin_layout Standard
1976 Set number of microseconds to block timer for.
1977  After this timeout has expired, on_timer() will be called once.
1978 \end_layout
1980 \begin_layout Subsubsection
1981 bus_address(number snesaddr)
1982 \end_layout
1984 \begin_layout Standard
1985 Returns virtual address corresponding to specified address on SNES bus.
1986 \end_layout
1988 \begin_layout Subsubsection
1989 loopwrapper(function fun, ...)
1990 \end_layout
1992 \begin_layout Standard
1993 Calls function fun with function and specified arguments.
1994  The function passed suspends execution until the function returned is called.
1995  Handy for linear flow control among multiple invocations of a hook.
1996  Example code:
1997 \end_layout
1999 \begin_layout LyX-Code
2000 on_paint = loopwrapper(function(wait)
2001 \end_layout
2003 \begin_deeper
2004 \begin_layout LyX-Code
2005 while true do
2006 \end_layout
2008 \begin_deeper
2009 \begin_layout LyX-Code
2010 gui.text(0, 0, 
2011 \begin_inset Quotes eld
2012 \end_inset
2014 Test!
2015 \begin_inset Quotes erd
2016 \end_inset
2019 \end_layout
2021 \begin_layout LyX-Code
2022 wait();
2023 \end_layout
2025 \end_deeper
2026 \begin_layout LyX-Code
2028 \end_layout
2030 \end_deeper
2031 \begin_layout LyX-Code
2032 end);
2033 \end_layout
2035 \begin_layout Subsubsection
2036 list_bindings([string cmd])
2037 \end_layout
2039 \begin_layout Standard
2040 Get table of all keybindings, indexed by keyspec (modifiers|mask/key).
2041  If command is specified, the table is limited to that command.
2042 \end_layout
2044 \begin_layout Subsubsection
2045 get_alias(string aname)
2046 \end_layout
2048 \begin_layout Standard
2049 Get expansion of given alias.
2050 \end_layout
2052 \begin_layout Subsubsection
2053 set_alias(string aname, string value)
2054 \end_layout
2056 \begin_layout Standard
2057 Set expansion of given alias.
2058 \end_layout
2060 \begin_layout Subsubsection
2061 create_ibind(string name, string cmd)
2062 \end_layout
2064 \begin_layout Standard
2065 Return object representing inverse binding with specified name and specified
2066  command.
2067 \end_layout
2069 \begin_layout Itemize
2070 To create press/release commands, use aliases +foo and -foo .
2071 \end_layout
2073 \begin_layout Itemize
2074 Keep the returned object around.
2075 \end_layout
2077 \begin_layout Subsection
2078 Table bit:
2079 \end_layout
2081 \begin_layout Standard
2082 Bitwise logical functions and related.
2083 \end_layout
2085 \begin_layout Subsubsection
2086 bit.none(number...) / bit.bnot(number...)
2087 \end_layout
2089 \begin_layout Standard
2090 48-bit bitwise NOT / NONE function (set bits that are set in none of the
2091  arguments).
2092 \end_layout
2094 \begin_layout Subsubsection
2095 bit.any(number...) / bit.bor(number...)
2096 \end_layout
2098 \begin_layout Standard
2099 48-bit bitwise OR / ANY function (set bits that are set in any of the arguments).
2100 \end_layout
2102 \begin_layout Subsubsection
2103 bit.all(number...) / bit.band(number...)
2104 \end_layout
2106 \begin_layout Standard
2107 48-bit bitwise AND / ALL function (set bits that are set in all of the arguments
2109 \end_layout
2111 \begin_layout Subsubsection
2112 bit.parity(number...) / bit.bxor(number...)
2113 \end_layout
2115 \begin_layout Standard
2116 48-bit bitwise XOR / PARITY function (set bits that are set in odd number
2117  of the arguments).
2118 \end_layout
2120 \begin_layout Subsubsection
2121 bit.lrotate(number base[, number amount[, number bits]])
2122 \end_layout
2124 \begin_layout Standard
2125 Rotate bits-bit (max 48, default 48) number left by amount (default 1) places.
2126 \end_layout
2128 \begin_layout Subsubsection
2129 bit.rrotate(number base[, number amount[, number bits]])
2130 \end_layout
2132 \begin_layout Standard
2133 Rotate bits-bit (max 48, default 48) number right by amount (default 1)
2134  places.
2135 \end_layout
2137 \begin_layout Subsubsection
2138 bit.lshift(number base[, number amount[, number bits]])
2139 \end_layout
2141 \begin_layout Standard
2142 Shift bits-bit (max 48, default 48) number left by amount (default 1) places.
2143  The new bits are filled with zeroes.
2144 \end_layout
2146 \begin_layout Subsubsection
2147 bit.lrshift(number base[, number amount[, number bits]])
2148 \end_layout
2150 \begin_layout Standard
2151 Shift bits-bit (max 48, default 48) number logically right by amount (default
2152  1) places.
2153  The new bits are filled with zeroes.
2154 \end_layout
2156 \begin_layout Subsubsection
2157 bit.arshift(number base[, number amount[, number bits]])
2158 \end_layout
2160 \begin_layout Standard
2161 Shift bits-bit (max 48, default 48) number arithmetically right by amount
2162  (default 1) places.
2163  The new bits are shifted in with copy of the high bit.
2164 \end_layout
2166 \begin_layout Subsubsection
2167 bit.extract(number base[, number bit0[, number bit1,...]])
2168 \end_layout
2170 \begin_layout Standard
2171 Returns number that has bit0-th bit as bit 0, bit1-th bit as 1 and so on.
2172 \end_layout
2174 \begin_layout Standard
2175 Notes: 
2176 \end_layout
2178 \begin_layout Itemize
2179 Bit numbers up to 51 should work reliably (then things start falling apart
2180  due to double precision issues).
2181 \end_layout
2183 \begin_layout Itemize
2184 There are two special bit positions, true and false, standing for always
2185  set bit and always clear bit.
2186 \end_layout
2188 \begin_layout Subsubsection
2189 bit.value([number bit1[, number bit2,...]])
2190 \end_layout
2192 \begin_layout Standard
2193 Returns bitwise OR of 1 left shifted by bit1 places, 1 left shifted by bit2
2194  places and so on.
2195  As special value, nil argument is no-op.
2196 \end_layout
2198 \begin_layout Subsubsection
2199 bit.test_any(number a, number b)
2200 \end_layout
2202 \begin_layout Standard
2203 Is there a common set bit in a and b?
2204 \end_layout
2206 \begin_layout Subsubsection
2207 bit.test_all(number a, number b)
2208 \end_layout
2210 \begin_layout Standard
2211 Are all set bits in b also set in a?
2212 \end_layout
2214 \begin_layout Subsubsection
2215 bit.popcount(number a)
2216 \end_layout
2218 \begin_layout Standard
2219 Population count of a.
2220 \end_layout
2222 \begin_layout Subsubsection
2223 bit.clshift(number a, number b, [number amount,[number bits]])
2224 \end_layout
2226 \begin_layout Standard
2227 Does chained left shift on a, b by amount positions, assuming numbers to
2228  be of specified number of bits.
2229 \end_layout
2231 \begin_layout Subsubsection
2232 bit.crshift(number a, number b, [number amount,[number bits]])
2233 \end_layout
2235 \begin_layout Standard
2236 Does chained right shift on a, b by amount positions, assuming numbers to
2237  be of specified number of bits.
2238 \end_layout
2240 \begin_layout Subsubsection
2241 bit.flagdecode(number a, number bits, [string on, [string off]])
2242 \end_layout
2244 \begin_layout Standard
2245 Return string of length bits where ith character is ith character of on
2246  if bit i is on, otherwise ith character of off.
2247  Out of range reads give last character, or '*'/'-' if empty.
2248 \end_layout
2250 \begin_layout Subsubsection
2251 bit.rflagdecode(number a, number bits, [string on, [string off]])
2252 \end_layout
2254 \begin_layout Standard
2255 Like bit.flagdecode, but outputs the string in the opposite order (most significa
2256 nt bit first).
2257 \end_layout
2259 \begin_layout Subsection
2260 Table gui:
2261 \end_layout
2263 \begin_layout Standard
2264 Most of these functions can only be called in on_paint and on_video callbacks.
2265  Exceptions are noted.
2266 \end_layout
2268 \begin_layout Standard
2269 Colors are 32-bit.
2270  Bits 0-7 are the blue component, bits 8-15 are the green component, bits
2271  16-23 are the red component, bits 24-31 are alpha component (0 is fully
2272  opaque, 255 is almost transparent).
2273  -1 is the fully transparent color.
2274  Alpha values greater than 127 do work.
2275 \end_layout
2277 \begin_layout Standard
2278 Origin of coordinates is at top left corner of game display area.
2279  Left and top gaps correspond to negative coordinates.
2280 \end_layout
2282 \begin_layout Subsubsection
2283 gui.resolution()
2284 \end_layout
2286 \begin_layout Standard
2287 Returns 2-tuple (hresolution, vresolution).
2288 \end_layout
2290 \begin_layout Subsubsection
2291 gui.<class>_gap(number gap)
2292 \end_layout
2294 \begin_layout Standard
2295 Set the <class> (left, right, top, bottom) gap to specified value (max gap
2296  is 8191).
2297  If successful, old gap is returned.
2298 \end_layout
2300 \begin_layout Subsubsection
2301 gui.delta_<class>_gap(number gap)
2302 \end_layout
2304 \begin_layout Standard
2305 Increase the <class> (left, right, top, bottom) gap by specified value (max
2306  gap is 8191) and return the old gap (returns nothing on error).
2307 \end_layout
2309 \begin_layout Subsubsection
2310 gui.text(number x, number y, string text[, number fgc[, number bgc]])
2311 \end_layout
2313 \begin_layout Standard
2314 Draw specified text on the GUI (each character cell is 8 or 16 wide and
2315  16 high).
2316  Parameters:
2317 \end_layout
2319 \begin_layout Itemize
2320 x: X-coordinate to start the drawing from (and x-coordinate at begining
2321  of the lines).
2322 \end_layout
2324 \begin_layout Itemize
2325 y: Y-coordinate to start the drawing from.
2326 \end_layout
2328 \begin_layout Itemize
2329 text: The text to draw.
2330 \end_layout
2332 \begin_layout Itemize
2333 fgc: Text color (default is 0xFFFFFF (white))
2334 \end_layout
2336 \begin_layout Itemize
2337 bgc: Background color (default is -1 (transparent))
2338 \end_layout
2340 \begin_layout Subsubsection
2341 gui.textH(number x, number y, string text[, number fgc[, number bgc]])
2342 \end_layout
2344 \begin_layout Standard
2345 Like gui.text, but draw using double-width.
2346 \end_layout
2348 \begin_layout Subsubsection
2349 gui.textV(number x, number y, string text[, number fgc[, number bgc]])
2350 \end_layout
2352 \begin_layout Standard
2353 Like gui.text, but draw using double-height.
2354 \end_layout
2356 \begin_layout Subsubsection
2357 gui.textHV(number x, number y, string text[, number fgc[, number bgc]])
2358 \end_layout
2360 \begin_layout Standard
2361 Like gui.text, but draw using double-width/double-height.
2362 \end_layout
2364 \begin_layout Subsubsection
2365 gui.rectangle(number x, number y, number width, number height[, number thickness[
2366 , number outline[, number fill]]])
2367 \end_layout
2369 \begin_layout Standard
2370 Draw rectangle on the GUI.
2371  Parameters:
2372 \end_layout
2374 \begin_layout Itemize
2375 x: X-coordinate of left edge.
2376 \end_layout
2378 \begin_layout Itemize
2379 y: Y-coordinate of upper edge.
2380 \end_layout
2382 \begin_layout Itemize
2383 width: Width of rectangle.
2384 \end_layout
2386 \begin_layout Itemize
2387 height: Height of rectangle.
2388 \end_layout
2390 \begin_layout Itemize
2391 thickness: Thickness of outline (default is 1).
2392 \end_layout
2394 \begin_layout Itemize
2395 outline: Color of outline (default is 0xFFFFFF (white))
2396 \end_layout
2398 \begin_layout Itemize
2399 fill: Color of fill (default is -1 (transparent))
2400 \end_layout
2402 \begin_layout Subsubsection
2403 gui.box(number x, number y, number width, number height[, number thickness[,
2404  number outline1[,number outline2[, number fill]]]])
2405 \end_layout
2407 \begin_layout Standard
2408 Draw rectangle with 3D effect on the GUI.
2409  Parameters:
2410 \end_layout
2412 \begin_layout Itemize
2413 x: X-coordinate of left edge.
2414 \end_layout
2416 \begin_layout Itemize
2417 y: Y-coordinate of upper edge.
2418 \end_layout
2420 \begin_layout Itemize
2421 width: Width of rectangle.
2422 \end_layout
2424 \begin_layout Itemize
2425 height: Height of rectangle.
2426 \end_layout
2428 \begin_layout Itemize
2429 thickness: Thickness of outline (default is 1).
2430 \end_layout
2432 \begin_layout Itemize
2433 outline1: First color of outline (default is 0xFFFFFF (white))
2434 \end_layout
2436 \begin_layout Itemize
2437 outline2: First color of outline (default is 0x808080 (dark gray))
2438 \end_layout
2440 \begin_layout Itemize
2441 fill: Color of fill (default is 0xC0C0C0 (light grayy))
2442 \end_layout
2444 \begin_layout Subsubsection
2445 gui.pixel(number x, number y[, number color])
2446 \end_layout
2448 \begin_layout Standard
2449 Draw one pixel on the GUI.
2450  Parameters:
2451 \end_layout
2453 \begin_layout Itemize
2454 x: X-coordinate of the pixel
2455 \end_layout
2457 \begin_layout Itemize
2458 y: Y-coordinate of the pixel
2459 \end_layout
2461 \begin_layout Itemize
2462 color: Color of the pixel (default is 0xFFFFFF (white))
2463 \end_layout
2465 \begin_layout Subsubsection
2466 gui.crosshair(number x, number y[, number length[, number color]])
2467 \end_layout
2469 \begin_layout Standard
2470 Draw a crosshair.
2471  Parameters:
2472 \end_layout
2474 \begin_layout Itemize
2475 x: X-coordinate of the crosshair
2476 \end_layout
2478 \begin_layout Itemize
2479 y: Y-coordinate of the crosshair
2480 \end_layout
2482 \begin_layout Itemize
2483 length: Length of the crosshair lines (default 10).
2484 \end_layout
2486 \begin_layout Itemize
2487 color: Color of the crosshair (default is 0xFFFFFF (white))
2488 \end_layout
2490 \begin_layout Subsubsection
2491 gui.line(number x1, number y1, number x2, number y2[, number color])
2492 \end_layout
2494 \begin_layout Standard
2495 Draw a thin line.
2496  Parameters:
2497 \end_layout
2499 \begin_layout Itemize
2500 x1: X-coordinate of one end.
2501 \end_layout
2503 \begin_layout Itemize
2504 y1: Y-coordinate of one end.
2505 \end_layout
2507 \begin_layout Itemize
2508 x2: X-coordinate of the other end.
2509 \end_layout
2511 \begin_layout Itemize
2512 y2: Y-coordinate of the other end.
2513 \end_layout
2515 \begin_layout Itemize
2516 color: Color of the line (default is 0xFFFFFF (white)).
2517 \end_layout
2519 \begin_layout Subsubsection
2520 gui.circle(number x, number y, number r[, number thick[, number border[,
2521  number fil]]])
2522 \end_layout
2524 \begin_layout Standard
2525 Draw a circle.
2526  Parameters.
2527 \end_layout
2529 \begin_layout Itemize
2530 x: X-coordinate of the center
2531 \end_layout
2533 \begin_layout Itemize
2534 y: Y-coordinate of the center
2535 \end_layout
2537 \begin_layout Itemize
2538 r: The radius of the circle
2539 \end_layout
2541 \begin_layout Itemize
2542 thick: Border thickness
2543 \end_layout
2545 \begin_layout Itemize
2546 border: Border color (default is 0xFFFFFF (white))
2547 \end_layout
2549 \begin_layout Itemize
2550 fill: Fill color (default is -1 (transparent)).
2551 \end_layout
2553 \begin_layout Subsubsection
2554 gui.bitmap_draw(number x, number y, bitmap bitmap, palette palette)
2555 \end_layout
2557 \begin_layout Standard
2558 Draw a bitmap on screen with specified palette.
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 Itemize
2575 palette: The palette to draw the bitmap using.
2576 \end_layout
2578 \begin_layout Subsubsection
2579 gui.bitmap_draw(number x, number y, dbitmap bitmap)
2580 \end_layout
2582 \begin_layout Standard
2583 Draw a bitmap on screen.
2584  Parameters:
2585 \end_layout
2587 \begin_layout Itemize
2588 x: X-coordinate of left edge.
2589 \end_layout
2591 \begin_layout Itemize
2592 y: Y-coordinate of top edge.
2593 \end_layout
2595 \begin_layout Itemize
2596 bitmap: The bitmap to draw
2597 \end_layout
2599 \begin_layout Subsubsection
2600 gui.palette_new()
2601 \end_layout
2603 \begin_layout Standard
2604 Returns a new palette (initially all transparent).
2605  Can be used anywhere.
2606 \end_layout
2608 \begin_layout Subsubsection
2609 gui.bitmap_new(number w, number h, boolean direct[, bool icolor])
2610 \end_layout
2612 \begin_layout Standard
2613 Returns a new bitmap/dbitmap.
2614  Can be used anywhere.
2615  Parameters:
2616 \end_layout
2618 \begin_layout Itemize
2619 w: The width of new bitmap
2620 \end_layout
2622 \begin_layout Itemize
2623 h: The height of new bitmap
2624 \end_layout
2626 \begin_layout Itemize
2627 direct: If true, the returned bitmap is dbitmap, otherwise bitmap.
2628 \end_layout
2630 \begin_layout Itemize
2631 icolor: Initital fill color (defaults to 0 on BITMAP, -1 on DBITMAP)
2632 \end_layout
2634 \begin_layout Subsubsection
2635 gui.bitmap_load(string file)
2636 \end_layout
2638 \begin_layout Standard
2639 Returns loaded bitmap/dbitmap (if bitmap, the second return value is palette
2640  for bitmap).
2641  Can be used anywhere.
2642  Parameters:
2643 \end_layout
2645 \begin_layout Itemize
2646 file: The name of file to load.
2647 \end_layout
2649 \begin_layout Subsubsection
2650 gui.palette_set(palette palette, number index, number color)
2651 \end_layout
2653 \begin_layout Standard
2654 Sets color in palette.
2655  Can be used anywhere.
2656  Parameters:
2657 \end_layout
2659 \begin_layout Itemize
2660 palette: The palette to manipulate
2661 \end_layout
2663 \begin_layout Itemize
2664 index: Index of color (0-65535).
2665 \end_layout
2667 \begin_layout Itemize
2668 color: The color value.
2669 \end_layout
2671 \begin_layout Subsubsection
2672 gui.bitmap_pset(bitmap/dbitmap bitmap, number x, number y, number color)
2673 \end_layout
2675 \begin_layout Standard
2676 Sets specified pixel in bitmap.
2677  Can be used anywhere.
2678  Parameters:
2679 \end_layout
2681 \begin_layout Itemize
2682 bitmap: The bitmap to manipulate
2683 \end_layout
2685 \begin_layout Itemize
2686 x: The x-coordinate of the pixel.
2687 \end_layout
2689 \begin_layout Itemize
2690 y: The y-coordinate of the pixel.
2691 \end_layout
2693 \begin_layout Itemize
2694 color: If bitmap is a bitmap, color index (0-65535).
2695  Otherwise color value.
2696 \end_layout
2698 \begin_layout Subsubsection
2699 gui.bitmap_size(bitmap/dbitmap bitmap)
2700 \end_layout
2702 \begin_layout Standard
2703 Get size of bitmap.
2704  Can be used anywhere.
2705  Parameters:
2706 \end_layout
2708 \begin_layout Itemize
2709 bitmap: The bitmap to query.
2710 \end_layout
2712 \begin_layout Standard
2713 The first return is the width, the second is the height.
2714 \end_layout
2716 \begin_layout Subsubsection
2717 gui.bitmap_blit(bitmap/dbitmap dest, number dx, number dy, bitmap/dbitmap
2718  src, [palette pal, ]number sx, number sy, number w, number h[, number ck])
2719 \end_layout
2721 \begin_layout Standard
2722 Blit a part of bitmap to another.
2723  Can be used anywhere.
2724  Parameters:
2725 \end_layout
2727 \begin_layout Itemize
2728 dest: Destination to blit to.
2729 \end_layout
2731 \begin_layout Itemize
2732 dx: left edge of target
2733 \end_layout
2735 \begin_layout Itemize
2736 dy: Top edge of target
2737 \end_layout
2739 \begin_layout Itemize
2740 src: The source to blit from.
2741  If destination is paletted, must be paletted.
2742 \end_layout
2744 \begin_layout Itemize
2745 pal: The palette.
2747 \emph on
2748 Only present if src is paletted, but dest is not.
2749 \end_layout
2751 \begin_layout Itemize
2752 sx: left edge of source
2753 \end_layout
2755 \begin_layout Itemize
2756 sy: Top edge of source
2757 \end_layout
2759 \begin_layout Itemize
2760 w: Width of region
2761 \end_layout
2763 \begin_layout Itemize
2764 h: Height of region.
2765 \end_layout
2767 \begin_layout Itemize
2768 ck: Color key.
2769  Pixels of this color are not blitted.
2770 \end_layout
2772 \begin_deeper
2773 \begin_layout Itemize
2774 If bitmaps are bitmaps, this is color index of colorkey.
2775  Values outside range 0-65535 cause no key to be used as colorkey.
2776 \end_layout
2778 \begin_layout Itemize
2779 If bitmaps are dbitmaps, this color value of colorkey.
2780 \end_layout
2782 \begin_layout Itemize
2783 May be absent or nil for no colorkey blit.
2784 \end_layout
2786 \end_deeper
2787 \begin_layout Subsubsection
2788 gui.bitmap_load_png(string filename)
2789 \end_layout
2791 \begin_layout Standard
2792 Load a bitmap from PNG file.
2793  Parameters:
2794 \end_layout
2796 \begin_layout Itemize
2797 filename: The name of file to load the bitmap frame.
2798 \end_layout
2800 \begin_layout Standard
2801 Return value:
2802 \end_layout
2804 \begin_layout Itemize
2805 If the PNG is of color type 3 (PALETTE), returns two value.
2806  First is BITMAP containing the image data from the PNG and second is PALETTE
2807  containg the palette data from the PNG.
2808 \end_layout
2810 \begin_layout Itemize
2811 For color types 0 (GRAY), 2 (RGB), 4 (GRAY_ALPHA) and 6 (RGBA), returns
2812  one DBITMAP containg the image data loaded from the PNG.
2813 \end_layout
2815 \begin_layout Subsubsection
2816 gui.bitmap_load_pal(string filename)
2817 \end_layout
2819 \begin_layout Standard
2820 Load a palette from file.
2821  Parameters:
2822 \end_layout
2824 \begin_layout Itemize
2825 filename: The name of the file.
2826 \end_layout
2828 \begin_layout Standard
2829 The kinds of lines supported
2830 \end_layout
2832 \begin_layout Itemize
2833 Blank or just whitespace: Ignored
2834 \end_layout
2836 \begin_layout Itemize
2837 First non-whitespace is '#': Ignored
2838 \end_layout
2840 \begin_layout Itemize
2841 <r> <g> <b>: Fully opaque color with specified RGB values (0-255)
2842 \end_layout
2844 \begin_layout Itemize
2845 <r> <g> <b> <a>: Color with specified RGB values (0-255) and specified alpha
2846  (0-256, 0 being fully transparent and 256 fully opaque).
2847 \end_layout
2849 \begin_layout Itemize
2850 transparent: Fully transparent color
2851 \end_layout
2853 \begin_layout Subsubsection
2854 gui.bitmap_load_str(string content)
2855 \end_layout
2857 \begin_layout Standard
2858 Like gui.bitmap_load, but reads the specified string directly as content.
2859 \end_layout
2861 \begin_layout Subsubsection
2862 gui.bitmap_load_png_str(string base64content)
2863 \end_layout
2865 \begin_layout Standard
2866 Like gui.bitmap_load_png, but reads the specified string (as base64-encoded)
2867  directly as content.
2868 \end_layout
2870 \begin_layout Subsubsection
2871 gui.bitmap_load_pal_str(string content)
2872 \end_layout
2874 \begin_layout Standard
2875 Like gui.bitmap_load_pal, but reads the specified string directly as content.
2876 \end_layout
2878 \begin_layout Subsubsection
2879 gui.repaint()
2880 \end_layout
2882 \begin_layout Standard
2883 Request on_repaint() to happen as soon as possible.
2884  Can be used anywhere.
2885 \end_layout
2887 \begin_layout Subsubsection
2888 gui.subframe_update(boolean on)
2889 \end_layout
2891 \begin_layout Standard
2892 Request subframe updates (calling on_paint() on subframes) to happen (on=true)
2893  or not happen (on=false).
2894  Can be used anywhere.
2895 \end_layout
2897 \begin_layout Subsubsection
2898 gui.screenshot(string filename)
2899 \end_layout
2901 \begin_layout Standard
2902 Write PNG screenshot of the current frame (no drawings) to specified file.
2903  Can be used anywhere.
2904 \end_layout
2906 \begin_layout Subsubsection
2907 gui.color(number r, number g, number b[, number a])
2908 \end_layout
2910 \begin_layout Standard
2911 Returns color (in notation Lua scripts use) corresponding to color (r,g,b),
2912  each component in scale 0-255.
2913  If a is specified, that is alpha (0 is fully transparent, 256(sic) is fully
2914  opaque).
2915  The default alpha is 256.
2916 \end_layout
2918 \begin_layout Subsubsection
2919 gui.status(string name, string value)
2920 \end_layout
2922 \begin_layout Standard
2923 Set status field 
2924 \begin_inset Quotes eld
2925 \end_inset
2927 L[<name>]
2928 \begin_inset Quotes erd
2929 \end_inset
2931  to <value> in status area.
2932  Can be used anywhere.
2933 \end_layout
2935 \begin_layout Subsubsection
2936 gui.rainbow(number step, number steps[, number color])
2937 \end_layout
2939 \begin_layout Standard
2940 Perform hue rotation of color <color> (default bright red), by <step> steps.
2941  The number of steps per full rotation is given by absolute value of <steps>.
2942 \end_layout
2944 \begin_layout Standard
2945 If <steps> is negative, the rotation will be counterclockwise.
2946 \end_layout
2948 \begin_layout Subsubsection
2949 gui.screenshot(string filename)
2950 \end_layout
2952 \begin_layout Standard
2953 Saves a screenshot into specified file.
2954 \end_layout
2956 \begin_layout Subsubsection
2957 gui.loadfont(string filename)
2958 \end_layout
2960 \begin_layout Standard
2961 Loads font from specified file (CUSTOMFONT object).
2962 \end_layout
2964 \begin_layout Subsubsection
2965 CUSTOMFONT(number x, number y, string text[, number fgc[, number bgc[, number
2966  hlc]]])
2967 \end_layout
2969 \begin_layout Standard
2970 Draw string with custom font to screen.
2971  The parameters are the same as in gui.text, except hlc is the halo color
2972  (default is no halo).
2974 \end_layout
2976 \begin_layout Subsubsection
2977 gui.arrow(number x, number y, number length, number headwidth, number direction[,
2978  boolean fill[, number color[, number width[, number hthicknes]]]]
2979 \end_layout
2981 \begin_layout Standard
2982 Draw an arrow.
2983  Parameters:
2984 \end_layout
2986 \begin_layout Itemize
2987 x: The x-coordinate of arrow tip.
2988 \end_layout
2990 \begin_layout Itemize
2991 y: The y-coordinate of arrow tip.
2992 \end_layout
2994 \begin_layout Itemize
2995 length: Length of arrow tail
2996 \end_layout
2998 \begin_layout Itemize
2999 headwidth: Width of arrow head.
3000  Should be odd.
3001 \end_layout
3003 \begin_layout Itemize
3004 direction: Direction of arrow.
3005  0 is to right.
3006  Each unit is 45 degree rotation counterclockwise.
3007 \end_layout
3009 \begin_layout Itemize
3010 fill: If true, fill the arrow head (hthickness is ignored).
3011  Default is not to fill.
3012 \end_layout
3014 \begin_layout Itemize
3015 color: Color of arrow (default white).
3016 \end_layout
3018 \begin_layout Itemize
3019 width: Width of arrow tail.
3020  Should be odd.
3021  Default is 1.
3022 \end_layout
3024 \begin_layout Itemize
3025 hthickness: Thickness of arrow head.
3026  Default is the same as tail width.
3027 \end_layout
3029 \begin_layout Subsubsection
3030 gui.tilemap(number w, number h, number bw, number bh)
3031 \end_layout
3033 \begin_layout Standard
3034 Create a new tilemap.
3035  Parameters:
3036 \end_layout
3038 \begin_layout Itemize
3039 w: The width of tilemap in tiles
3040 \end_layout
3042 \begin_layout Itemize
3043 h: The height of tilemap in tiles
3044 \end_layout
3046 \begin_layout Itemize
3047 bw: Width of each tile.
3048 \end_layout
3050 \begin_layout Itemize
3051 bh: Height of each tile.
3052 \end_layout
3054 \begin_layout Subsubsection
3055 TILEMAP:draw(number x, number y[, number x0[, number y0[, number w[, number
3056  h]]]])
3057 \end_layout
3059 \begin_layout Standard
3060 Draw a tilemap.
3061  Parameters:
3062 \end_layout
3064 \begin_layout Itemize
3065 x: The x-position of upper left corner on screen.
3066 \end_layout
3068 \begin_layout Itemize
3069 y: The y-position of upper left corner on screen.
3070 \end_layout
3072 \begin_layout Itemize
3073 x0: The tilemap x coordinate corresponding to upper left corner of draw
3074  area.
3075  Default 0.
3076 \end_layout
3078 \begin_layout Itemize
3079 y0: The tilemap y coordinate corresponding to upper left corner of draw
3080  area.
3081  Default 0.
3082 \end_layout
3084 \begin_layout Itemize
3085 w: The width of draw area in pixels.
3086  Default: Width of whole tilemap.
3087 \end_layout
3089 \begin_layout Itemize
3090 h: The width of draw area in pixels.
3091  Default: Height of whole tilemap.
3092 \end_layout
3094 \begin_layout Subsubsection
3095 TILEMAP:set(number x, number y[, bitmap/dbitmap b, palette p])
3096 \end_layout
3098 \begin_layout Standard
3099 Set a tile in tilemap.
3100  Parameters:
3101 \end_layout
3103 \begin_layout Itemize
3104 x: The x-position of tile to set.
3105 \end_layout
3107 \begin_layout Itemize
3108 y: The y-position of tile to set.
3109 \end_layout
3111 \begin_layout Itemize
3112 b: The bitmap to set.
3113  If nil, that cell is transparent.
3114 \end_layout
3116 \begin_layout Itemize
3117 p: The palette.
3118  Only if <b> is bitmap.
3119 \end_layout
3121 \begin_layout Subsubsection
3122 TILEMAP:get(number x, number y)
3123 \end_layout
3125 \begin_layout Standard
3126 Get tile in tilemap (nil, dbitmap or bitmap/palette).
3127  Parameters:
3128 \end_layout
3130 \begin_layout Itemize
3131 x: The x-position of tile to get.
3132 \end_layout
3134 \begin_layout Itemize
3135 y: The y-position of tile to get.
3136 \end_layout
3138 \begin_layout Subsubsection
3139 TILEMAP:getsize()
3140 \end_layout
3142 \begin_layout Standard
3143 Return size of tilemap in tiles (width, height).
3144 \end_layout
3146 \begin_layout Subsubsection
3147 TILEMAP:getcsize()
3148 \end_layout
3150 \begin_layout Standard
3151 Return size of tilemap cells in pixels (width, height).
3152 \end_layout
3154 \begin_layout Subsubsection
3155 TILEMAP:scroll(number ox, number oy[, number x[, number y[, number w[, number
3156  h[, boolean circx[, boolean circy]]]]]])
3157 \end_layout
3159 \begin_layout Standard
3160 Scrolls tilemap tiles.
3161  Parameters:
3162 \end_layout
3164 \begin_layout Itemize
3165 ox: Number of tiles to scroll in x-direction.
3166 \end_layout
3168 \begin_layout Itemize
3169 oy: Number of tiles to scroll in y-direction.
3170 \end_layout
3172 \begin_layout Itemize
3173 x: Left edge of scroll window.
3174  Default 0.
3175 \end_layout
3177 \begin_layout Itemize
3178 y: Upper edge of scroll window.
3179  Default 0.
3180 \end_layout
3182 \begin_layout Itemize
3183 w: Width of scroll window.
3184  Default: Width of tilemap.
3185 \end_layout
3187 \begin_layout Itemize
3188 h: Height of scroll window.
3189  Default: Height of tilemap.
3190 \end_layout
3192 \begin_layout Itemize
3193 circx: If true, do circular rotation instead of shift in x-direction.
3194 \end_layout
3196 \begin_layout Itemize
3197 circy: If true, do circular rotation instead of shift in y-direction.
3198 \end_layout
3200 \begin_layout Subsection
3201 table input
3202 \end_layout
3204 \begin_layout Standard
3205 Input handling.
3206  Only available in on_input callback.
3207 \end_layout
3209 \begin_layout Subsubsection
3210 input.get(number controller, number index)
3211 \end_layout
3213 \begin_layout Standard
3214 Read the specified index (0-11) from specified controller (0-7).
3215  Notes:
3216 \end_layout
3218 \begin_layout Itemize
3219 Uses physical controller numbering.
3220  Gamepad in port 2 is controller 4, not 1!
3221 \end_layout
3223 \begin_layout Subsubsection
3224 input.set(number controller, number index, number value)
3225 \end_layout
3227 \begin_layout Standard
3228 Write the specified index (0-11) from specified controller (0-7), storing
3229  value.
3230  Notes:
3231 \end_layout
3233 \begin_layout Itemize
3234 Uses physical controller numbering.
3235  Gamepad in port 2 is controller 4, not 1!
3236 \end_layout
3238 \begin_layout Subsubsection
3239 input.get2(number port, number controller, number index)
3240 \end_layout
3242 \begin_layout Standard
3243 Read the specified input tuple.
3244 \end_layout
3246 \begin_layout Itemize
3247 Port 0 is system port.
3248 \end_layout
3250 \begin_layout Subsubsection
3251 input.set2(number port, number controller, number index, number value)
3252 \end_layout
3254 \begin_layout Standard
3255 Write the specified input tuple.
3256 \end_layout
3258 \begin_layout Itemize
3259 Port 0 is system port.
3260 \end_layout
3262 \begin_layout Subsubsection
3263 input.lcid_to_pcid2(number lcid)
3264 \end_layout
3266 \begin_layout Standard
3267 Look up physical pcid pair (port, controller) corresponding to specified
3268  logical controller (1-based).
3269  Returns nothing if controller does not exist.
3270 \end_layout
3272 \begin_layout Subsubsection
3273 input.port_type(number port)
3274 \end_layout
3276 \begin_layout Standard
3277 Return type of specified port.
3278 \end_layout
3280 \begin_layout Subsubsection
3281 input.controller_info(number port, number controller)
3282 \end_layout
3284 \begin_layout Standard
3285 Get controller info for specified controller.
3286  If controller does not exist, returns nil.
3287  Otherwise returns a table with following fields:
3288 \end_layout
3290 \begin_layout Itemize
3291 type (string): Type of the controller.
3292 \end_layout
3294 \begin_layout Itemize
3295 class (string): Class of the controller.
3296 \end_layout
3298 \begin_layout Itemize
3299 classnum (number): Number of the controller within its class (1-based)
3300 \end_layout
3302 \begin_layout Itemize
3303 lcid (number): Logical controller number of the controller.
3304 \end_layout
3306 \begin_layout Itemize
3307 button_count (number): Number of buttons on controller
3308 \end_layout
3310 \begin_layout Itemize
3311 buttons (array): Array of following info about each button:
3312 \end_layout
3314 \begin_deeper
3315 \begin_layout Itemize
3316 type (string): Type of button.
3317  Currently one of 
3318 \begin_inset Quotes eld
3319 \end_inset
3321 null
3322 \begin_inset Quotes erd
3323 \end_inset
3326 \begin_inset Quotes eld
3327 \end_inset
3329 button
3330 \begin_inset Quotes erd
3331 \end_inset
3334 \begin_inset Quotes eld
3335 \end_inset
3337 axis
3338 \begin_inset Quotes erd
3339 \end_inset
3342 \begin_inset Quotes eld
3343 \end_inset
3345 raxis
3346 \begin_inset Quotes erd
3347 \end_inset
3350 \end_layout
3352 \begin_layout Itemize
3353 name (string): Name of button.
3354 \end_layout
3356 \begin_layout Itemize
3357 symbol (string): Symbol of button.
3358  Only present for type 
3359 \begin_inset Quotes eld
3360 \end_inset
3362 button
3363 \begin_inset Quotes erd
3364 \end_inset
3367 \end_layout
3369 \begin_layout Itemize
3370 hidden (boolean): True if hidden button.
3372 \end_layout
3374 \end_deeper
3375 \begin_layout Subsubsection
3376 input.veto_button()
3377 \end_layout
3379 \begin_layout Standard
3380 Signals that the button event should be vetoed.
3381  Only valid in on_button callback.
3382 \end_layout
3384 \begin_layout Subsubsection
3385 input.geta(number controller)
3386 \end_layout
3388 \begin_layout Standard
3389 Get input state for entiere controller.
3390  Returns 13 return values.
3391 \end_layout
3393 \begin_layout Itemize
3394 1st return value: Bitmask: bit i is set if i:th index is nonzero
3395 \end_layout
3397 \begin_layout Itemize
3398 2nd-13th return value: value of i:th index.
3399 \end_layout
3401 \begin_layout Subsubsection
3402 input.seta(number controller, number bitmask, number args...)
3403 \end_layout
3405 \begin_layout Standard
3406 Set state for entiere controller.
3407  args is up to 12 values for indices (overriding values in bitmask if specified).
3408 \end_layout
3410 \begin_layout Subsubsection
3411 input.controllertype(number controller)
3412 \end_layout
3414 \begin_layout Standard
3415 Get the type of controller as string.
3416  Valid values are:
3417 \end_layout
3419 \begin_layout Itemize
3420 gamepad
3421 \end_layout
3423 \begin_layout Itemize
3424 mouse
3425 \end_layout
3427 \begin_layout Itemize
3428 justifier
3429 \end_layout
3431 \begin_layout Itemize
3432 superscope
3433 \end_layout
3435 \begin_layout Subsubsection
3436 input.reset([number cycles])
3437 \end_layout
3439 \begin_layout Standard
3440 Execute reset.
3441  If cycles is greater than zero, do delayed reset.
3442  0 (or no value) causes immediate reset.
3443 \end_layout
3445 \begin_layout Itemize
3446 Only available with subframe flag false.
3447 \end_layout
3449 \begin_layout Subsubsection
3450 input.raw()
3451 \end_layout
3453 \begin_layout Standard
3454 Returns table of tables of all available keys and axes.
3455  The first table is indexed by key name (platform-dependent!), and the inner
3456  table has the following fields:
3457 \end_layout
3459 \begin_layout Itemize
3460 last_rawval: Last reported raw value for control.
3461 \end_layout
3463 \begin_layout Itemize
3464 ktype: Type of key (disabled, key, mouse, axis, axis-inverse, hat, pressure-m0,
3465  pressure-mp, pressure-0m, pressure-0p, pressure-pm, pressure-p0).
3466 \end_layout
3468 \begin_layout Itemize
3469 cal_left: Minimum calibration value.
3470  Only meaningful with axis and pressure types.
3471 \end_layout
3473 \begin_layout Itemize
3474 cal_center: Center calibration value.
3475  Only meaningful with axis and pressure types.
3476 \end_layout
3478 \begin_layout Itemize
3479 cal_right: Maximum calibration value.
3480  Only meaningful with axis and pressure types.
3481 \end_layout
3483 \begin_layout Itemize
3484 cal_tolerance: Dead zone tolerance.
3485  Only meaningful with axis and pressure types.
3486 \end_layout
3488 \begin_layout Subsubsection
3489 input.keyhook(string key, boolean state)
3490 \end_layout
3492 \begin_layout Standard
3493 Requests that keyhook events to be sent for key (state=true) or not sent
3494  (state=false).
3495 \end_layout
3497 \begin_layout Subsubsection
3498 input.joyget(number controller)
3499 \end_layout
3501 \begin_layout Standard
3502 Returns table for current controls for specified controller.
3503  The names of fields vary by controller type.
3504 \end_layout
3506 \begin_layout Itemize
3507 The buttons have the same name as those are referred to in other contexts
3508  in the emulator
3509 \end_layout
3511 \begin_layout Itemize
3512 The analog axes are 
3513 \begin_inset Quotes eld
3514 \end_inset
3516 xaxis
3517 \begin_inset Quotes erd
3518 \end_inset
3520  and 
3521 \begin_inset Quotes eld
3522 \end_inset
3524 yaxis
3525 \begin_inset Quotes erd
3526 \end_inset
3529 \end_layout
3531 \begin_layout Subsubsection
3532 input.joyset(number controller, table controls)
3533 \end_layout
3535 \begin_layout Standard
3536 Set the the state of specified controller to values specified in specified
3537  table.
3538 \end_layout
3540 \begin_layout Itemize
3541 nil does not change value
3542 \end_layout
3544 \begin_layout Itemize
3545 true/false (buttons) and integers (axes) force value.
3546 \end_layout
3548 \begin_layout Itemize
3549 string (button) inverts the input.
3550 \end_layout
3552 \begin_layout Subsubsection
3553 input.lcid_to_pcid(number controller)
3554 \end_layout
3556 \begin_layout Standard
3557 Return the physical index, physical port and controller number in port for
3558  specified (1-based) logical controller.
3559 \end_layout
3561 \begin_layout Subsection
3562 Table subtitle
3563 \end_layout
3565 \begin_layout Standard
3566 Subtitle handling
3567 \end_layout
3569 \begin_layout Subsubsection
3570 subtitle.byindex(number i)
3571 \end_layout
3573 \begin_layout Standard
3574 Read the frame and length of ith subtitle.
3575  Returns nothing if not present.
3576 \end_layout
3578 \begin_layout Subsubsection
3579 subtitle.set(number f, number l, string txt)
3580 \end_layout
3582 \begin_layout Standard
3583 Set the text of subtitle.
3584 \end_layout
3586 \begin_layout Subsubsection
3587 subtitle.get(number f, number l)
3588 \end_layout
3590 \begin_layout Standard
3591 Get the text of subtitle.
3592 \end_layout
3594 \begin_layout Subsubsection
3595 subtitle.delete(number f, number l)
3596 \end_layout
3598 \begin_layout Standard
3599 Delete specified subtitle.
3600 \end_layout
3602 \begin_layout Subsection
3603 Table hostmemory
3604 \end_layout
3606 \begin_layout Standard
3607 Host memory handling (extra memory saved to savestates).
3608  Host memory starts empty.
3609 \end_layout
3611 \begin_layout Subsubsection
3612 hostmemory.read(number address)
3613 \end_layout
3615 \begin_layout Standard
3616 Reads hostmemory slot address.
3617  Slot numbers out of range return false instead of numeric.
3618 \end_layout
3620 \begin_layout Subsubsection
3621 hostmemory.write(number address, number value)
3622 \end_layout
3624 \begin_layout Standard
3625 Writes hostmemory slot with 0-255.
3626  Slot numbers out of range cause extension of host memory slot space.
3627 \end_layout
3629 \begin_layout Subsubsection
3630 hostmemory.readbyte(number address)
3631 \end_layout
3633 \begin_layout Standard
3634 Read unsigned byte (1 element) from given address.
3635  Slots out of range return false.
3636 \end_layout
3638 \begin_layout Subsubsection
3639 hostmemory.writebyte(number address, number value)
3640 \end_layout
3642 \begin_layout Standard
3643 Write unsigned byte (1 element) to given slot.
3644  Slot numbers out of range cause extension.
3645 \end_layout
3647 \begin_layout Subsubsection
3648 hostmemory.readsbyte(number address)
3649 \end_layout
3651 \begin_layout Standard
3652 Read signed byte (1 element) from given address.
3653  Slots out of range return false.
3654 \end_layout
3656 \begin_layout Subsubsection
3657 hostmemory.writesbyte(number address, number value)
3658 \end_layout
3660 \begin_layout Standard
3661 Write signed byte (1 element) to given slot.
3662  Slot numbers out of range cause extension.
3663 \end_layout
3665 \begin_layout Subsubsection
3666 hostmemory.readword(number address)
3667 \end_layout
3669 \begin_layout Standard
3670 Read unsigned word (2 elements) from given address.
3671  Slots out of range return false.
3672 \end_layout
3674 \begin_layout Subsubsection
3675 hostmemory.writeword(number address, number value)
3676 \end_layout
3678 \begin_layout Standard
3679 Write unsigned word (2 elements) to given slot.
3680  Slot numbers out of range cause extension.
3681 \end_layout
3683 \begin_layout Subsubsection
3684 hostmemory.readsword(number address)
3685 \end_layout
3687 \begin_layout Standard
3688 Read signed word (2 elements) from given address.
3689  Slots out of range return false.
3690 \end_layout
3692 \begin_layout Subsubsection
3693 hostmemory.writesword(number address, number value)
3694 \end_layout
3696 \begin_layout Standard
3697 Write signed word (2 elements) to given slot.
3698  Slot numbers out of range cause extension.
3699 \end_layout
3701 \begin_layout Subsubsection
3702 hostmemory.readdword(number address)
3703 \end_layout
3705 \begin_layout Standard
3706 Read unsigned doubleword (4 elements) from given address.
3707  Slots out of range return false.
3708 \end_layout
3710 \begin_layout Subsubsection
3711 hostmemory.writedword(number address, number value)
3712 \end_layout
3714 \begin_layout Standard
3715 Write unsigned doubleword (4 elements) to given slot.
3716  Slot numbers out of range cause extension.
3717 \end_layout
3719 \begin_layout Subsubsection
3720 hostmemory.readsdword(number address)
3721 \end_layout
3723 \begin_layout Standard
3724 Read signed doubleword (4 elements) from given address.
3725  Slots out of range return false.
3726 \end_layout
3728 \begin_layout Subsubsection
3729 hostmemory.writesdword(number address, number value)
3730 \end_layout
3732 \begin_layout Standard
3733 Write signed doubleword (4 elements) to given slot.
3734  Slot numbers out of range cause extension.
3735 \end_layout
3737 \begin_layout Subsubsection
3738 hostmemory.readqword(number address)
3739 \end_layout
3741 \begin_layout Standard
3742 Read unsigned quadword (8 elements) from given address.
3743  Slots out of range return false.
3744 \end_layout
3746 \begin_layout Subsubsection
3747 hostmemory.writeqword(number address, number value)
3748 \end_layout
3750 \begin_layout Standard
3751 Write unsigned quadword (4 elements) to given slot.
3752  Slot numbers out of range cause extension.
3753 \end_layout
3755 \begin_layout Subsubsection
3756 hostmemory.readsqword(number address)
3757 \end_layout
3759 \begin_layout Standard
3760 Read signed quadword (8 elements) from given address.
3761  Slots out of range return false.
3762 \end_layout
3764 \begin_layout Subsubsection
3765 hostmemory.writesqword(number address, number value)
3766 \end_layout
3768 \begin_layout Standard
3769 Write signed quadword (8 elements) to given slot.
3770  Slot numbers out of range cause extension.
3771 \end_layout
3773 \begin_layout Subsection
3774 Table movie
3775 \end_layout
3777 \begin_layout Standard
3778 Movie handling
3779 \end_layout
3781 \begin_layout Subsubsection
3782 movie.currentframe()
3783 \end_layout
3785 \begin_layout Standard
3786 Return number of current frame.
3787 \end_layout
3789 \begin_layout Subsubsection
3790 movie.framecount()
3791 \end_layout
3793 \begin_layout Standard
3794 Return number of frames in movie.
3795 \end_layout
3797 \begin_layout Subsubsection
3798 movie.readonly()
3799 \end_layout
3801 \begin_layout Standard
3802 Return true if in readonly mode, false if in readwrite.
3803 \end_layout
3805 \begin_layout Subsubsection
3806 movie.rerecords()
3807 \end_layout
3809 \begin_layout Standard
3810 Returns the current value of rerecord count.
3811 \end_layout
3813 \begin_layout Subsubsection
3814 movie.set_readwrite()
3815 \end_layout
3817 \begin_layout Standard
3818 Set readwrite mode (does not cause on_readwrite callback).
3819 \end_layout
3821 \begin_layout Subsubsection
3822 movie.frame_subframes(number frame)
3823 \end_layout
3825 \begin_layout Standard
3826 Count number of subframes in specified frame (frame numbers are 1-based)
3827  and return that.
3828 \end_layout
3830 \begin_layout Subsubsection
3831 movie.read_subframes(number frame, number subframe)
3832 \end_layout
3834 \begin_layout Standard
3835 Read specifed subframe in specified frame and return data as array (100
3836  elements, numbered 0-99 currently).
3837 \end_layout
3839 \begin_layout Subsubsection
3840 movie.read_rtc()
3841 \end_layout
3843 \begin_layout Standard
3844 Returns the current value of the RTC as a pair (second, subsecond).
3845 \end_layout
3847 \begin_layout Subsubsection
3848 movie.unsafe_rewind([UNSAFEREWIND state])
3849 \end_layout
3851 \begin_layout Standard
3852 Start setting point for unsafe rewind or jump to point of unsafe rewind.
3853 \end_layout
3855 \begin_layout Itemize
3856 If called without argument, causes emulator to start process of setting
3857  unsafe rewind point.
3858  When this has finished, callback on_set_rewind occurs, passing the rewind
3859  state to lua script.
3860 \end_layout
3862 \begin_layout Itemize
3863 If called with argument, causes emulator rewind to passed rewind point as
3864  soon as possible.
3865  Readwrite mode is implicitly activated.
3866 \end_layout
3868 \begin_layout Standard
3869 The following warnings apply to unsafe rewinding:
3870 \end_layout
3872 \begin_layout Itemize
3873 There are no safety checks against misuse (that's what 
3874 \begin_inset Quotes eld
3875 \end_inset
3877 unsafe
3878 \begin_inset Quotes erd
3879 \end_inset
3881  comes from)!
3882 \end_layout
3884 \begin_layout Itemize
3885 Only call rewind from timeline rewind point was set from.
3886 \end_layout
3888 \begin_layout Itemize
3889 Only call rewind from after the rewind point was set.
3890 \end_layout
3892 \begin_layout Subsubsection
3893 movie.copy_movie([INPUTMOVIE movie])
3894 \end_layout
3896 \begin_layout Standard
3897 Copies specified movie (if none or nil, the active movie) as new movie object
3898  (INPUTMOVIE).
3899 \end_layout
3901 \begin_layout Standard
3902 Also available as method in INPUTFRAME.
3903 \end_layout
3905 \begin_layout Subsubsection
3906 movie.get_frame([INPUTMOVIE movie,] number frame)
3907 \end_layout
3909 \begin_layout Standard
3910 Get INPUTFRAME object corresponding to specified frame in specified movie.
3911 \end_layout
3913 \begin_layout Standard
3914 Also available as method in INPUTFRAME.
3915 \end_layout
3917 \begin_layout Subsubsection
3918 movie.set_frame([INPUTMOVIE movie,] number frame, INPUTFRAME data)
3919 \end_layout
3921 \begin_layout Standard
3922 Set data in specified frame.
3923  Note: Past can't be edited in active movie.
3924 \end_layout
3926 \begin_layout Standard
3927 Also available as method in INPUTFRAME.
3928 \end_layout
3930 \begin_layout Subsubsection
3931 movie.get_size([INPUTMOVIE movie])
3932 \end_layout
3934 \begin_layout Standard
3935 Return number of subframes in specified movie.
3936 \end_layout
3938 \begin_layout Standard
3939 Also available as method in INPUTFRAME.
3940 \end_layout
3942 \begin_layout Subsubsection
3943 movie.count_frames([INPUTMOVIE movie])
3944 \end_layout
3946 \begin_layout Standard
3947 Return number of frames in movie.
3948 \end_layout
3950 \begin_layout Standard
3951 Also available as method in INPUTFRAME.
3952 \end_layout
3954 \begin_layout Subsubsection
3955 movie.find_frame([INPUTMOVIE movie], number frame)
3956 \end_layout
3958 \begin_layout Standard
3959 Returns starting subframe of given frame (frame numbers are 1-based).
3960  Returns -1 if frame number is bad.
3961 \end_layout
3963 \begin_layout Standard
3964 Also available as method in INPUTFRAME.
3965 \end_layout
3967 \begin_layout Subsubsection
3968 movie.blank_frame([INPUTMOVIE movie])
3969 \end_layout
3971 \begin_layout Standard
3972 Return blank INPUTFRAME with frame type from specified movie.
3973 \end_layout
3975 \begin_layout Standard
3976 Also available as method in INPUTFRAME.
3977 \end_layout
3979 \begin_layout Subsubsection
3980 movie.append_frames([INPUTMOVIE movie,] number frames)
3981 \end_layout
3983 \begin_layout Standard
3984 Append specified number of frames.
3985 \end_layout
3987 \begin_layout Standard
3988 Also available as method in INPUTFRAME.
3989 \end_layout
3991 \begin_layout Subsubsection
3992 movie.append_frame([INPUTMOVIE movie,] INPUTFRAME frame)
3993 \end_layout
3995 \begin_layout Standard
3996 Append specified frame.
3997  Past of current movie can't be edited.
3998 \end_layout
4000 \begin_layout Standard
4001 Also available as method in INPUTFRAME.
4002 \end_layout
4004 \begin_layout Subsubsection
4005 movie.truncate([INPUTMOVIE movie,] number frames)
4006 \end_layout
4008 \begin_layout Standard
4009 Truncate the specified movie to specified number of frames.
4010 \end_layout
4012 \begin_layout Standard
4013 Also available as method in INPUTFRAME.
4014 \end_layout
4016 \begin_layout Subsubsection
4017 movie.edit([INPUTMOVIE movie,] number frame, number port, number controller,
4018  number control, number/bool value)
4019 \end_layout
4021 \begin_layout Standard
4022 Change specified control in specified frame in specified movie.
4023  Past can't be edited in active movie.
4024 \end_layout
4026 \begin_layout Standard
4027 Also available as method in INPUTFRAME.
4028 \end_layout
4030 \begin_layout Subsubsection
4031 movie.copy_frames2([INPUTMOVIE dstmov,] number dst, [INPUTMOVIE srcmov,]
4032  number src, number count)
4033 \end_layout
4035 \begin_layout Standard
4036 Copy specified number of frames between two movies.
4037  The copy proceeeds in forward direction.
4038 \end_layout
4040 \begin_layout Subsubsection
4041 movie.copy_frames([INPUTMOVIE mov,] number dst, number src, number count,
4042  bool backwards)
4043 \end_layout
4045 \begin_layout Standard
4046 Copy specified number of frames from one point in movie to another.
4047  If backwards is true, the copy will be done backwards.
4048 \end_layout
4050 \begin_layout Standard
4051 Also available as method in INPUTFRAME.
4052 \end_layout
4054 \begin_layout Subsubsection
4055 movie.serialize([INPUTMOVIE movie,] string filename, bool binary)
4056 \end_layout
4058 \begin_layout Standard
4059 Serialize given movie into file.
4060  If binary is true, binary format (more compact and much faster) is used.
4061 \end_layout
4063 \begin_layout Standard
4064 Also available as method in INPUTFRAME.
4065 \end_layout
4067 \begin_layout Subsubsection
4068 movie.unserialize(INPUTFRAME template, string filename, bool binary)
4069 \end_layout
4071 \begin_layout Standard
4072 Unserialize movie from file.
4073  The given frame is used as template to decide the frame type.
4074  If binary is true, binary format is decoded (much faster).
4075 \end_layout
4077 \begin_layout Standard
4078 Also available as method in INPUTFRAME.
4079 \end_layout
4081 \begin_layout Subsubsection
4082 movie.current_first_subframe()
4083 \end_layout
4085 \begin_layout Standard
4086 Returns first subframe in current frame.
4087 \end_layout
4089 \begin_layout Subsubsection
4090 movie.pollcounter(number port, number controller, number control)
4091 \end_layout
4093 \begin_layout Standard
4094 Returns number of times the specified control has been polled this frame.
4095 \end_layout
4097 \begin_layout Subsubsection
4098 INPUTFRAME::get_button(number port, number controller, number control)
4099 \end_layout
4101 \begin_layout Standard
4102 Returns state of given button as boolean.
4103 \end_layout
4105 \begin_layout Subsubsection
4106 INPUTFRAME::get_axis(number port, number controller, number control)
4107 \end_layout
4109 \begin_layout Standard
4110 Returns state of given axis as number.
4111 \end_layout
4113 \begin_layout Subsubsection
4114 INPUTFRAME::set_button(number port, number controller, number control, number/bo
4115 ol value)
4116 \end_layout
4118 \begin_layout Standard
4119 Set the given button/axis to given value.
4120 \end_layout
4122 \begin_layout Subsubsection
4123 INPUTFRAME::set_axis(number port, number controller, number control)
4124 \end_layout
4126 \begin_layout Standard
4127 Same as set_button.
4128 \end_layout
4130 \begin_layout Subsubsection
4131 INPUTFRAME::serialize()
4132 \end_layout
4134 \begin_layout Standard
4135 Return string representation of frame.
4136 \end_layout
4138 \begin_layout Subsubsection
4139 INPUTFRAME::unserialize(string data)
4140 \end_layout
4142 \begin_layout Standard
4143 Set current frame from given data.
4144 \end_layout
4146 \begin_layout Subsubsection
4147 INPUTFRAME::get_stride()
4148 \end_layout
4150 \begin_layout Standard
4151 Return number of bytes needed to store the input frame.
4152  Mainly useful for some debugging.
4153 \end_layout
4155 \begin_layout Subsection
4156 Table settings
4157 \end_layout
4159 \begin_layout Standard
4160 Routines for settings manipulation
4161 \end_layout
4163 \begin_layout Subsubsection
4164 settings.get(string name)
4165 \end_layout
4167 \begin_layout Standard
4168 Get value of setting.
4169  If setting is blank, returns false.
4170  If setting value can't be obtained, returns (nil, error message).
4171 \end_layout
4173 \begin_layout Subsubsection
4174 settings.set(string name, string value)
4175 \end_layout
4177 \begin_layout Standard
4178 Set value of setting.
4179  If setting can't be set, returns (nil, error message).
4180 \end_layout
4182 \begin_layout Subsubsection
4183 settings.is_set(string name)
4184 \end_layout
4186 \begin_layout Standard
4187 Returns if setting is set.
4188  If setting does not exist, returns (nil, error message).
4189 \end_layout
4191 \begin_layout Subsubsection
4192 settings.blank(string name)
4193 \end_layout
4195 \begin_layout Standard
4196 Blanks a setting and returns true.
4197  If setting can't be blanked, returns (nil, error message).
4198 \end_layout
4200 \begin_layout Subsection
4201 Table memory
4202 \end_layout
4204 \begin_layout Standard
4205 Contains various functions for managing memory
4206 \end_layout
4208 \begin_layout Subsubsection
4209 memory.vma_count()
4210 \end_layout
4212 \begin_layout Standard
4213 Returns the number of VMAs
4214 \end_layout
4216 \begin_layout Subsubsection
4217 memory.read_vma(number index)
4218 \end_layout
4220 \begin_layout Standard
4221 Reads the specified VMA (indices start from zero).
4222  Trying to read invalid VMA gives nil.
4223  The read VMA is table with the following fields:
4224 \end_layout
4226 \begin_layout Itemize
4227 region_name (string): The readable name of the VMA
4228 \end_layout
4230 \begin_layout Itemize
4231 baseaddr (number): Base address of the VMA
4232 \end_layout
4234 \begin_layout Itemize
4235 lastaddr (number): Last address in the VMA.
4236 \end_layout
4238 \begin_layout Itemize
4239 size (number): The size of VMA in bytes.
4240 \end_layout
4242 \begin_layout Itemize
4243 readonly (boolean): True of the VMA corresponds to ROM.
4244 \end_layout
4246 \begin_layout Itemize
4247 iospace (boolean): True if the VMA is I/O space.
4248 \end_layout
4250 \begin_layout Itemize
4251 native_endian (boolean): True if the VMA has native endian as opposed to
4252  little endian.
4253 \end_layout
4255 \begin_layout Subsubsection
4256 memory.find_vma(number address)
4257 \end_layout
4259 \begin_layout Standard
4260 Finds the VMA containing specified address.
4261  Returns table in the same format as read_vma or nil if not found.
4262 \end_layout
4264 \begin_layout Subsubsection
4265 memory.readbyte(number address)
4266 \end_layout
4268 \begin_layout Standard
4269 Reads the specified address as unsigned byte and returns the result.
4270 \end_layout
4272 \begin_layout Subsubsection
4273 memory.readsbyte(number address)
4274 \end_layout
4276 \begin_layout Standard
4277 Reads the specified address as signed byte and returns the result.
4278 \end_layout
4280 \begin_layout Subsubsection
4281 memory.writebyte(number address, number value)
4282 \end_layout
4284 \begin_layout Standard
4285 Writes the specified value (negative values undergo 2's complement) to specified
4286  address (as a byte).
4287 \end_layout
4289 \begin_layout Subsubsection
4290 memory.readword(number address)
4291 \end_layout
4293 \begin_layout Standard
4294 Reads the specified address as unsigned word and returns the result.
4295 \end_layout
4297 \begin_layout Subsubsection
4298 memory.readsword(number address)
4299 \end_layout
4301 \begin_layout Standard
4302 Reads the specified address as signed word and returns the result.
4303 \end_layout
4305 \begin_layout Subsubsection
4306 memory.writeword(number address, number value)
4307 \end_layout
4309 \begin_layout Standard
4310 Writes the specified value (negative values undergo 2's complement) to specified
4311  address (as a word).
4312 \end_layout
4314 \begin_layout Subsubsection
4315 memory.readdword(number address)
4316 \end_layout
4318 \begin_layout Standard
4319 Reads the specified address as unsigned doubleword and returns the result.
4320 \end_layout
4322 \begin_layout Subsubsection
4323 memory.readsdword(number address)
4324 \end_layout
4326 \begin_layout Standard
4327 Reads the specified address as signed doubleword and returns the result.
4328 \end_layout
4330 \begin_layout Subsubsection
4331 memory.writedword(number address, number value)
4332 \end_layout
4334 \begin_layout Standard
4335 Writes the specified value (negative values undergo 2's complement) to specified
4336  address (as a doubleword).
4337 \end_layout
4339 \begin_layout Subsubsection
4340 memory.readqword(number address)
4341 \end_layout
4343 \begin_layout Standard
4344 Reads the specified address as unsigned quadword and returns the result.
4345 \end_layout
4347 \begin_layout Subsubsection
4348 memory.readsqword(number address)
4349 \end_layout
4351 \begin_layout Standard
4352 Reads the specified address as signed quadword and returns the result.
4353 \end_layout
4355 \begin_layout Subsubsection
4356 memory.writeqword(number address, number value)
4357 \end_layout
4359 \begin_layout Standard
4360 Writes the specified value (negative values undergo 2's complement) to specified
4361  address (as a quadword).
4362 \end_layout
4364 \begin_layout Subsubsection
4365 memory.hash_region(number base, number size)
4366 \end_layout
4368 \begin_layout Standard
4369 Hash specified number of bytes starting from specified address and return
4370  the SHA-256.
4371 \end_layout
4373 \begin_layout Subsubsection
4374 memory.hash_state()
4375 \end_layout
4377 \begin_layout Standard
4378 Hash the current system state.
4379  Mainly useful for debugging savestates.
4380 \end_layout
4382 \begin_layout Subsubsection
4383 memory.readregion(number base, number size)
4384 \end_layout
4386 \begin_layout Standard
4387 Read a region of memory.
4388 \end_layout
4390 \begin_layout Itemize
4391 Warning: If the region crosses VMA boundary, the results are undefined.
4392 \end_layout
4394 \begin_layout Subsubsection
4395 memory.map<type>([number base, number size])
4396 \end_layout
4398 \begin_layout Standard
4399 Returns a table mapping specified memory aperture for read/write.
4400  If parameters are omitted, entiere map space is the aperture.
4401 \end_layout
4403 \begin_layout Itemize
4404 Type may be one of: byte, sbyte, word, sword, dword, sdword, qword or sqword.
4405 \end_layout
4407 \begin_layout Subsubsection
4408 memory.writeregion(number base, number size, table data)
4409 \end_layout
4411 \begin_layout Standard
4412 Write a region of memory.
4413 \end_layout
4415 \begin_layout Itemize
4416 Warning: If the region crosses VMA boundary, the results are undefined.
4417 \end_layout
4419 \begin_layout Subsubsection
4420 memory.map_structure()
4421 \end_layout
4423 \begin_layout Standard
4424 Returns a new mapping structure (MMAP_STRUCT)
4425 \end_layout
4427 \begin_layout Subsubsection
4428 MMAP_STRUCT(string key, number address, string type)
4429 \end_layout
4431 \begin_layout Standard
4432 Bind key in mmap structure to specified address with specified type.
4433 \end_layout
4435 \begin_layout Itemize
4436 Type may be one of: byte, sbyte, word, sword, dword, sdword, qword or sqword.
4437 \end_layout
4439 \begin_layout Subsubsection
4440 memory.read_expr(string expr)
4441 \end_layout
4443 \begin_layout Standard
4444 Evaluate specified watch expression and return result
4445 \end_layout
4447 \begin_layout Subsection
4448 Table subtitle
4449 \end_layout
4451 \begin_layout Standard
4452 Contains functions for manipulating subtitles.
4453 \end_layout
4455 \begin_layout Subsubsection
4456 subtitle.byindex(number index)
4457 \end_layout
4459 \begin_layout Standard
4460 Get (basetime, length) pair of specified subtitle index or nothing if index
4461  isn't valid.
4462 \end_layout
4464 \begin_layout Subsubsection
4465 subtitle.get(number basetime, number length)
4466 \end_layout
4468 \begin_layout Standard
4469 Read the specified subtitle.
4470  Returns 
4471 \begin_inset Quotes eld
4472 \end_inset
4475 \begin_inset Quotes erd
4476 \end_inset
4478  if the subtitle does not exist.
4479 \end_layout
4481 \begin_layout Subsubsection
4482 subtitle.set(number basetime, number length, string content)
4483 \end_layout
4485 \begin_layout Standard
4486 Set the specified subtitle.
4487 \end_layout
4489 \begin_layout Subsubsection
4490 subtitle.deltete(number basetime, number length)
4491 \end_layout
4493 \begin_layout Standard
4494 Delete the specified subtitle.
4495 \end_layout
4497 \begin_layout Subsection
4498 Table _SYSTEM
4499 \end_layout
4501 \begin_layout Standard
4502 Contains copy of global variables from time of Lua initialization.
4503  Non-writeable.
4504 \end_layout
4506 \begin_layout Subsection
4507 Callbacks
4508 \end_layout
4510 \begin_layout Standard
4511 Various callbacks to Lua that can occur.
4512 \end_layout
4514 \begin_layout Subsubsection
4515 Callback: on_paint(bool not_synth)
4516 \end_layout
4518 \begin_layout Standard
4519 Called when screen is being painted.
4520  Any gui.* calls requiring graphic context draw on the screen.
4521 \end_layout
4523 \begin_layout Standard
4524 not_synth is true if this hook is being called in response to received frame,
4525  false otherwise.
4526 \end_layout
4528 \begin_layout Subsubsection
4529 Callback: on_video()
4530 \end_layout
4532 \begin_layout Standard
4533 Called when video dump frame is being painted.
4534  Any gui.* calls requiring graphic context draw on the video.
4535 \end_layout
4537 \begin_layout Subsubsection
4538 Callback: on_frame_emulated()
4539 \end_layout
4541 \begin_layout Standard
4542 Called when emulating frame has completed and on_paint()/on_video() calls
4543  are about to be issued.
4544 \end_layout
4546 \begin_layout Subsubsection
4547 Callback: on_frame()
4548 \end_layout
4550 \begin_layout Standard
4551 Called on each starting whole frame.
4552 \end_layout
4554 \begin_layout Subsubsection
4555 Callback: on_startup()
4556 \end_layout
4558 \begin_layout Standard
4559 Called when the emulator is starting (lsnes.rc and --run files has been run).
4560 \end_layout
4562 \begin_layout Subsubsection
4563 Callback: on_rewind()
4564 \end_layout
4566 \begin_layout Standard
4567 Called when rewind movie to beginning has completed.
4568 \end_layout
4570 \begin_layout Subsubsection
4571 Callback: on_pre_load(string name)
4572 \end_layout
4574 \begin_layout Standard
4575 Called just before savestate/movie load occurs (note: loads are always delayed,
4576  so this occurs even when load was initiated by lua).
4577 \end_layout
4579 \begin_layout Subsubsection
4580 Callback: on_err_load(string name)
4581 \end_layout
4583 \begin_layout Standard
4584 Called if loadstate goes wrong.
4585 \end_layout
4587 \begin_layout Subsubsection
4588 Callback: on_post_load(string name, boolean was_savestate)
4589 \end_layout
4591 \begin_layout Standard
4592 Called on successful loadstate.
4593  was_savestate gives if this was a savestate or a movie.
4594 \end_layout
4596 \begin_layout Subsubsection
4597 Callback: on_pre_save(string name, boolean is_savestate)
4598 \end_layout
4600 \begin_layout Standard
4601 Called just before savestate save occurs (note: movie saves are synchronous
4602  and won't trigger these callbacks if called from Lua).
4603 \end_layout
4605 \begin_layout Subsubsection
4606 Callback: on_err_save(string name)
4607 \end_layout
4609 \begin_layout Standard
4610 Called if savestate goes wrong.
4611 \end_layout
4613 \begin_layout Subsubsection
4614 Callback: on_post_save(string name, boolean is_savestate)
4615 \end_layout
4617 \begin_layout Standard
4618 Called on successful savaestate.
4619  is_savestate gives if this was a savestate or a movie.
4620 \end_layout
4622 \begin_layout Subsubsection
4623 Callback: on_quit()
4624 \end_layout
4626 \begin_layout Standard
4627 Called when emulator is shutting down.
4628 \end_layout
4630 \begin_layout Subsubsection
4631 Callback: on_input(boolean subframe)
4632 \end_layout
4634 \begin_layout Standard
4635 Called when emulator is just sending input to bsnes core.
4636  Warning: This is called even in readonly mode, but the results are ignored.
4637 \end_layout
4639 \begin_layout Subsubsection
4640 Callback: on_reset()
4641 \end_layout
4643 \begin_layout Standard
4644 Called when SNES is reset.
4645 \end_layout
4647 \begin_layout Subsubsection
4648 Callback: on_readwrite()
4649 \end_layout
4651 \begin_layout Standard
4652 Called when moving into readwrite mode as result of 
4653 \begin_inset Quotes eld
4654 \end_inset
4656 set-rwmode
4657 \begin_inset Quotes erd
4658 \end_inset
4660  command (note: moving to rwmode by Lua won't trigger this, as per recursive
4661  entry protection).
4662 \end_layout
4664 \begin_layout Subsubsection
4665 Callback: on_snoop(number port, number controller, number index, number
4666  value)
4667 \end_layout
4669 \begin_layout Standard
4670 Called each time bsnes asks for input.
4671  The value is the final value to be sent to bsnes core (readonly mode, autohold
4672  and autofire have been taken into account).
4673  Might be useful when translating movies to format suitable for console
4674  verification.
4675  Note: There is no way to modify the value to be sent.
4676 \end_layout
4678 \begin_layout Itemize
4679 Not called if callback on_snoop2 is defined.
4680 \end_layout
4682 \begin_layout Subsubsection
4683 Callback: on_snoop2(number port, number controller, number index, number
4684  value)
4685 \end_layout
4687 \begin_layout Standard
4688 Like on_snoop, but reserves port 0 for system, having first user port be
4689  port 1.
4690 \end_layout
4692 \begin_layout Subsubsection
4693 Callback: on_keyhook(string keyname, table state)
4694 \end_layout
4696 \begin_layout Standard
4697 Sent when key that has keyhook events requested changes state.
4698  Keyname is name of the key (group) and state is the state (same kind as
4699  table values in input.raw).
4700 \end_layout
4702 \begin_layout Subsubsection
4703 Callback: on_idle()
4704 \end_layout
4706 \begin_layout Standard
4707 Called when requested by set_idle_timeout(), the timeout has expired and
4708  emulator is waiting.
4709 \end_layout
4711 \begin_layout Subsubsection
4712 Callback: on_timer()
4713 \end_layout
4715 \begin_layout Standard
4716 Called when requested by set_idle_timeout() and the timeout has expired
4717  (regardless if emulator is waiting).
4718 \end_layout
4720 \begin_layout Subsubsection
4721 Callback: on_set_rewind(UNSAFEREWIND r)
4722 \end_layout
4724 \begin_layout Standard
4725 Called when unsafe rewind object has been constructed.
4726 \end_layout
4728 \begin_layout Subsubsection
4729 Callback: on_pre_rewind() 
4730 \end_layout
4732 \begin_layout Standard
4733 Called just before unsafe rewind is about to occur.
4734 \end_layout
4736 \begin_layout Subsubsection
4737 Callback: on_post_rewind() 
4738 \end_layout
4740 \begin_layout Standard
4741 Called just after unsafe rewind has occured.
4742 \end_layout
4744 \begin_layout Subsubsection
4745 Callback: on_button(number port, number controller, number index, string
4746  type)
4747 \end_layout
4749 \begin_layout Standard
4750 Called on controller button press, with following parameters:
4751 \end_layout
4753 \begin_layout Itemize
4754 port: Port number (0 is system)
4755 \end_layout
4757 \begin_layout Itemize
4758 controller: Controller within port
4759 \end_layout
4761 \begin_layout Itemize
4762 index: Index of button.
4763 \end_layout
4765 \begin_layout Itemize
4766 type: Type of event, one of:
4767 \end_layout
4769 \begin_deeper
4770 \begin_layout Itemize
4771 \begin_inset Quotes eld
4772 \end_inset
4774 pressed
4775 \begin_inset Quotes erd
4776 \end_inset
4778 : Button was pressed.
4779 \end_layout
4781 \begin_layout Itemize
4782 \begin_inset Quotes eld
4783 \end_inset
4785 released
4786 \begin_inset Quotes erd
4787 \end_inset
4789 : Button was released.
4790 \end_layout
4792 \begin_layout Itemize
4793 \begin_inset Quotes eld
4794 \end_inset
4796 hold
4797 \begin_inset Quotes erd
4798 \end_inset
4800 : Held.
4801 \end_layout
4803 \begin_layout Itemize
4804 \begin_inset Quotes eld
4805 \end_inset
4807 unhold
4808 \begin_inset Quotes erd
4809 \end_inset
4811 : Released from hold.
4812 \end_layout
4814 \begin_layout Itemize
4815 \begin_inset Quotes eld
4816 \end_inset
4818 type
4819 \begin_inset Quotes erd
4820 \end_inset
4822 : Typing input on button.
4823 \end_layout
4825 \begin_layout Itemize
4826 \begin_inset Quotes eld
4827 \end_inset
4829 untype
4830 \begin_inset Quotes erd
4831 \end_inset
4833 : Typing input undone.
4834 \end_layout
4836 \begin_layout Itemize
4837 \begin_inset Quotes eld
4838 \end_inset
4840 analog
4841 \begin_inset Quotes erd
4842 \end_inset
4844 : Analog action on axis.
4845 \end_layout
4847 \end_deeper
4848 \begin_layout Subsubsection
4849 Callback: on_movie_lost(STRING kind)
4850 \end_layout
4852 \begin_layout Standard
4853 Called just before something would happen that could lose movie data.
4854  Kind can be:
4855 \end_layout
4857 \begin_layout Itemize
4858 readwrite: Switching to readwrite mode.
4859 \end_layout
4861 \begin_layout Itemize
4862 reload: ROM is being reloaded in readwrite mode.
4863 \end_layout
4865 \begin_layout Itemize
4866 load: New movie is being loaded.
4867 \end_layout
4869 \begin_layout Itemize
4870 unsaferewind: Unsafe rewind is happening.
4871 \end_layout
4873 \begin_layout Section
4874 Movie editor
4875 \end_layout
4877 \begin_layout Itemize
4878 The editor edits in-memory movie.
4879 \end_layout
4881 \begin_layout Itemize
4882 Because past can't be edited and readwrite mode doesn't allow future, editing
4883  only works in 
4884 \emph on
4885 read only
4886 \emph default
4887  mode.
4888 \end_layout
4890 \begin_layout Itemize
4891 Keyboard triggers the normal hotkeys and bindings.
4892 \end_layout
4894 \begin_layout Subsection
4895 Left button actions
4896 \end_layout
4898 \begin_layout Itemize
4899 Clicking on cell in future (indicated by lack of redish background) toggles
4900  it (if it is a button) or prompts for a value (if it is an axis)
4901 \end_layout
4903 \begin_layout Itemize
4904 Dragging vertically toggles sequence of buttons or changes a sequence of
4905  axis values.
4906 \end_layout
4908 \begin_layout Subsection
4909 Right button actions
4910 \end_layout
4912 \begin_layout Standard
4913 The right mouse button pops up a context-sensitive menu:
4914 \end_layout
4916 \begin_layout Itemize
4917 Toggle <something>: Toggle this button
4918 \end_layout
4920 \begin_layout Itemize
4921 Change <something>: Change this axis value
4922 \end_layout
4924 \begin_layout Itemize
4925 Insert frame after: Insert a frame after this frame
4926 \end_layout
4928 \begin_layout Itemize
4929 Append frame: Append a frame to movie
4930 \end_layout
4932 \begin_layout Itemize
4933 Append frames: Append specified number of frames to movie
4934 \end_layout
4936 \begin_layout Itemize
4937 Delete frame: Delete this frame
4938 \end_layout
4940 \begin_layout Itemize
4941 Delete subframe: Delete this subframe
4942 \end_layout
4944 \begin_layout Itemize
4945 Truncate movie: Delete this subframe and everything after it.
4946 \end_layout
4948 \begin_layout Itemize
4949 Scroll to frame: Prompt for a frame and scroll the display to that frame.
4950 \end_layout
4952 \begin_layout Itemize
4953 Scroll to current frame: Scroll the display to current position
4954 \end_layout
4956 \begin_layout Itemize
4957 Run to frame: Prompts for frame and runs the emulation to that frame.
4958 \end_layout
4960 \begin_layout Itemize
4961 Change number of lines visible: Change the height of the movie display (1
4962  to 255).
4963 \end_layout
4965 \begin_layout Itemize
4966 Lock scroll to playback: While playing back or rewinding movies, the display
4967  will follow if enabled.
4968 \end_layout
4970 \begin_layout Section
4971 Memory watch expression syntax
4972 \end_layout
4974 \begin_layout Standard
4975 Memory watch expressions are in RPN (Reverse Polish Notation).
4976  At the end of expression, the top entry on stack is taken as the final
4977  result.
4978 \end_layout
4980 \begin_layout Standard
4981 Notations:
4982 \end_layout
4984 \begin_layout Itemize
4985 Evaluation order is strictly left to right.
4986 \end_layout
4988 \begin_layout Itemize
4989 a is the entry on top of stack
4990 \end_layout
4992 \begin_layout Itemize
4993 b is the entry immediately below top of stack
4994 \end_layout
4996 \begin_layout Itemize
4997 ; separates values to be pushed (no intermediate pop).
4998 \end_layout
5000 \begin_layout Itemize
5001 After end of element, all used stack slots are popped and all results are
5002  pushed.
5003 \end_layout
5005 \begin_layout Itemize
5006 When pushing multiple values, the pushes occur in order shown.
5007 \end_layout
5009 \begin_layout Standard
5010 The following operators are available:
5011 \end_layout
5013 \begin_layout Itemize
5014 + : a + b
5015 \end_layout
5017 \begin_layout Itemize
5018 - : a - b
5019 \end_layout
5021 \begin_layout Itemize
5022 * : a * b
5023 \end_layout
5025 \begin_layout Itemize
5026 / : a / b
5027 \end_layout
5029 \begin_layout Itemize
5030 % : a % b
5031 \end_layout
5033 \begin_layout Itemize
5034 a : atan(a)
5035 \end_layout
5037 \begin_layout Itemize
5038 b : read_signed_byte(a)
5039 \end_layout
5041 \begin_layout Itemize
5042 c : cos(a)
5043 \end_layout
5045 \begin_layout Itemize
5046 d : read_signed_dword(a)
5047 \end_layout
5049 \begin_layout Itemize
5050 i : quotent(a / b)
5051 \end_layout
5053 \begin_layout Itemize
5054 p :
5055 \begin_inset Formula $\pi$
5056 \end_inset
5059 \end_layout
5061 \begin_layout Itemize
5062 q : read_signed_qword(a)
5063 \end_layout
5065 \begin_layout Itemize
5066 r : sqrt(a)
5067 \end_layout
5069 \begin_layout Itemize
5070 s : sin(a)
5071 \end_layout
5073 \begin_layout Itemize
5074 t : tan(a)
5075 \end_layout
5077 \begin_layout Itemize
5078 u : a; a
5079 \end_layout
5081 \begin_layout Itemize
5082 w : read_signed_word(a)
5083 \end_layout
5085 \begin_layout Itemize
5086 A : atan2(a, b)
5087 \end_layout
5089 \begin_layout Itemize
5090 B : read_unsigned_byte(a)
5091 \end_layout
5093 \begin_layout Itemize
5094 C<number>z : Push number <number> to stack.
5095 \end_layout
5097 \begin_layout Itemize
5098 D : read_unsigned_dword(a)
5099 \end_layout
5101 \begin_layout Itemize
5102 C0x<number>z : Push number <number> (hexadecimal) to stack.
5103 \end_layout
5105 \begin_layout Itemize
5106 H<digit> : Set hexadecimal mode with specified number of digits (use A-G
5107  for 10-16 digits).
5108 \end_layout
5110 \begin_layout Itemize
5111 Q : read_unsigned_qword(a)
5112 \end_layout
5114 \begin_layout Itemize
5115 R<digit> : round a to <digit> digits.
5116 \end_layout
5118 \begin_layout Itemize
5119 W : read_unsigned_word(a)
5120 \end_layout
5122 \begin_layout Subsection
5123 Example:
5124 \end_layout
5126 \begin_layout Standard
5127 C0x007e0878zWC0x007e002czW-
5128 \end_layout
5130 \begin_layout Enumerate
5131 Push value 0x7e0878 on top of stack (C0x007e0878z).
5132 \end_layout
5134 \begin_layout Enumerate
5135 Pop the value on top of stack (0x7e0878), read word value at that address
5136  and push the result,call it x1 (W).
5137 \end_layout
5139 \begin_layout Enumerate
5140 Push value 0x7e002c on top of stack (C0x007e002cz).
5141 \end_layout
5143 \begin_layout Enumerate
5144 Pop the value on top of stack (0x7e002c), read word value at that address
5145  and push the result,call it x2 (W).
5146 \end_layout
5148 \begin_layout Enumerate
5149 Pop the two top numbers on stack, x1 and x2, substract x1 from x2 and push
5150  x2 - x1 (-).
5151 \end_layout
5153 \begin_layout Enumerate
5154 Since the expression ends, the final memory watch result is the top one
5155  on stack, which is x2 - x1.
5156 \end_layout
5158 \begin_layout Section
5159 Modifier and key names:
5160 \end_layout
5162 \begin_layout Subsection
5163 SDL Platform
5164 \end_layout
5166 \begin_layout Subsubsection
5167 Modifier names
5168 \end_layout
5170 \begin_layout Standard
5171 Following modifier names are known:
5172 \end_layout
5174 \begin_layout Itemize
5175 ctrl, lctrl, rctrl: Control keys
5176 \end_layout
5178 \begin_layout Itemize
5179 alt, lalt, ralt: ALT keys.
5180 \end_layout
5182 \begin_layout Itemize
5183 shift, lshift, rshift: Shift keys.
5184 \end_layout
5186 \begin_layout Itemize
5187 meta, lmeta, rmeta: Meta keys.
5188 \end_layout
5190 \begin_layout Itemize
5191 num, caps: Numlock/Capslock (these are sticky!)
5192 \end_layout
5194 \begin_layout Itemize
5195 mode: Mode select.
5196 \end_layout
5198 \begin_layout Subsubsection
5199 Key names
5200 \end_layout
5202 \begin_layout Standard
5203 Following key names are known:
5204 \end_layout
5206 \begin_layout Itemize
5207 backspace, tab, clear, return, pause, escape, space, exclaim, quotedbl,
5208  hash, dollar, ampersand, quote, leftparen, rightparen, asterisk, plus,
5209  comma, minus, period, slash, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, colon, semicolon,
5210  less, equals, greater, question, at, leftbracket, backslash, rightbracket,
5211  caret, underscore, backquote, a, b, c, d, e, f, g, h, i, j, k, l, m, n,
5212  o, p, q, r, s, t, u, v, w, x, y, z, delete, world_0, world_1, world_2,
5213  world_3, world_4, world_5, world_6, world_7, world_8, world_9, world_10,
5214  world_11, world_12, world_13, world_14, world_15, world_16, world_17, world_18,
5215  world_19, world_20, world_21, world_22, world_23, world_24, world_25, world_26,
5216  world_27, world_28, world_29, world_30, world_31, world_32, world_33, world_34,
5217  world_35, world_36, world_37, world_38, world_39, world_40, world_41, world_42,
5218  world_43, world_44, world_45, world_46, world_47, world_48, world_49, world_50,
5219  world_51, world_52, world_53, world_54, world_55, world_56, world_57, world_58,
5220  world_59, world_60, world_61, world_62, world_63, world_64, world_65, world_66,
5221  world_67, world_68, world_69, world_70, world_71, world_72, world_73, world_74,
5222  world_75, world_76, world_77, world_78, world_79, world_80, world_81, world_82,
5223  world_83, world_84, world_85, world_86, world_87, world_88, world_89, world_90,
5224  world_91, world_92, world_93, world_94, world_95, kp0, kp1, kp2, kp3, kp4,
5225  kp5, kp6, kp7, kp8, kp9, kp_period, kp_divide, kp_multiply, kp_minus, kp_plus,
5226  kp_enter, kp_equals, up, down, right, left, insert, home, end, pageup,
5227  pagedown, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14,
5228  f15, numlock, capslock, scrollock, rshift, lshift, rctrl, lctrl, ralt,
5229  lalt, rmeta, lmeta, lsuper, rsuper, mode, compose, help, print, sysreq,
5230  break, menu, power, euro, undo
5231 \end_layout
5233 \begin_layout Itemize
5234 Names of form 'key<n>' where <n> is 0-255 are interpretted as key having
5235  hardware-dependent scan code of <n> (useful to bind those keys that don't
5236  have symbolic names).
5237 \end_layout
5239 \begin_layout Subsubsection
5240 Joystick pseudo-keys:
5241 \end_layout
5243 \begin_layout Itemize
5244 joystick<num>button<button>: Joystick <num> (0-based) button <button> (0-based).
5245 \end_layout
5247 \begin_layout Itemize
5248 joystick<num>hat<hat>n: Joystick <num> (0-based) hat <hat> (0-based) up.
5249 \end_layout
5251 \begin_layout Itemize
5252 joystick<num>hat<hat>w: Joystick <num> (0-based) hat <hat> (0-based) left.
5253 \end_layout
5255 \begin_layout Itemize
5256 joystick<num>hat<hat>s: Joystick <num> (0-based) hat <hat> (0-based) down.
5257 \end_layout
5259 \begin_layout Itemize
5260 joystick<num>hat<hat>e: Joystick <num> (0-based) hat <hat> (0-based) right.
5261 \end_layout
5263 \begin_layout Itemize
5264 joystick<num>axis<axis>-: Joystick <num> (0-based) axis <axis> negative
5265  position (axis modes axis and axis_inverse).
5266 \end_layout
5268 \begin_layout Itemize
5269 joystick<num>axis<axis>+: Joystick <num> (0-based) axis <axis> positive
5270  position (axis modes axis and axis_inverse).
5271 \end_layout
5273 \begin_layout Itemize
5274 joystick<num>axis<axis>: Joystick <num> (0-based) axis <axis> pressure (axis
5275  modes pressure_*).
5276 \end_layout
5278 \begin_layout Subsubsection
5279 Special buttons:
5280 \end_layout
5282 \begin_layout Itemize
5283 Escape: Enter/Exit Command mode, cancel modal dialogs.
5284 \end_layout
5286 \begin_layout Itemize
5287 Return (also KPEnter): Execute command, ok modal dialog.
5288 \end_layout
5290 \begin_layout Itemize
5291 Pgup/Up (also KP8/9 if no num lock, CTRL+P; command mode): Previous command
5292  in command history
5293 \end_layout
5295 \begin_layout Itemize
5296 Pgdn/Down(also KP2/3 if no num lock, CTRL+N; command mode): Next command
5297  in command history
5298 \end_layout
5300 \begin_layout Itemize
5301 Home (also KP7 if no num lock, CTRL+A; command mode): Beginning of command.
5302 \end_layout
5304 \begin_layout Itemize
5305 End (also KP1 if no num lock, CTRL+E; command mode): End of command.
5306 \end_layout
5308 \begin_layout Itemize
5309 Left (also KP4 if no num lock, CTRL+B; command mode): Move cursor left.
5310 \end_layout
5312 \begin_layout Itemize
5313 Right (also KP6 if no num lock, CTRL+F; command mode): Move cursor right.
5314 \end_layout
5316 \begin_layout Itemize
5317 Delete (also KP.
5318  if no num lock; command mode): Delete character to right of cursor.
5319 \end_layout
5321 \begin_layout Itemize
5322 Insert (also KP0 if no num lock; command mode): Toggle between insert /
5323  overwrite modes.
5324 \end_layout
5326 \begin_layout Itemize
5327 Backspace (command mode): Delete character to left of cursor.
5328 \end_layout
5330 \begin_layout Itemize
5331 CTRL+LEFT (also ALT+B; command mode): Previous word.
5332 \end_layout
5334 \begin_layout Itemize
5335 CTRL+RIGHT (also ALT+F; command mode): Next word.
5336 \end_layout
5338 \begin_layout Itemize
5339 ALT+D (also CTRL+W; command mode): Delete word.
5340 \end_layout
5342 \begin_layout Itemize
5343 LCTRL+LALT+ESCAPE: Ungraceful shutdown (leaves dump corrupted!).
5344 \end_layout
5346 \begin_layout Subsection
5347 wxWidgets platform
5348 \end_layout
5350 \begin_layout Subsubsection
5351 Modifier names:
5352 \end_layout
5354 \begin_layout Standard
5355 Following modifier names are known:
5356 \end_layout
5358 \begin_layout Itemize
5360 \end_layout
5362 \begin_layout Itemize
5363 ctrl
5364 \end_layout
5366 \begin_layout Itemize
5367 shift 
5368 \end_layout
5370 \begin_layout Itemize
5371 meta
5372 \end_layout
5374 \begin_layout Itemize
5375 cmd (Mac OS X only)
5376 \end_layout
5378 \begin_layout Subsubsection
5379 Key names:
5380 \end_layout
5382 \begin_layout Standard
5383 Following key names are known:
5384 \end_layout
5386 \begin_layout Itemize
5387 back, tab, return, escape, space, exclaim, quotedbl, hash, dollar, percent,
5388  ampersand, quote, leftparen, rightparen, asterisk, plus, comma, minus,
5389  period, slash, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, colon, semicolon, less, equals,
5390  greater, question, at, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p,
5391  q, r, s, t, u, v, w, x, y, z, leftbracket, backslash, rightbracket, caret,
5392  underscore, backquote, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p,
5393  q, r, s, t, u, v, w, x, y, z, leftcurly, pipe, rightcurly, tilde, delete,
5394  start, lbutton, rbutton, cancel, mbutton, clear, shift, alt, control, menu,
5395  pause, capital, end, home, lefT, up, right, down, select, print, execute,
5396  snapshot, insert, help, numpad0, numpad1, numpad2, numpad3, numpad4, numpad5,
5397  numpad6, numpad7, numpad8, numpad9, multiply, add, separator, subtract,
5398  decimal, divide, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13,
5399  f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, numlock, scroll,
5400  pageup, pagedown, numpad_space, numpad_tab, numpad_enter, numpad_f1, numpad_f2,
5401  numpad_f3, numpad_f4, numpad_home, numpad_left, numpad_up, numpad_right,
5402  numpad_down, numpad_pageup, numpad_pagedown, numpad_end, numpad_begin,
5403  numpad_insert, numpad_delete, numpad_equal, numpad_multiply, numpad_add,
5404  numpad_separator, numpad_subtract, numpad_decimal, numpad_divide, windows_left,
5405  windows_right, windows_menu, command, special1, special2, special3, special4,
5406  special5, special6, special7, special8, special9, special10, special11,
5407  special12, special13, special14, special15, special16, special17, special18,
5408  special19, special20
5409 \end_layout
5411 \begin_layout Section
5412 Movie file format
5413 \end_layout
5415 \begin_layout Standard
5416 Movie file is .zip archive in itself, normal ZIP archive tools work on it
5417  (note: If you recompress it, do not use compression methods other than
5418  store and deflate and especially do not use encryption of any kind).
5419 \end_layout
5421 \begin_layout Subsection
5422 Detecting clean start/SRAM/Savestate
5423 \end_layout
5425 \begin_layout Itemize
5426 If file has member 
5427 \begin_inset Quotes eld
5428 \end_inset
5430 savestate
5431 \begin_inset Quotes erd
5432 \end_inset
5434  it is savestate, otherwise:
5435 \end_layout
5437 \begin_layout Itemize
5438 If file has members with names starting 
5439 \begin_inset Quotes eld
5440 \end_inset
5442 moviesram.
5443 \begin_inset Quotes erd
5444 \end_inset
5446  it is movie starting from SRAM, otherwise:
5447 \end_layout
5449 \begin_layout Itemize
5450 It is movie starting from clear state.
5451 \end_layout
5453 \begin_layout Subsection
5454 Member: gametype
5455 \end_layout
5457 \begin_layout Standard
5458 Type of game ROM and region (as one line).
5459  Valid values are:
5460 \end_layout
5462 \begin_layout Standard
5463 \begin_inset Tabular
5464 <lyxtabular version="3" rows="8" columns="3">
5465 <features tabularvalignment="middle">
5466 <column alignment="center" valignment="top" width="0">
5467 <column alignment="center" valignment="top" width="0">
5468 <column alignment="center" valignment="top" width="0">
5469 <row>
5470 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
5471 \begin_inset Text
5473 \begin_layout Plain Layout
5474 Value
5475 \end_layout
5477 \end_inset
5478 </cell>
5479 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
5480 \begin_inset Text
5482 \begin_layout Plain Layout
5483 System
5484 \end_layout
5486 \end_inset
5487 </cell>
5488 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
5489 \begin_inset Text
5491 \begin_layout Plain Layout
5492 Region
5493 \end_layout
5495 \end_inset
5496 </cell>
5497 </row>
5498 <row>
5499 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
5500 \begin_inset Text
5502 \begin_layout Plain Layout
5503 snes_pal
5504 \end_layout
5506 \end_inset
5507 </cell>
5508 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
5509 \begin_inset Text
5511 \begin_layout Plain Layout
5512 Super NES
5513 \end_layout
5515 \end_inset
5516 </cell>
5517 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
5518 \begin_inset Text
5520 \begin_layout Plain Layout
5522 \end_layout
5524 \end_inset
5525 </cell>
5526 </row>
5527 <row>
5528 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
5529 \begin_inset Text
5531 \begin_layout Plain Layout
5532 sgb_pal
5533 \end_layout
5535 \end_inset
5536 </cell>
5537 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
5538 \begin_inset Text
5540 \begin_layout Plain Layout
5541 Super Game Boy
5542 \end_layout
5544 \end_inset
5545 </cell>
5546 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
5547 \begin_inset Text
5549 \begin_layout Plain Layout
5551 \end_layout
5553 \end_inset
5554 </cell>
5555 </row>
5556 <row>
5557 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
5558 \begin_inset Text
5560 \begin_layout Plain Layout
5561 snes_ntsc
5562 \end_layout
5564 \end_inset
5565 </cell>
5566 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
5567 \begin_inset Text
5569 \begin_layout Plain Layout
5570 Super NES
5571 \end_layout
5573 \end_inset
5574 </cell>
5575 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
5576 \begin_inset Text
5578 \begin_layout Plain Layout
5579 NTSC
5580 \end_layout
5582 \end_inset
5583 </cell>
5584 </row>
5585 <row>
5586 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
5587 \begin_inset Text
5589 \begin_layout Plain Layout
5590 sgb_ntsc
5591 \end_layout
5593 \end_inset
5594 </cell>
5595 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
5596 \begin_inset Text
5598 \begin_layout Plain Layout
5599 Super Game Boy
5600 \end_layout
5602 \end_inset
5603 </cell>
5604 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
5605 \begin_inset Text
5607 \begin_layout Plain Layout
5608 NTSC
5609 \end_layout
5611 \end_inset
5612 </cell>
5613 </row>
5614 <row>
5615 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
5616 \begin_inset Text
5618 \begin_layout Plain Layout
5620 \end_layout
5622 \end_inset
5623 </cell>
5624 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
5625 \begin_inset Text
5627 \begin_layout Plain Layout
5628 BS-X (non-slotted)
5629 \end_layout
5631 \end_inset
5632 </cell>
5633 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
5634 \begin_inset Text
5636 \begin_layout Plain Layout
5637 NTSC
5638 \end_layout
5640 \end_inset
5641 </cell>
5642 </row>
5643 <row>
5644 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
5645 \begin_inset Text
5647 \begin_layout Plain Layout
5648 bsxslotted
5649 \end_layout
5651 \end_inset
5652 </cell>
5653 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
5654 \begin_inset Text
5656 \begin_layout Plain Layout
5657 BS-X (slotted)
5658 \end_layout
5660 \end_inset
5661 </cell>
5662 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
5663 \begin_inset Text
5665 \begin_layout Plain Layout
5666 NTSC
5667 \end_layout
5669 \end_inset
5670 </cell>
5671 </row>
5672 <row>
5673 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
5674 \begin_inset Text
5676 \begin_layout Plain Layout
5677 sufamiturbo
5678 \end_layout
5680 \end_inset
5681 </cell>
5682 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
5683 \begin_inset Text
5685 \begin_layout Plain Layout
5686 Sufami Turbo
5687 \end_layout
5689 \end_inset
5690 </cell>
5691 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
5692 \begin_inset Text
5694 \begin_layout Plain Layout
5695 NTSC
5696 \end_layout
5698 \end_inset
5699 </cell>
5700 </row>
5701 </lyxtabular>
5703 \end_inset
5706 \end_layout
5708 \begin_layout Standard
5709 Frame rates are:
5710 \end_layout
5712 \begin_layout Standard
5713 \begin_inset Tabular
5714 <lyxtabular version="3" rows="3" columns="2">
5715 <features tabularvalignment="middle">
5716 <column alignment="center" valignment="top" width="0">
5717 <column alignment="center" valignment="top" width="0">
5718 <row>
5719 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
5720 \begin_inset Text
5722 \begin_layout Plain Layout
5723 Region
5724 \end_layout
5726 \end_inset
5727 </cell>
5728 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
5729 \begin_inset Text
5731 \begin_layout Plain Layout
5732 Framerate (fps)
5733 \end_layout
5735 \end_inset
5736 </cell>
5737 </row>
5738 <row>
5739 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
5740 \begin_inset Text
5742 \begin_layout Plain Layout
5744 \end_layout
5746 \end_inset
5747 </cell>
5748 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
5749 \begin_inset Text
5751 \begin_layout Plain Layout
5752 322445/6448
5753 \end_layout
5755 \end_inset
5756 </cell>
5757 </row>
5758 <row>
5759 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
5760 \begin_inset Text
5762 \begin_layout Plain Layout
5763 NTSC
5764 \end_layout
5766 \end_inset
5767 </cell>
5768 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
5769 \begin_inset Text
5771 \begin_layout Plain Layout
5772 10738636/178683
5773 \end_layout
5775 \end_inset
5776 </cell>
5777 </row>
5778 </lyxtabular>
5780 \end_inset
5783 \end_layout
5785 \begin_layout Subsection
5786 Member: port1
5787 \end_layout
5789 \begin_layout Standard
5790 Contains type of port #1 (as one line).
5791  Valid values are 'none', 'gamepad', 'multitap' and 'mouse'.
5792  If not present, defaults to 'gamepad'.
5793 \end_layout
5795 \begin_layout Subsection
5796 Member: port2
5797 \end_layout
5799 \begin_layout Standard
5800 Contains type of port #2 (as one line).
5801  Valid values are 'none', 'gamepad', 'multitap', 'mouse', 'superscope',
5802  'justifier' and 'justifiers'.
5803  If not present, defaults to 'none'.
5804 \end_layout
5806 \begin_layout Subsection
5807 Member: gamename
5808 \end_layout
5810 \begin_layout Standard
5811 Contains name of the game (as one line).
5812 \end_layout
5814 \begin_layout Subsection
5815 Member: authors
5816 \end_layout
5818 \begin_layout Standard
5819 Contains authors, one per line.
5820  Part before '|' is the full name, part after is the nickname.
5821 \end_layout
5823 \begin_layout Subsection
5824 Member: systemid
5825 \end_layout
5827 \begin_layout Standard
5828 Always 
5829 \begin_inset Quotes eld
5830 \end_inset
5832 lsnes-rr1
5833 \begin_inset Quotes erd
5834 \end_inset
5836  (one line).
5837  Used to reject other saves.
5838 \end_layout
5840 \begin_layout Subsection
5841 Member: controlsversion
5842 \end_layout
5844 \begin_layout Standard
5845 Always 
5846 \begin_inset Quotes eld
5847 \end_inset
5850 \begin_inset Quotes erd
5851 \end_inset
5853  (one line).
5854  Used to identify what controls are there.
5855 \end_layout
5857 \begin_layout Subsection
5858 Member: 
5859 \begin_inset Quotes eld
5860 \end_inset
5862 coreversion
5863 \begin_inset Quotes erd
5864 \end_inset
5867 \end_layout
5869 \begin_layout Standard
5870 Contains bsnes core version number (as one line).
5871 \end_layout
5873 \begin_layout Subsection
5874 Member: projectid
5875 \end_layout
5877 \begin_layout Standard
5878 Contains project ID (as one line).
5879  Used to identify if two movies are part of the same project.
5880 \end_layout
5882 \begin_layout Subsection
5883 Member: {rom,slota,slotb}{,xml}.sha256
5884 \end_layout
5886 \begin_layout Standard
5887 Contains SHA-256 of said ROM or ROM mapping file (as one line).
5888  Absent if corresponding file is absent.
5889 \end_layout
5891 \begin_layout Subsection
5892 Member: moviesram.<name>
5893 \end_layout
5895 \begin_layout Standard
5896 Raw binary startup SRAM of kind <name>.
5897  Only present in savestates and movies starting from SRAM.
5898 \end_layout
5900 \begin_layout Subsection
5901 Member: saveframe
5902 \end_layout
5904 \begin_layout Standard
5905 Contains frame number (as one line) of frame movie was saved on.
5906  Only present in savestates.
5907 \end_layout
5909 \begin_layout Subsection
5910 Member: lagcounter
5911 \end_layout
5913 \begin_layout Standard
5914 Current value of lag counter (as one line).
5915  Only present in savestates.
5916 \end_layout
5918 \begin_layout Subsection
5919 Member: pollcounters
5920 \end_layout
5922 \begin_layout Standard
5923 Contains poll counters (currently 100 of them), one per line.
5924  Each line is raw poll count if DRDY is set for it.
5925  Otherwise it is negative poll count minus one.
5926  Only present in savestates.
5927 \end_layout
5929 \begin_layout Subsection
5930 Member: hostmemory
5931 \end_layout
5933 \begin_layout Standard
5934 Raw binary dump of host memory.
5935  Only present in savestates.
5936 \end_layout
5938 \begin_layout Subsection
5939 Member: savestate
5940 \end_layout
5942 \begin_layout Standard
5943 The raw binary savestate itself.
5944  Savestate detection uses this file, only present in savestates.
5945 \end_layout
5947 \begin_layout Subsection
5948 Member: screenshot
5949 \end_layout
5951 \begin_layout Standard
5952 Screenshot of current frame.
5953  Only present in savestates.
5954  First 2 bytes are big-endian width of image, rest are 24-bit RGB image
5955  data.
5956  Height of image is inferred from the width and size of data.
5957 \end_layout
5959 \begin_layout Subsection
5960 Member: sram.<name>
5961 \end_layout
5963 \begin_layout Standard
5964 Raw binary SRAM of kind <name> at time of savestate.
5965  Only present in savestates.
5966 \end_layout
5968 \begin_layout Subsection
5969 Member: input
5970 \end_layout
5972 \begin_layout Standard
5973 The actual input track, one line per subframe (blank lines are skipped).
5974 \end_layout
5976 \begin_layout Itemize
5977 If the first byte of each line is '.', ' ', <tab> or '|', then the line is
5978  part of same frame as previous, otherwise it starts a new frame.
5979 \end_layout
5981 \begin_layout Itemize
5982 First subframe must start a new frame.
5983 \end_layout
5985 \begin_layout Standard
5986 Length of movie in frames is number of lines in input file that start a
5987  new frame.
5988 \end_layout
5990 \begin_layout Subsection
5991 Member: subtitles
5992 \end_layout
5994 \begin_layout Standard
5995 Subtitle track.
5996  Optional.
5997 \end_layout
5999 \begin_layout Itemize
6000 Each line is in form <firstframe> <numframes> <text>.
6001 \end_layout
6003 \begin_layout Itemize
6004 Linefeed is encoded as 
6005 \backslash
6006 n, backslash is encoded as 
6007 \backslash
6009 \backslash
6011 \end_layout
6013 \begin_layout Subsection
6014 Member: rerecords
6015 \end_layout
6017 \begin_layout Standard
6018 Contains textual base-10 rerecord count (as one line; emulator just writes
6019  this, it doesn't read it) + 1.
6020 \end_layout
6022 \begin_layout Subsection
6023 Member: rrdata
6024 \end_layout
6026 \begin_layout Standard
6027 This member stores set of load IDs.
6028  There is one load ID per rerecord (plus one corresponding to start of project).
6029 \end_layout
6031 \begin_layout Itemize
6032 This member constists of concatenation of records
6033 \end_layout
6035 \begin_layout Itemize
6036 Each record is 2-36 bytes long and can represent 1-16,843,009 consequtive
6037  IDs.
6038 \end_layout
6040 \begin_layout Itemize
6041 IDs are interpretted as 256-bit big-endian integers with warparound.
6042 \end_layout
6044 \begin_layout Itemize
6045 Initial predicted ID is all zeroes.
6046 \end_layout
6048 \begin_layout Standard
6049 Format of each record is:
6050 \end_layout
6052 \begin_layout Itemize
6053 1 byte: Opcode byte.
6054  Bits 0-4 are prefix length (prefixlen), bits 5-6 are count length (countlen).
6055  Bit 7 is unused.
6056 \end_layout
6058 \begin_layout Itemize
6059 32-prefixlen bytes of ID.
6060 \end_layout
6062 \begin_layout Itemize
6063 countlen bytes of big-endian count (count).
6064 \end_layout
6066 \begin_layout Standard
6067 Records are processed as follows:
6068 \end_layout
6070 \begin_layout Itemize
6071 To form the first ID encoded by record, take the first prefixlen bytes predicted
6072  ID and append the read ID value to it.
6073  The result is the first ID encoded.
6074 \end_layout
6076 \begin_layout Itemize
6077 If countlen is 0, record encodes 1 ID.
6078 \end_layout
6080 \begin_layout Itemize
6081 If countlen is 1, record encodes 2+count IDs.
6082 \end_layout
6084 \begin_layout Itemize
6085 If countlen is 2, record encodes 258+count IDs.
6086 \end_layout
6088 \begin_layout Itemize
6089 If countlen is 3, record encodes 65794+count IDs.
6090 \end_layout
6092 \begin_layout Itemize
6093 The new predicted ID is the next ID after last one encoded by the record.
6094 \end_layout
6096 \begin_layout Standard
6097 The number of rerecords + 1 is equal to the sum of number of IDs encoded
6098  by all records.
6099 \end_layout
6101 \begin_layout Subsection
6102 Member: starttime.second
6103 \end_layout
6105 \begin_layout Standard
6106 Movie starting time, second part.
6107  Epoch is Unix epoch.
6108  Default is 1,000,000,000.
6109 \end_layout
6111 \begin_layout Subsection
6112 Member: starttime.subsecond
6113 \end_layout
6115 \begin_layout Standard
6116 Movie starting time, subsecond part.
6117  Unit is CPU clocks.
6118  Default is 0.
6119 \end_layout
6121 \begin_layout Subsection
6122 Member: savetime.second
6123 \end_layout
6125 \begin_layout Standard
6126 Movie saving time, second part.
6127  Default is starttime.second.
6128  Only present in savestates.
6129 \end_layout
6131 \begin_layout Subsection
6132 Member: savetime.subsecond
6133 \end_layout
6135 \begin_layout Standard
6136 Movie saving time, subsecond part.
6137  Default is starttime.subsecond.
6138  Only present in savestates.
6139 \end_layout
6141 \begin_layout Section
6142 lsvs file format (commentary tracks)
6143 \end_layout
6145 \begin_layout Subsection
6146 Clusters
6147 \end_layout
6149 \begin_layout Itemize
6150 Each cluster is 8kB (8192 bytes) in size.
6151 \end_layout
6153 \begin_layout Itemize
6154 Cluster n starts at offset 8192*n in file.
6155 \end_layout
6157 \begin_layout Itemize
6158 The following clusters are system special:
6159 \end_layout
6161 \begin_deeper
6162 \begin_layout Itemize
6163 Cluster 0 and all clusters with number multiple of 2048 (cluster tables)
6164 \end_layout
6166 \begin_layout Itemize
6167 Cluster 1 (superblock)
6168 \end_layout
6170 \end_deeper
6171 \begin_layout Subsection
6172 Cluster tables
6173 \end_layout
6175 \begin_layout Itemize
6176 The cluster table describing cluster n is stored in cluster n & ~0x7FF (zero
6177  last 11 bits of n).
6178 \end_layout
6180 \begin_layout Itemize
6181 This cluster table consists of 2048 4-byte big-endian integers.
6182 \end_layout
6184 \begin_layout Itemize
6185 Each entry describes a cluster in 16MB supercluster, in order.
6186 \end_layout
6188 \begin_layout Itemize
6189 The valid values for entries are:
6190 \end_layout
6192 \begin_deeper
6193 \begin_layout Itemize
6194 0x00000000: Free cluster
6195 \end_layout
6197 \begin_layout Itemize
6198 0x00000001: Last cluster in chain.
6199 \end_layout
6201 \begin_layout Itemize
6202 0xFFFFFFFF: System cluster (cluster tables and superblock)
6203 \end_layout
6205 \begin_layout Itemize
6206 (anything else): Number of next cluster in chain.
6207  Must not be multiple of 2048.
6208 \end_layout
6210 \end_deeper
6211 \begin_layout Itemize
6212 Due to limitations of the format, there can be at most 2097052 superclusters,
6213  giving maximum file size of 16TB.
6214 \end_layout
6216 \begin_layout Subsection
6217 Stream table
6218 \end_layout
6220 \begin_layout Itemize
6221 The stream table chain always starts in cluster 2.
6222 \end_layout
6224 \begin_layout Itemize
6225 Otherwise, it follows normal chaining.
6226 \end_layout
6228 \begin_layout Itemize
6229 The stream table consists of 16-byte entries:
6230 \end_layout
6232 \begin_deeper
6233 \begin_layout Itemize
6234 The first 8 bytes of entry give big-endian beginning position of stream
6235  in units of 1/48000 s.
6236 \end_layout
6238 \begin_layout Itemize
6239 The next 4 bytes of entry give big-endian beginning cluster for control
6240  data.
6241  0 here marks the entry as not present.
6242 \end_layout
6244 \begin_layout Itemize
6245 The last 4 bytes of entry give big-endian beginning cluster for codec data.
6246 \end_layout
6248 \end_deeper
6249 \begin_layout Itemize
6250 Stream table clusters are normal clusters, following normal chaining.
6251 \end_layout
6253 \begin_layout Itemize
6254 The stream begnning position is not guarenteed unique.
6255  There can be multiple streams with the same starting position in the file.
6256 \end_layout
6258 \begin_layout Subsection
6259 Stream control data
6260 \end_layout
6262 \begin_layout Itemize
6263 The stream control data consists of entries 4 bytes each:
6264 \end_layout
6266 \begin_deeper
6267 \begin_layout Itemize
6268 The first 2 bytes of entry gives big-endian length of packet
6269 \end_layout
6271 \begin_layout Itemize
6272 The next byte of entry gives audio length of packet in units of 1/400 s.
6273 \end_layout
6275 \begin_layout Itemize
6276 The last byte is control byte.
6277 \end_layout
6279 \begin_deeper
6280 \begin_layout Itemize
6281 0 means this entry is not present and the control data ends.
6282 \end_layout
6284 \begin_layout Itemize
6285 1 is valid control entry.
6286 \end_layout
6288 \end_deeper
6289 \end_deeper
6290 \begin_layout Itemize
6291 The stream control data can also end by running into end of the readable
6292  chain.
6293 \end_layout
6295 \begin_deeper
6296 \begin_layout Itemize
6297 This happens if there happens to be exact multiple of 2048 packets in stream
6298  and number of packets is nonzero.
6299 \end_layout
6301 \end_deeper
6302 \begin_layout Itemize
6303 These clusters follow normal chaining.
6304 \end_layout
6306 \begin_layout Subsection
6307 Stream codec data
6308 \end_layout
6310 \begin_layout Itemize
6311 Stream codec data consists of raw Opus data packets packed back to back
6312  with nothing in between.
6313 \end_layout
6315 \begin_layout Itemize
6316 Warning: Due to internal limitations, this data must reside in the first
6317  65536 superclusters (that is, the first 1TB of the file).
6318 \end_layout
6320 \begin_layout Subsection
6321 Superblock
6322 \end_layout
6324 \begin_layout Itemize
6325 The superblock is stored in cluster 1.
6327 \end_layout
6329 \begin_layout Itemize
6330 The first 11 bytes are 
6331 \begin_inset Quotes eld
6332 \end_inset
6334 sefs-magic
6335 \begin_inset Quotes erd
6336 \end_inset
6338 <NUL>.
6339 \end_layout
6341 \begin_layout Itemize
6342 The rest are unused.
6343 \end_layout
6345 \begin_layout Itemize
6346 This cluster 1 is marked as system special.
6347 \end_layout
6349 \begin_layout Section
6350 Known ROM extensions
6351 \end_layout
6353 \begin_layout Itemize
6354 SNES cartridge ROMs: sfc, smc, swc, fig, ufo, sf2, gd3, gd7, dx2, mgd, mgh.
6355 \end_layout
6357 \begin_layout Itemize
6358 DMG cartridge ROMs: dmg, gb.
6359 \end_layout
6361 \begin_layout Itemize
6362 GBC cartridge ROMs: cgb, gbc.
6363 \end_layout
6365 \begin_layout Section
6366 Gamepack files
6367 \end_layout
6369 \begin_layout Itemize
6370 The first line must be: 
6371 \begin_inset Quotes eld
6372 \end_inset
6374 [GAMEPACK FILE]
6375 \begin_inset Quotes erd
6376 \end_inset
6379 \end_layout
6381 \begin_layout Itemize
6382 There is one needed line: 
6383 \begin_inset Quotes eld
6384 \end_inset
6386 type <systype>
6387 \begin_inset Quotes erd
6388 \end_inset
6391  This sets system type to <systype>.
6392  The following system types are valid:
6393 \end_layout
6395 \begin_deeper
6396 \begin_layout Itemize
6397 snes (SNES)
6398 \end_layout
6400 \begin_layout Itemize
6401 bsx (BS-X non-slotted)
6402 \end_layout
6404 \begin_layout Itemize
6405 bsxslotted (BS-X slotted)
6406 \end_layout
6408 \begin_layout Itemize
6409 sufamiturbo (Sufami Turbo)
6410 \end_layout
6412 \begin_layout Itemize
6413 sgb (Super Game Boy)
6414 \end_layout
6416 \begin_layout Itemize
6417 dmg (Game Boy)
6418 \end_layout
6420 \begin_layout Itemize
6421 gbc (Game Boy Color)
6422 \end_layout
6424 \begin_layout Itemize
6425 gbc_gba (Game Boy Color with GBA initial register values)
6426 \end_layout
6428 \end_deeper
6429 \begin_layout Itemize
6430 Optionally a region can be specified: 
6431 \begin_inset Quotes eld
6432 \end_inset
6434 region <region>
6435 \begin_inset Quotes erd
6436 \end_inset
6439  The following values are valid:
6440 \end_layout
6442 \begin_deeper
6443 \begin_layout Itemize
6444 autodetect (Autodetect region: snes and sgb only)
6445 \end_layout
6447 \begin_layout Itemize
6448 ntsc (NTSC: snes, bsx, bsxslotted, sufamiturbo, sgb)
6449 \end_layout
6451 \begin_layout Itemize
6452 pal (PAL: snes, sgb)
6453 \end_layout
6455 \begin_layout Itemize
6456 world (World: dmg, gbc, gbc_gba)
6457 \end_layout
6459 \end_deeper
6460 \begin_layout Itemize
6461 ROM images are loaded as: 
6462 \begin_inset Quotes eld
6463 \end_inset
6465 rom <type> <file>
6466 \begin_inset Quotes erd
6467 \end_inset
6470  The following types are valid:
6471 \end_layout
6473 \begin_deeper
6474 \begin_layout Itemize
6475 rom (Cartridge ROM in snes, dmg, gbc, gbc_gba.
6476  BIOS in bsx, bsxslotted, sufamiturbo)
6477 \end_layout
6479 \begin_layout Itemize
6480 bsx (Cartridge ROM in bsx, bsxslotted)
6481 \end_layout
6483 \begin_layout Itemize
6484 slot-a (Cartridge ROM in sufamiturbo)
6485 \end_layout
6487 \begin_layout Itemize
6488 slot-b (Cartridge ROM in sufamiturbo)
6489 \end_layout
6491 \end_deeper
6492 \begin_layout Itemize
6493 ROM markup can be loaded as: 
6494 \begin_inset Quotes eld
6495 \end_inset
6497 xml <type> <file>
6498 \begin_inset Quotes erd
6499 \end_inset
6502  The types valid are the same as for ROMs.
6503 \end_layout
6505 \begin_layout Itemize
6506 Patches can be loaded as 
6507 \begin_inset Quotes eld
6508 \end_inset
6510 patch[<offset>] <type> <file>
6511 \begin_inset Quotes erd
6512 \end_inset
6515  The types are the same as for ROMs.
6516 \end_layout
6518 \begin_deeper
6519 \begin_layout Itemize
6520 Offset is given in form [+-]<number>.
6521  Usually offset is either +0 or -512.
6522 \end_layout
6524 \begin_layout Itemize
6525 Default offset is +0.
6526 \end_layout
6528 \end_deeper
6529 \begin_layout Subsection
6530 Example:
6531 \end_layout
6533 \begin_layout LyX-Code
6534 [GAMEPACK FILE]
6535 \end_layout
6537 \begin_layout LyX-Code
6538 type snes
6539 \end_layout
6541 \begin_layout LyX-Code
6542 rom rom speedygonzales.sfc
6543 \end_layout
6545 \begin_layout LyX-Code
6546 patch-512 rom sonicthehedgehog.ips
6547 \end_layout
6549 \begin_layout Subsection
6550 Example 2:
6551 \end_layout
6553 \begin_layout LyX-Code
6554 [GAMEPACK FILE]
6555 \end_layout
6557 \begin_layout LyX-Code
6558 type sgb
6559 \end_layout
6561 \begin_layout LyX-Code
6562 rom rom supergameboy.sfc
6563 \end_layout
6565 \begin_layout LyX-Code
6566 rom dmg megamanV.dmg
6567 \end_layout
6569 \begin_layout Section
6570 Quick'n'dirty encode guide
6571 \end_layout
6573 \begin_layout Enumerate
6574 Start the emulator and load the ROM and movie file.
6575 \end_layout
6577 \begin_layout Enumerate
6578 Set large AVI option 'set-setting avi-large on'
6579 \end_layout
6581 \begin_layout Enumerate
6582 Enable dumping 'dump-avi tmpdump' 
6583 \end_layout
6585 \begin_layout Enumerate
6586 Unpause and let it run until you want to end dumping.
6587 \end_layout
6589 \begin_layout Enumerate
6590 Close the emulator (closing the window is the easiest way).
6591  Or use 'end-avi'.
6592 \end_layout
6594 \begin_layout Enumerate
6595 For each tmpdump*.avi file created, on command prompt, do 'x264 --crf 10
6596  -o tmpdump_<numbers>.mkv tmpdump_<numbers>.avi'.
6597 \end_layout
6599 \begin_layout Enumerate
6600 Do 'sox tmpdump.sox tmpdump.ogg rate -v 32000'
6601 \end_layout
6603 \begin_layout Enumerate
6604 Do 'mkvmerge -o tmpdump_video.mkv tmpdump_0000000.mkv + tmpdump_0000001.mkv
6605  + tmpdump_0000002.mkv' (list every tmpdump_<numbers>.mkv, with + in between).
6606 \end_layout
6608 \begin_layout Enumerate
6609 Do 'mkvmerge -o final.mkv tmpdump_video.mkv tmpdump.ogg'.
6610  Now final.mkv contains quick'n'dirty encode.
6611 \end_layout
6613 \begin_layout Section
6614 Axis configurations for some gamepad types:
6615 \end_layout
6617 \begin_layout Subsection
6618 XBox360 controller:
6619 \end_layout
6621 \begin_layout Standard
6622 Axes 2 and 5 (joystick<n>axis2 and joystick<n>axis5) should be set to pressure-+.
6623 \end_layout
6625 \begin_layout LyX-Code
6626 set-axis joystick0axis2 pressure-+
6627 \end_layout
6629 \begin_layout LyX-Code
6630 set-axis joystick0axis5 pressure-+
6631 \end_layout
6633 \begin_layout Itemize
6634 This is needed for SDL only.
6635  EVDEV sets those types correctly.
6636 \end_layout
6638 \begin_layout Subsection
6639 PS3 
6640 \begin_inset Quotes eld
6641 \end_inset
6643 sixaxis
6644 \begin_inset Quotes erd
6645 \end_inset
6647  controller:
6648 \end_layout
6650 \begin_layout Standard
6651 Axes 8-19 should be disabled.
6652 \end_layout
6654 \begin_layout LyX-Code
6655 set-axis joystick0axis8 disabled
6656 \end_layout
6658 \begin_layout LyX-Code
6659 set-axis joystick0axis9 disabled
6660 \end_layout
6662 \begin_layout LyX-Code
6663 set-axis joystick0axis10 disabled
6664 \end_layout
6666 \begin_layout LyX-Code
6667 set-axis joystick0axis11 disabled
6668 \end_layout
6670 \begin_layout LyX-Code
6671 set-axis joystick0axis12 disabled
6672 \end_layout
6674 \begin_layout LyX-Code
6675 set-axis joystick0axis13 disabled
6676 \end_layout
6678 \begin_layout LyX-Code
6679 set-axis joystick0axis14 disabled
6680 \end_layout
6682 \begin_layout LyX-Code
6683 set-axis joystick0axis15 disabled
6684 \end_layout
6686 \begin_layout LyX-Code
6687 set-axis joystick0axis16 disabled
6688 \end_layout
6690 \begin_layout LyX-Code
6691 set-axis joystick0axis17 disabled
6692 \end_layout
6694 \begin_layout LyX-Code
6695 set-axis joystick0axis18 disabled
6696 \end_layout
6698 \begin_layout LyX-Code
6699 set-axis joystick0axis19 disabled
6700 \end_layout
6702 \begin_layout Section
6703 Errata:
6704 \end_layout
6706 \begin_layout Subsection
6707 Problems from BSNES core:
6708 \end_layout
6710 \begin_layout Itemize
6711 The whole pending save stuff.
6712 \end_layout
6714 \begin_layout Itemize
6715 Lack of layer hiding.
6716 \end_layout
6718 \begin_layout Itemize
6719 It is slow (especially accuracy).
6720 \end_layout
6722 \begin_layout Itemize
6723 Firmwares can't be loaded from ZIP archives.
6724 \end_layout
6726 \begin_layout Subsection
6727 Other problems:
6728 \end_layout
6730 \begin_layout Itemize
6731 Modifiers don't work with pseudo-keys (SDL, EVDEV).
6732 \end_layout
6734 \begin_layout Itemize
6735 Audio for last dumped frame is not itself dumped.
6736 \end_layout
6738 \begin_layout Itemize
6739 Audio in UI is pretty bad in quality if game doesn't run at full speed.
6740 \end_layout
6742 \begin_layout Itemize
6743 No menus, command based interface (SDL).
6744 \end_layout
6746 \begin_layout Itemize
6747 Long commands don't scroll.
6748 \end_layout
6750 \begin_layout Section
6751 Changelog:
6752 \end_layout
6754 \begin_layout Subsection
6755 rr0-beta1
6756 \end_layout
6758 \begin_layout Itemize
6759 Fix -Wall warnings
6760 \end_layout
6762 \begin_layout Itemize
6763 Fix dumper video corruption with levels 10-18.
6764 \end_layout
6766 \begin_layout Subsection
6767 rr0-beta2
6768 \end_layout
6770 \begin_layout Itemize
6771 Autofire
6772 \end_layout
6774 \begin_layout Itemize
6775 Lots of code cleanups
6776 \end_layout
6778 \begin_layout Itemize
6779 Lua interface to settings
6780 \end_layout
6782 \begin_layout Itemize
6783 Allow specifying AVI borders without Lua
6784 \end_layout
6786 \begin_layout Itemize
6787 Fix scaling if vscale > 1 and originx > 0 (left border exists)
6788 \end_layout
6790 \begin_layout Itemize
6791 on_snoop lua callback
6792 \end_layout
6794 \begin_layout Itemize
6795 Faster movie loading and saving.
6796 \end_layout
6798 \begin_layout Subsection
6799 rr0-beta3
6800 \end_layout
6802 \begin_layout Itemize
6803 Joystick support
6804 \end_layout
6806 \begin_layout Subsection
6807 rr0-beta4
6808 \end_layout
6810 \begin_layout Itemize
6811 Fix multi-buttons
6812 \end_layout
6814 \begin_layout Itemize
6815 Save jukebox functionality.
6816 \end_layout
6818 \begin_layout Subsection
6819 rr0-beta5
6820 \end_layout
6822 \begin_layout Itemize
6823 Try to fix some nasty failing movie load edge cases
6824 \end_layout
6826 \begin_layout Itemize
6827 Allow specifying scripts to run on command line.
6828 \end_layout
6830 \begin_layout Subsection
6831 rr0-beta6
6832 \end_layout
6834 \begin_layout Itemize
6835 Major source code reorganization.
6836 \end_layout
6838 \begin_layout Itemize
6839 Backup savestates before overwriting.
6840 \end_layout
6842 \begin_layout Itemize
6843 Don't crash if loading initial state fails.
6844 \end_layout
6846 \begin_layout Subsection
6847 rr0-beta7
6848 \end_layout
6850 \begin_layout Itemize
6851 Fix firmware lookup
6852 \end_layout
6854 \begin_layout Itemize
6855 Fix author name parsing
6856 \end_layout
6858 \begin_layout Itemize
6859 Fix rerecord counting
6860 \end_layout
6862 \begin_layout Itemize
6863 (SDL) Print messages to console if SDL is uninitialized
6864 \end_layout
6866 \begin_layout Itemize
6867 Add movieinfo program
6868 \end_layout
6870 \begin_layout Itemize
6871 Fix loading movies starting from SRAM.
6872 \end_layout
6874 \begin_layout Subsection
6875 rr0-beta8
6876 \end_layout
6878 \begin_layout Itemize
6879 Add support for unattended dumping
6880 \end_layout
6882 \begin_layout Itemize
6883 Fix compiling for Win32
6884 \end_layout
6886 \begin_layout Itemize
6887 Don't lock up if sound can't be initialized
6888 \end_layout
6890 \begin_layout Itemize
6891 Strip trailing CR from commands
6892 \end_layout
6894 \begin_layout Itemize
6895 Don't try to do dubious things in global ctors (fix crash on startup)
6896 \end_layout
6898 \begin_layout Subsection
6899 rr0-beta9
6900 \end_layout
6902 \begin_layout Itemize
6903 Small documentation tweaking
6904 \end_layout
6906 \begin_layout Itemize
6907 Fix make clean
6908 \end_layout
6910 \begin_layout Itemize
6911 Fix major bug in modifier matching
6912 \end_layout
6914 \begin_layout Subsection
6915 rr0-beta10
6916 \end_layout
6918 \begin_layout Itemize
6919 Lots of documentation fixes
6920 \end_layout
6922 \begin_layout Itemize
6923 Use dedicated callbacks for event backcomm., not commands.
6924 \end_layout
6926 \begin_layout Itemize
6927 Ensure that the watchdog is not hit when executing delayed reset.
6928 \end_layout
6930 \begin_layout Itemize
6931 Remove errant tab from joystick message.
6932 \end_layout
6934 \begin_layout Subsection
6935 rr0-beta11
6936 \end_layout
6938 \begin_layout Itemize
6939 Make autofire operate in absolute time, not linear time
6940 \end_layout
6942 \begin_layout Itemize
6943 Reinitialize controls when resuming from loadstate
6944 \end_layout
6946 \begin_layout Itemize
6947 Some more code cleanups
6948 \end_layout
6950 \begin_layout Itemize
6951 If Lua allocator fails, call OOM_panic()
6952 \end_layout
6954 \begin_layout Itemize
6955 Byte/word/dword/qword sized host memory write/read functions.
6956 \end_layout
6958 \begin_layout Itemize
6959 Dump at correct framerate if dumping interlaced NTSC (height=448).
6960 \end_layout
6962 \begin_layout Subsection
6963 rr0-beta12
6964 \end_layout
6966 \begin_layout Itemize
6967 Actually include the complete source code
6968 \end_layout
6970 \begin_layout Itemize
6971 Keep track of RTC
6972 \end_layout
6974 \begin_layout Subsection
6975 rr0-beta13
6976 \end_layout
6978 \begin_layout Itemize
6979 Document {save,start}time.{,sub}second.
6980 \end_layout
6982 \begin_layout Itemize
6983 Intercept time() from bsnes core.
6984 \end_layout
6986 \begin_layout Subsection
6987 rr0-beta14
6988 \end_layout
6990 \begin_layout Itemize
6991 Allow disabling time() interception (allow build on Mac OS X)
6992 \end_layout
6994 \begin_layout Itemize
6995 Use SDLMain on Mac OS X (make SDL not crash)
6996 \end_layout
6998 \begin_layout Itemize
6999 Disable delayed resets (just plain too buggy for now).
7000 \end_layout
7002 \begin_layout Itemize
7003 Code cleanups
7004 \end_layout
7006 \begin_layout Itemize
7007 Use 16-bit for graphics/video instead of 32-bit.
7008 \end_layout
7010 \begin_layout Itemize
7011 gui.rectangle/gui.pixel
7012 \end_layout
7014 \begin_layout Itemize
7015 gui.crosshair
7016 \end_layout
7018 \begin_layout Itemize
7019 New CSCD writer implementation.
7020 \end_layout
7022 \begin_layout Subsection
7023 rr0-beta15
7024 \end_layout
7026 \begin_layout Itemize
7027 Fix interaction of * and +.
7028 \end_layout
7030 \begin_layout Itemize
7031 Manual improvements
7032 \end_layout
7034 \begin_layout Itemize
7035 Use gettimeofday()/usleep(), these seem portable enough.
7036 \end_layout
7038 \begin_layout Itemize
7039 Move joystick axis manipulation to keymapper code.
7040 \end_layout
7042 \begin_layout Itemize
7043 Changes to how read-only works.
7044 \end_layout
7046 \begin_layout Itemize
7047 Refactor controller input code.
7048 \end_layout
7050 \begin_layout Subsection
7051 rr0-beta16
7052 \end_layout
7054 \begin_layout Itemize
7055 Fix mouseclick scale compensation.
7056 \end_layout
7058 \begin_layout Itemize
7059 Draw area boundaries correctly in SDL code.
7060 \end_layout
7062 \begin_layout Itemize
7063 gui.screenshot.
7064 \end_layout
7066 \begin_layout Itemize
7067 Fix CSCD output (buffer overrun and race condition).
7068 \end_layout
7070 \begin_layout Subsection
7071 rr0-beta17
7072 \end_layout
7074 \begin_layout Itemize
7075 JMD dumping support.
7076 \end_layout
7078 \begin_layout Itemize
7079 Allow unattended dumping to JMD.
7080 \end_layout
7082 \begin_layout Itemize
7083 Move to BSNES v083.
7084 \end_layout
7086 \begin_layout Itemize
7087 Switch back to 32-bit colors.
7088 \end_layout
7090 \begin_layout Itemize
7091 Add Lua function gui.color.
7092 \end_layout
7094 \begin_layout Itemize
7095 Use some new C++11 features in GCC 4.6.
7096 \end_layout
7098 \begin_layout Itemize
7099 Be prepared for core frequency changes.
7100 \end_layout
7102 \begin_layout Itemize
7103 Pass colors in one chunk from Lua.
7104 \end_layout
7106 \begin_layout Subsection
7107 rr0-beta18
7108 \end_layout
7110 \begin_layout Itemize
7111 New lua functions gui.line(), gui.status() and gui.circle(), memory.vma_count(),
7112  memory.read_vma() and memory.find_vma().
7113 \end_layout
7115 \begin_layout Itemize
7116 Numerious documentation fixups
7117 \end_layout
7119 \begin_layout Itemize
7120 RTC time format changed
7121 \end_layout
7123 \begin_layout Itemize
7124 Reformat flags display
7125 \end_layout
7127 \begin_layout Itemize
7128 Allow lua package name to be overridden
7129 \end_layout
7131 \begin_layout Itemize
7132 SDUMP (high-quality dumping).
7133 \end_layout
7135 \begin_layout Itemize
7136 Split platform support to plugins.
7137 \end_layout
7139 \begin_layout Itemize
7140 Make all sound plugins support basic sound commands
7141 \end_layout
7143 \begin_layout Itemize
7144 Support portaudio for sound.
7145 \end_layout
7147 \begin_layout Itemize
7148 Allow disable Lua/SDL searching.
7149 \end_layout
7151 \begin_layout Itemize
7152 Upconvert colors when copying lcscreen to screen.
7153 \end_layout
7155 \begin_layout Itemize
7156 Reorganize source tree.
7157 \end_layout
7159 \begin_layout Itemize
7160 Evdev joystick support.
7161 \end_layout
7163 \begin_layout Itemize
7164 Refactor more code into generic window code.
7165 \end_layout
7167 \begin_layout Subsection
7168 rr0-beta19
7169 \end_layout
7171 \begin_layout Itemize
7172 Refactor message handling.
7173 \end_layout
7175 \begin_layout Itemize
7176 Rework makefile
7177 \end_layout
7179 \begin_layout Itemize
7180 Documentation fixes
7181 \end_layout
7183 \begin_layout Itemize
7184 Finish pending saves before load/quit.
7185 \end_layout
7187 \begin_layout Itemize
7188 Wxwidgets graphics plugin.
7189 \end_layout
7191 \begin_layout Subsection
7192 rr0-beta20
7193 \end_layout
7195 \begin_layout Itemize
7196 Get rid of win32-crap.[ch]pp.
7197 \end_layout
7199 \begin_layout Itemize
7200 Move files around a lot.
7201 \end_layout
7203 \begin_layout Itemize
7204 Get rid of need for host C++ compiler.
7205 \end_layout
7207 \begin_layout Itemize
7208 Bsnes v084 core.
7209 \end_layout
7211 \begin_layout Itemize
7212 Refactor inter-component communication.
7213 \end_layout
7215 \begin_layout Itemize
7216 Fix zero luma.
7217 \end_layout
7219 \begin_layout Itemize
7220 Fix crash on multiline aliases.
7221 \end_layout
7223 \begin_layout Itemize
7224 Load/Save settings in wxwidgets gui.
7225 \end_layout
7227 \begin_layout Subsection
7228 rr0-beta21
7229 \end_layout
7231 \begin_layout Itemize
7232 Patch problems in bsnes core
7233 \end_layout
7235 \begin_layout Itemize
7236 SNES is little-endian, not big-endian!
7237 \end_layout
7239 \begin_layout Itemize
7240 Fix memory corruption in lcscreen::load()
7241 \end_layout
7243 \begin_layout Subsection
7244 rr0-beta22
7245 \end_layout
7247 \begin_layout Itemize
7248 Fix interpretting repeat counts in rrdata loading.
7249 \end_layout
7251 \begin_layout Itemize
7252 New lua callback: on_frame()
7253 \end_layout
7255 \begin_layout Itemize
7256 Remove calls to runtosave() that aren't supposed to be there
7257 \end_layout
7259 \begin_layout Itemize
7260 Lua function: movie.read_rtc()
7261 \end_layout
7263 \begin_layout Itemize
7264 Ignore src/fonts/font.cpp
7265 \end_layout
7267 \begin_layout Itemize
7268 Fix more bsnes core problems
7269 \end_layout
7271 \begin_layout Itemize
7272 Control bsnes random seeding
7273 \end_layout
7275 \begin_layout Itemize
7276 Pause-on-end
7277 \end_layout
7279 \begin_layout Itemize
7280 Some bsnes core debugging features (state dump and state hash)
7281 \end_layout
7283 \begin_layout Itemize
7284 Fix titlebar version number (no, the last version wasn't 'lsnes-0-beta21',
7285  it was 'lsnes rr0-beta21').
7286 \end_layout
7288 \begin_layout Subsection
7289 rr0-beta23
7290 \end_layout
7292 \begin_layout Itemize
7293 Fix memory corruption due to macro/field mixup
7294 \end_layout
7296 \begin_layout Itemize
7297 search-memory update
7298 \end_layout
7300 \begin_layout Itemize
7301 Allow direct-mapped framebuffer
7302 \end_layout
7304 \begin_layout Itemize
7305 SDL: Use SDL_ANYFORMAT if possible
7306 \end_layout
7308 \begin_layout Itemize
7309 SDMP2SOX: 2s delay modes.
7310 \end_layout
7312 \begin_layout Itemize
7313 Wxwidgets: Cleanups
7314 \end_layout
7316 \begin_layout Itemize
7317 Use sed -E, not sed -r.
7318  Fixes building on Mac OS X.
7319 \end_layout
7321 \begin_layout Itemize
7322 Wxwidgets: Save jukebox on exit
7323 \end_layout
7325 \begin_layout Itemize
7326 Fix RTC if using load-movie on savestate.
7327 \end_layout
7329 \begin_layout Itemize
7330 Fix crash related to full console mode.
7331 \end_layout
7333 \begin_layout Subsection
7334 rr0-beta24
7335 \end_layout
7337 \begin_layout Itemize
7338 Wxwidgets: Allow bringing application to foreground on Mac OS X.
7339 \end_layout
7341 \begin_layout Itemize
7342 Wxwidgets: Allow compiling on Mac OS X.
7343 \end_layout
7345 \begin_layout Itemize
7346 Use movie compare instead of movie hashing (faster save/load).
7347 \end_layout
7349 \begin_layout Itemize
7350 Lua: _SYSTEM table.
7351 \end_layout
7353 \begin_layout Subsection
7354 rr0-beta25
7355 \end_layout
7357 \begin_layout Itemize
7358 sdmp2sox: Pad soundtrack if using -l or -L.
7359 \end_layout
7361 \begin_layout Itemize
7362 sdmp2sox: Fix NTSC overscan.
7363 \end_layout
7365 \begin_layout Itemize
7366 sdmp2sox: Add AR correction mode.
7367 \end_layout
7369 \begin_layout Itemize
7370 call lua_close() when exiting.
7371 \end_layout
7373 \begin_layout Itemize
7374 Fix zip_writer bug causing warnings from info-zip and error from advzip.
7375 \end_layout
7377 \begin_layout Subsection
7378 rr0-beta26
7379 \end_layout
7381 \begin_layout Itemize
7382 Fix IPS patching code (use bsnes core IPS patcher).
7383 \end_layout
7385 \begin_layout Itemize
7386 Implement BPS patching (using bsnes core IPS patcher).
7387 \end_layout
7389 \begin_layout Itemize
7390 Add feature to load headered ROMs.
7391 \end_layout
7393 \begin_layout Subsection
7394 rr0-beta27
7395 \end_layout
7397 \begin_layout Itemize
7398 Show command names when showing keybindings
7399 \end_layout
7401 \begin_layout Subsection
7403 \end_layout
7405 \begin_layout Itemize
7406 Fix pause-on-end to be actually controllable
7407 \end_layout
7409 \begin_layout Itemize
7410 SDL: Poll all events in queue, not just first one (fixes slowness in command
7411  typing)
7412 \end_layout
7414 \begin_layout Itemize
7415 Wxwidgets: Fix ROM loading.
7416 \end_layout
7418 \begin_layout Subsection
7419 rr1-beta0
7420 \end_layout
7422 \begin_layout Itemize
7423 Lua: Add gui.textH, gui.textV, gui.textHV
7424 \end_layout
7426 \begin_layout Itemize
7427 Fix text colors on SDL on Mac OS X
7428 \end_layout
7430 \begin_layout Itemize
7431 Mode 'F' for finished in readonly mode.
7432 \end_layout
7434 \begin_layout Itemize
7435 Fix some WS errors.
7436 \end_layout
7438 \begin_layout Itemize
7439 Reliably pause after skip poll
7440 \end_layout
7442 \begin_layout Itemize
7443 Split UI and core into their own threads
7444 \end_layout
7446 \begin_layout Subsection
7447 rr1-beta1
7448 \end_layout
7450 \begin_layout Itemize
7451 Remove leftover dummy SRAM slot
7452 \end_layout
7454 \begin_layout Itemize
7455 Fix controller numbers.
7456 \end_layout
7458 \begin_layout Subsection
7459 rr1-beta2
7460 \end_layout
7462 \begin_layout Itemize
7463 Fix lsnes-dumpavi after interface change.
7464 \end_layout
7466 \begin_layout Itemize
7467 Also give BSNES patches for v085.
7468 \end_layout
7470 \begin_layout Itemize
7471 Pack movie data in memory.
7472 \end_layout
7474 \begin_layout Subsection
7475 rr1-beta3
7476 \end_layout
7478 \begin_layout Itemize
7479 Fix framecount/length given when loading movies.
7480 \end_layout
7482 \begin_layout Itemize
7483 Controller command memory leak fixes.
7484 \end_layout
7486 \begin_layout Itemize
7487 Don't leak palette if freeing screen object.
7488 \end_layout
7490 \begin_layout Subsection
7491 rr1-beta4
7492 \end_layout
7494 \begin_layout Itemize
7495 Detect revisions.
7496 \end_layout
7498 \begin_layout Itemize
7499 Wxwidgets: Allow controlling dumper from the menu.
7500 \end_layout
7502 \begin_layout Subsection
7503 rr1-beta5
7504 \end_layout
7506 \begin_layout Itemize
7507 Rewrite parts of manual
7508 \end_layout
7510 \begin_layout Itemize
7511 Lua: Make it work with Lua 5.2.
7512 \end_layout
7514 \begin_layout Subsection
7515 rr1-beta6
7516 \end_layout
7518 \begin_layout Itemize
7519 Win32: Fix compile errors.
7520 \end_layout
7522 \begin_layout Subsection
7523 rr1-beta7
7524 \end_layout
7526 \begin_layout Itemize
7527 Refactor controller input code.
7528 \end_layout
7530 \begin_layout Itemize
7531 Fix crash when using command line on SDL / Mac OS X.
7532 \end_layout
7534 \begin_layout Subsection
7535 rr1-beta8
7536 \end_layout
7538 \begin_layout Itemize
7539 Delete core/coroutine (obsolete)
7540 \end_layout
7542 \begin_layout Itemize
7543 Lag input display by one frame.
7544 \end_layout
7546 \begin_layout Itemize
7547 Rewind movie to beginning function.
7548 \end_layout
7550 \begin_layout Itemize
7551 Fix wrong frame number reported to Lua when repainting after loadstate
7552 \end_layout
7554 \begin_layout Itemize
7555 Support UI editing of jukebox
7556 \end_layout
7558 \begin_layout Itemize
7559 Wxwidgets: Save settings on exit.
7560 \end_layout
7562 \begin_layout Itemize
7563 Support ${project} for filenames
7564 \end_layout
7566 \begin_layout Itemize
7567 SDL: Fix command history
7568 \end_layout
7570 \begin_layout Subsection
7571 rr1-beta9
7572 \end_layout
7574 \begin_layout Itemize
7575 Fix some order-of-global-ctor bugs.
7576 \end_layout
7578 \begin_layout Subsection
7579 rr1-beta10
7580 \end_layout
7582 \begin_layout Itemize
7583 Fix crashes when quitting on Win32.
7584 \end_layout
7586 \begin_layout Subsection
7587 rr1-beta11
7588 \end_layout
7590 \begin_layout Itemize
7591 EVDEV: Queue keypresses from joystick, don't send directly
7592 \end_layout
7594 \begin_layout Itemize
7595 Wxwidgets: Load-Preserve that actually works.
7596 \end_layout
7598 \begin_layout Subsection
7599 rr1-beta12
7600 \end_layout
7602 \begin_layout Itemize
7603 Wxwidgets: GUI for memory search.
7604 \end_layout
7606 \begin_layout Itemize
7607 Warn about using synchronous queue in UI callback.
7608 \end_layout
7610 \begin_layout Subsection
7611 rr1-beta13
7612 \end_layout
7614 \begin_layout Itemize
7615 Remember last saved file for each ROM
7616 \end_layout
7618 \begin_layout Itemize
7619 Support MT dumping via boost.
7620 \end_layout
7622 \begin_layout Itemize
7623 Lua: input.raw
7624 \end_layout
7626 \begin_layout Itemize
7627 Lua: input.keyhook
7628 \end_layout
7630 \begin_layout Itemize
7631 Make mouse be ordinary input instead of special-casing
7632 \end_layout
7634 \begin_layout Itemize
7635 SDL: Don't screw up commands with NUL codepoints.
7636 \end_layout
7638 \begin_layout Subsection
7639 rr1-beta14
7640 \end_layout
7642 \begin_layout Itemize
7643 Merge status panel and main window
7644 \end_layout
7646 \begin_layout Itemize
7647 True movie slot support (the rest of it)
7648 \end_layout
7650 \begin_layout Itemize
7651 SDL: Fix compilation error
7652 \end_layout
7654 \begin_layout Itemize
7655 Elminate cross calls in dump menu code.
7656 \end_layout
7658 \begin_layout Subsection
7659 rr1-beta15
7660 \end_layout
7662 \begin_layout Itemize
7663 Cancel pending saves command
7664 \end_layout
7666 \begin_layout Itemize
7667 Wxwidgets: Code refactoring
7668 \end_layout
7670 \begin_layout Itemize
7671 Wxwidgets: Fix system -> reset
7672 \end_layout
7674 \begin_layout Itemize
7675 Wxwidgets: Read watch expressions in the right thread
7676 \end_layout
7678 \begin_layout Subsection
7679 rr1-beta16
7680 \end_layout
7682 \begin_layout Itemize
7683 Wxwidgets: Don't prompt for member when running Lua script (Lua doesn't
7684  support that).
7685 \end_layout
7687 \begin_layout Itemize
7688 Wxwidgets: 128 -> 1024 Autohold slots (in case more are needed).
7689 \end_layout
7691 \begin_layout Itemize
7692 Don't append trailing '-' to prefix when saving movie.
7693 \end_layout
7695 \begin_layout Itemize
7696 Fix ROM/savestate handling (don't let user mismatch ROM and savestates).
7697 \end_layout
7699 \begin_layout Subsection
7701 \end_layout
7703 \begin_layout Itemize
7704 Document memory watch syntax.
7705 \end_layout
7707 \begin_layout Subsection
7708 rr1-delta1
7709 \end_layout
7711 \begin_layout Itemize
7712 Fix unattended dumping (lsnes-dumpavi)
7713 \end_layout
7715 \begin_layout Itemize
7716 Support RAW dumping
7717 \end_layout
7719 \begin_layout Itemize
7720 Use adv_dumper instead of the old interface in lsnes-dumpavi (changes syntax)
7721 \end_layout
7723 \begin_layout Itemize
7724 Add option to control sample rate preturbation in AVI dumper
7725 \end_layout
7727 \begin_layout Subsection
7728 rr1-delta2
7729 \end_layout
7731 \begin_layout Itemize
7732 Wxwidgets: Fix dumper submodes
7733 \end_layout
7735 \begin_layout Itemize
7736 Set core controller types before loadstate
7737 \end_layout
7739 \begin_layout Subsection
7740 rr1-delta2epsilon1
7741 \end_layout
7743 \begin_layout Itemize
7744 Fix compiling with bsnes v086.
7745 \end_layout
7747 \begin_layout Subsection
7748 rr1-delta3
7749 \end_layout
7751 \begin_layout Itemize
7752 Don't prompt before quitting
7753 \end_layout
7755 \begin_layout Itemize
7756 Start unpaused, preserve pause/unpause over load.
7757 \end_layout
7759 \begin_layout Itemize
7760 Try to autodetect if ROM is headered.
7761 \end_layout
7763 \begin_layout Itemize
7764 Wxwidgets: Only bring up ROM patching screen if specifically requested.
7765 \end_layout
7767 \begin_layout Itemize
7768 Allow configuring some hotkeys.
7769 \end_layout
7771 \begin_layout Subsection
7772 rr1-delta4
7773 \end_layout
7775 \begin_layout Itemize
7776 Lots of code cleanups
7777 \end_layout
7779 \begin_layout Itemize
7780 Fix JMD compression (JMD dumping was broken)
7781 \end_layout
7783 \begin_layout Itemize
7784 Don't crash if Lua C function throws an exception.
7785 \end_layout
7787 \begin_layout Itemize
7788 Support bitmap drawing in Lua.
7789 \end_layout
7791 \begin_layout Itemize
7792 Fix bsnes v085/v086 patches.
7793 \end_layout
7795 \begin_layout Itemize
7796 Improve stability on win32.
7797 \end_layout
7799 \begin_layout Subsection
7800 rr1-delta4epsilon1
7801 \end_layout
7803 \begin_layout Itemize
7804 Don't corrupt movie if movie length is integer multiple of frames per page.
7805 \end_layout
7807 \begin_layout Subsection
7808 rr1-delta5
7809 \end_layout
7811 \begin_layout Itemize
7812 New Lua hooks: on_rewind, on_frame_emulated, on_idle, on_timer
7813 \end_layout
7815 \begin_layout Itemize
7816 New Lua functions: emulator_ready(), utime(), set_idle_timeout(), set_timer_time
7817 out(), bit.extract(), bit.value(), input.geta(), input.seta() and input.controllertyp
7819 \end_layout
7821 \begin_layout Itemize
7822 Wxwidgets: Fix internal focus lost (hotkeys stop working)
7823 \end_layout
7825 \begin_layout Itemize
7826 Wxwidgets: Fix broken modifiers
7827 \end_layout
7829 \begin_layout Itemize
7830 on_paint has parameter now.
7831 \end_layout
7833 \begin_layout Itemize
7834 Optional initital fill for bitmaps
7835 \end_layout
7837 \begin_layout Itemize
7838 Fix palette changing.
7839 \end_layout
7841 \begin_layout Itemize
7842 Optimize rendering a bit.
7843 \end_layout
7845 \begin_layout Itemize
7846 Bsnes v087 support.
7847 \end_layout
7849 \begin_layout Subsection
7850 rr1-delta5epsilon1
7851 \end_layout
7853 \begin_layout Itemize
7854 Movieinfo: Fix display of port #2 type.
7855 \end_layout
7857 \begin_layout Itemize
7858 Call on_input() after loadstate.
7859 \end_layout
7861 \begin_layout Subsection
7862 rr1-delta5epsilon2
7863 \end_layout
7865 \begin_layout Itemize
7866 Fix writing port2 data to movie.
7867 \end_layout
7869 \begin_layout Itemize
7870 Fix SRAM handling with Bsnes v087.
7871 \end_layout
7873 \begin_layout Subsection
7874 rr1-delta6
7875 \end_layout
7877 \begin_layout Itemize
7878 Library loading support
7879 \end_layout
7881 \begin_layout Itemize
7882 Built-in TSCC encoder
7883 \end_layout
7885 \begin_layout Itemize
7886 Hi-color (256T colors) dumping.
7887 \end_layout
7889 \begin_layout Itemize
7890 Dump over TCP/IP(v6)
7891 \end_layout
7893 \begin_layout Itemize
7894 Hidable status panel
7895 \end_layout
7897 \begin_layout Itemize
7898 Turbo toggle/hold
7899 \end_layout
7901 \begin_layout Itemize
7902 Adjustable sound volume
7903 \end_layout
7905 \begin_layout Itemize
7906 Screen scaling
7907 \end_layout
7909 \begin_layout Itemize
7910 Allow DnD into filename boxes
7911 \end_layout
7913 \begin_layout Itemize
7914 Configurable paths
7915 \end_layout
7917 \begin_layout Itemize
7918 Portaudio: Fix speaker popping at start
7919 \end_layout
7921 \begin_layout Itemize
7922 Lots of UI changes
7923 \end_layout
7925 \begin_layout Itemize
7926 Speed adjustment menu
7927 \end_layout
7929 \begin_layout Itemize
7930 Win32 joystick support
7931 \end_layout
7933 \begin_layout Itemize
7934 Lua: gui.rainbow and gui.box
7935 \end_layout
7937 \begin_layout Itemize
7938 Split key lists into classes (the key list was large!)
7939 \end_layout
7941 \begin_layout Itemize
7942 More save slots support
7943 \end_layout
7945 \begin_layout Itemize
7946 Wxwidgets (wxJoystick) joystick support
7947 \end_layout
7949 \begin_layout Subsection
7950 rr1-delta7
7951 \end_layout
7953 \begin_layout Itemize
7954 Lots of internal joystick refactoring
7955 \end_layout
7957 \begin_layout Itemize
7958 Evdev: Add mapping for BTN_TOOL_QUINTTAP
7959 \end_layout
7961 \begin_layout Itemize
7962 Wxwidgets: Settings mode (open settings without ROM)
7963 \end_layout
7965 \begin_layout Itemize
7966 Wxwidgets: Prompt key to use option
7967 \end_layout
7969 \begin_layout Itemize
7970 Wxwidgets: Fix crash if key goes away underneath
7971 \end_layout
7973 \begin_layout Itemize
7974 Wxwidgets: Fix mouse position in presence of scaling
7975 \end_layout
7977 \begin_layout Itemize
7978 AVI dumper: Mode 4 (high-quality resampling to common rate using SRC)
7979 \end_layout
7981 \begin_layout Itemize
7982 Wxwidgets: Redesign hotkeys dialog to avoid tree control (tree control doesn't
7983  seem to work well on WinXP)
7984 \end_layout
7986 \begin_layout Itemize
7987 Start paused option.
7988 \end_layout
7990 \begin_layout Subsection
7991 rr1-delta7epsilon1
7992 \end_layout
7994 \begin_layout Itemize
7995 AVI: ZMBV support
7996 \end_layout
7998 \begin_layout Itemize
7999 lsnes-dumpavi: Start Lua before starting dumper
8000 \end_layout
8002 \begin_layout Itemize
8003 AVI: Fix secondary audio in mode 4.
8004 \end_layout
8006 \begin_layout Subsection
8007 rr1-delta7epsilon2
8008 \end_layout
8010 \begin_layout Itemize
8011 AVI: Refactor ZMBV a bit.
8012 \end_layout
8014 \begin_layout Itemize
8015 Fix error reading analog values from movie file
8016 \end_layout
8018 \begin_layout Subsection
8019 rr1-delta8
8020 \end_layout
8022 \begin_layout Itemize
8023 Delayed reset support
8024 \end_layout
8026 \begin_layout Itemize
8027 Lua: memory.hash_region
8028 \end_layout
8030 \begin_layout Subsection
8031 rr1-delta8epsilon1
8032 \end_layout
8034 \begin_layout Itemize
8035 Rework the build system
8036 \end_layout
8038 \begin_layout Itemize
8039 Typing input support
8040 \end_layout
8042 \begin_layout Itemize
8043 Fix building with bsnes v086 and v087.
8044 \end_layout
8046 \begin_layout Itemize
8047 SDL: Save settings on exit
8048 \end_layout
8050 \begin_layout Itemize
8051 SDL: Command to enter command line mode with given command.
8052 \end_layout
8054 \begin_layout Itemize
8055 SDL: More advanced command editing.
8056 \end_layout
8058 \begin_layout Subsection
8059 rr1-delta9
8060 \end_layout
8062 \begin_layout Itemize
8063 wxMSW: Fix the 
8064 \begin_inset Quotes eld
8065 \end_inset
8067 arrow keys and enter don't work
8068 \begin_inset Quotes erd
8069 \end_inset
8071  problem
8072 \end_layout
8074 \begin_layout Itemize
8075 MSU-1 support
8076 \end_layout
8078 \begin_layout Itemize
8079 Show mode changes due to rewinding.
8080 \end_layout
8082 \begin_layout Itemize
8083 Unsafe rewind support
8084 \end_layout
8086 \begin_layout Itemize
8087 Fix directory transversal.
8088 \end_layout
8090 \begin_layout Subsection
8091 rr1-delta10
8092 \end_layout
8094 \begin_layout Itemize
8095 AVI: Sound mode 5 (48kHz high-quality)
8096 \end_layout
8098 \begin_layout Itemize
8099 Lua: Reset Lua VM
8100 \end_layout
8102 \begin_layout Itemize
8103 Map the SNES bus into address space
8104 \end_layout
8106 \begin_layout Itemize
8107 Fix loading memory watch files with CRLF line endings
8108 \end_layout
8110 \begin_layout Subsection
8111 rr1-delta10epsilon1
8112 \end_layout
8114 \begin_layout Itemize
8115 Map bsnes internal state into memory space
8116 \end_layout
8118 \begin_layout Itemize
8119 Fix the 
8120 \begin_inset Quotes eld
8121 \end_inset
8123 click on panel wedges the emulator
8124 \begin_inset Quotes erd
8125 \end_inset
8127  for real.
8128 \end_layout
8130 \begin_layout Itemize
8131 DnD movies/saves on the main window.
8132 \end_layout
8134 \begin_layout Subsection
8135 rr1-delta11
8136 \end_layout
8138 \begin_layout Itemize
8139 Split core bindings into own module.
8140 \end_layout
8142 \begin_layout Itemize
8143 Remember invalid settings
8144 \end_layout
8146 \begin_layout Itemize
8147 Support for modified Gambatte core for GB/GBC emulation.
8148 \end_layout
8150 \begin_layout Itemize
8151 Reload/swap ROM function
8152 \end_layout
8154 \begin_layout Subsection
8155 rr1-delta11epsilon1
8156 \end_layout
8158 \begin_layout Itemize
8159 Fix step poll function
8160 \end_layout
8162 \begin_layout Subsection
8163 rr1-delta12
8164 \end_layout
8166 \begin_layout Itemize
8167 Non-insane savestate anchoring
8168 \end_layout
8170 \begin_layout Subsection
8171 rr1-delta13
8172 \end_layout
8174 \begin_layout Itemize
8175 More Memory search methods
8176 \end_layout
8178 \begin_layout Itemize
8179 Preserve movie if loading in RO mode.
8180 \end_layout
8182 \begin_layout Itemize
8183 Fix a obscure case in timeline check
8184 \end_layout
8186 \begin_layout Itemize
8187 Revamp the entiere ROM loading code
8188 \end_layout
8190 \begin_layout Itemize
8191 Support DnD on ROMs
8192 \end_layout
8194 \begin_layout Itemize
8195 Revamp menu layout
8196 \end_layout
8198 \begin_layout Itemize
8199 Standalone hotkey config dialog
8200 \end_layout
8202 \begin_layout Itemize
8203 Show bindings in more user-friendly format
8204 \end_layout
8206 \begin_layout Subsection
8207 rr1-delta13epsilon1
8208 \end_layout
8210 \begin_layout Itemize
8211 Pipedec support
8212 \end_layout
8214 \begin_layout Itemize
8215 Fix uninitialized variables in bsnes v085
8216 \end_layout
8218 \begin_layout Subsection
8219 rr1-delta14
8220 \end_layout
8222 \begin_layout Itemize
8223 Merge gambatte core into mainline (from its own branch)
8224 \end_layout
8226 \begin_layout Itemize
8227 Wxwidgets: Show expected dump file formats
8228 \end_layout
8230 \begin_layout Itemize
8231 Memory watch: Data typing
8232 \end_layout
8234 \begin_layout Itemize
8235 lsnes internal MMIO area.
8236 \end_layout
8238 \begin_layout Itemize
8239 Wxwidgets: New memory watch editor
8240 \end_layout
8242 \begin_layout Itemize
8243 Hexadecimal memory watches
8244 \end_layout
8246 \begin_layout Itemize
8247 Wxwidgets: Monospaced panel
8248 \end_layout
8250 \begin_layout Itemize
8251 Wxwidgets: Split memory watches in panel
8252 \end_layout
8254 \begin_layout Itemize
8255 Wxwidgets: Disable VMAs in memory search
8256 \end_layout
8258 \begin_layout Itemize
8259 lsnes-dumpavi: Fix speed bug
8260 \end_layout
8262 \begin_layout Itemize
8263 Movie subtitle support
8264 \end_layout
8266 \begin_layout Itemize
8267 Fix rerecord count reporting
8268 \end_layout
8270 \begin_layout Itemize
8271 Don't trash movie when loading in readonly mode.
8272 \end_layout
8274 \begin_layout Subsection
8275 rr1-delta14epsilon1
8276 \end_layout
8278 \begin_layout Itemize
8279 Wxwidgets: Fix crashes on closing settings dialogs on Mac OS X.
8280 \end_layout
8282 \begin_layout Itemize
8283 Fix build on Mac OS X.
8284 \end_layout
8286 \begin_layout Itemize
8287 Lua: loopwrapper
8288 \end_layout
8290 \begin_layout Itemize
8291 Wxwidgets: Hidable messages window
8292 \end_layout
8294 \begin_layout Itemize
8295 Lua: input.joyset
8296 \end_layout
8298 \begin_layout Itemize
8299 Bsnes: Support inconsistent saves
8300 \end_layout
8302 \begin_layout Itemize
8303 Bsnes: Allow simulating saving every frame
8304 \end_layout
8306 \begin_layout Itemize
8307 Fix desync if savestate is loaded in readonly mode in certain conditions.
8308 \end_layout
8310 \begin_layout Itemize
8311 Wxwidgets: Fix save dialogs on Mac OS X.
8312 \end_layout
8314 \begin_layout Itemize
8315 Wxwidgets: Fix insane status width on Win32.
8316 \end_layout
8318 \begin_layout Itemize
8319 Wxwidgets: Fix autohold processing to be faster.
8320 \end_layout
8322 \begin_layout Itemize
8323 Wxwidgets: Allow loading ROMs and movies from commandline.
8324 \end_layout
8326 \begin_layout Subsection
8327 rr1-delta15
8328 \end_layout
8330 \begin_layout Itemize
8331 Be a bit smarter with --load
8332 \end_layout
8334 \begin_layout Itemize
8335 Rewrote higher-level parts of audio system
8336 \end_layout
8338 \begin_layout Itemize
8339 Tool to build commentary tracks
8340 \end_layout
8342 \begin_layout Itemize
8343 Lua: input.joyget
8344 \end_layout
8346 \begin_layout Itemize
8347 Gambatte: Add support for SVN358
8348 \end_layout
8350 \begin_layout Itemize
8351 Use builtin font when rendering status panel.
8352 \end_layout
8354 \begin_layout Itemize
8355 Option to detach memory watch to its own window.
8356 \end_layout
8358 \begin_layout Itemize
8359 Recent ROMs/Movies menu
8360 \end_layout
8362 \begin_layout Itemize
8363 Libao support
8364 \end_layout
8366 \begin_layout Itemize
8367 Useful lag counter for SNES games that autopoll
8368 \end_layout
8370 \begin_layout Itemize
8371 Fix buffer overflow in gambatte sound output
8372 \end_layout
8374 \begin_layout Subsection
8375 rr1-delta15epsilon1
8376 \end_layout
8378 \begin_layout Itemize
8379 Don't blow up on wxGTK if the window is hidden somehow
8380 \end_layout
8382 \begin_layout Itemize
8383 Support simultaneous drop of ROM and movie.
8384 \end_layout
8386 \begin_layout Itemize
8387 Gambatte: Don't save spurious SRAMs.
8388 \end_layout
8390 \begin_layout Itemize
8391 Make SGB ROMs actually usable.
8392 \end_layout
8394 \begin_layout Itemize
8395 Fix so that saved movies appear in recent movies.
8396 \end_layout
8398 \begin_layout Itemize
8399 Don't open multiple commentary editors at once.
8400 \end_layout
8402 \begin_layout Subsection
8403 rr1-delta15epsilon2
8404 \end_layout
8406 \begin_layout Itemize
8407 Lua: memory.readregion/memory.writeregion
8408 \end_layout
8410 \begin_layout Itemize
8411 Lua: memory.map{,s}{byte,word,dword,qword}
8412 \end_layout
8414 \begin_layout Itemize
8415 Lua: memory.map_structure
8416 \end_layout
8418 \begin_layout Itemize
8419 Lua: Fix bus_address for gambatte
8420 \end_layout
8422 \begin_layout Itemize
8423 Fix features dependent of bsnes debugger
8424 \end_layout
8426 \begin_layout Itemize
8427 Cleanup bsnes debugger logic
8428 \end_layout
8430 \begin_layout Itemize
8431 Fix resets in presence of save every frame
8432 \end_layout
8434 \begin_layout Subsection
8435 rr1-delta15epsilon3
8436 \end_layout
8438 \begin_layout Itemize
8439 Lua: input.lcid_to_pcid
8440 \end_layout
8442 \begin_layout Itemize
8443 Fix off-by-one bug with slot hashes
8444 \end_layout
8446 \begin_layout Itemize
8447 Fix crashes on certain memory watch expressions
8448 \end_layout
8450 \begin_layout Itemize
8451 Lua: memory.read_expr
8452 \end_layout
8454 \begin_layout Itemize
8455 Lua: Fix memory.read_expr on nil argument
8456 \end_layout
8458 \begin_layout Itemize
8459 Fix the code to compile on G++ 4.7
8460 \end_layout
8462 \begin_layout Itemize
8463 Change button_id to be a function pointer field, not a virtual method
8464 \end_layout
8466 \begin_layout Itemize
8467 Add bsnes patches to fix libsnes to compile on GCC 4.7
8468 \end_layout
8470 \begin_layout Itemize
8471 Gambatte: Always use legacy lag counting
8472 \end_layout
8474 \begin_layout Itemize
8475 Memory commands: Memory addresses are up to 16 hex digits, not up to 8
8476 \end_layout
8478 \begin_layout Itemize
8479 Fix analog controllers
8480 \end_layout
8482 \begin_layout Itemize
8483 Fix autohold menus
8484 \end_layout
8486 \begin_layout Itemize
8487 Fix button symbols in input display
8488 \end_layout
8490 \begin_layout Itemize
8491 Compensate for nuts bsnes superscope/justifier handling
8492 \end_layout
8494 \begin_layout Itemize
8495 Lua: Fix bit.extract boolean handling
8496 \end_layout
8498 \begin_layout Subsection
8499 rr1-delta16
8500 \end_layout
8502 \begin_layout Itemize
8503 Stop at movie end: Don't off-by-one
8504 \end_layout
8506 \begin_layout Itemize
8507 Fix crash closing lsnes with voice playback active.
8508 \end_layout
8510 \begin_layout Itemize
8511 Import/Export OggOpus for commentary tracks
8512 \end_layout
8514 \begin_layout Itemize
8515 16-button controllers.
8516 \end_layout
8518 \begin_layout Itemize
8519 Don't show nonexistent controllers in input display
8520 \end_layout
8522 \begin_layout Itemize
8523 Set voice record/playback volume from UI
8524 \end_layout
8526 \begin_layout Itemize
8527 Patches for gambatte SVN364.
8528 \end_layout
8530 \begin_layout Itemize
8531 Load markup (if exists) even without gamepack file.
8532 \end_layout
8534 \begin_layout Itemize
8535 Screen rotation & flipping
8536 \end_layout
8538 \begin_layout Itemize
8539 Lua: Some new bit functions
8540 \end_layout
8542 \begin_layout Itemize
8543 Auto-refresh voice streams on change.
8544 \end_layout
8546 \begin_layout Itemize
8547 Auto-refresh subtitles on change & new subtitle editor.
8548 \end_layout
8550 \begin_layout Itemize
8551 Fix music volume adjustment.
8552 \end_layout
8554 \begin_layout Subsection
8555 rr1-delta16epsilon1
8556 \end_layout
8558 \begin_layout Itemize
8559 Wxwidgets: Fix memory watch rendering.
8560 \end_layout
8562 \begin_layout Itemize
8563 Wxwidgets: Allow setting voice stream gain.
8564 \end_layout
8566 \begin_layout Itemize
8567 Wxwidgets: VU meters and volume adjustment.
8568 \end_layout
8570 \begin_layout Itemize
8571 Lua: Custom fonts support.
8572 \end_layout
8574 \begin_layout Itemize
8575 Lua: Fix methods stopping working when resetting Lua.
8576 \end_layout
8578 \begin_layout Itemize
8579 Fix loading standard-format movies in preserve (readonly) mode.
8580 \end_layout
8582 \begin_layout Subsection
8583 rr1-delta17
8584 \end_layout
8586 \begin_layout Itemize
8587 Primitive movie editor
8588 \end_layout
8590 \begin_layout Itemize
8591 Fix VU meter with no sound device.
8592 \end_layout
8594 \begin_layout Itemize
8595 Fix various undefined return values.
8596 \end_layout
8598 \begin_layout Itemize
8599 Show rates in VU meter window.
8600 \end_layout
8602 \begin_layout Subsection
8603 rr1-delta17epsilon1
8604 \end_layout
8606 \begin_layout Itemize
8607 Commentary tool: Set nominal bit rate and limit max bit rate.
8608 \end_layout
8610 \begin_layout Itemize
8611 Lua: Unconditionally reload host memory on loadstate
8612 \end_layout
8614 \begin_layout Itemize
8615 Lua: Query bindings, manipulate aliases, create inverse bindings
8616 \end_layout
8618 \begin_layout Itemize
8619 Lua: Fix crashes with resetting VM while some types of paint requests are
8620  in flight.
8621 \end_layout
8623 \begin_layout Itemize
8624 Lua: gui.text: Clip the text properly instead of corrupting memory in some
8625  cases.
8626 \end_layout
8628 \begin_layout Itemize
8629 Save screenshot header reliably
8630 \end_layout
8632 \begin_layout Itemize
8633 Lua: Backport input.get2 and input.set2
8634 \end_layout
8636 \begin_layout Itemize
8637 Lua: New controller info functions.
8638 \end_layout
8640 \begin_layout Itemize
8641 Movie editor: Fix reset delay counters to be the right way around.
8642 \end_layout
8644 \begin_layout Itemize
8645 Lua: on_snoop2
8646 \end_layout
8648 \begin_layout Itemize
8649 Lua: on_button and input.veto_button.
8650 \end_layout
8652 \begin_layout Subsection
8653 rr1-delta17epsilon2
8654 \end_layout
8656 \begin_layout Itemize
8657 Fix saving PNG screenshots on Win32.
8658 \end_layout
8660 \begin_layout Itemize
8661 Movie editor: Sweep axis.
8662 \end_layout
8664 \begin_layout Itemize
8665 Load selected slot in ro/rw/preserve/movie mode.
8666 \end_layout
8668 \begin_layout Itemize
8669 input.joyset: Preserve and invert user input.
8670 \end_layout
8672 \begin_layout Itemize
8673 Allow immediate saving at point of save (transfer saves).
8674 \end_layout
8676 \begin_layout Itemize
8677 Wxwidgets: Filter filenames in dialogs, autoappend extensions.
8678 \end_layout
8680 \begin_layout Itemize
8681 data/verysmall.font: Add missing glyph 70 (
8682 \begin_inset Quotes eld
8683 \end_inset
8686 \begin_inset Quotes erd
8687 \end_inset
8690 \end_layout
8692 \begin_layout Itemize
8693 Lua: Allow painting custom fonts with halo.
8694 \end_layout
8696 \begin_layout Itemize
8697 Fix memory value search to work on byte types.
8698 \end_layout
8700 \begin_layout Subsection
8701 rr1-delta17epsilon3
8702 \end_layout
8704 \begin_layout Itemize
8705 Fix status panel (and movie editor) flicker
8706 \end_layout
8708 \begin_layout Itemize
8709 Show effects of Lua in input display
8710 \end_layout
8712 \begin_layout Itemize
8713 Offer lsmv.backup as file filter too for load lsmv
8714 \end_layout
8716 \begin_layout Itemize
8717 Allow slowing down subframe advance 
8718 \end_layout
8720 \begin_layout Itemize
8721 Display current save slot information
8722 \end_layout
8724 \begin_layout Itemize
8725 Add snes9x fonts
8726 \end_layout
8728 \begin_layout Itemize
8729 Fix hotkeys stopping working after X-ing settings dialog
8730 \end_layout
8732 \begin_layout Itemize
8733 Movie editor: Fix bug if extending finished movie
8734 \end_layout
8736 \begin_layout Itemize
8737 Cap current_frame_first_subframe to movie size when recounting movie
8738 \end_layout
8740 \begin_layout Itemize
8741 Movie editor: Interpret ctrl+click as right click 
8742 \end_layout
8744 \end_body
8745 \end_document