lsnes-dumpavi: Support specifying dump length as overdump length
[lsnes.git] / manual.lyx
blob4141aeca3a290e29829cc216ba2f077ea6440a2e
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 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 Wxwidgets options
196 \end_layout
198 \begin_layout Subsubsection
199 --rom=<file>
200 \end_layout
202 \begin_layout Standard
203 Load <file> as ROM.
204 \end_layout
206 \begin_layout Subsubsection
207 <file>
208 \end_layout
210 \begin_layout Standard
211 Load <file> as ROM.
212 \end_layout
214 \begin_layout Subsubsection
215 --load=<file>
216 \end_layout
218 \begin_layout Standard
219 Load <file> as movie or savestate file on startup.
220 \end_layout
222 \begin_layout Subsubsection
223 --settings
224 \end_layout
226 \begin_layout Standard
227 Instead of starting the emulator, only display the settings.
228 \end_layout
230 \begin_layout Subsubsection
231 --lua=<file>
232 \end_layout
234 \begin_layout Standard
235 Run this Lua file on startup
236 \end_layout
238 \begin_layout Subsection
239 dump options (lsnes-dumpavi only)
240 \end_layout
242 \begin_layout Subsubsection
243 --rom=<file>
244 \end_layout
246 \begin_layout Standard
247 Load <file> as ROM.
248  Required.
249 \end_layout
251 \begin_layout Subsubsection
252 <filename>
253 \end_layout
255 \begin_layout Standard
256 Load <filename> as movie or savestate file on startup.
257  Required.
258 \end_layout
260 \begin_layout Subsubsection
261 --dumper=<dumper>
262 \end_layout
264 \begin_layout Standard
265 Set the dumper to use (required).
266  Use 'list' for listing of known dumpers.
267 \end_layout
269 \begin_layout Subsubsection
270 --firmware-path=<path>
271 \end_layout
273 \begin_layout Standard
274 Set path to look for firmware.
275 \end_layout
277 \begin_layout Subsubsection
278 --mode=<mode>
279 \end_layout
281 \begin_layout Standard
282 Set the mode to use (required for dumpers with multiple modes, forbidden
283  otherwise).
284  Use 'list' for known modes.
285 \end_layout
287 \begin_layout Subsubsection
288 --prefix=<prefix>
289 \end_layout
291 \begin_layout Standard
292 Set dump prefix.
293  Default is 
294 \begin_inset Quotes eld
295 \end_inset
297 avidump
298 \begin_inset Quotes erd
299 \end_inset
302 \end_layout
304 \begin_layout Subsubsection
305 --option=<name>=<value>
306 \end_layout
308 \begin_layout Standard
309 Set option <name> to value <value>.
310 \end_layout
312 \begin_layout Subsubsection
313 --length=<length>
314 \end_layout
316 \begin_layout Standard
317 Set number of frames to dump.
318  Mandatory, unless --overdump-length is specified.
319 \end_layout
321 \begin_layout Subsubsection
322 --overdump-length=<length>
323 \end_layout
325 \begin_layout Standard
326 Set number of frames to dump after movie end.
327  Mutually exclusive with --length.
328 \end_layout
330 \begin_layout Subsubsection
331 --lua=<script>
332 \end_layout
334 \begin_layout Standard
335 Run specified lua script (lsnes-dumpavi does not have initialization files).
336 \end_layout
338 \begin_layout Subsubsection
339 --load-library=<library>
340 \end_layout
342 \begin_layout Standard
343 Load the specified shared object / dynamic library / dynamic link library.
344 \end_layout
346 \begin_layout Subsection
347 lsnes settings directory
348 \end_layout
350 \begin_layout Standard
351 The lsnes settings directory is (in order of decreasing perference):
352 \end_layout
354 \begin_layout Itemize
355 Windows: %APPDATA%
356 \backslash
357 lsnes (if %APPDATA% exists)
358 \end_layout
360 \begin_layout Itemize
361 Unix: $XDG_CONFIG_HOME/lsnes (if $XDG_CONFIG_HOME exists)
362 \end_layout
364 \begin_layout Itemize
365 Unix: $HOME/.config/lsnes (if $HOME exists)
366 \end_layout
368 \begin_layout Itemize
369 All: .
370  (fallback default).
371 \end_layout
373 \begin_layout Standard
374 If leading directories do not exist, attempt to create them is made.
375 \end_layout
377 \begin_layout Section
378 Internal commands
379 \end_layout
381 \begin_layout Itemize
382 Commands beginning with '*' invoke the corresponding command without alias
383  expansion.
384 \end_layout
386 \begin_layout Itemize
387 If command starts with '+' (after possible '*'), the command is executed
388  as-is when button is pressed, and when button is released, it is executed
389  with '+' replaced by '-'.
390 \end_layout
392 \begin_layout Itemize
393 Commands without '+' execute only on negative edge (release).
394 \end_layout
396 \begin_layout Subsection
397 run-script <script>
398 \end_layout
400 \begin_layout Standard
401 Run <script> as if commands were entered on the command line.
402 \end_layout
404 \begin_layout Subsection
405 Memory manipulation
406 \end_layout
408 \begin_layout Standard
409 <address> may be decimal or hexadecimal (prefixed with '0x').
410  <value> can be hexadecimal (prefixed with '0x'), unsigned or signed (prefixed
411  with '-') decimal.
412 \end_layout
414 \begin_layout Standard
415 The available element <sizes> are:
416 \end_layout
418 \begin_layout Itemize
419 byte: 1 byte
420 \end_layout
422 \begin_layout Itemize
423 word: 2 bytes
424 \end_layout
426 \begin_layout Itemize
427 dword: 4 bytes
428 \end_layout
430 \begin_layout Itemize
431 qword: 8 bytes
432 \end_layout
434 \begin_layout Standard
435 When reading RAM and ROM, multi-byte reads/writes are big-endian.
436  When dealing with DSP memory, multi-byte reads/writes are native-endian
437  (do not use operand sizes exceeding DSP bitness, except dword is OK for
438  24-bit memory).
439 \end_layout
441 \begin_layout Subsubsection
442 read-<size> <address>
443 \end_layout
445 \begin_layout Standard
446 Read the value of byte in <address>.
447 \end_layout
449 \begin_layout Subsubsection
450 read-s<size> <address>
451 \end_layout
453 \begin_layout Standard
454 Read the value of signed byte in <address>.
455 \end_layout
457 \begin_layout Subsubsection
458 write-<size> <address> <value>
459 \end_layout
461 \begin_layout Standard
462 Write <value> to byte in address <address>.
463 \end_layout
465 \begin_layout Subsection
466 Main commands
467 \end_layout
469 \begin_layout Standard
470 These commands are not available in lsnesrc, but are available after ROM
471  has been loaded.
472 \end_layout
474 \begin_layout Subsubsection
475 quit-emulator
476 \end_layout
478 \begin_layout Standard
479 Quits the emulator.
480 \end_layout
482 \begin_layout Subsubsection
483 pause-emulator
484 \end_layout
486 \begin_layout Standard
487 Toggle paused/unpaused
488 \end_layout
490 \begin_layout Subsubsection
491 +advance-frame 
492 \end_layout
494 \begin_layout Standard
495 Advance frame.
496  If the button is still held after configurable timeout expires, game unpauses
497  for the duration frame advance is held.
498 \end_layout
500 \begin_layout Subsubsection
501 +advance-poll 
502 \end_layout
504 \begin_layout Standard
505 Advance subframe.
506  If the button is still held after configurable timeout expires, game unpauses
507  for the duration frame advance is held.
508 \end_layout
510 \begin_layout Subsubsection
511 advance-skiplag 
512 \end_layout
514 \begin_layout Standard
515 Skip to first poll in frame after current.
516 \end_layout
518 \begin_layout Subsubsection
519 reset 
520 \end_layout
522 \begin_layout Standard
523 Reset the SNES after this frame.
524 \end_layout
526 \begin_layout Subsubsection
527 load <filename> 
528 \end_layout
530 \begin_layout Standard
531 Load savestate <filename> in current mode.
532 \end_layout
534 \begin_layout Subsubsection
535 load-state <filename> 
536 \end_layout
538 \begin_layout Standard
539 Load savestate <filename> in readwrite mode.
540 \end_layout
542 \begin_layout Subsubsection
543 load-readonly <filename> 
544 \end_layout
546 \begin_layout Standard
547 Load savestate <filename> in readonly mode.
548 \end_layout
550 \begin_layout Subsubsection
551 load-preserve <filename> 
552 \end_layout
554 \begin_layout Standard
555 Load savestate <filename> in readonly mode, preserving current events.
556 \end_layout
558 \begin_layout Subsubsection
559 load-movie <filename> 
560 \end_layout
562 \begin_layout Standard
563 Load savestate <filename>, ignoring save part in readonly mode.
564 \end_layout
566 \begin_layout Subsubsection
567 save-state <filename> 
568 \end_layout
570 \begin_layout Standard
571 Save system state to <filename> as soon as possible.
572 \end_layout
574 \begin_layout Subsubsection
575 save-movie <filename> 
576 \end_layout
578 \begin_layout Standard
579 Save movie to <filename>.
580 \end_layout
582 \begin_layout Subsubsection
583 set-rwmode 
584 \end_layout
586 \begin_layout Standard
587 Set read-write mode.
588 \end_layout
590 \begin_layout Subsubsection
591 set-romode 
592 \end_layout
594 \begin_layout Standard
595 Set read-only mode
596 \end_layout
598 \begin_layout Subsubsection
599 toggle-rwmode 
600 \end_layout
602 \begin_layout Standard
603 Toggle between read-only and read-write modes.
604 \end_layout
606 \begin_layout Subsubsection
607 test-1, test-2, test-3
608 \end_layout
610 \begin_layout Standard
611 Internal test commands.
612  Don't use.
613 \end_layout
615 \begin_layout Subsubsection
616 take-screenshot <filename> 
617 \end_layout
619 \begin_layout Standard
620 Save screenshot to <filename>.
621 \end_layout
623 \begin_layout Subsubsection
624 +controller <class>-<#>-<button>
625 \end_layout
627 \begin_layout Standard
628 Press button <button> on controller <num> of class <class>.
629 \end_layout
631 \begin_layout Itemize
632 Class 'gamepad': A, B, X, Y, L, R, select, start, up, down, left, right,
633  ext0, ext1, ext2, ext3
634 \end_layout
636 \begin_layout Itemize
637 Class 'mouse': L, R
638 \end_layout
640 \begin_layout Itemize
641 Class 'superscope': trigger, cursor, turbo, pause
642 \end_layout
644 \begin_layout Itemize
645 Class 'justifier': trigger, start
646 \end_layout
648 \begin_layout Itemize
649 Class 'gb': A, B, select, start, up, down, left, right
650 \end_layout
652 \begin_layout Subsubsection
653 hold-controller <class>-<#>-<button>
654 \end_layout
656 \begin_layout Standard
657 Hold/unhold button <button> on controller <num> of class <class>.
658 \end_layout
660 \begin_layout Subsubsection
661 type-controller <class>-<#>-<button>
662 \end_layout
664 \begin_layout Standard
665 Hold/unhold button <button> on controller <num> of class <class> for the
666  next frame.
667  See +controller for button names.
668 \end_layout
670 \begin_layout Standard
671 Cauntion: Does not work properly if outside frame advance.
672 \end_layout
674 \begin_layout Subsubsection
675 +autofire-controller <class>-<#>-<button> [[<duty>] <cyclelen>]
676 \end_layout
678 \begin_layout Standard
679 Start autofire.
680  If duty is not specified, defaults to 1.
681  If <cyclelen> is not specified, defaults to 2.
682 \end_layout
684 \begin_layout Subsubsection
685 -autofire-controller <class>-<#>-<button> [[<duty>] <cyclelen>]
686 \end_layout
688 \begin_layout Standard
689 End autofire.
690 \end_layout
692 \begin_layout Subsubsection
693 autofire-controller <class>-<#>-<button> [[<duty>] <cyclelen>]
694 \end_layout
696 \begin_layout Standard
697 Toggle autofire.
698  If autofire is turned on, specified cycle is used.
699 \end_layout
701 \begin_layout Subsubsection
702 designate-position <class>-<#>-analog<n>
703 \end_layout
705 \begin_layout Standard
706 Designate position for analog pair.
707  <n> is only there if there are multiple axis pairs.
708 \end_layout
710 \begin_layout Subsubsection
711 repaint
712 \end_layout
714 \begin_layout Standard
715 Force a repaint.
716 \end_layout
718 \begin_layout Subsubsection
719 toggle-pause-on-end
720 \end_layout
722 \begin_layout Standard
723 Toggle pause on end flag.
724 \end_layout
726 \begin_layout Subsubsection
727 set-pause-on-end
728 \end_layout
730 \begin_layout Standard
731 Set pause on end flag.
732 \end_layout
734 \begin_layout Subsubsection
735 clear-pause-on-end
736 \end_layout
738 \begin_layout Standard
739 Clear pause on end flag.
740 \end_layout
742 \begin_layout Subsubsection
743 action <action> [<parameters>]
744 \end_layout
746 \begin_layout Standard
747 Run specified core action.
748 \end_layout
750 \begin_layout Subsection
751 Save jukebox 
752 \end_layout
754 \begin_layout Subsubsection
755 cycle-jukebox-backward
756 \end_layout
758 \begin_layout Standard
759 Cycle save jukebox backwards.
760 \end_layout
762 \begin_layout Subsubsection
763 cycle-jukebox-forward
764 \end_layout
766 \begin_layout Standard
767 Cycle save jukebox forwards
768 \end_layout
770 \begin_layout Subsubsection
771 load-jukebox
772 \end_layout
774 \begin_layout Standard
775 Do load from jukebox (current mode).
776 \end_layout
778 \begin_layout Subsubsection
779 save-jukebox
780 \end_layout
782 \begin_layout Standard
783 Do state save to jukebox.
784 \end_layout
786 \begin_layout Subsection
787 Lua 
788 \end_layout
790 \begin_layout Subsubsection
791 evaluate-lua <luacode>
792 \end_layout
794 \begin_layout Standard
795 Run Lua code <luacode> using built-in Lua interpretter.
796 \end_layout
798 \begin_layout Subsubsection
799 L <luacode>
800 \end_layout
802 \begin_layout Standard
803 Synonym for evaluate-lua.
804 \end_layout
806 \begin_layout Subsubsection
807 run-lua <script>
808 \end_layout
810 \begin_layout Standard
811 Run specified lua file using built-in Lua interpretter.
812 \end_layout
814 \begin_layout Subsubsection
815 reset-lua
816 \end_layout
818 \begin_layout Standard
819 Clear the Lua VM state and restore to factory defaults.
820 \end_layout
822 \begin_layout Subsection
823 Memory watch
824 \end_layout
826 \begin_layout Subsubsection
827 add-watch <name> <expression>
828 \end_layout
830 \begin_layout Standard
831 Adds new watch (or modifies old one).
832 \end_layout
834 \begin_layout Subsubsection
835 remove-watch <name>
836 \end_layout
838 \begin_layout Standard
839 Remove a watch.
840 \end_layout
842 \begin_layout Subsection
843 Sound 
844 \end_layout
846 \begin_layout Subsubsection
847 enable-sound <on/off> 
848 \end_layout
850 \begin_layout Standard
851 Enable/Disable sound.
852 \end_layout
854 \begin_layout Subsection
855 Misc.
856 \end_layout
858 \begin_layout Subsubsection
859 reload-rom [<file>]
860 \end_layout
862 \begin_layout Standard
863 Reloads the main ROM image from <file>.
864 \end_layout
866 \begin_layout Subsubsection
867 +tangent
868 \end_layout
870 \begin_layout Standard
871 Tangent for recording voice for commentary track.
872  While pressed, record a stream.
873 \end_layout
875 \begin_layout Subsubsection
876 advance-subframe-timeout
877 \end_layout
879 \begin_layout Standard
880 Subframe advance timeout in milliseconds.
881  Default is 100.
882 \end_layout
884 \begin_layout Section
885 Settings
886 \end_layout
888 \begin_layout Subsection
889 Core settings
890 \end_layout
892 \begin_layout Subsection
893 AVI dumper settings
894 \end_layout
896 \begin_layout Subsubsection
897 avi-large
898 \end_layout
900 \begin_layout Standard
901 AVI dumper: Always dump at 512x448 or 512x478 regardless of what the console
902  outputs.
903 \end_layout
905 \begin_layout Subsubsection
906 avi-left-border
907 \end_layout
909 \begin_layout Standard
910 AVI dumper: Set the default left border thickness (unless lua overrides)
911  for dumps.
912  Range 0-8191.
913  Default is 0.
914 \end_layout
916 \begin_layout Subsubsection
917 avi-right-border
918 \end_layout
920 \begin_layout Standard
921 AVI dumper: Set the default right border thickness (unless lua overrides)
922  for dumps.
923  Range 0-8191.
924  Default is 0.
925 \end_layout
927 \begin_layout Subsubsection
928 avi-top-border
929 \end_layout
931 \begin_layout Standard
932 AVI dumper: Set the default top border thickness (unless lua overrides)
933  for dumps.
934  Range 0-8191.
935  Default is 0.
936 \end_layout
938 \begin_layout Subsubsection
939 avi-bottom-border
940 \end_layout
942 \begin_layout Standard
943 AVI dumper: Set the default bottom border thickness (unless lua overrides)
944  for dumps.
945  Range 0-8191.
946  Default is 0.
947 \end_layout
949 \begin_layout Subsubsection
950 avi-maxframes
951 \end_layout
953 \begin_layout Standard
954 AVI dumper: Maximum number of frames per dump segment (0 => unlimited).
955  Range 0-999999999.
956  Default is 0.
957 \end_layout
959 \begin_layout Subsubsection
960 avi-compresison
961 \end_layout
963 \begin_layout Standard
964 AVI dumper: Compression level (0-18).
965 \end_layout
967 \begin_layout Itemize
968 Compression levels 10 and above are not compatible with stock CSCD codec.
969 \end_layout
971 \begin_layout Itemize
972 Recomended level is 7.
973 \end_layout
975 \begin_layout Subsubsection
976 avi-soundrate
977 \end_layout
979 \begin_layout Standard
980 AVI dumper: Set method of determining the sound rate.
981 \end_layout
983 \begin_layout Itemize
984 0: Pick nearest of 8, 11.025, 12, 16, 22.05, 24, 32, 44.1, 48, 64, 88.2, 96,
985  128, 176.4 and 192 kHz.
986 \end_layout
988 \begin_layout Itemize
989 1: Round down to nearest integer.
990 \end_layout
992 \begin_layout Itemize
993 2: Round up to nearest ingeter.
994 \end_layout
996 \begin_layout Itemize
997 3: Multiply by denominator.
998 \end_layout
1000 \begin_layout Itemize
1001 4: High quality 44.1kHz (SRC needed).
1002 \end_layout
1004 \begin_layout Itemize
1005 5: High quality 48kHz (SRC needed).
1006 \end_layout
1008 \begin_layout Subsection
1009 JMD options
1010 \end_layout
1012 \begin_layout Subsubsection
1013 jmd-compression
1014 \end_layout
1016 \begin_layout Standard
1017 JMD dumper: Compression level (0-9).
1018 \end_layout
1020 \begin_layout Section
1021 Movie editor
1022 \end_layout
1024 \begin_layout Itemize
1025 The editor edits in-memory movie.
1026 \end_layout
1028 \begin_layout Itemize
1029 Because past can't be edited and readwrite mode doesn't allow future, editing
1030  only works in 
1031 \emph on
1032 read only
1033 \emph default
1034  mode.
1035 \end_layout
1037 \begin_layout Itemize
1038 Keyboard triggers the normal hotkeys and bindings.
1039 \end_layout
1041 \begin_layout Subsection
1042 Left button actions
1043 \end_layout
1045 \begin_layout Itemize
1046 Clicking on cell in future (indicated by lack of redish background) toggles
1047  it (if it is a button) or prompts for a value (if it is an axis)
1048 \end_layout
1050 \begin_layout Itemize
1051 Dragging vertically toggles sequence of buttons or changes a sequence of
1052  axis values.
1053 \end_layout
1055 \begin_layout Subsection
1056 Right button actions
1057 \end_layout
1059 \begin_layout Standard
1060 The right mouse button pops up a context-sensitive menu:
1061 \end_layout
1063 \begin_layout Itemize
1064 Toggle <something>: Toggle this button
1065 \end_layout
1067 \begin_layout Itemize
1068 Change <something>: Change this axis value
1069 \end_layout
1071 \begin_layout Itemize
1072 Insert frame after: Insert a frame after this frame
1073 \end_layout
1075 \begin_layout Itemize
1076 Append frame: Append a frame to movie
1077 \end_layout
1079 \begin_layout Itemize
1080 Append frames: Append specified number of frames to movie
1081 \end_layout
1083 \begin_layout Itemize
1084 Delete frame: Delete this frame
1085 \end_layout
1087 \begin_layout Itemize
1088 Delete subframe: Delete this subframe
1089 \end_layout
1091 \begin_layout Itemize
1092 Truncate movie: Delete this subframe and everything after it.
1093 \end_layout
1095 \begin_layout Itemize
1096 Scroll to frame: Prompt for a frame and scroll the display to that frame.
1097 \end_layout
1099 \begin_layout Itemize
1100 Scroll to current frame: Scroll the display to current position
1101 \end_layout
1103 \begin_layout Itemize
1104 Run to frame: Prompts for frame and runs the emulation to that frame.
1105 \end_layout
1107 \begin_layout Itemize
1108 Change number of lines visible: Change the height of the movie display (1
1109  to 255).
1110 \end_layout
1112 \begin_layout Itemize
1113 Lock scroll to playback: While playing back or rewinding movies, the display
1114  will follow if enabled.
1115 \end_layout
1117 \begin_layout Section
1118 Memory watch expression syntax
1119 \end_layout
1121 \begin_layout Standard
1122 Memory watch expressions are in RPN (Reverse Polish Notation).
1123  At the end of expression, the top entry on stack is taken as the final
1124  result.
1125 \end_layout
1127 \begin_layout Standard
1128 Notations:
1129 \end_layout
1131 \begin_layout Itemize
1132 Evaluation order is strictly left to right.
1133 \end_layout
1135 \begin_layout Itemize
1136 a is the entry on top of stack
1137 \end_layout
1139 \begin_layout Itemize
1140 b is the entry immediately below top of stack
1141 \end_layout
1143 \begin_layout Itemize
1144 ; separates values to be pushed (no intermediate pop).
1145 \end_layout
1147 \begin_layout Itemize
1148 After end of element, all used stack slots are popped and all results are
1149  pushed.
1150 \end_layout
1152 \begin_layout Itemize
1153 When pushing multiple values, the pushes occur in order shown.
1154 \end_layout
1156 \begin_layout Standard
1157 The following operators are available:
1158 \end_layout
1160 \begin_layout Itemize
1161 + : a + b
1162 \end_layout
1164 \begin_layout Itemize
1165 - : a - b
1166 \end_layout
1168 \begin_layout Itemize
1169 * : a * b
1170 \end_layout
1172 \begin_layout Itemize
1173 / : a / b
1174 \end_layout
1176 \begin_layout Itemize
1177 % : a % b
1178 \end_layout
1180 \begin_layout Itemize
1181 a : atan(a)
1182 \end_layout
1184 \begin_layout Itemize
1185 b : read_signed_byte(a)
1186 \end_layout
1188 \begin_layout Itemize
1189 c : cos(a)
1190 \end_layout
1192 \begin_layout Itemize
1193 d : read_signed_dword(a)
1194 \end_layout
1196 \begin_layout Itemize
1197 i : quotent(a / b)
1198 \end_layout
1200 \begin_layout Itemize
1201 p :
1202 \begin_inset Formula $\pi$
1203 \end_inset
1206 \end_layout
1208 \begin_layout Itemize
1209 q : read_signed_qword(a)
1210 \end_layout
1212 \begin_layout Itemize
1213 r : sqrt(a)
1214 \end_layout
1216 \begin_layout Itemize
1217 s : sin(a)
1218 \end_layout
1220 \begin_layout Itemize
1221 t : tan(a)
1222 \end_layout
1224 \begin_layout Itemize
1225 u : a; a
1226 \end_layout
1228 \begin_layout Itemize
1229 w : read_signed_word(a)
1230 \end_layout
1232 \begin_layout Itemize
1233 A : atan2(a, b)
1234 \end_layout
1236 \begin_layout Itemize
1237 B : read_unsigned_byte(a)
1238 \end_layout
1240 \begin_layout Itemize
1241 C<number>z : Push number <number> to stack.
1242 \end_layout
1244 \begin_layout Itemize
1245 D : read_unsigned_dword(a)
1246 \end_layout
1248 \begin_layout Itemize
1249 C0x<number>z : Push number <number> (hexadecimal) to stack.
1250 \end_layout
1252 \begin_layout Itemize
1253 H<digit> : Set hexadecimal mode with specified number of digits (use A-G
1254  for 10-16 digits).
1255 \end_layout
1257 \begin_layout Itemize
1258 Q : read_unsigned_qword(a)
1259 \end_layout
1261 \begin_layout Itemize
1262 R<digit> : round a to <digit> digits.
1263 \end_layout
1265 \begin_layout Itemize
1266 W : read_unsigned_word(a)
1267 \end_layout
1269 \begin_layout Subsection
1270 Example:
1271 \end_layout
1273 \begin_layout Standard
1274 C0x007e0878zWC0x007e002czW-
1275 \end_layout
1277 \begin_layout Enumerate
1278 Push value 0x7e0878 on top of stack (C0x007e0878z).
1279 \end_layout
1281 \begin_layout Enumerate
1282 Pop the value on top of stack (0x7e0878), read word value at that address
1283  and push the result,call it x1 (W).
1284 \end_layout
1286 \begin_layout Enumerate
1287 Push value 0x7e002c on top of stack (C0x007e002cz).
1288 \end_layout
1290 \begin_layout Enumerate
1291 Pop the value on top of stack (0x7e002c), read word value at that address
1292  and push the result,call it x2 (W).
1293 \end_layout
1295 \begin_layout Enumerate
1296 Pop the two top numbers on stack, x1 and x2, substract x1 from x2 and push
1297  x2 - x1 (-).
1298 \end_layout
1300 \begin_layout Enumerate
1301 Since the expression ends, the final memory watch result is the top one
1302  on stack, which is x2 - x1.
1303 \end_layout
1305 \begin_layout Section
1306 Modifier and key names:
1307 \end_layout
1309 \begin_layout Subsection
1310 wxWidgets platform
1311 \end_layout
1313 \begin_layout Subsubsection
1314 Modifier names:
1315 \end_layout
1317 \begin_layout Standard
1318 Following modifier names are known:
1319 \end_layout
1321 \begin_layout Itemize
1323 \end_layout
1325 \begin_layout Itemize
1326 ctrl
1327 \end_layout
1329 \begin_layout Itemize
1330 shift 
1331 \end_layout
1333 \begin_layout Itemize
1334 meta
1335 \end_layout
1337 \begin_layout Itemize
1338 cmd (Mac OS X only)
1339 \end_layout
1341 \begin_layout Subsubsection
1342 Key names:
1343 \end_layout
1345 \begin_layout Standard
1346 Following key names are known:
1347 \end_layout
1349 \begin_layout Itemize
1350 back, tab, return, escape, space, exclaim, quotedbl, hash, dollar, percent,
1351  ampersand, quote, leftparen, rightparen, asterisk, plus, comma, minus,
1352  period, slash, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, colon, semicolon, less, equals,
1353  greater, question, at, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p,
1354  q, r, s, t, u, v, w, x, y, z, leftbracket, backslash, rightbracket, caret,
1355  underscore, backquote, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p,
1356  q, r, s, t, u, v, w, x, y, z, leftcurly, pipe, rightcurly, tilde, delete,
1357  start, lbutton, rbutton, cancel, mbutton, clear, shift, alt, control, menu,
1358  pause, capital, end, home, lefT, up, right, down, select, print, execute,
1359  snapshot, insert, help, numpad0, numpad1, numpad2, numpad3, numpad4, numpad5,
1360  numpad6, numpad7, numpad8, numpad9, multiply, add, separator, subtract,
1361  decimal, divide, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13,
1362  f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, numlock, scroll,
1363  pageup, pagedown, numpad_space, numpad_tab, numpad_enter, numpad_f1, numpad_f2,
1364  numpad_f3, numpad_f4, numpad_home, numpad_left, numpad_up, numpad_right,
1365  numpad_down, numpad_pageup, numpad_pagedown, numpad_end, numpad_begin,
1366  numpad_insert, numpad_delete, numpad_equal, numpad_multiply, numpad_add,
1367  numpad_separator, numpad_subtract, numpad_decimal, numpad_divide, windows_left,
1368  windows_right, windows_menu, command, special1, special2, special3, special4,
1369  special5, special6, special7, special8, special9, special10, special11,
1370  special12, special13, special14, special15, special16, special17, special18,
1371  special19, special20
1372 \end_layout
1374 \begin_layout Section
1375 Movie file format
1376 \end_layout
1378 \begin_layout Standard
1379 Movie file is .zip archive in itself, normal ZIP archive tools work on it
1380  (note: If you recompress it, do not use compression methods other than
1381  store and deflate and especially do not use encryption of any kind).
1382 \end_layout
1384 \begin_layout Subsection
1385 Detecting clean start/SRAM/Savestate
1386 \end_layout
1388 \begin_layout Itemize
1389 If file has member 
1390 \begin_inset Quotes eld
1391 \end_inset
1393 savestate
1394 \begin_inset Quotes erd
1395 \end_inset
1397  it is savestate, otherwise:
1398 \end_layout
1400 \begin_layout Itemize
1401 If file has members with names starting 
1402 \begin_inset Quotes eld
1403 \end_inset
1405 moviesram.
1406 \begin_inset Quotes erd
1407 \end_inset
1409  it is movie starting from SRAM, otherwise:
1410 \end_layout
1412 \begin_layout Itemize
1413 It is movie starting from clear state.
1414 \end_layout
1416 \begin_layout Subsection
1417 Member: gametype
1418 \end_layout
1420 \begin_layout Standard
1421 Type of game ROM and region (as one line).
1422  Valid values are:
1423 \end_layout
1425 \begin_layout Standard
1426 \begin_inset Tabular
1427 <lyxtabular version="3" rows="8" columns="3">
1428 <features tabularvalignment="middle">
1429 <column alignment="center" valignment="top" width="0">
1430 <column alignment="center" valignment="top" width="0">
1431 <column alignment="center" valignment="top" width="0">
1432 <row>
1433 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
1434 \begin_inset Text
1436 \begin_layout Plain Layout
1437 Value
1438 \end_layout
1440 \end_inset
1441 </cell>
1442 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
1443 \begin_inset Text
1445 \begin_layout Plain Layout
1446 System
1447 \end_layout
1449 \end_inset
1450 </cell>
1451 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
1452 \begin_inset Text
1454 \begin_layout Plain Layout
1455 Region
1456 \end_layout
1458 \end_inset
1459 </cell>
1460 </row>
1461 <row>
1462 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1463 \begin_inset Text
1465 \begin_layout Plain Layout
1466 snes_pal
1467 \end_layout
1469 \end_inset
1470 </cell>
1471 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1472 \begin_inset Text
1474 \begin_layout Plain Layout
1475 Super NES
1476 \end_layout
1478 \end_inset
1479 </cell>
1480 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
1481 \begin_inset Text
1483 \begin_layout Plain Layout
1485 \end_layout
1487 \end_inset
1488 </cell>
1489 </row>
1490 <row>
1491 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1492 \begin_inset Text
1494 \begin_layout Plain Layout
1495 sgb_pal
1496 \end_layout
1498 \end_inset
1499 </cell>
1500 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1501 \begin_inset Text
1503 \begin_layout Plain Layout
1504 Super Game Boy
1505 \end_layout
1507 \end_inset
1508 </cell>
1509 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
1510 \begin_inset Text
1512 \begin_layout Plain Layout
1514 \end_layout
1516 \end_inset
1517 </cell>
1518 </row>
1519 <row>
1520 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1521 \begin_inset Text
1523 \begin_layout Plain Layout
1524 snes_ntsc
1525 \end_layout
1527 \end_inset
1528 </cell>
1529 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1530 \begin_inset Text
1532 \begin_layout Plain Layout
1533 Super NES
1534 \end_layout
1536 \end_inset
1537 </cell>
1538 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
1539 \begin_inset Text
1541 \begin_layout Plain Layout
1542 NTSC
1543 \end_layout
1545 \end_inset
1546 </cell>
1547 </row>
1548 <row>
1549 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1550 \begin_inset Text
1552 \begin_layout Plain Layout
1553 sgb_ntsc
1554 \end_layout
1556 \end_inset
1557 </cell>
1558 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1559 \begin_inset Text
1561 \begin_layout Plain Layout
1562 Super Game Boy
1563 \end_layout
1565 \end_inset
1566 </cell>
1567 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
1568 \begin_inset Text
1570 \begin_layout Plain Layout
1571 NTSC
1572 \end_layout
1574 \end_inset
1575 </cell>
1576 </row>
1577 <row>
1578 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1579 \begin_inset Text
1581 \begin_layout Plain Layout
1583 \end_layout
1585 \end_inset
1586 </cell>
1587 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1588 \begin_inset Text
1590 \begin_layout Plain Layout
1591 BS-X (non-slotted)
1592 \end_layout
1594 \end_inset
1595 </cell>
1596 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
1597 \begin_inset Text
1599 \begin_layout Plain Layout
1600 NTSC
1601 \end_layout
1603 \end_inset
1604 </cell>
1605 </row>
1606 <row>
1607 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1608 \begin_inset Text
1610 \begin_layout Plain Layout
1611 bsxslotted
1612 \end_layout
1614 \end_inset
1615 </cell>
1616 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1617 \begin_inset Text
1619 \begin_layout Plain Layout
1620 BS-X (slotted)
1621 \end_layout
1623 \end_inset
1624 </cell>
1625 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
1626 \begin_inset Text
1628 \begin_layout Plain Layout
1629 NTSC
1630 \end_layout
1632 \end_inset
1633 </cell>
1634 </row>
1635 <row>
1636 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
1637 \begin_inset Text
1639 \begin_layout Plain Layout
1640 sufamiturbo
1641 \end_layout
1643 \end_inset
1644 </cell>
1645 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
1646 \begin_inset Text
1648 \begin_layout Plain Layout
1649 Sufami Turbo
1650 \end_layout
1652 \end_inset
1653 </cell>
1654 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
1655 \begin_inset Text
1657 \begin_layout Plain Layout
1658 NTSC
1659 \end_layout
1661 \end_inset
1662 </cell>
1663 </row>
1664 </lyxtabular>
1666 \end_inset
1669 \end_layout
1671 \begin_layout Standard
1672 Frame rates are:
1673 \end_layout
1675 \begin_layout Standard
1676 \begin_inset Tabular
1677 <lyxtabular version="3" rows="3" columns="2">
1678 <features tabularvalignment="middle">
1679 <column alignment="center" valignment="top" width="0">
1680 <column alignment="center" valignment="top" width="0">
1681 <row>
1682 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
1683 \begin_inset Text
1685 \begin_layout Plain Layout
1686 Region
1687 \end_layout
1689 \end_inset
1690 </cell>
1691 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
1692 \begin_inset Text
1694 \begin_layout Plain Layout
1695 Framerate (fps)
1696 \end_layout
1698 \end_inset
1699 </cell>
1700 </row>
1701 <row>
1702 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1703 \begin_inset Text
1705 \begin_layout Plain Layout
1707 \end_layout
1709 \end_inset
1710 </cell>
1711 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
1712 \begin_inset Text
1714 \begin_layout Plain Layout
1715 322445/6448
1716 \end_layout
1718 \end_inset
1719 </cell>
1720 </row>
1721 <row>
1722 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
1723 \begin_inset Text
1725 \begin_layout Plain Layout
1726 NTSC
1727 \end_layout
1729 \end_inset
1730 </cell>
1731 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
1732 \begin_inset Text
1734 \begin_layout Plain Layout
1735 10738636/178683
1736 \end_layout
1738 \end_inset
1739 </cell>
1740 </row>
1741 </lyxtabular>
1743 \end_inset
1746 \end_layout
1748 \begin_layout Subsection
1749 Member: port1
1750 \end_layout
1752 \begin_layout Standard
1753 Contains type of port #1 (as one line).
1754  Valid values are 'none', 'gamepad', 'multitap' and 'mouse'.
1755  If not present, defaults to 'gamepad'.
1756 \end_layout
1758 \begin_layout Subsection
1759 Member: port2
1760 \end_layout
1762 \begin_layout Standard
1763 Contains type of port #2 (as one line).
1764  Valid values are 'none', 'gamepad', 'multitap', 'mouse', 'superscope',
1765  'justifier' and 'justifiers'.
1766  If not present, defaults to 'none'.
1767 \end_layout
1769 \begin_layout Subsection
1770 Member: gamename
1771 \end_layout
1773 \begin_layout Standard
1774 Contains name of the game (as one line).
1775 \end_layout
1777 \begin_layout Subsection
1778 Member: authors
1779 \end_layout
1781 \begin_layout Standard
1782 Contains authors, one per line.
1783  Part before '|' is the full name, part after is the nickname.
1784 \end_layout
1786 \begin_layout Subsection
1787 Member: systemid
1788 \end_layout
1790 \begin_layout Standard
1791 Always 
1792 \begin_inset Quotes eld
1793 \end_inset
1795 lsnes-rr1
1796 \begin_inset Quotes erd
1797 \end_inset
1799  (one line).
1800  Used to reject other saves.
1801 \end_layout
1803 \begin_layout Subsection
1804 Member: controlsversion
1805 \end_layout
1807 \begin_layout Standard
1808 Always 
1809 \begin_inset Quotes eld
1810 \end_inset
1813 \begin_inset Quotes erd
1814 \end_inset
1816  (one line).
1817  Used to identify what controls are there.
1818 \end_layout
1820 \begin_layout Subsection
1821 Member: 
1822 \begin_inset Quotes eld
1823 \end_inset
1825 coreversion
1826 \begin_inset Quotes erd
1827 \end_inset
1830 \end_layout
1832 \begin_layout Standard
1833 Contains bsnes core version number (as one line).
1834 \end_layout
1836 \begin_layout Subsection
1837 Member: projectid
1838 \end_layout
1840 \begin_layout Standard
1841 Contains project ID (as one line).
1842  Used to identify if two movies are part of the same project.
1843 \end_layout
1845 \begin_layout Subsection
1846 Member: {rom,slota,slotb}{,xml}.sha256
1847 \end_layout
1849 \begin_layout Standard
1850 Contains SHA-256 of said ROM or ROM mapping file (as one line).
1851  Absent if corresponding file is absent.
1852 \end_layout
1854 \begin_layout Subsection
1855 Member: moviesram.<name>
1856 \end_layout
1858 \begin_layout Standard
1859 Raw binary startup SRAM of kind <name>.
1860  Only present in savestates and movies starting from SRAM.
1861 \end_layout
1863 \begin_layout Subsection
1864 Member: saveframe
1865 \end_layout
1867 \begin_layout Standard
1868 Contains frame number (as one line) of frame movie was saved on.
1869  Only present in savestates.
1870 \end_layout
1872 \begin_layout Subsection
1873 Member: lagcounter
1874 \end_layout
1876 \begin_layout Standard
1877 Current value of lag counter (as one line).
1878  Only present in savestates.
1879 \end_layout
1881 \begin_layout Subsection
1882 Member: pollcounters
1883 \end_layout
1885 \begin_layout Standard
1886 Contains poll counters (currently 100 of them), one per line.
1887  Each line is raw poll count if DRDY is set for it.
1888  Otherwise it is negative poll count minus one.
1889  Only present in savestates.
1890 \end_layout
1892 \begin_layout Subsection
1893 Member: hostmemory
1894 \end_layout
1896 \begin_layout Standard
1897 Raw binary dump of host memory.
1898  Only present in savestates.
1899 \end_layout
1901 \begin_layout Subsection
1902 Member: savestate
1903 \end_layout
1905 \begin_layout Standard
1906 The raw binary savestate itself.
1907  Savestate detection uses this file, only present in savestates.
1908 \end_layout
1910 \begin_layout Subsection
1911 Member: screenshot
1912 \end_layout
1914 \begin_layout Standard
1915 Screenshot of current frame.
1916  Only present in savestates.
1917  First 2 bytes are big-endian width of image, rest are 24-bit RGB image
1918  data.
1919  Height of image is inferred from the width and size of data.
1920 \end_layout
1922 \begin_layout Subsection
1923 Member: sram.<name>
1924 \end_layout
1926 \begin_layout Standard
1927 Raw binary SRAM of kind <name> at time of savestate.
1928  Only present in savestates.
1929 \end_layout
1931 \begin_layout Subsection
1932 Member: input
1933 \end_layout
1935 \begin_layout Standard
1936 The actual input track, one line per subframe (blank lines are skipped).
1937 \end_layout
1939 \begin_layout Itemize
1940 If the first byte of each line is '.', ' ', <tab> or '|', then the line is
1941  part of same frame as previous, otherwise it starts a new frame.
1942 \end_layout
1944 \begin_layout Itemize
1945 First subframe must start a new frame.
1946 \end_layout
1948 \begin_layout Standard
1949 Length of movie in frames is number of lines in input file that start a
1950  new frame.
1951 \end_layout
1953 \begin_layout Subsection
1954 Member: subtitles
1955 \end_layout
1957 \begin_layout Standard
1958 Subtitle track.
1959  Optional.
1960 \end_layout
1962 \begin_layout Itemize
1963 Each line is in form <firstframe> <numframes> <text>.
1964 \end_layout
1966 \begin_layout Itemize
1967 Linefeed is encoded as 
1968 \backslash
1969 n, backslash is encoded as 
1970 \backslash
1972 \backslash
1974 \end_layout
1976 \begin_layout Subsection
1977 Member: rerecords
1978 \end_layout
1980 \begin_layout Standard
1981 Contains textual base-10 rerecord count (as one line; emulator just writes
1982  this, it doesn't read it) + 1.
1983 \end_layout
1985 \begin_layout Subsection
1986 Member: rrdata
1987 \end_layout
1989 \begin_layout Standard
1990 This member stores set of load IDs.
1991  There is one load ID per rerecord (plus one corresponding to start of project).
1992 \end_layout
1994 \begin_layout Itemize
1995 This member constists of concatenation of records
1996 \end_layout
1998 \begin_layout Itemize
1999 Each record is 2-36 bytes long and can represent 1-16,843,009 consequtive
2000  IDs.
2001 \end_layout
2003 \begin_layout Itemize
2004 IDs are interpretted as 256-bit big-endian integers with warparound.
2005 \end_layout
2007 \begin_layout Itemize
2008 Initial predicted ID is all zeroes.
2009 \end_layout
2011 \begin_layout Standard
2012 Format of each record is:
2013 \end_layout
2015 \begin_layout Itemize
2016 1 byte: Opcode byte.
2017  Bits 0-4 are prefix length (prefixlen), bits 5-6 are count length (countlen).
2018  Bit 7 is unused.
2019 \end_layout
2021 \begin_layout Itemize
2022 32-prefixlen bytes of ID.
2023 \end_layout
2025 \begin_layout Itemize
2026 countlen bytes of big-endian count (count).
2027 \end_layout
2029 \begin_layout Standard
2030 Records are processed as follows:
2031 \end_layout
2033 \begin_layout Itemize
2034 To form the first ID encoded by record, take the first prefixlen bytes predicted
2035  ID and append the read ID value to it.
2036  The result is the first ID encoded.
2037 \end_layout
2039 \begin_layout Itemize
2040 If countlen is 0, record encodes 1 ID.
2041 \end_layout
2043 \begin_layout Itemize
2044 If countlen is 1, record encodes 2+count IDs.
2045 \end_layout
2047 \begin_layout Itemize
2048 If countlen is 2, record encodes 258+count IDs.
2049 \end_layout
2051 \begin_layout Itemize
2052 If countlen is 3, record encodes 65794+count IDs.
2053 \end_layout
2055 \begin_layout Itemize
2056 The new predicted ID is the next ID after last one encoded by the record.
2057 \end_layout
2059 \begin_layout Standard
2060 The number of rerecords + 1 is equal to the sum of number of IDs encoded
2061  by all records.
2062 \end_layout
2064 \begin_layout Subsection
2065 Member: starttime.second
2066 \end_layout
2068 \begin_layout Standard
2069 Movie starting time, second part.
2070  Epoch is Unix epoch.
2071  Default is 1,000,000,000.
2072 \end_layout
2074 \begin_layout Subsection
2075 Member: starttime.subsecond
2076 \end_layout
2078 \begin_layout Standard
2079 Movie starting time, subsecond part.
2080  Unit is CPU clocks.
2081  Default is 0.
2082 \end_layout
2084 \begin_layout Subsection
2085 Member: savetime.second
2086 \end_layout
2088 \begin_layout Standard
2089 Movie saving time, second part.
2090  Default is starttime.second.
2091  Only present in savestates.
2092 \end_layout
2094 \begin_layout Subsection
2095 Member: savetime.subsecond
2096 \end_layout
2098 \begin_layout Standard
2099 Movie saving time, subsecond part.
2100  Default is starttime.subsecond.
2101  Only present in savestates.
2102 \end_layout
2104 \begin_layout Section
2105 lsvs file format (commentary tracks)
2106 \end_layout
2108 \begin_layout Subsection
2109 Clusters
2110 \end_layout
2112 \begin_layout Itemize
2113 Each cluster is 8kB (8192 bytes) in size.
2114 \end_layout
2116 \begin_layout Itemize
2117 Cluster n starts at offset 8192*n in file.
2118 \end_layout
2120 \begin_layout Itemize
2121 The following clusters are system special:
2122 \end_layout
2124 \begin_deeper
2125 \begin_layout Itemize
2126 Cluster 0 and all clusters with number multiple of 2048 (cluster tables)
2127 \end_layout
2129 \begin_layout Itemize
2130 Cluster 1 (superblock)
2131 \end_layout
2133 \end_deeper
2134 \begin_layout Subsection
2135 Cluster tables
2136 \end_layout
2138 \begin_layout Itemize
2139 The cluster table describing cluster n is stored in cluster n & ~0x7FF (zero
2140  last 11 bits of n).
2141 \end_layout
2143 \begin_layout Itemize
2144 This cluster table consists of 2048 4-byte big-endian integers.
2145 \end_layout
2147 \begin_layout Itemize
2148 Each entry describes a cluster in 16MB supercluster, in order.
2149 \end_layout
2151 \begin_layout Itemize
2152 The valid values for entries are:
2153 \end_layout
2155 \begin_deeper
2156 \begin_layout Itemize
2157 0x00000000: Free cluster
2158 \end_layout
2160 \begin_layout Itemize
2161 0x00000001: Last cluster in chain.
2162 \end_layout
2164 \begin_layout Itemize
2165 0xFFFFFFFF: System cluster (cluster tables and superblock)
2166 \end_layout
2168 \begin_layout Itemize
2169 (anything else): Number of next cluster in chain.
2170  Must not be multiple of 2048.
2171 \end_layout
2173 \end_deeper
2174 \begin_layout Itemize
2175 Due to limitations of the format, there can be at most 2097052 superclusters,
2176  giving maximum file size of 16TB.
2177 \end_layout
2179 \begin_layout Subsection
2180 Stream table
2181 \end_layout
2183 \begin_layout Itemize
2184 The stream table chain always starts in cluster 2.
2185 \end_layout
2187 \begin_layout Itemize
2188 Otherwise, it follows normal chaining.
2189 \end_layout
2191 \begin_layout Itemize
2192 The stream table consists of 16-byte entries:
2193 \end_layout
2195 \begin_deeper
2196 \begin_layout Itemize
2197 The first 8 bytes of entry give big-endian beginning position of stream
2198  in units of 1/48000 s.
2199 \end_layout
2201 \begin_layout Itemize
2202 The next 4 bytes of entry give big-endian beginning cluster for control
2203  data.
2204  0 here marks the entry as not present.
2205 \end_layout
2207 \begin_layout Itemize
2208 The last 4 bytes of entry give big-endian beginning cluster for codec data.
2209 \end_layout
2211 \end_deeper
2212 \begin_layout Itemize
2213 Stream table clusters are normal clusters, following normal chaining.
2214 \end_layout
2216 \begin_layout Itemize
2217 The stream begnning position is not guarenteed unique.
2218  There can be multiple streams with the same starting position in the file.
2219 \end_layout
2221 \begin_layout Subsection
2222 Stream control data
2223 \end_layout
2225 \begin_layout Itemize
2226 The stream control data consists of entries 4 bytes each:
2227 \end_layout
2229 \begin_deeper
2230 \begin_layout Itemize
2231 The first 2 bytes of entry gives big-endian length of packet
2232 \end_layout
2234 \begin_layout Itemize
2235 The next byte of entry gives audio length of packet in units of 1/400 s.
2236 \end_layout
2238 \begin_layout Itemize
2239 The last byte is control byte.
2240 \end_layout
2242 \begin_deeper
2243 \begin_layout Itemize
2244 0 means this entry is not present and the control data ends.
2245 \end_layout
2247 \begin_layout Itemize
2248 1 is valid control entry.
2249 \end_layout
2251 \end_deeper
2252 \end_deeper
2253 \begin_layout Itemize
2254 The stream control data can also end by running into end of the readable
2255  chain.
2256 \end_layout
2258 \begin_deeper
2259 \begin_layout Itemize
2260 This happens if there happens to be exact multiple of 2048 packets in stream
2261  and number of packets is nonzero.
2262 \end_layout
2264 \end_deeper
2265 \begin_layout Itemize
2266 These clusters follow normal chaining.
2267 \end_layout
2269 \begin_layout Subsection
2270 Stream codec data
2271 \end_layout
2273 \begin_layout Itemize
2274 Stream codec data consists of raw Opus data packets packed back to back
2275  with nothing in between.
2276 \end_layout
2278 \begin_layout Itemize
2279 Warning: Due to internal limitations, this data must reside in the first
2280  65536 superclusters (that is, the first 1TB of the file).
2281 \end_layout
2283 \begin_layout Subsection
2284 Superblock
2285 \end_layout
2287 \begin_layout Itemize
2288 The superblock is stored in cluster 1.
2290 \end_layout
2292 \begin_layout Itemize
2293 The first 11 bytes are 
2294 \begin_inset Quotes eld
2295 \end_inset
2297 sefs-magic
2298 \begin_inset Quotes erd
2299 \end_inset
2301 <NUL>.
2302 \end_layout
2304 \begin_layout Itemize
2305 The rest are unused.
2306 \end_layout
2308 \begin_layout Itemize
2309 This cluster 1 is marked as system special.
2310 \end_layout
2312 \begin_layout Section
2313 Known ROM extensions
2314 \end_layout
2316 \begin_layout Itemize
2317 SNES cartridge ROMs: sfc, smc, swc, fig, ufo, sf2, gd3, gd7, dx2, mgd, mgh.
2318 \end_layout
2320 \begin_layout Itemize
2321 DMG cartridge ROMs: dmg, gb.
2322 \end_layout
2324 \begin_layout Itemize
2325 GBC cartridge ROMs: cgb, gbc.
2326 \end_layout
2328 \begin_layout Section
2329 Gamepack files
2330 \end_layout
2332 \begin_layout Itemize
2333 The first line must be: 
2334 \begin_inset Quotes eld
2335 \end_inset
2337 [GAMEPACK FILE]
2338 \begin_inset Quotes erd
2339 \end_inset
2342 \end_layout
2344 \begin_layout Itemize
2345 There is one needed line: 
2346 \begin_inset Quotes eld
2347 \end_inset
2349 type <systype>
2350 \begin_inset Quotes erd
2351 \end_inset
2354  This sets system type to <systype>.
2355  The following system types are valid:
2356 \end_layout
2358 \begin_deeper
2359 \begin_layout Itemize
2360 snes (SNES)
2361 \end_layout
2363 \begin_layout Itemize
2364 bsx (BS-X non-slotted)
2365 \end_layout
2367 \begin_layout Itemize
2368 bsxslotted (BS-X slotted)
2369 \end_layout
2371 \begin_layout Itemize
2372 sufamiturbo (Sufami Turbo)
2373 \end_layout
2375 \begin_layout Itemize
2376 sgb (Super Game Boy)
2377 \end_layout
2379 \begin_layout Itemize
2380 dmg (Game Boy)
2381 \end_layout
2383 \begin_layout Itemize
2384 gbc (Game Boy Color)
2385 \end_layout
2387 \begin_layout Itemize
2388 gbc_gba (Game Boy Color with GBA initial register values)
2389 \end_layout
2391 \end_deeper
2392 \begin_layout Itemize
2393 Optionally a region can be specified: 
2394 \begin_inset Quotes eld
2395 \end_inset
2397 region <region>
2398 \begin_inset Quotes erd
2399 \end_inset
2402  The following values are valid:
2403 \end_layout
2405 \begin_deeper
2406 \begin_layout Itemize
2407 autodetect (Autodetect region: snes and sgb only)
2408 \end_layout
2410 \begin_layout Itemize
2411 ntsc (NTSC: snes, bsx, bsxslotted, sufamiturbo, sgb)
2412 \end_layout
2414 \begin_layout Itemize
2415 pal (PAL: snes, sgb)
2416 \end_layout
2418 \begin_layout Itemize
2419 world (World: dmg, gbc, gbc_gba)
2420 \end_layout
2422 \end_deeper
2423 \begin_layout Itemize
2424 ROM images are loaded as: 
2425 \begin_inset Quotes eld
2426 \end_inset
2428 rom <type> <file>
2429 \begin_inset Quotes erd
2430 \end_inset
2433  The following types are valid:
2434 \end_layout
2436 \begin_deeper
2437 \begin_layout Itemize
2438 rom (Cartridge ROM in snes, dmg, gbc, gbc_gba.
2439  BIOS in bsx, bsxslotted, sufamiturbo)
2440 \end_layout
2442 \begin_layout Itemize
2443 bsx (Cartridge ROM in bsx, bsxslotted)
2444 \end_layout
2446 \begin_layout Itemize
2447 slot-a (Cartridge ROM in sufamiturbo)
2448 \end_layout
2450 \begin_layout Itemize
2451 slot-b (Cartridge ROM in sufamiturbo)
2452 \end_layout
2454 \end_deeper
2455 \begin_layout Itemize
2456 ROM markup can be loaded as: 
2457 \begin_inset Quotes eld
2458 \end_inset
2460 xml <type> <file>
2461 \begin_inset Quotes erd
2462 \end_inset
2465  The types valid are the same as for ROMs.
2466 \end_layout
2468 \begin_layout Itemize
2469 Patches can be loaded as 
2470 \begin_inset Quotes eld
2471 \end_inset
2473 patch[<offset>] <type> <file>
2474 \begin_inset Quotes erd
2475 \end_inset
2478  The types are the same as for ROMs.
2479 \end_layout
2481 \begin_deeper
2482 \begin_layout Itemize
2483 Offset is given in form [+-]<number>.
2484  Usually offset is either +0 or -512.
2485 \end_layout
2487 \begin_layout Itemize
2488 Default offset is +0.
2489 \end_layout
2491 \end_deeper
2492 \begin_layout Subsection
2493 Example:
2494 \end_layout
2496 \begin_layout LyX-Code
2497 [GAMEPACK FILE]
2498 \end_layout
2500 \begin_layout LyX-Code
2501 type snes
2502 \end_layout
2504 \begin_layout LyX-Code
2505 rom rom speedygonzales.sfc
2506 \end_layout
2508 \begin_layout LyX-Code
2509 patch-512 rom sonicthehedgehog.ips
2510 \end_layout
2512 \begin_layout Subsection
2513 Example 2:
2514 \end_layout
2516 \begin_layout LyX-Code
2517 [GAMEPACK FILE]
2518 \end_layout
2520 \begin_layout LyX-Code
2521 type sgb
2522 \end_layout
2524 \begin_layout LyX-Code
2525 rom rom supergameboy.sfc
2526 \end_layout
2528 \begin_layout LyX-Code
2529 rom dmg megamanV.dmg
2530 \end_layout
2532 \begin_layout Section
2533 Quick'n'dirty encode guide
2534 \end_layout
2536 \begin_layout Enumerate
2537 Start the emulator and load the ROM and movie file.
2538 \end_layout
2540 \begin_layout Enumerate
2541 Set large AVI option 'set-setting avi-large on'
2542 \end_layout
2544 \begin_layout Enumerate
2545 Enable dumping 'dump-avi tmpdump' 
2546 \end_layout
2548 \begin_layout Enumerate
2549 Unpause and let it run until you want to end dumping.
2550 \end_layout
2552 \begin_layout Enumerate
2553 Close the emulator (closing the window is the easiest way).
2554  Or use 'end-avi'.
2555 \end_layout
2557 \begin_layout Enumerate
2558 For each tmpdump*.avi file created, on command prompt, do 'x264 --crf 10
2559  -o tmpdump_<numbers>.mkv tmpdump_<numbers>.avi'.
2560 \end_layout
2562 \begin_layout Enumerate
2563 Do 'sox tmpdump.sox tmpdump.ogg rate -v 32000'
2564 \end_layout
2566 \begin_layout Enumerate
2567 Do 'mkvmerge -o tmpdump_video.mkv tmpdump_0000000.mkv + tmpdump_0000001.mkv
2568  + tmpdump_0000002.mkv' (list every tmpdump_<numbers>.mkv, with + in between).
2569 \end_layout
2571 \begin_layout Enumerate
2572 Do 'mkvmerge -o final.mkv tmpdump_video.mkv tmpdump.ogg'.
2573  Now final.mkv contains quick'n'dirty encode.
2574 \end_layout
2576 \begin_layout Section
2577 Axis configurations for some gamepad types:
2578 \end_layout
2580 \begin_layout Subsection
2581 XBox360 controller:
2582 \end_layout
2584 \begin_layout Standard
2585 Axes 2 and 5 (joystick<n>axis2 and joystick<n>axis5) should be set to pressure-+.
2586 \end_layout
2588 \begin_layout LyX-Code
2589 set-axis joystick0axis2 pressure-+
2590 \end_layout
2592 \begin_layout LyX-Code
2593 set-axis joystick0axis5 pressure-+
2594 \end_layout
2596 \begin_layout Itemize
2597 This is needed for SDL only.
2598  EVDEV sets those types correctly.
2599 \end_layout
2601 \begin_layout Subsection
2602 PS3 
2603 \begin_inset Quotes eld
2604 \end_inset
2606 sixaxis
2607 \begin_inset Quotes erd
2608 \end_inset
2610  controller:
2611 \end_layout
2613 \begin_layout Standard
2614 Axes 8-19 should be disabled.
2615 \end_layout
2617 \begin_layout LyX-Code
2618 set-axis joystick0axis8 disabled
2619 \end_layout
2621 \begin_layout LyX-Code
2622 set-axis joystick0axis9 disabled
2623 \end_layout
2625 \begin_layout LyX-Code
2626 set-axis joystick0axis10 disabled
2627 \end_layout
2629 \begin_layout LyX-Code
2630 set-axis joystick0axis11 disabled
2631 \end_layout
2633 \begin_layout LyX-Code
2634 set-axis joystick0axis12 disabled
2635 \end_layout
2637 \begin_layout LyX-Code
2638 set-axis joystick0axis13 disabled
2639 \end_layout
2641 \begin_layout LyX-Code
2642 set-axis joystick0axis14 disabled
2643 \end_layout
2645 \begin_layout LyX-Code
2646 set-axis joystick0axis15 disabled
2647 \end_layout
2649 \begin_layout LyX-Code
2650 set-axis joystick0axis16 disabled
2651 \end_layout
2653 \begin_layout LyX-Code
2654 set-axis joystick0axis17 disabled
2655 \end_layout
2657 \begin_layout LyX-Code
2658 set-axis joystick0axis18 disabled
2659 \end_layout
2661 \begin_layout LyX-Code
2662 set-axis joystick0axis19 disabled
2663 \end_layout
2665 \begin_layout Section
2666 Errata:
2667 \end_layout
2669 \begin_layout Subsection
2670 Problems from BSNES core:
2671 \end_layout
2673 \begin_layout Itemize
2674 The whole pending save stuff.
2675 \end_layout
2677 \begin_layout Itemize
2678 Lack of layer hiding.
2679 \end_layout
2681 \begin_layout Itemize
2682 It is slow (especially accuracy).
2683 \end_layout
2685 \begin_layout Itemize
2686 Firmwares can't be loaded from ZIP archives.
2687 \end_layout
2689 \begin_layout Subsection
2690 Other problems:
2691 \end_layout
2693 \begin_layout Itemize
2694 Modifiers don't work with pseudo-keys (SDL, EVDEV).
2695 \end_layout
2697 \begin_layout Itemize
2698 Audio for last dumped frame is not itself dumped.
2699 \end_layout
2701 \begin_layout Itemize
2702 Audio in UI is pretty bad in quality if game doesn't run at full speed.
2703 \end_layout
2705 \begin_layout Itemize
2706 No menus, command based interface (SDL).
2707 \end_layout
2709 \begin_layout Itemize
2710 Long commands don't scroll.
2711 \end_layout
2713 \begin_layout Section
2714 Changelog:
2715 \end_layout
2717 \begin_layout Subsection
2718 rr0-beta1
2719 \end_layout
2721 \begin_layout Itemize
2722 Fix -Wall warnings
2723 \end_layout
2725 \begin_layout Itemize
2726 Fix dumper video corruption with levels 10-18.
2727 \end_layout
2729 \begin_layout Subsection
2730 rr0-beta2
2731 \end_layout
2733 \begin_layout Itemize
2734 Autofire
2735 \end_layout
2737 \begin_layout Itemize
2738 Lots of code cleanups
2739 \end_layout
2741 \begin_layout Itemize
2742 Lua interface to settings
2743 \end_layout
2745 \begin_layout Itemize
2746 Allow specifying AVI borders without Lua
2747 \end_layout
2749 \begin_layout Itemize
2750 Fix scaling if vscale > 1 and originx > 0 (left border exists)
2751 \end_layout
2753 \begin_layout Itemize
2754 on_snoop lua callback
2755 \end_layout
2757 \begin_layout Itemize
2758 Faster movie loading and saving.
2759 \end_layout
2761 \begin_layout Subsection
2762 rr0-beta3
2763 \end_layout
2765 \begin_layout Itemize
2766 Joystick support
2767 \end_layout
2769 \begin_layout Subsection
2770 rr0-beta4
2771 \end_layout
2773 \begin_layout Itemize
2774 Fix multi-buttons
2775 \end_layout
2777 \begin_layout Itemize
2778 Save jukebox functionality.
2779 \end_layout
2781 \begin_layout Subsection
2782 rr0-beta5
2783 \end_layout
2785 \begin_layout Itemize
2786 Try to fix some nasty failing movie load edge cases
2787 \end_layout
2789 \begin_layout Itemize
2790 Allow specifying scripts to run on command line.
2791 \end_layout
2793 \begin_layout Subsection
2794 rr0-beta6
2795 \end_layout
2797 \begin_layout Itemize
2798 Major source code reorganization.
2799 \end_layout
2801 \begin_layout Itemize
2802 Backup savestates before overwriting.
2803 \end_layout
2805 \begin_layout Itemize
2806 Don't crash if loading initial state fails.
2807 \end_layout
2809 \begin_layout Subsection
2810 rr0-beta7
2811 \end_layout
2813 \begin_layout Itemize
2814 Fix firmware lookup
2815 \end_layout
2817 \begin_layout Itemize
2818 Fix author name parsing
2819 \end_layout
2821 \begin_layout Itemize
2822 Fix rerecord counting
2823 \end_layout
2825 \begin_layout Itemize
2826 (SDL) Print messages to console if SDL is uninitialized
2827 \end_layout
2829 \begin_layout Itemize
2830 Add movieinfo program
2831 \end_layout
2833 \begin_layout Itemize
2834 Fix loading movies starting from SRAM.
2835 \end_layout
2837 \begin_layout Subsection
2838 rr0-beta8
2839 \end_layout
2841 \begin_layout Itemize
2842 Add support for unattended dumping
2843 \end_layout
2845 \begin_layout Itemize
2846 Fix compiling for Win32
2847 \end_layout
2849 \begin_layout Itemize
2850 Don't lock up if sound can't be initialized
2851 \end_layout
2853 \begin_layout Itemize
2854 Strip trailing CR from commands
2855 \end_layout
2857 \begin_layout Itemize
2858 Don't try to do dubious things in global ctors (fix crash on startup)
2859 \end_layout
2861 \begin_layout Subsection
2862 rr0-beta9
2863 \end_layout
2865 \begin_layout Itemize
2866 Small documentation tweaking
2867 \end_layout
2869 \begin_layout Itemize
2870 Fix make clean
2871 \end_layout
2873 \begin_layout Itemize
2874 Fix major bug in modifier matching
2875 \end_layout
2877 \begin_layout Subsection
2878 rr0-beta10
2879 \end_layout
2881 \begin_layout Itemize
2882 Lots of documentation fixes
2883 \end_layout
2885 \begin_layout Itemize
2886 Use dedicated callbacks for event backcomm., not commands.
2887 \end_layout
2889 \begin_layout Itemize
2890 Ensure that the watchdog is not hit when executing delayed reset.
2891 \end_layout
2893 \begin_layout Itemize
2894 Remove errant tab from joystick message.
2895 \end_layout
2897 \begin_layout Subsection
2898 rr0-beta11
2899 \end_layout
2901 \begin_layout Itemize
2902 Make autofire operate in absolute time, not linear time
2903 \end_layout
2905 \begin_layout Itemize
2906 Reinitialize controls when resuming from loadstate
2907 \end_layout
2909 \begin_layout Itemize
2910 Some more code cleanups
2911 \end_layout
2913 \begin_layout Itemize
2914 If Lua allocator fails, call OOM_panic()
2915 \end_layout
2917 \begin_layout Itemize
2918 Byte/word/dword/qword sized host memory write/read functions.
2919 \end_layout
2921 \begin_layout Itemize
2922 Dump at correct framerate if dumping interlaced NTSC (height=448).
2923 \end_layout
2925 \begin_layout Subsection
2926 rr0-beta12
2927 \end_layout
2929 \begin_layout Itemize
2930 Actually include the complete source code
2931 \end_layout
2933 \begin_layout Itemize
2934 Keep track of RTC
2935 \end_layout
2937 \begin_layout Subsection
2938 rr0-beta13
2939 \end_layout
2941 \begin_layout Itemize
2942 Document {save,start}time.{,sub}second.
2943 \end_layout
2945 \begin_layout Itemize
2946 Intercept time() from bsnes core.
2947 \end_layout
2949 \begin_layout Subsection
2950 rr0-beta14
2951 \end_layout
2953 \begin_layout Itemize
2954 Allow disabling time() interception (allow build on Mac OS X)
2955 \end_layout
2957 \begin_layout Itemize
2958 Use SDLMain on Mac OS X (make SDL not crash)
2959 \end_layout
2961 \begin_layout Itemize
2962 Disable delayed resets (just plain too buggy for now).
2963 \end_layout
2965 \begin_layout Itemize
2966 Code cleanups
2967 \end_layout
2969 \begin_layout Itemize
2970 Use 16-bit for graphics/video instead of 32-bit.
2971 \end_layout
2973 \begin_layout Itemize
2974 gui.rectangle/gui.pixel
2975 \end_layout
2977 \begin_layout Itemize
2978 gui.crosshair
2979 \end_layout
2981 \begin_layout Itemize
2982 New CSCD writer implementation.
2983 \end_layout
2985 \begin_layout Subsection
2986 rr0-beta15
2987 \end_layout
2989 \begin_layout Itemize
2990 Fix interaction of * and +.
2991 \end_layout
2993 \begin_layout Itemize
2994 Manual improvements
2995 \end_layout
2997 \begin_layout Itemize
2998 Use gettimeofday()/usleep(), these seem portable enough.
2999 \end_layout
3001 \begin_layout Itemize
3002 Move joystick axis manipulation to keymapper code.
3003 \end_layout
3005 \begin_layout Itemize
3006 Changes to how read-only works.
3007 \end_layout
3009 \begin_layout Itemize
3010 Refactor controller input code.
3011 \end_layout
3013 \begin_layout Subsection
3014 rr0-beta16
3015 \end_layout
3017 \begin_layout Itemize
3018 Fix mouseclick scale compensation.
3019 \end_layout
3021 \begin_layout Itemize
3022 Draw area boundaries correctly in SDL code.
3023 \end_layout
3025 \begin_layout Itemize
3026 gui.screenshot.
3027 \end_layout
3029 \begin_layout Itemize
3030 Fix CSCD output (buffer overrun and race condition).
3031 \end_layout
3033 \begin_layout Subsection
3034 rr0-beta17
3035 \end_layout
3037 \begin_layout Itemize
3038 JMD dumping support.
3039 \end_layout
3041 \begin_layout Itemize
3042 Allow unattended dumping to JMD.
3043 \end_layout
3045 \begin_layout Itemize
3046 Move to BSNES v083.
3047 \end_layout
3049 \begin_layout Itemize
3050 Switch back to 32-bit colors.
3051 \end_layout
3053 \begin_layout Itemize
3054 Add Lua function gui.color.
3055 \end_layout
3057 \begin_layout Itemize
3058 Use some new C++11 features in GCC 4.6.
3059 \end_layout
3061 \begin_layout Itemize
3062 Be prepared for core frequency changes.
3063 \end_layout
3065 \begin_layout Itemize
3066 Pass colors in one chunk from Lua.
3067 \end_layout
3069 \begin_layout Subsection
3070 rr0-beta18
3071 \end_layout
3073 \begin_layout Itemize
3074 New lua functions gui.line(), gui.status() and gui.circle(), memory.vma_count(),
3075  memory.read_vma() and memory.find_vma().
3076 \end_layout
3078 \begin_layout Itemize
3079 Numerious documentation fixups
3080 \end_layout
3082 \begin_layout Itemize
3083 RTC time format changed
3084 \end_layout
3086 \begin_layout Itemize
3087 Reformat flags display
3088 \end_layout
3090 \begin_layout Itemize
3091 Allow lua package name to be overridden
3092 \end_layout
3094 \begin_layout Itemize
3095 SDUMP (high-quality dumping).
3096 \end_layout
3098 \begin_layout Itemize
3099 Split platform support to plugins.
3100 \end_layout
3102 \begin_layout Itemize
3103 Make all sound plugins support basic sound commands
3104 \end_layout
3106 \begin_layout Itemize
3107 Support portaudio for sound.
3108 \end_layout
3110 \begin_layout Itemize
3111 Allow disable Lua/SDL searching.
3112 \end_layout
3114 \begin_layout Itemize
3115 Upconvert colors when copying lcscreen to screen.
3116 \end_layout
3118 \begin_layout Itemize
3119 Reorganize source tree.
3120 \end_layout
3122 \begin_layout Itemize
3123 Evdev joystick support.
3124 \end_layout
3126 \begin_layout Itemize
3127 Refactor more code into generic window code.
3128 \end_layout
3130 \begin_layout Subsection
3131 rr0-beta19
3132 \end_layout
3134 \begin_layout Itemize
3135 Refactor message handling.
3136 \end_layout
3138 \begin_layout Itemize
3139 Rework makefile
3140 \end_layout
3142 \begin_layout Itemize
3143 Documentation fixes
3144 \end_layout
3146 \begin_layout Itemize
3147 Finish pending saves before load/quit.
3148 \end_layout
3150 \begin_layout Itemize
3151 Wxwidgets graphics plugin.
3152 \end_layout
3154 \begin_layout Subsection
3155 rr0-beta20
3156 \end_layout
3158 \begin_layout Itemize
3159 Get rid of win32-crap.[ch]pp.
3160 \end_layout
3162 \begin_layout Itemize
3163 Move files around a lot.
3164 \end_layout
3166 \begin_layout Itemize
3167 Get rid of need for host C++ compiler.
3168 \end_layout
3170 \begin_layout Itemize
3171 Bsnes v084 core.
3172 \end_layout
3174 \begin_layout Itemize
3175 Refactor inter-component communication.
3176 \end_layout
3178 \begin_layout Itemize
3179 Fix zero luma.
3180 \end_layout
3182 \begin_layout Itemize
3183 Fix crash on multiline aliases.
3184 \end_layout
3186 \begin_layout Itemize
3187 Load/Save settings in wxwidgets gui.
3188 \end_layout
3190 \begin_layout Subsection
3191 rr0-beta21
3192 \end_layout
3194 \begin_layout Itemize
3195 Patch problems in bsnes core
3196 \end_layout
3198 \begin_layout Itemize
3199 SNES is little-endian, not big-endian!
3200 \end_layout
3202 \begin_layout Itemize
3203 Fix memory corruption in lcscreen::load()
3204 \end_layout
3206 \begin_layout Subsection
3207 rr0-beta22
3208 \end_layout
3210 \begin_layout Itemize
3211 Fix interpretting repeat counts in rrdata loading.
3212 \end_layout
3214 \begin_layout Itemize
3215 New lua callback: on_frame()
3216 \end_layout
3218 \begin_layout Itemize
3219 Remove calls to runtosave() that aren't supposed to be there
3220 \end_layout
3222 \begin_layout Itemize
3223 Lua function: movie.read_rtc()
3224 \end_layout
3226 \begin_layout Itemize
3227 Ignore src/fonts/font.cpp
3228 \end_layout
3230 \begin_layout Itemize
3231 Fix more bsnes core problems
3232 \end_layout
3234 \begin_layout Itemize
3235 Control bsnes random seeding
3236 \end_layout
3238 \begin_layout Itemize
3239 Pause-on-end
3240 \end_layout
3242 \begin_layout Itemize
3243 Some bsnes core debugging features (state dump and state hash)
3244 \end_layout
3246 \begin_layout Itemize
3247 Fix titlebar version number (no, the last version wasn't 'lsnes-0-beta21',
3248  it was 'lsnes rr0-beta21').
3249 \end_layout
3251 \begin_layout Subsection
3252 rr0-beta23
3253 \end_layout
3255 \begin_layout Itemize
3256 Fix memory corruption due to macro/field mixup
3257 \end_layout
3259 \begin_layout Itemize
3260 search-memory update
3261 \end_layout
3263 \begin_layout Itemize
3264 Allow direct-mapped framebuffer
3265 \end_layout
3267 \begin_layout Itemize
3268 SDL: Use SDL_ANYFORMAT if possible
3269 \end_layout
3271 \begin_layout Itemize
3272 SDMP2SOX: 2s delay modes.
3273 \end_layout
3275 \begin_layout Itemize
3276 Wxwidgets: Cleanups
3277 \end_layout
3279 \begin_layout Itemize
3280 Use sed -E, not sed -r.
3281  Fixes building on Mac OS X.
3282 \end_layout
3284 \begin_layout Itemize
3285 Wxwidgets: Save jukebox on exit
3286 \end_layout
3288 \begin_layout Itemize
3289 Fix RTC if using load-movie on savestate.
3290 \end_layout
3292 \begin_layout Itemize
3293 Fix crash related to full console mode.
3294 \end_layout
3296 \begin_layout Subsection
3297 rr0-beta24
3298 \end_layout
3300 \begin_layout Itemize
3301 Wxwidgets: Allow bringing application to foreground on Mac OS X.
3302 \end_layout
3304 \begin_layout Itemize
3305 Wxwidgets: Allow compiling on Mac OS X.
3306 \end_layout
3308 \begin_layout Itemize
3309 Use movie compare instead of movie hashing (faster save/load).
3310 \end_layout
3312 \begin_layout Itemize
3313 Lua: _SYSTEM table.
3314 \end_layout
3316 \begin_layout Subsection
3317 rr0-beta25
3318 \end_layout
3320 \begin_layout Itemize
3321 sdmp2sox: Pad soundtrack if using -l or -L.
3322 \end_layout
3324 \begin_layout Itemize
3325 sdmp2sox: Fix NTSC overscan.
3326 \end_layout
3328 \begin_layout Itemize
3329 sdmp2sox: Add AR correction mode.
3330 \end_layout
3332 \begin_layout Itemize
3333 call lua_close() when exiting.
3334 \end_layout
3336 \begin_layout Itemize
3337 Fix zip_writer bug causing warnings from info-zip and error from advzip.
3338 \end_layout
3340 \begin_layout Subsection
3341 rr0-beta26
3342 \end_layout
3344 \begin_layout Itemize
3345 Fix IPS patching code (use bsnes core IPS patcher).
3346 \end_layout
3348 \begin_layout Itemize
3349 Implement BPS patching (using bsnes core IPS patcher).
3350 \end_layout
3352 \begin_layout Itemize
3353 Add feature to load headered ROMs.
3354 \end_layout
3356 \begin_layout Subsection
3357 rr0-beta27
3358 \end_layout
3360 \begin_layout Itemize
3361 Show command names when showing keybindings
3362 \end_layout
3364 \begin_layout Subsection
3366 \end_layout
3368 \begin_layout Itemize
3369 Fix pause-on-end to be actually controllable
3370 \end_layout
3372 \begin_layout Itemize
3373 SDL: Poll all events in queue, not just first one (fixes slowness in command
3374  typing)
3375 \end_layout
3377 \begin_layout Itemize
3378 Wxwidgets: Fix ROM loading.
3379 \end_layout
3381 \begin_layout Subsection
3382 rr1-beta0
3383 \end_layout
3385 \begin_layout Itemize
3386 Lua: Add gui.textH, gui.textV, gui.textHV
3387 \end_layout
3389 \begin_layout Itemize
3390 Fix text colors on SDL on Mac OS X
3391 \end_layout
3393 \begin_layout Itemize
3394 Mode 'F' for finished in readonly mode.
3395 \end_layout
3397 \begin_layout Itemize
3398 Fix some WS errors.
3399 \end_layout
3401 \begin_layout Itemize
3402 Reliably pause after skip poll
3403 \end_layout
3405 \begin_layout Itemize
3406 Split UI and core into their own threads
3407 \end_layout
3409 \begin_layout Subsection
3410 rr1-beta1
3411 \end_layout
3413 \begin_layout Itemize
3414 Remove leftover dummy SRAM slot
3415 \end_layout
3417 \begin_layout Itemize
3418 Fix controller numbers.
3419 \end_layout
3421 \begin_layout Subsection
3422 rr1-beta2
3423 \end_layout
3425 \begin_layout Itemize
3426 Fix lsnes-dumpavi after interface change.
3427 \end_layout
3429 \begin_layout Itemize
3430 Also give BSNES patches for v085.
3431 \end_layout
3433 \begin_layout Itemize
3434 Pack movie data in memory.
3435 \end_layout
3437 \begin_layout Subsection
3438 rr1-beta3
3439 \end_layout
3441 \begin_layout Itemize
3442 Fix framecount/length given when loading movies.
3443 \end_layout
3445 \begin_layout Itemize
3446 Controller command memory leak fixes.
3447 \end_layout
3449 \begin_layout Itemize
3450 Don't leak palette if freeing screen object.
3451 \end_layout
3453 \begin_layout Subsection
3454 rr1-beta4
3455 \end_layout
3457 \begin_layout Itemize
3458 Detect revisions.
3459 \end_layout
3461 \begin_layout Itemize
3462 Wxwidgets: Allow controlling dumper from the menu.
3463 \end_layout
3465 \begin_layout Subsection
3466 rr1-beta5
3467 \end_layout
3469 \begin_layout Itemize
3470 Rewrite parts of manual
3471 \end_layout
3473 \begin_layout Itemize
3474 Lua: Make it work with Lua 5.2.
3475 \end_layout
3477 \begin_layout Subsection
3478 rr1-beta6
3479 \end_layout
3481 \begin_layout Itemize
3482 Win32: Fix compile errors.
3483 \end_layout
3485 \begin_layout Subsection
3486 rr1-beta7
3487 \end_layout
3489 \begin_layout Itemize
3490 Refactor controller input code.
3491 \end_layout
3493 \begin_layout Itemize
3494 Fix crash when using command line on SDL / Mac OS X.
3495 \end_layout
3497 \begin_layout Subsection
3498 rr1-beta8
3499 \end_layout
3501 \begin_layout Itemize
3502 Delete core/coroutine (obsolete)
3503 \end_layout
3505 \begin_layout Itemize
3506 Lag input display by one frame.
3507 \end_layout
3509 \begin_layout Itemize
3510 Rewind movie to beginning function.
3511 \end_layout
3513 \begin_layout Itemize
3514 Fix wrong frame number reported to Lua when repainting after loadstate
3515 \end_layout
3517 \begin_layout Itemize
3518 Support UI editing of jukebox
3519 \end_layout
3521 \begin_layout Itemize
3522 Wxwidgets: Save settings on exit.
3523 \end_layout
3525 \begin_layout Itemize
3526 Support ${project} for filenames
3527 \end_layout
3529 \begin_layout Itemize
3530 SDL: Fix command history
3531 \end_layout
3533 \begin_layout Subsection
3534 rr1-beta9
3535 \end_layout
3537 \begin_layout Itemize
3538 Fix some order-of-global-ctor bugs.
3539 \end_layout
3541 \begin_layout Subsection
3542 rr1-beta10
3543 \end_layout
3545 \begin_layout Itemize
3546 Fix crashes when quitting on Win32.
3547 \end_layout
3549 \begin_layout Subsection
3550 rr1-beta11
3551 \end_layout
3553 \begin_layout Itemize
3554 EVDEV: Queue keypresses from joystick, don't send directly
3555 \end_layout
3557 \begin_layout Itemize
3558 Wxwidgets: Load-Preserve that actually works.
3559 \end_layout
3561 \begin_layout Subsection
3562 rr1-beta12
3563 \end_layout
3565 \begin_layout Itemize
3566 Wxwidgets: GUI for memory search.
3567 \end_layout
3569 \begin_layout Itemize
3570 Warn about using synchronous queue in UI callback.
3571 \end_layout
3573 \begin_layout Subsection
3574 rr1-beta13
3575 \end_layout
3577 \begin_layout Itemize
3578 Remember last saved file for each ROM
3579 \end_layout
3581 \begin_layout Itemize
3582 Support MT dumping via boost.
3583 \end_layout
3585 \begin_layout Itemize
3586 Lua: input.raw
3587 \end_layout
3589 \begin_layout Itemize
3590 Lua: input.keyhook
3591 \end_layout
3593 \begin_layout Itemize
3594 Make mouse be ordinary input instead of special-casing
3595 \end_layout
3597 \begin_layout Itemize
3598 SDL: Don't screw up commands with NUL codepoints.
3599 \end_layout
3601 \begin_layout Subsection
3602 rr1-beta14
3603 \end_layout
3605 \begin_layout Itemize
3606 Merge status panel and main window
3607 \end_layout
3609 \begin_layout Itemize
3610 True movie slot support (the rest of it)
3611 \end_layout
3613 \begin_layout Itemize
3614 SDL: Fix compilation error
3615 \end_layout
3617 \begin_layout Itemize
3618 Elminate cross calls in dump menu code.
3619 \end_layout
3621 \begin_layout Subsection
3622 rr1-beta15
3623 \end_layout
3625 \begin_layout Itemize
3626 Cancel pending saves command
3627 \end_layout
3629 \begin_layout Itemize
3630 Wxwidgets: Code refactoring
3631 \end_layout
3633 \begin_layout Itemize
3634 Wxwidgets: Fix system -> reset
3635 \end_layout
3637 \begin_layout Itemize
3638 Wxwidgets: Read watch expressions in the right thread
3639 \end_layout
3641 \begin_layout Subsection
3642 rr1-beta16
3643 \end_layout
3645 \begin_layout Itemize
3646 Wxwidgets: Don't prompt for member when running Lua script (Lua doesn't
3647  support that).
3648 \end_layout
3650 \begin_layout Itemize
3651 Wxwidgets: 128 -> 1024 Autohold slots (in case more are needed).
3652 \end_layout
3654 \begin_layout Itemize
3655 Don't append trailing '-' to prefix when saving movie.
3656 \end_layout
3658 \begin_layout Itemize
3659 Fix ROM/savestate handling (don't let user mismatch ROM and savestates).
3660 \end_layout
3662 \begin_layout Subsection
3664 \end_layout
3666 \begin_layout Itemize
3667 Document memory watch syntax.
3668 \end_layout
3670 \begin_layout Subsection
3671 rr1-delta1
3672 \end_layout
3674 \begin_layout Itemize
3675 Fix unattended dumping (lsnes-dumpavi)
3676 \end_layout
3678 \begin_layout Itemize
3679 Support RAW dumping
3680 \end_layout
3682 \begin_layout Itemize
3683 Use adv_dumper instead of the old interface in lsnes-dumpavi (changes syntax)
3684 \end_layout
3686 \begin_layout Itemize
3687 Add option to control sample rate preturbation in AVI dumper
3688 \end_layout
3690 \begin_layout Subsection
3691 rr1-delta2
3692 \end_layout
3694 \begin_layout Itemize
3695 Wxwidgets: Fix dumper submodes
3696 \end_layout
3698 \begin_layout Itemize
3699 Set core controller types before loadstate
3700 \end_layout
3702 \begin_layout Subsection
3703 rr1-delta2epsilon1
3704 \end_layout
3706 \begin_layout Itemize
3707 Fix compiling with bsnes v086.
3708 \end_layout
3710 \begin_layout Subsection
3711 rr1-delta3
3712 \end_layout
3714 \begin_layout Itemize
3715 Don't prompt before quitting
3716 \end_layout
3718 \begin_layout Itemize
3719 Start unpaused, preserve pause/unpause over load.
3720 \end_layout
3722 \begin_layout Itemize
3723 Try to autodetect if ROM is headered.
3724 \end_layout
3726 \begin_layout Itemize
3727 Wxwidgets: Only bring up ROM patching screen if specifically requested.
3728 \end_layout
3730 \begin_layout Itemize
3731 Allow configuring some hotkeys.
3732 \end_layout
3734 \begin_layout Subsection
3735 rr1-delta4
3736 \end_layout
3738 \begin_layout Itemize
3739 Lots of code cleanups
3740 \end_layout
3742 \begin_layout Itemize
3743 Fix JMD compression (JMD dumping was broken)
3744 \end_layout
3746 \begin_layout Itemize
3747 Don't crash if Lua C function throws an exception.
3748 \end_layout
3750 \begin_layout Itemize
3751 Support bitmap drawing in Lua.
3752 \end_layout
3754 \begin_layout Itemize
3755 Fix bsnes v085/v086 patches.
3756 \end_layout
3758 \begin_layout Itemize
3759 Improve stability on win32.
3760 \end_layout
3762 \begin_layout Subsection
3763 rr1-delta4epsilon1
3764 \end_layout
3766 \begin_layout Itemize
3767 Don't corrupt movie if movie length is integer multiple of frames per page.
3768 \end_layout
3770 \begin_layout Subsection
3771 rr1-delta5
3772 \end_layout
3774 \begin_layout Itemize
3775 New Lua hooks: on_rewind, on_frame_emulated, on_idle, on_timer
3776 \end_layout
3778 \begin_layout Itemize
3779 New Lua functions: emulator_ready(), utime(), set_idle_timeout(), set_timer_time
3780 out(), bit.extract(), bit.value(), input.geta(), input.seta() and input.controllertyp
3782 \end_layout
3784 \begin_layout Itemize
3785 Wxwidgets: Fix internal focus lost (hotkeys stop working)
3786 \end_layout
3788 \begin_layout Itemize
3789 Wxwidgets: Fix broken modifiers
3790 \end_layout
3792 \begin_layout Itemize
3793 on_paint has parameter now.
3794 \end_layout
3796 \begin_layout Itemize
3797 Optional initital fill for bitmaps
3798 \end_layout
3800 \begin_layout Itemize
3801 Fix palette changing.
3802 \end_layout
3804 \begin_layout Itemize
3805 Optimize rendering a bit.
3806 \end_layout
3808 \begin_layout Itemize
3809 Bsnes v087 support.
3810 \end_layout
3812 \begin_layout Subsection
3813 rr1-delta5epsilon1
3814 \end_layout
3816 \begin_layout Itemize
3817 Movieinfo: Fix display of port #2 type.
3818 \end_layout
3820 \begin_layout Itemize
3821 Call on_input() after loadstate.
3822 \end_layout
3824 \begin_layout Subsection
3825 rr1-delta5epsilon2
3826 \end_layout
3828 \begin_layout Itemize
3829 Fix writing port2 data to movie.
3830 \end_layout
3832 \begin_layout Itemize
3833 Fix SRAM handling with Bsnes v087.
3834 \end_layout
3836 \begin_layout Subsection
3837 rr1-delta6
3838 \end_layout
3840 \begin_layout Itemize
3841 Library loading support
3842 \end_layout
3844 \begin_layout Itemize
3845 Built-in TSCC encoder
3846 \end_layout
3848 \begin_layout Itemize
3849 Hi-color (256T colors) dumping.
3850 \end_layout
3852 \begin_layout Itemize
3853 Dump over TCP/IP(v6)
3854 \end_layout
3856 \begin_layout Itemize
3857 Hidable status panel
3858 \end_layout
3860 \begin_layout Itemize
3861 Turbo toggle/hold
3862 \end_layout
3864 \begin_layout Itemize
3865 Adjustable sound volume
3866 \end_layout
3868 \begin_layout Itemize
3869 Screen scaling
3870 \end_layout
3872 \begin_layout Itemize
3873 Allow DnD into filename boxes
3874 \end_layout
3876 \begin_layout Itemize
3877 Configurable paths
3878 \end_layout
3880 \begin_layout Itemize
3881 Portaudio: Fix speaker popping at start
3882 \end_layout
3884 \begin_layout Itemize
3885 Lots of UI changes
3886 \end_layout
3888 \begin_layout Itemize
3889 Speed adjustment menu
3890 \end_layout
3892 \begin_layout Itemize
3893 Win32 joystick support
3894 \end_layout
3896 \begin_layout Itemize
3897 Lua: gui.rainbow and gui.box
3898 \end_layout
3900 \begin_layout Itemize
3901 Split key lists into classes (the key list was large!)
3902 \end_layout
3904 \begin_layout Itemize
3905 More save slots support
3906 \end_layout
3908 \begin_layout Itemize
3909 Wxwidgets (wxJoystick) joystick support
3910 \end_layout
3912 \begin_layout Subsection
3913 rr1-delta7
3914 \end_layout
3916 \begin_layout Itemize
3917 Lots of internal joystick refactoring
3918 \end_layout
3920 \begin_layout Itemize
3921 Evdev: Add mapping for BTN_TOOL_QUINTTAP
3922 \end_layout
3924 \begin_layout Itemize
3925 Wxwidgets: Settings mode (open settings without ROM)
3926 \end_layout
3928 \begin_layout Itemize
3929 Wxwidgets: Prompt key to use option
3930 \end_layout
3932 \begin_layout Itemize
3933 Wxwidgets: Fix crash if key goes away underneath
3934 \end_layout
3936 \begin_layout Itemize
3937 Wxwidgets: Fix mouse position in presence of scaling
3938 \end_layout
3940 \begin_layout Itemize
3941 AVI dumper: Mode 4 (high-quality resampling to common rate using SRC)
3942 \end_layout
3944 \begin_layout Itemize
3945 Wxwidgets: Redesign hotkeys dialog to avoid tree control (tree control doesn't
3946  seem to work well on WinXP)
3947 \end_layout
3949 \begin_layout Itemize
3950 Start paused option.
3951 \end_layout
3953 \begin_layout Subsection
3954 rr1-delta7epsilon1
3955 \end_layout
3957 \begin_layout Itemize
3958 AVI: ZMBV support
3959 \end_layout
3961 \begin_layout Itemize
3962 lsnes-dumpavi: Start Lua before starting dumper
3963 \end_layout
3965 \begin_layout Itemize
3966 AVI: Fix secondary audio in mode 4.
3967 \end_layout
3969 \begin_layout Subsection
3970 rr1-delta7epsilon2
3971 \end_layout
3973 \begin_layout Itemize
3974 AVI: Refactor ZMBV a bit.
3975 \end_layout
3977 \begin_layout Itemize
3978 Fix error reading analog values from movie file
3979 \end_layout
3981 \begin_layout Subsection
3982 rr1-delta8
3983 \end_layout
3985 \begin_layout Itemize
3986 Delayed reset support
3987 \end_layout
3989 \begin_layout Itemize
3990 Lua: memory.hash_region
3991 \end_layout
3993 \begin_layout Subsection
3994 rr1-delta8epsilon1
3995 \end_layout
3997 \begin_layout Itemize
3998 Rework the build system
3999 \end_layout
4001 \begin_layout Itemize
4002 Typing input support
4003 \end_layout
4005 \begin_layout Itemize
4006 Fix building with bsnes v086 and v087.
4007 \end_layout
4009 \begin_layout Itemize
4010 SDL: Save settings on exit
4011 \end_layout
4013 \begin_layout Itemize
4014 SDL: Command to enter command line mode with given command.
4015 \end_layout
4017 \begin_layout Itemize
4018 SDL: More advanced command editing.
4019 \end_layout
4021 \begin_layout Subsection
4022 rr1-delta9
4023 \end_layout
4025 \begin_layout Itemize
4026 wxMSW: Fix the 
4027 \begin_inset Quotes eld
4028 \end_inset
4030 arrow keys and enter don't work
4031 \begin_inset Quotes erd
4032 \end_inset
4034  problem
4035 \end_layout
4037 \begin_layout Itemize
4038 MSU-1 support
4039 \end_layout
4041 \begin_layout Itemize
4042 Show mode changes due to rewinding.
4043 \end_layout
4045 \begin_layout Itemize
4046 Unsafe rewind support
4047 \end_layout
4049 \begin_layout Itemize
4050 Fix directory transversal.
4051 \end_layout
4053 \begin_layout Subsection
4054 rr1-delta10
4055 \end_layout
4057 \begin_layout Itemize
4058 AVI: Sound mode 5 (48kHz high-quality)
4059 \end_layout
4061 \begin_layout Itemize
4062 Lua: Reset Lua VM
4063 \end_layout
4065 \begin_layout Itemize
4066 Map the SNES bus into address space
4067 \end_layout
4069 \begin_layout Itemize
4070 Fix loading memory watch files with CRLF line endings
4071 \end_layout
4073 \begin_layout Subsection
4074 rr1-delta10epsilon1
4075 \end_layout
4077 \begin_layout Itemize
4078 Map bsnes internal state into memory space
4079 \end_layout
4081 \begin_layout Itemize
4082 Fix the 
4083 \begin_inset Quotes eld
4084 \end_inset
4086 click on panel wedges the emulator
4087 \begin_inset Quotes erd
4088 \end_inset
4090  for real.
4091 \end_layout
4093 \begin_layout Itemize
4094 DnD movies/saves on the main window.
4095 \end_layout
4097 \begin_layout Subsection
4098 rr1-delta11
4099 \end_layout
4101 \begin_layout Itemize
4102 Split core bindings into own module.
4103 \end_layout
4105 \begin_layout Itemize
4106 Remember invalid settings
4107 \end_layout
4109 \begin_layout Itemize
4110 Support for modified Gambatte core for GB/GBC emulation.
4111 \end_layout
4113 \begin_layout Itemize
4114 Reload/swap ROM function
4115 \end_layout
4117 \begin_layout Subsection
4118 rr1-delta11epsilon1
4119 \end_layout
4121 \begin_layout Itemize
4122 Fix step poll function
4123 \end_layout
4125 \begin_layout Subsection
4126 rr1-delta12
4127 \end_layout
4129 \begin_layout Itemize
4130 Non-insane savestate anchoring
4131 \end_layout
4133 \begin_layout Subsection
4134 rr1-delta13
4135 \end_layout
4137 \begin_layout Itemize
4138 More Memory search methods
4139 \end_layout
4141 \begin_layout Itemize
4142 Preserve movie if loading in RO mode.
4143 \end_layout
4145 \begin_layout Itemize
4146 Fix a obscure case in timeline check
4147 \end_layout
4149 \begin_layout Itemize
4150 Revamp the entiere ROM loading code
4151 \end_layout
4153 \begin_layout Itemize
4154 Support DnD on ROMs
4155 \end_layout
4157 \begin_layout Itemize
4158 Revamp menu layout
4159 \end_layout
4161 \begin_layout Itemize
4162 Standalone hotkey config dialog
4163 \end_layout
4165 \begin_layout Itemize
4166 Show bindings in more user-friendly format
4167 \end_layout
4169 \begin_layout Subsection
4170 rr1-delta13epsilon1
4171 \end_layout
4173 \begin_layout Itemize
4174 Pipedec support
4175 \end_layout
4177 \begin_layout Itemize
4178 Fix uninitialized variables in bsnes v085
4179 \end_layout
4181 \begin_layout Subsection
4182 rr1-delta14
4183 \end_layout
4185 \begin_layout Itemize
4186 Merge gambatte core into mainline (from its own branch)
4187 \end_layout
4189 \begin_layout Itemize
4190 Wxwidgets: Show expected dump file formats
4191 \end_layout
4193 \begin_layout Itemize
4194 Memory watch: Data typing
4195 \end_layout
4197 \begin_layout Itemize
4198 lsnes internal MMIO area.
4199 \end_layout
4201 \begin_layout Itemize
4202 Wxwidgets: New memory watch editor
4203 \end_layout
4205 \begin_layout Itemize
4206 Hexadecimal memory watches
4207 \end_layout
4209 \begin_layout Itemize
4210 Wxwidgets: Monospaced panel
4211 \end_layout
4213 \begin_layout Itemize
4214 Wxwidgets: Split memory watches in panel
4215 \end_layout
4217 \begin_layout Itemize
4218 Wxwidgets: Disable VMAs in memory search
4219 \end_layout
4221 \begin_layout Itemize
4222 lsnes-dumpavi: Fix speed bug
4223 \end_layout
4225 \begin_layout Itemize
4226 Movie subtitle support
4227 \end_layout
4229 \begin_layout Itemize
4230 Fix rerecord count reporting
4231 \end_layout
4233 \begin_layout Itemize
4234 Don't trash movie when loading in readonly mode.
4235 \end_layout
4237 \begin_layout Subsection
4238 rr1-delta14epsilon1
4239 \end_layout
4241 \begin_layout Itemize
4242 Wxwidgets: Fix crashes on closing settings dialogs on Mac OS X.
4243 \end_layout
4245 \begin_layout Itemize
4246 Fix build on Mac OS X.
4247 \end_layout
4249 \begin_layout Itemize
4250 Lua: loopwrapper
4251 \end_layout
4253 \begin_layout Itemize
4254 Wxwidgets: Hidable messages window
4255 \end_layout
4257 \begin_layout Itemize
4258 Lua: input.joyset
4259 \end_layout
4261 \begin_layout Itemize
4262 Bsnes: Support inconsistent saves
4263 \end_layout
4265 \begin_layout Itemize
4266 Bsnes: Allow simulating saving every frame
4267 \end_layout
4269 \begin_layout Itemize
4270 Fix desync if savestate is loaded in readonly mode in certain conditions.
4271 \end_layout
4273 \begin_layout Itemize
4274 Wxwidgets: Fix save dialogs on Mac OS X.
4275 \end_layout
4277 \begin_layout Itemize
4278 Wxwidgets: Fix insane status width on Win32.
4279 \end_layout
4281 \begin_layout Itemize
4282 Wxwidgets: Fix autohold processing to be faster.
4283 \end_layout
4285 \begin_layout Itemize
4286 Wxwidgets: Allow loading ROMs and movies from commandline.
4287 \end_layout
4289 \begin_layout Subsection
4290 rr1-delta15
4291 \end_layout
4293 \begin_layout Itemize
4294 Be a bit smarter with --load
4295 \end_layout
4297 \begin_layout Itemize
4298 Rewrote higher-level parts of audio system
4299 \end_layout
4301 \begin_layout Itemize
4302 Tool to build commentary tracks
4303 \end_layout
4305 \begin_layout Itemize
4306 Lua: input.joyget
4307 \end_layout
4309 \begin_layout Itemize
4310 Gambatte: Add support for SVN358
4311 \end_layout
4313 \begin_layout Itemize
4314 Use builtin font when rendering status panel.
4315 \end_layout
4317 \begin_layout Itemize
4318 Option to detach memory watch to its own window.
4319 \end_layout
4321 \begin_layout Itemize
4322 Recent ROMs/Movies menu
4323 \end_layout
4325 \begin_layout Itemize
4326 Libao support
4327 \end_layout
4329 \begin_layout Itemize
4330 Useful lag counter for SNES games that autopoll
4331 \end_layout
4333 \begin_layout Itemize
4334 Fix buffer overflow in gambatte sound output
4335 \end_layout
4337 \begin_layout Subsection
4338 rr1-delta15epsilon1
4339 \end_layout
4341 \begin_layout Itemize
4342 Don't blow up on wxGTK if the window is hidden somehow
4343 \end_layout
4345 \begin_layout Itemize
4346 Support simultaneous drop of ROM and movie.
4347 \end_layout
4349 \begin_layout Itemize
4350 Gambatte: Don't save spurious SRAMs.
4351 \end_layout
4353 \begin_layout Itemize
4354 Make SGB ROMs actually usable.
4355 \end_layout
4357 \begin_layout Itemize
4358 Fix so that saved movies appear in recent movies.
4359 \end_layout
4361 \begin_layout Itemize
4362 Don't open multiple commentary editors at once.
4363 \end_layout
4365 \begin_layout Subsection
4366 rr1-delta15epsilon2
4367 \end_layout
4369 \begin_layout Itemize
4370 Lua: memory.readregion/memory.writeregion
4371 \end_layout
4373 \begin_layout Itemize
4374 Lua: memory.map{,s}{byte,word,dword,qword}
4375 \end_layout
4377 \begin_layout Itemize
4378 Lua: memory.map_structure
4379 \end_layout
4381 \begin_layout Itemize
4382 Lua: Fix bus_address for gambatte
4383 \end_layout
4385 \begin_layout Itemize
4386 Fix features dependent of bsnes debugger
4387 \end_layout
4389 \begin_layout Itemize
4390 Cleanup bsnes debugger logic
4391 \end_layout
4393 \begin_layout Itemize
4394 Fix resets in presence of save every frame
4395 \end_layout
4397 \begin_layout Subsection
4398 rr1-delta15epsilon3
4399 \end_layout
4401 \begin_layout Itemize
4402 Lua: input.lcid_to_pcid
4403 \end_layout
4405 \begin_layout Itemize
4406 Fix off-by-one bug with slot hashes
4407 \end_layout
4409 \begin_layout Itemize
4410 Fix crashes on certain memory watch expressions
4411 \end_layout
4413 \begin_layout Itemize
4414 Lua: memory.read_expr
4415 \end_layout
4417 \begin_layout Itemize
4418 Lua: Fix memory.read_expr on nil argument
4419 \end_layout
4421 \begin_layout Itemize
4422 Fix the code to compile on G++ 4.7
4423 \end_layout
4425 \begin_layout Itemize
4426 Change button_id to be a function pointer field, not a virtual method
4427 \end_layout
4429 \begin_layout Itemize
4430 Add bsnes patches to fix libsnes to compile on GCC 4.7
4431 \end_layout
4433 \begin_layout Itemize
4434 Gambatte: Always use legacy lag counting
4435 \end_layout
4437 \begin_layout Itemize
4438 Memory commands: Memory addresses are up to 16 hex digits, not up to 8
4439 \end_layout
4441 \begin_layout Itemize
4442 Fix analog controllers
4443 \end_layout
4445 \begin_layout Itemize
4446 Fix autohold menus
4447 \end_layout
4449 \begin_layout Itemize
4450 Fix button symbols in input display
4451 \end_layout
4453 \begin_layout Itemize
4454 Compensate for nuts bsnes superscope/justifier handling
4455 \end_layout
4457 \begin_layout Itemize
4458 Lua: Fix bit.extract boolean handling
4459 \end_layout
4461 \begin_layout Subsection
4462 rr2-beta0
4463 \end_layout
4465 \begin_layout Itemize
4466 Split emulation cores more from the rest
4467 \end_layout
4469 \begin_layout Itemize
4470 Support having multiple emulation cores compiled at once
4471 \end_layout
4473 \begin_layout Itemize
4474 Support arbitrary number of ports (well, up to 31 anyway).
4475 \end_layout
4477 \begin_layout Itemize
4478 SNES debugger support
4479 \end_layout
4481 \begin_layout Itemize
4482 Support 16-button controllers
4483 \end_layout
4485 \begin_layout Itemize
4486 Remove old SDL front end
4487 \end_layout
4489 \begin_layout Itemize
4490 Data-driven controller buttons
4491 \end_layout
4493 \begin_layout Itemize
4494 Generate the port code from defines
4495 \end_layout
4497 \begin_layout Subsection
4498 rr2-beta1
4499 \end_layout
4501 \begin_layout Itemize
4502 Update libgambatte to SVN364
4503 \end_layout
4505 \begin_layout Itemize
4506 Get rid of partial linking (building with MXE works)
4507 \end_layout
4509 \begin_layout Itemize
4510 Load XML even without gamepack files
4511 \end_layout
4513 \begin_layout Itemize
4514 Support screen rotate & flip
4515 \end_layout
4517 \begin_layout Itemize
4518 Fix bug when changing controller key to another subkey of the same key
4519 \end_layout
4521 \begin_layout Subsection
4522 rr1-delta16
4523 \end_layout
4525 \begin_layout Itemize
4526 Stop at movie end: Don't off-by-one
4527 \end_layout
4529 \begin_layout Itemize
4530 Fix crash closing lsnes with voice playback active.
4531 \end_layout
4533 \begin_layout Itemize
4534 Import/Export OggOpus for commentary tracks
4535 \end_layout
4537 \begin_layout Itemize
4538 16-button controllers.
4539 \end_layout
4541 \begin_layout Itemize
4542 Don't show nonexistent controllers in input display
4543 \end_layout
4545 \begin_layout Itemize
4546 Set voice record/playback volume from UI
4547 \end_layout
4549 \begin_layout Itemize
4550 Patches for gambatte SVN364.
4551 \end_layout
4553 \begin_layout Itemize
4554 Load markup (if exists) even without gamepack file.
4555 \end_layout
4557 \begin_layout Itemize
4558 Screen rotation & flipping
4559 \end_layout
4561 \begin_layout Itemize
4562 Lua: Some new bit functions
4563 \end_layout
4565 \begin_layout Itemize
4566 Auto-refresh voice streams on change.
4567 \end_layout
4569 \begin_layout Itemize
4570 Auto-refresh subtitles on change & new subtitle editor.
4571 \end_layout
4573 \begin_layout Itemize
4574 Fix music volume adjustment.
4575 \end_layout
4577 \begin_layout Subsection
4578 rr2-beta2
4579 \end_layout
4581 \begin_layout Itemize
4582 Use system threads instead of platform threads
4583 \end_layout
4585 \begin_layout Itemize
4586 Cleanup build by allowing dummy and real drivers to link together.
4587 \end_layout
4589 \begin_layout Itemize
4590 Split duplex support
4591 \end_layout
4593 \begin_layout Subsection
4594 rr1-delta16epsilon1
4595 \end_layout
4597 \begin_layout Itemize
4598 Wxwidgets: Fix memory watch rendering.
4599 \end_layout
4601 \begin_layout Itemize
4602 Wxwidgets: Allow setting voice stream gain.
4603 \end_layout
4605 \begin_layout Itemize
4606 Wxwidgets: VU meters and volume adjustment.
4607 \end_layout
4609 \begin_layout Itemize
4610 Lua: Custom fonts support.
4611 \end_layout
4613 \begin_layout Itemize
4614 Lua: Fix methods stopping working when resetting Lua.
4615 \end_layout
4617 \begin_layout Itemize
4618 Fix loading standard-format movies in preserve (readonly) mode.
4619 \end_layout
4621 \begin_layout Subsection
4622 rr1-delta17
4623 \end_layout
4625 \begin_layout Itemize
4626 Primitive movie editor
4627 \end_layout
4629 \begin_layout Itemize
4630 Fix VU meter with no sound device.
4631 \end_layout
4633 \begin_layout Itemize
4634 Fix various undefined return values.
4635 \end_layout
4637 \begin_layout Itemize
4638 Show rates in VU meter window.
4639 \end_layout
4641 \begin_layout Subsection
4642 rr2-beta3
4643 \end_layout
4645 \begin_layout Itemize
4646 Lua: Render queues as objects
4647 \end_layout
4649 \begin_layout Itemize
4650 Bsnes: support hard resets
4651 \end_layout
4653 \begin_layout Itemize
4654 Dedicated sound devices dialog
4655 \end_layout
4657 \begin_layout Itemize
4658 Change the default AVI sound mode to 2 or 5.
4659 \end_layout
4661 \begin_layout Itemize
4662 Fix totally borked movie saving.
4663 \end_layout
4665 \begin_layout Itemize
4666 Portaudio: Use split duplex with different devices.
4667 \end_layout
4669 \begin_layout Itemize
4670 Fix controls with gambatte core.
4671 \end_layout
4673 \begin_layout Itemize
4674 Modify save slot set handling.
4675 \end_layout
4677 \begin_layout Itemize
4678 lsnes-dumpavi: --firmware-path.
4679 \end_layout
4681 \begin_layout Itemize
4682 Fix lots of compiler warnings.
4683 \end_layout
4685 \begin_layout Subsection
4686 rr1-delta17epsilon1
4687 \end_layout
4689 \begin_layout Itemize
4690 Commentary tool: Set nominal bit rate and limit max bit rate.
4691 \end_layout
4693 \begin_layout Itemize
4694 Lua: Unconditionally reload host memory on loadstate
4695 \end_layout
4697 \begin_layout Itemize
4698 Lua: Query bindings, manipulate aliases, create inverse bindings
4699 \end_layout
4701 \begin_layout Itemize
4702 Lua: Fix crashes with resetting VM while some types of paint requests are
4703  in flight.
4704 \end_layout
4706 \begin_layout Itemize
4707 Lua: gui.text: Clip the text properly instead of corrupting memory in some
4708  cases.
4709 \end_layout
4711 \begin_layout Itemize
4712 Save screenshot header reliably
4713 \end_layout
4715 \begin_layout Itemize
4716 Lua: Backport input.get2 and input.set2
4717 \end_layout
4719 \begin_layout Itemize
4720 Lua: New controller info functions.
4721 \end_layout
4723 \begin_layout Itemize
4724 Movie editor: Fix reset delay counters to be the right way around.
4725 \end_layout
4727 \begin_layout Itemize
4728 Lua: on_snoop2
4729 \end_layout
4731 \begin_layout Itemize
4732 Lua: on_button and input.veto_button.
4733 \end_layout
4735 \begin_layout Subsection
4736 rr2-beta4
4737 \end_layout
4739 \begin_layout Itemize
4740 Revert memory leak fix breaking input
4741 \end_layout
4743 \begin_layout Itemize
4744 Refactor Opus handling
4745 \end_layout
4747 \begin_layout Itemize
4748 Restrict member picking only to .zip files
4749 \end_layout
4751 \begin_layout Itemize
4752 Fix reading of host-endian VMAs.
4753 \end_layout
4755 \begin_layout Itemize
4756 Fix rlow and rhigh to be the right way around.
4757 \end_layout
4759 \begin_layout Itemize
4760 Lua: Don't wedge VM if callback fails with an exception
4761 \end_layout
4763 \begin_layout Itemize
4764 Refactor Ogg handling.
4765 \end_layout
4767 \begin_layout Subsection
4768 rr1-delta17epsilon2
4769 \end_layout
4771 \begin_layout Itemize
4772 Fix saving PNG screenshots on Win32.
4773 \end_layout
4775 \begin_layout Itemize
4776 Movie editor: Sweep axis.
4777 \end_layout
4779 \begin_layout Itemize
4780 Load selected slot in ro/rw/preserve/movie mode.
4781 \end_layout
4783 \begin_layout Itemize
4784 input.joyset: Preserve and invert user input.
4785 \end_layout
4787 \begin_layout Itemize
4788 Allow immediate saving at point of save (transfer saves).
4789 \end_layout
4791 \begin_layout Itemize
4792 Wxwidgets: Filter filenames in dialogs, autoappend extensions.
4793 \end_layout
4795 \begin_layout Itemize
4796 data/verysmall.font: Add missing glyph 70 (
4797 \begin_inset Quotes eld
4798 \end_inset
4801 \begin_inset Quotes erd
4802 \end_inset
4805 \end_layout
4807 \begin_layout Itemize
4808 Lua: Allow painting custom fonts with halo.
4809 \end_layout
4811 \begin_layout Itemize
4812 Fix memory value search to work on byte types.
4813 \end_layout
4815 \begin_layout Subsection
4816 rr2-beta5
4817 \end_layout
4819 \begin_layout Itemize
4820 Reject oggopus files with incomplete pregap
4821 \end_layout
4823 \begin_layout Itemize
4824 Fix multistream and ogg demuxing
4825 \end_layout
4827 \begin_layout Itemize
4828 Workaround bug with screen >1024 pixels wide.
4829 \end_layout
4831 \begin_layout Itemize
4832 Allow on_input to force/veto system controls.
4833 \end_layout
4835 \begin_layout Itemize
4836 Dedicated autohold/autofire window.
4837 \end_layout
4839 \begin_layout Itemize
4840 Support per-button autofire.
4841 \end_layout
4843 \begin_layout Itemize
4844 Fix crash on trying to frameadvance/exit with no ROM loaded.
4845 \end_layout
4847 \begin_layout Itemize
4848 Fix nonexistent controller key warnings.
4849 \end_layout
4851 \begin_layout Itemize
4852 Movie editor: Fix mouse editing (TYPE_RAXIS)
4853 \end_layout
4855 \begin_layout Itemize
4856 TAS input plugin
4857 \end_layout
4859 \begin_layout Itemize
4860 Analog passthrough.
4861 \end_layout
4863 \begin_layout Itemize
4864 Add throttle axes (TYPE_TAXIS).
4865 \end_layout
4867 \begin_layout Itemize
4868 Fix movie reading with first port having multiple controllers.
4869 \end_layout
4871 \begin_layout Itemize
4872 Move some info from status panel to statusbar.
4873 \end_layout
4875 \begin_layout Subsection
4876 rr1-delta17epsilon3
4877 \end_layout
4879 \begin_layout Itemize
4880 Fix status panel (and movie editor) flicker
4881 \end_layout
4883 \begin_layout Itemize
4884 Show effects of Lua in input display
4885 \end_layout
4887 \begin_layout Itemize
4888 Offer lsmv.backup as file filter too for load lsmv
4889 \end_layout
4891 \begin_layout Itemize
4892 Allow slowing down subframe advance 
4893 \end_layout
4895 \begin_layout Itemize
4896 Display current save slot information
4897 \end_layout
4899 \begin_layout Itemize
4900 Add snes9x fonts
4901 \end_layout
4903 \begin_layout Itemize
4904 Fix hotkeys stopping working after X-ing settings dialog
4905 \end_layout
4907 \begin_layout Itemize
4908 Movie editor: Fix bug if extending finished movie
4909 \end_layout
4911 \begin_layout Itemize
4912 Cap current_frame_first_subframe to movie size when recounting movie
4913 \end_layout
4915 \begin_layout Itemize
4916 Movie editor: Interpret ctrl+click as right click 
4917 \end_layout
4919 \begin_layout Subsection
4920 rr2-beta6
4921 \end_layout
4923 \begin_layout Itemize
4924 Autofire: Fix false status indications
4925 \end_layout
4927 \begin_layout Itemize
4928 Fix subframe counter
4929 \end_layout
4931 \begin_layout Itemize
4932 Fix print() after Lua reset
4933 \end_layout
4935 \begin_layout Itemize
4936 New settings framework
4937 \end_layout
4939 \begin_layout Itemize
4940 Remove some unused leftover stuff
4941 \end_layout
4943 \begin_layout Itemize
4944 Fix race condition causing possible crash on startup
4945 \end_layout
4947 \begin_layout Itemize
4948 Fix compiling if uint64_t and size_t are not compatible
4949 \end_layout
4951 \begin_layout Itemize
4952 Lua: Don't crash if input.[gs]et{,a} is called outside on_input
4953 \end_layout
4955 \begin_layout Subsection
4956 rr2-beta7
4957 \end_layout
4959 \begin_layout Itemize
4960 Fix bug causing crash if triple has invalid button
4961 \end_layout
4963 \end_body
4964 \end_document