1 #LyX 2.0 created this file. For more info see http://www.lyx.org/
6 \use_default_options true
7 \maintain_unincluded_children false
9 \language_package default
14 \font_typewriter default
15 \font_default_family default
16 \use_non_tex_fonts false
23 \default_output_format default
25 \bibtex_command default
26 \index_command default
27 \paperfontsize default
38 \paperorientation portrait
47 \paragraph_separation indent
48 \paragraph_indentation default
49 \quotes_language english
52 \paperpagestyle default
53 \tracking_changes false
66 \begin_layout Standard
67 lsnes is SNES rerecording emulator based on bsnes core.
74 \begin_layout Enumerate
75 bsnes libsnes (for bsnes SNES core)
79 \begin_layout Enumerate
80 v084-v087 (v084 or v085 for delayreset support)
83 \begin_layout Enumerate
84 accuracy or compatiblity core with debugger enabled.
87 \begin_layout Enumerate
88 Patched version (using included 7 patches)
92 \begin_layout Enumerate
93 gambatte (for gambatte core)
97 \begin_layout Enumerate
98 SVN r320, r358 or r364
101 \begin_layout Enumerate
102 Patched with included patches
106 \begin_layout Enumerate
110 \begin_layout Enumerate
114 \begin_layout Enumerate
118 \begin_layout Enumerate
119 boost_thread (if native std::thread is not available)
122 \begin_layout Enumerate
126 \begin_layout Enumerate
127 sdlmain (SDL only, part of SDL)
130 \begin_layout Enumerate
131 boost_conversion (this is header-only library)
134 \begin_layout Enumerate
135 libswscale (wxwidgets graphics only)
138 \begin_layout Enumerate
139 Portaudio (portaudio sound only)
142 \begin_layout Enumerate
143 libao (libao sound only)
146 \begin_layout Enumerate
147 Lua version 5.1.X or 5.2.X
150 \begin_layout Enumerate
154 \begin_layout Enumerate
155 libopus (optional, for commentary track tool)
158 \begin_layout Section
162 \begin_layout Itemize
163 Copy bsnes sources (the bsnes subdirectory) to subdirectory 'bsnes' (for
167 \begin_layout Itemize
168 Copy gambatte sources to subdirectory 'gambatte' (for gambatte core).
171 \begin_layout Itemize
172 Patch the bsnes sources with included patches (directory 'bsnes-patches/<version
176 \begin_layout Itemize
177 Patch the gambatte sources with included patches (directory 'gambatte-patches/<v
178 ersion>', gambatte core)
181 \begin_layout Itemize
182 Edit options.build (or copy of that file)
185 \begin_layout Itemize
186 Run make (passing 'OPTIONS=<filename>' if using something else than options.build
190 \begin_layout Section
194 \begin_layout Subsection
198 \begin_layout Subsubsection
202 \begin_layout Standard
206 \begin_layout Subsubsection
210 \begin_layout Standard
214 \begin_layout Subsubsection
218 \begin_layout Standard
219 Load <file> as movie or savestate file on startup.
222 \begin_layout Subsubsection
226 \begin_layout Standard
227 Instead of starting the emulator, only display the settings.
230 \begin_layout Subsubsection
234 \begin_layout Standard
235 Run this Lua file on startup
238 \begin_layout Subsection
239 dump options (lsnes-dumpavi only)
242 \begin_layout Subsubsection
246 \begin_layout Standard
251 \begin_layout Subsubsection
255 \begin_layout Standard
256 Load <filename> as movie or savestate file on startup.
260 \begin_layout Subsubsection
264 \begin_layout Standard
265 Set the dumper to use (required).
266 Use 'list' for listing of known dumpers.
269 \begin_layout Subsubsection
270 --firmware-path=<path>
273 \begin_layout Standard
274 Set path to look for firmware.
277 \begin_layout Subsubsection
281 \begin_layout Standard
282 Set the mode to use (required for dumpers with multiple modes, forbidden
284 Use 'list' for known modes.
287 \begin_layout Subsubsection
291 \begin_layout Standard
294 \begin_inset Quotes eld
298 \begin_inset Quotes erd
304 \begin_layout Subsubsection
305 --option=<name>=<value>
308 \begin_layout Standard
309 Set option <name> to value <value>.
312 \begin_layout Subsubsection
316 \begin_layout Standard
317 Set number of frames to dump.
318 Mandatory, unless --overdump-length is specified.
321 \begin_layout Subsubsection
322 --overdump-length=<length>
325 \begin_layout Standard
326 Set number of frames to dump after movie end.
327 Mutually exclusive with --length.
330 \begin_layout Subsubsection
334 \begin_layout Standard
335 Run specified lua script (lsnes-dumpavi does not have initialization files).
338 \begin_layout Subsubsection
339 --load-library=<library>
342 \begin_layout Standard
343 Load the specified shared object / dynamic library / dynamic link library.
346 \begin_layout Subsection
347 lsnes settings directory
350 \begin_layout Standard
351 The lsnes settings directory is (in order of decreasing perference):
354 \begin_layout Itemize
357 lsnes (if %APPDATA% exists)
360 \begin_layout Itemize
361 Unix: $XDG_CONFIG_HOME/lsnes (if $XDG_CONFIG_HOME exists)
364 \begin_layout Itemize
365 Unix: $HOME/.config/lsnes (if $HOME exists)
368 \begin_layout Itemize
373 \begin_layout Standard
374 If leading directories do not exist, attempt to create them is made.
377 \begin_layout Section
381 \begin_layout Itemize
382 Commands beginning with '*' invoke the corresponding command without alias
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 '-'.
392 \begin_layout Itemize
393 Commands without '+' execute only on negative edge (release).
396 \begin_layout Subsection
400 \begin_layout Standard
401 Run <script> as if commands were entered on the command line.
404 \begin_layout Subsection
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
414 \begin_layout Standard
415 The available element <sizes> are:
418 \begin_layout Itemize
422 \begin_layout Itemize
426 \begin_layout Itemize
430 \begin_layout Itemize
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
441 \begin_layout Subsubsection
442 read-<size> <address>
445 \begin_layout Standard
446 Read the value of byte in <address>.
449 \begin_layout Subsubsection
450 read-s<size> <address>
453 \begin_layout Standard
454 Read the value of signed byte in <address>.
457 \begin_layout Subsubsection
458 write-<size> <address> <value>
461 \begin_layout Standard
462 Write <value> to byte in address <address>.
465 \begin_layout Subsection
469 \begin_layout Standard
470 These commands are not available in lsnesrc, but are available after ROM
474 \begin_layout Subsubsection
478 \begin_layout Standard
482 \begin_layout Subsubsection
486 \begin_layout Standard
487 Toggle paused/unpaused
490 \begin_layout Subsubsection
494 \begin_layout Standard
496 If the button is still held after configurable timeout expires, game unpauses
497 for the duration frame advance is held.
500 \begin_layout Subsubsection
504 \begin_layout Standard
506 If the button is still held after configurable timeout expires, game unpauses
507 for the duration frame advance is held.
510 \begin_layout Subsubsection
514 \begin_layout Standard
515 Skip to first poll in frame after current.
518 \begin_layout Subsubsection
522 \begin_layout Standard
523 Reset the SNES after this frame.
526 \begin_layout Subsubsection
530 \begin_layout Standard
531 Load savestate <filename> in current mode.
534 \begin_layout Subsubsection
535 load-state <filename>
538 \begin_layout Standard
539 Load savestate <filename> in readwrite mode.
542 \begin_layout Subsubsection
543 load-readonly <filename>
546 \begin_layout Standard
547 Load savestate <filename> in readonly mode.
550 \begin_layout Subsubsection
551 load-preserve <filename>
554 \begin_layout Standard
555 Load savestate <filename> in readonly mode, preserving current events.
558 \begin_layout Subsubsection
559 load-movie <filename>
562 \begin_layout Standard
563 Load savestate <filename>, ignoring save part in readonly mode.
566 \begin_layout Subsubsection
567 save-state <filename>
570 \begin_layout Standard
571 Save system state to <filename> as soon as possible.
574 \begin_layout Subsubsection
575 save-movie <filename>
578 \begin_layout Standard
579 Save movie to <filename>.
582 \begin_layout Subsubsection
586 \begin_layout Standard
590 \begin_layout Subsubsection
594 \begin_layout Standard
598 \begin_layout Subsubsection
602 \begin_layout Standard
603 Toggle between read-only and read-write modes.
606 \begin_layout Subsubsection
607 test-1, test-2, test-3
610 \begin_layout Standard
611 Internal test commands.
615 \begin_layout Subsubsection
616 take-screenshot <filename>
619 \begin_layout Standard
620 Save screenshot to <filename>.
623 \begin_layout Subsubsection
624 +controller <class>-<#>-<button>
627 \begin_layout Standard
628 Press button <button> on controller <num> of class <class>.
631 \begin_layout Itemize
632 Class 'gamepad': A, B, X, Y, L, R, select, start, up, down, left, right,
633 ext0, ext1, ext2, ext3
636 \begin_layout Itemize
640 \begin_layout Itemize
641 Class 'superscope': trigger, cursor, turbo, pause
644 \begin_layout Itemize
645 Class 'justifier': trigger, start
648 \begin_layout Itemize
649 Class 'gb': A, B, select, start, up, down, left, right
652 \begin_layout Subsubsection
653 hold-controller <class>-<#>-<button>
656 \begin_layout Standard
657 Hold/unhold button <button> on controller <num> of class <class>.
660 \begin_layout Subsubsection
661 type-controller <class>-<#>-<button>
664 \begin_layout Standard
665 Hold/unhold button <button> on controller <num> of class <class> for the
667 See +controller for button names.
670 \begin_layout Standard
671 Cauntion: Does not work properly if outside frame advance.
674 \begin_layout Subsubsection
675 +autofire-controller <class>-<#>-<button> [[<duty>] <cyclelen>]
678 \begin_layout Standard
680 If duty is not specified, defaults to 1.
681 If <cyclelen> is not specified, defaults to 2.
684 \begin_layout Subsubsection
685 -autofire-controller <class>-<#>-<button> [[<duty>] <cyclelen>]
688 \begin_layout Standard
692 \begin_layout Subsubsection
693 autofire-controller <class>-<#>-<button> [[<duty>] <cyclelen>]
696 \begin_layout Standard
698 If autofire is turned on, specified cycle is used.
701 \begin_layout Subsubsection
702 designate-position <class>-<#>-analog<n>
705 \begin_layout Standard
706 Designate position for analog pair.
707 <n> is only there if there are multiple axis pairs.
710 \begin_layout Subsubsection
714 \begin_layout Standard
718 \begin_layout Subsubsection
722 \begin_layout Standard
723 Toggle pause on end flag.
726 \begin_layout Subsubsection
730 \begin_layout Standard
731 Set pause on end flag.
734 \begin_layout Subsubsection
738 \begin_layout Standard
739 Clear pause on end flag.
742 \begin_layout Subsubsection
743 action <action> [<parameters>]
746 \begin_layout Standard
747 Run specified core action.
750 \begin_layout Subsection
754 \begin_layout Subsubsection
755 cycle-jukebox-backward
758 \begin_layout Standard
759 Cycle save jukebox backwards.
762 \begin_layout Subsubsection
763 cycle-jukebox-forward
766 \begin_layout Standard
767 Cycle save jukebox forwards
770 \begin_layout Subsubsection
774 \begin_layout Standard
775 Do load from jukebox (current mode).
778 \begin_layout Subsubsection
782 \begin_layout Standard
783 Do state save to jukebox.
786 \begin_layout Subsection
790 \begin_layout Subsubsection
791 evaluate-lua <luacode>
794 \begin_layout Standard
795 Run Lua code <luacode> using built-in Lua interpretter.
798 \begin_layout Subsubsection
802 \begin_layout Standard
803 Synonym for evaluate-lua.
806 \begin_layout Subsubsection
810 \begin_layout Standard
811 Run specified lua file using built-in Lua interpretter.
814 \begin_layout Subsubsection
818 \begin_layout Standard
819 Clear the Lua VM state and restore to factory defaults.
822 \begin_layout Subsection
826 \begin_layout Subsubsection
827 add-watch <name> <expression>
830 \begin_layout Standard
831 Adds new watch (or modifies old one).
834 \begin_layout Subsubsection
838 \begin_layout Standard
842 \begin_layout Subsection
846 \begin_layout Subsubsection
847 enable-sound <on/off>
850 \begin_layout Standard
851 Enable/Disable sound.
854 \begin_layout Subsection
858 \begin_layout Subsubsection
862 \begin_layout Standard
863 Reloads the main ROM image from <file>.
866 \begin_layout Subsubsection
870 \begin_layout Standard
871 Tangent for recording voice for commentary track.
872 While pressed, record a stream.
875 \begin_layout Subsubsection
876 advance-subframe-timeout
879 \begin_layout Standard
880 Subframe advance timeout in milliseconds.
884 \begin_layout Section
888 \begin_layout Subsection
892 \begin_layout Subsection
896 \begin_layout Subsubsection
900 \begin_layout Standard
901 AVI dumper: Always dump at 512x448 or 512x478 regardless of what the console
905 \begin_layout Subsubsection
909 \begin_layout Standard
910 AVI dumper: Set the default left border thickness (unless lua overrides)
916 \begin_layout Subsubsection
920 \begin_layout Standard
921 AVI dumper: Set the default right border thickness (unless lua overrides)
927 \begin_layout Subsubsection
931 \begin_layout Standard
932 AVI dumper: Set the default top border thickness (unless lua overrides)
938 \begin_layout Subsubsection
942 \begin_layout Standard
943 AVI dumper: Set the default bottom border thickness (unless lua overrides)
949 \begin_layout Subsubsection
953 \begin_layout Standard
954 AVI dumper: Maximum number of frames per dump segment (0 => unlimited).
959 \begin_layout Subsubsection
963 \begin_layout Standard
964 AVI dumper: Compression level (0-18).
967 \begin_layout Itemize
968 Compression levels 10 and above are not compatible with stock CSCD codec.
971 \begin_layout Itemize
972 Recomended level is 7.
975 \begin_layout Subsubsection
979 \begin_layout Standard
980 AVI dumper: Set method of determining the sound rate.
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.
988 \begin_layout Itemize
989 1: Round down to nearest integer.
992 \begin_layout Itemize
993 2: Round up to nearest ingeter.
996 \begin_layout Itemize
997 3: Multiply by denominator.
1000 \begin_layout Itemize
1001 4: High quality 44.1kHz (SRC needed).
1004 \begin_layout Itemize
1005 5: High quality 48kHz (SRC needed).
1008 \begin_layout Subsection
1012 \begin_layout Subsubsection
1016 \begin_layout Standard
1017 JMD dumper: Compression level (0-9).
1020 \begin_layout Section
1024 \begin_layout Itemize
1025 The editor edits in-memory movie.
1028 \begin_layout Itemize
1029 Because past can't be edited and readwrite mode doesn't allow future, editing
1037 \begin_layout Itemize
1038 Keyboard triggers the normal hotkeys and bindings.
1041 \begin_layout Subsection
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)
1050 \begin_layout Itemize
1051 Dragging vertically toggles sequence of buttons or changes a sequence of
1055 \begin_layout Subsection
1056 Right button actions
1059 \begin_layout Standard
1060 The right mouse button pops up a context-sensitive menu:
1063 \begin_layout Itemize
1064 Toggle <something>: Toggle this button
1067 \begin_layout Itemize
1068 Change <something>: Change this axis value
1071 \begin_layout Itemize
1072 Insert frame after: Insert a frame after this frame
1075 \begin_layout Itemize
1076 Append frame: Append a frame to movie
1079 \begin_layout Itemize
1080 Append frames: Append specified number of frames to movie
1083 \begin_layout Itemize
1084 Delete frame: Delete this frame
1087 \begin_layout Itemize
1088 Delete subframe: Delete this subframe
1091 \begin_layout Itemize
1092 Truncate movie: Delete this subframe and everything after it.
1095 \begin_layout Itemize
1096 Scroll to frame: Prompt for a frame and scroll the display to that frame.
1099 \begin_layout Itemize
1100 Scroll to current frame: Scroll the display to current position
1103 \begin_layout Itemize
1104 Run to frame: Prompts for frame and runs the emulation to that frame.
1107 \begin_layout Itemize
1108 Change number of lines visible: Change the height of the movie display (1
1112 \begin_layout Itemize
1113 Lock scroll to playback: While playing back or rewinding movies, the display
1114 will follow if enabled.
1117 \begin_layout Section
1118 Memory watch expression syntax
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
1127 \begin_layout Standard
1131 \begin_layout Itemize
1132 Evaluation order is strictly left to right.
1135 \begin_layout Itemize
1136 a is the entry on top of stack
1139 \begin_layout Itemize
1140 b is the entry immediately below top of stack
1143 \begin_layout Itemize
1144 ; separates values to be pushed (no intermediate pop).
1147 \begin_layout Itemize
1148 After end of element, all used stack slots are popped and all results are
1152 \begin_layout Itemize
1153 When pushing multiple values, the pushes occur in order shown.
1156 \begin_layout Standard
1157 The following operators are available:
1160 \begin_layout Itemize
1164 \begin_layout Itemize
1168 \begin_layout Itemize
1172 \begin_layout Itemize
1176 \begin_layout Itemize
1180 \begin_layout Itemize
1184 \begin_layout Itemize
1185 b : read_signed_byte(a)
1188 \begin_layout Itemize
1192 \begin_layout Itemize
1193 d : read_signed_dword(a)
1196 \begin_layout Itemize
1200 \begin_layout Itemize
1202 \begin_inset Formula $\pi$
1208 \begin_layout Itemize
1209 q : read_signed_qword(a)
1212 \begin_layout Itemize
1216 \begin_layout Itemize
1220 \begin_layout Itemize
1224 \begin_layout Itemize
1228 \begin_layout Itemize
1229 w : read_signed_word(a)
1232 \begin_layout Itemize
1236 \begin_layout Itemize
1237 B : read_unsigned_byte(a)
1240 \begin_layout Itemize
1241 C<number>z : Push number <number> to stack.
1244 \begin_layout Itemize
1245 D : read_unsigned_dword(a)
1248 \begin_layout Itemize
1249 C0x<number>z : Push number <number> (hexadecimal) to stack.
1252 \begin_layout Itemize
1253 H<digit> : Set hexadecimal mode with specified number of digits (use A-G
1257 \begin_layout Itemize
1258 Q : read_unsigned_qword(a)
1261 \begin_layout Itemize
1262 R<digit> : round a to <digit> digits.
1265 \begin_layout Itemize
1266 W : read_unsigned_word(a)
1269 \begin_layout Subsection
1273 \begin_layout Standard
1274 C0x007e0878zWC0x007e002czW-
1277 \begin_layout Enumerate
1278 Push value 0x7e0878 on top of stack (C0x007e0878z).
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).
1286 \begin_layout Enumerate
1287 Push value 0x7e002c on top of stack (C0x007e002cz).
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).
1295 \begin_layout Enumerate
1296 Pop the two top numbers on stack, x1 and x2, substract x1 from x2 and push
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.
1305 \begin_layout Section
1306 Modifier and key names:
1309 \begin_layout Subsection
1313 \begin_layout Subsubsection
1317 \begin_layout Standard
1318 Following modifier names are known:
1321 \begin_layout Itemize
1325 \begin_layout Itemize
1329 \begin_layout Itemize
1333 \begin_layout Itemize
1337 \begin_layout Itemize
1341 \begin_layout Subsubsection
1345 \begin_layout Standard
1346 Following key names are known:
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
1374 \begin_layout Section
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).
1384 \begin_layout Subsection
1385 Detecting clean start/SRAM/Savestate
1388 \begin_layout Itemize
1390 \begin_inset Quotes eld
1394 \begin_inset Quotes erd
1397 it is savestate, otherwise:
1400 \begin_layout Itemize
1401 If file has members with names starting
1402 \begin_inset Quotes eld
1406 \begin_inset Quotes erd
1409 it is movie starting from SRAM, otherwise:
1412 \begin_layout Itemize
1413 It is movie starting from clear state.
1416 \begin_layout Subsection
1420 \begin_layout Standard
1421 Type of game ROM and region (as one line).
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">
1433 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
1436 \begin_layout Plain Layout
1442 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
1445 \begin_layout Plain Layout
1451 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
1454 \begin_layout Plain Layout
1462 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1465 \begin_layout Plain Layout
1471 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1474 \begin_layout Plain Layout
1480 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
1483 \begin_layout Plain Layout
1491 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1494 \begin_layout Plain Layout
1500 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1503 \begin_layout Plain Layout
1509 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
1512 \begin_layout Plain Layout
1520 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1523 \begin_layout Plain Layout
1529 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1532 \begin_layout Plain Layout
1538 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
1541 \begin_layout Plain Layout
1549 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1552 \begin_layout Plain Layout
1558 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1561 \begin_layout Plain Layout
1567 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
1570 \begin_layout Plain Layout
1578 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1581 \begin_layout Plain Layout
1587 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1590 \begin_layout Plain Layout
1596 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
1599 \begin_layout Plain Layout
1607 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1610 \begin_layout Plain Layout
1616 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1619 \begin_layout Plain Layout
1625 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
1628 \begin_layout Plain Layout
1636 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
1639 \begin_layout Plain Layout
1645 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
1648 \begin_layout Plain Layout
1654 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
1657 \begin_layout Plain Layout
1671 \begin_layout Standard
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">
1682 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
1685 \begin_layout Plain Layout
1691 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
1694 \begin_layout Plain Layout
1702 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1705 \begin_layout Plain Layout
1711 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
1714 \begin_layout Plain Layout
1722 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
1725 \begin_layout Plain Layout
1731 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
1734 \begin_layout Plain Layout
1748 \begin_layout Subsection
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'.
1758 \begin_layout Subsection
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'.
1769 \begin_layout Subsection
1773 \begin_layout Standard
1774 Contains name of the game (as one line).
1777 \begin_layout Subsection
1781 \begin_layout Standard
1782 Contains authors, one per line.
1783 Part before '|' is the full name, part after is the nickname.
1786 \begin_layout Subsection
1790 \begin_layout Standard
1792 \begin_inset Quotes eld
1796 \begin_inset Quotes erd
1800 Used to reject other saves.
1803 \begin_layout Subsection
1804 Member: controlsversion
1807 \begin_layout Standard
1809 \begin_inset Quotes eld
1813 \begin_inset Quotes erd
1817 Used to identify what controls are there.
1820 \begin_layout Subsection
1822 \begin_inset Quotes eld
1826 \begin_inset Quotes erd
1832 \begin_layout Standard
1833 Contains bsnes core version number (as one line).
1836 \begin_layout Subsection
1840 \begin_layout Standard
1841 Contains project ID (as one line).
1842 Used to identify if two movies are part of the same project.
1845 \begin_layout Subsection
1846 Member: {rom,slota,slotb}{,xml}.sha256
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.
1854 \begin_layout Subsection
1855 Member: moviesram.<name>
1858 \begin_layout Standard
1859 Raw binary startup SRAM of kind <name>.
1860 Only present in savestates and movies starting from SRAM.
1863 \begin_layout Subsection
1867 \begin_layout Standard
1868 Contains frame number (as one line) of frame movie was saved on.
1869 Only present in savestates.
1872 \begin_layout Subsection
1876 \begin_layout Standard
1877 Current value of lag counter (as one line).
1878 Only present in savestates.
1881 \begin_layout Subsection
1882 Member: pollcounters
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.
1892 \begin_layout Subsection
1896 \begin_layout Standard
1897 Raw binary dump of host memory.
1898 Only present in savestates.
1901 \begin_layout Subsection
1905 \begin_layout Standard
1906 The raw binary savestate itself.
1907 Savestate detection uses this file, only present in savestates.
1910 \begin_layout Subsection
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
1919 Height of image is inferred from the width and size of data.
1922 \begin_layout Subsection
1926 \begin_layout Standard
1927 Raw binary SRAM of kind <name> at time of savestate.
1928 Only present in savestates.
1931 \begin_layout Subsection
1935 \begin_layout Standard
1936 The actual input track, one line per subframe (blank lines are skipped).
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.
1944 \begin_layout Itemize
1945 First subframe must start a new frame.
1948 \begin_layout Standard
1949 Length of movie in frames is number of lines in input file that start a
1953 \begin_layout Subsection
1957 \begin_layout Standard
1962 \begin_layout Itemize
1963 Each line is in form <firstframe> <numframes> <text>.
1966 \begin_layout Itemize
1967 Linefeed is encoded as
1969 n, backslash is encoded as
1976 \begin_layout Subsection
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.
1985 \begin_layout Subsection
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).
1994 \begin_layout Itemize
1995 This member constists of concatenation of records
1998 \begin_layout Itemize
1999 Each record is 2-36 bytes long and can represent 1-16,843,009 consequtive
2003 \begin_layout Itemize
2004 IDs are interpretted as 256-bit big-endian integers with warparound.
2007 \begin_layout Itemize
2008 Initial predicted ID is all zeroes.
2011 \begin_layout Standard
2012 Format of each record is:
2015 \begin_layout Itemize
2016 1 byte: Opcode byte.
2017 Bits 0-4 are prefix length (prefixlen), bits 5-6 are count length (countlen).
2021 \begin_layout Itemize
2022 32-prefixlen bytes of ID.
2025 \begin_layout Itemize
2026 countlen bytes of big-endian count (count).
2029 \begin_layout Standard
2030 Records are processed as follows:
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.
2039 \begin_layout Itemize
2040 If countlen is 0, record encodes 1 ID.
2043 \begin_layout Itemize
2044 If countlen is 1, record encodes 2+count IDs.
2047 \begin_layout Itemize
2048 If countlen is 2, record encodes 258+count IDs.
2051 \begin_layout Itemize
2052 If countlen is 3, record encodes 65794+count IDs.
2055 \begin_layout Itemize
2056 The new predicted ID is the next ID after last one encoded by the record.
2059 \begin_layout Standard
2060 The number of rerecords + 1 is equal to the sum of number of IDs encoded
2064 \begin_layout Subsection
2065 Member: starttime.second
2068 \begin_layout Standard
2069 Movie starting time, second part.
2070 Epoch is Unix epoch.
2071 Default is 1,000,000,000.
2074 \begin_layout Subsection
2075 Member: starttime.subsecond
2078 \begin_layout Standard
2079 Movie starting time, subsecond part.
2084 \begin_layout Subsection
2085 Member: savetime.second
2088 \begin_layout Standard
2089 Movie saving time, second part.
2090 Default is starttime.second.
2091 Only present in savestates.
2094 \begin_layout Subsection
2095 Member: savetime.subsecond
2098 \begin_layout Standard
2099 Movie saving time, subsecond part.
2100 Default is starttime.subsecond.
2101 Only present in savestates.
2104 \begin_layout Section
2105 lsvs file format (commentary tracks)
2108 \begin_layout Subsection
2112 \begin_layout Itemize
2113 Each cluster is 8kB (8192 bytes) in size.
2116 \begin_layout Itemize
2117 Cluster n starts at offset 8192*n in file.
2120 \begin_layout Itemize
2121 The following clusters are system special:
2125 \begin_layout Itemize
2126 Cluster 0 and all clusters with number multiple of 2048 (cluster tables)
2129 \begin_layout Itemize
2130 Cluster 1 (superblock)
2134 \begin_layout Subsection
2138 \begin_layout Itemize
2139 The cluster table describing cluster n is stored in cluster n & ~0x7FF (zero
2143 \begin_layout Itemize
2144 This cluster table consists of 2048 4-byte big-endian integers.
2147 \begin_layout Itemize
2148 Each entry describes a cluster in 16MB supercluster, in order.
2151 \begin_layout Itemize
2152 The valid values for entries are:
2156 \begin_layout Itemize
2157 0x00000000: Free cluster
2160 \begin_layout Itemize
2161 0x00000001: Last cluster in chain.
2164 \begin_layout Itemize
2165 0xFFFFFFFF: System cluster (cluster tables and superblock)
2168 \begin_layout Itemize
2169 (anything else): Number of next cluster in chain.
2170 Must not be multiple of 2048.
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.
2179 \begin_layout Subsection
2183 \begin_layout Itemize
2184 The stream table chain always starts in cluster 2.
2187 \begin_layout Itemize
2188 Otherwise, it follows normal chaining.
2191 \begin_layout Itemize
2192 The stream table consists of 16-byte entries:
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.
2201 \begin_layout Itemize
2202 The next 4 bytes of entry give big-endian beginning cluster for control
2204 0 here marks the entry as not present.
2207 \begin_layout Itemize
2208 The last 4 bytes of entry give big-endian beginning cluster for codec data.
2212 \begin_layout Itemize
2213 Stream table clusters are normal clusters, following normal chaining.
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.
2221 \begin_layout Subsection
2225 \begin_layout Itemize
2226 The stream control data consists of entries 4 bytes each:
2230 \begin_layout Itemize
2231 The first 2 bytes of entry gives big-endian length of packet
2234 \begin_layout Itemize
2235 The next byte of entry gives audio length of packet in units of 1/400 s.
2238 \begin_layout Itemize
2239 The last byte is control byte.
2243 \begin_layout Itemize
2244 0 means this entry is not present and the control data ends.
2247 \begin_layout Itemize
2248 1 is valid control entry.
2253 \begin_layout Itemize
2254 The stream control data can also end by running into end of the readable
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.
2265 \begin_layout Itemize
2266 These clusters follow normal chaining.
2269 \begin_layout Subsection
2273 \begin_layout Itemize
2274 Stream codec data consists of raw Opus data packets packed back to back
2275 with nothing in between.
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).
2283 \begin_layout Subsection
2287 \begin_layout Itemize
2288 The superblock is stored in cluster 1.
2292 \begin_layout Itemize
2293 The first 11 bytes are
2294 \begin_inset Quotes eld
2298 \begin_inset Quotes erd
2304 \begin_layout Itemize
2305 The rest are unused.
2308 \begin_layout Itemize
2309 This cluster 1 is marked as system special.
2312 \begin_layout Section
2313 Known ROM extensions
2316 \begin_layout Itemize
2317 SNES cartridge ROMs: sfc, smc, swc, fig, ufo, sf2, gd3, gd7, dx2, mgd, mgh.
2320 \begin_layout Itemize
2321 DMG cartridge ROMs: dmg, gb.
2324 \begin_layout Itemize
2325 GBC cartridge ROMs: cgb, gbc.
2328 \begin_layout Section
2332 \begin_layout Itemize
2333 The first line must be:
2334 \begin_inset Quotes eld
2338 \begin_inset Quotes erd
2344 \begin_layout Itemize
2345 There is one needed line:
2346 \begin_inset Quotes eld
2350 \begin_inset Quotes erd
2354 This sets system type to <systype>.
2355 The following system types are valid:
2359 \begin_layout Itemize
2363 \begin_layout Itemize
2364 bsx (BS-X non-slotted)
2367 \begin_layout Itemize
2368 bsxslotted (BS-X slotted)
2371 \begin_layout Itemize
2372 sufamiturbo (Sufami Turbo)
2375 \begin_layout Itemize
2376 sgb (Super Game Boy)
2379 \begin_layout Itemize
2383 \begin_layout Itemize
2384 gbc (Game Boy Color)
2387 \begin_layout Itemize
2388 gbc_gba (Game Boy Color with GBA initial register values)
2392 \begin_layout Itemize
2393 Optionally a region can be specified:
2394 \begin_inset Quotes eld
2398 \begin_inset Quotes erd
2402 The following values are valid:
2406 \begin_layout Itemize
2407 autodetect (Autodetect region: snes and sgb only)
2410 \begin_layout Itemize
2411 ntsc (NTSC: snes, bsx, bsxslotted, sufamiturbo, sgb)
2414 \begin_layout Itemize
2415 pal (PAL: snes, sgb)
2418 \begin_layout Itemize
2419 world (World: dmg, gbc, gbc_gba)
2423 \begin_layout Itemize
2424 ROM images are loaded as:
2425 \begin_inset Quotes eld
2429 \begin_inset Quotes erd
2433 The following types are valid:
2437 \begin_layout Itemize
2438 rom (Cartridge ROM in snes, dmg, gbc, gbc_gba.
2439 BIOS in bsx, bsxslotted, sufamiturbo)
2442 \begin_layout Itemize
2443 bsx (Cartridge ROM in bsx, bsxslotted)
2446 \begin_layout Itemize
2447 slot-a (Cartridge ROM in sufamiturbo)
2450 \begin_layout Itemize
2451 slot-b (Cartridge ROM in sufamiturbo)
2455 \begin_layout Itemize
2456 ROM markup can be loaded as:
2457 \begin_inset Quotes eld
2461 \begin_inset Quotes erd
2465 The types valid are the same as for ROMs.
2468 \begin_layout Itemize
2469 Patches can be loaded as
2470 \begin_inset Quotes eld
2473 patch[<offset>] <type> <file>
2474 \begin_inset Quotes erd
2478 The types are the same as for ROMs.
2482 \begin_layout Itemize
2483 Offset is given in form [+-]<number>.
2484 Usually offset is either +0 or -512.
2487 \begin_layout Itemize
2488 Default offset is +0.
2492 \begin_layout Subsection
2496 \begin_layout LyX-Code
2500 \begin_layout LyX-Code
2504 \begin_layout LyX-Code
2505 rom rom speedygonzales.sfc
2508 \begin_layout LyX-Code
2509 patch-512 rom sonicthehedgehog.ips
2512 \begin_layout Subsection
2516 \begin_layout LyX-Code
2520 \begin_layout LyX-Code
2524 \begin_layout LyX-Code
2525 rom rom supergameboy.sfc
2528 \begin_layout LyX-Code
2529 rom dmg megamanV.dmg
2532 \begin_layout Section
2533 Quick'n'dirty encode guide
2536 \begin_layout Enumerate
2537 Start the emulator and load the ROM and movie file.
2540 \begin_layout Enumerate
2541 Set large AVI option 'set-setting avi-large on'
2544 \begin_layout Enumerate
2545 Enable dumping 'dump-avi tmpdump'
2548 \begin_layout Enumerate
2549 Unpause and let it run until you want to end dumping.
2552 \begin_layout Enumerate
2553 Close the emulator (closing the window is the easiest way).
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'.
2562 \begin_layout Enumerate
2563 Do 'sox tmpdump.sox tmpdump.ogg rate -v 32000'
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).
2571 \begin_layout Enumerate
2572 Do 'mkvmerge -o final.mkv tmpdump_video.mkv tmpdump.ogg'.
2573 Now final.mkv contains quick'n'dirty encode.
2576 \begin_layout Section
2577 Axis configurations for some gamepad types:
2580 \begin_layout Subsection
2584 \begin_layout Standard
2585 Axes 2 and 5 (joystick<n>axis2 and joystick<n>axis5) should be set to pressure-+.
2588 \begin_layout LyX-Code
2589 set-axis joystick0axis2 pressure-+
2592 \begin_layout LyX-Code
2593 set-axis joystick0axis5 pressure-+
2596 \begin_layout Itemize
2597 This is needed for SDL only.
2598 EVDEV sets those types correctly.
2601 \begin_layout Subsection
2603 \begin_inset Quotes eld
2607 \begin_inset Quotes erd
2613 \begin_layout Standard
2614 Axes 8-19 should be disabled.
2617 \begin_layout LyX-Code
2618 set-axis joystick0axis8 disabled
2621 \begin_layout LyX-Code
2622 set-axis joystick0axis9 disabled
2625 \begin_layout LyX-Code
2626 set-axis joystick0axis10 disabled
2629 \begin_layout LyX-Code
2630 set-axis joystick0axis11 disabled
2633 \begin_layout LyX-Code
2634 set-axis joystick0axis12 disabled
2637 \begin_layout LyX-Code
2638 set-axis joystick0axis13 disabled
2641 \begin_layout LyX-Code
2642 set-axis joystick0axis14 disabled
2645 \begin_layout LyX-Code
2646 set-axis joystick0axis15 disabled
2649 \begin_layout LyX-Code
2650 set-axis joystick0axis16 disabled
2653 \begin_layout LyX-Code
2654 set-axis joystick0axis17 disabled
2657 \begin_layout LyX-Code
2658 set-axis joystick0axis18 disabled
2661 \begin_layout LyX-Code
2662 set-axis joystick0axis19 disabled
2665 \begin_layout Section
2669 \begin_layout Subsection
2670 Problems from BSNES core:
2673 \begin_layout Itemize
2674 The whole pending save stuff.
2677 \begin_layout Itemize
2678 Lack of layer hiding.
2681 \begin_layout Itemize
2682 It is slow (especially accuracy).
2685 \begin_layout Itemize
2686 Firmwares can't be loaded from ZIP archives.
2689 \begin_layout Subsection
2693 \begin_layout Itemize
2694 Modifiers don't work with pseudo-keys (SDL, EVDEV).
2697 \begin_layout Itemize
2698 Audio for last dumped frame is not itself dumped.
2701 \begin_layout Itemize
2702 Audio in UI is pretty bad in quality if game doesn't run at full speed.
2705 \begin_layout Itemize
2706 No menus, command based interface (SDL).
2709 \begin_layout Itemize
2710 Long commands don't scroll.
2713 \begin_layout Section
2717 \begin_layout Subsection
2721 \begin_layout Itemize
2725 \begin_layout Itemize
2726 Fix dumper video corruption with levels 10-18.
2729 \begin_layout Subsection
2733 \begin_layout Itemize
2737 \begin_layout Itemize
2738 Lots of code cleanups
2741 \begin_layout Itemize
2742 Lua interface to settings
2745 \begin_layout Itemize
2746 Allow specifying AVI borders without Lua
2749 \begin_layout Itemize
2750 Fix scaling if vscale > 1 and originx > 0 (left border exists)
2753 \begin_layout Itemize
2754 on_snoop lua callback
2757 \begin_layout Itemize
2758 Faster movie loading and saving.
2761 \begin_layout Subsection
2765 \begin_layout Itemize
2769 \begin_layout Subsection
2773 \begin_layout Itemize
2777 \begin_layout Itemize
2778 Save jukebox functionality.
2781 \begin_layout Subsection
2785 \begin_layout Itemize
2786 Try to fix some nasty failing movie load edge cases
2789 \begin_layout Itemize
2790 Allow specifying scripts to run on command line.
2793 \begin_layout Subsection
2797 \begin_layout Itemize
2798 Major source code reorganization.
2801 \begin_layout Itemize
2802 Backup savestates before overwriting.
2805 \begin_layout Itemize
2806 Don't crash if loading initial state fails.
2809 \begin_layout Subsection
2813 \begin_layout Itemize
2817 \begin_layout Itemize
2818 Fix author name parsing
2821 \begin_layout Itemize
2822 Fix rerecord counting
2825 \begin_layout Itemize
2826 (SDL) Print messages to console if SDL is uninitialized
2829 \begin_layout Itemize
2830 Add movieinfo program
2833 \begin_layout Itemize
2834 Fix loading movies starting from SRAM.
2837 \begin_layout Subsection
2841 \begin_layout Itemize
2842 Add support for unattended dumping
2845 \begin_layout Itemize
2846 Fix compiling for Win32
2849 \begin_layout Itemize
2850 Don't lock up if sound can't be initialized
2853 \begin_layout Itemize
2854 Strip trailing CR from commands
2857 \begin_layout Itemize
2858 Don't try to do dubious things in global ctors (fix crash on startup)
2861 \begin_layout Subsection
2865 \begin_layout Itemize
2866 Small documentation tweaking
2869 \begin_layout Itemize
2873 \begin_layout Itemize
2874 Fix major bug in modifier matching
2877 \begin_layout Subsection
2881 \begin_layout Itemize
2882 Lots of documentation fixes
2885 \begin_layout Itemize
2886 Use dedicated callbacks for event backcomm., not commands.
2889 \begin_layout Itemize
2890 Ensure that the watchdog is not hit when executing delayed reset.
2893 \begin_layout Itemize
2894 Remove errant tab from joystick message.
2897 \begin_layout Subsection
2901 \begin_layout Itemize
2902 Make autofire operate in absolute time, not linear time
2905 \begin_layout Itemize
2906 Reinitialize controls when resuming from loadstate
2909 \begin_layout Itemize
2910 Some more code cleanups
2913 \begin_layout Itemize
2914 If Lua allocator fails, call OOM_panic()
2917 \begin_layout Itemize
2918 Byte/word/dword/qword sized host memory write/read functions.
2921 \begin_layout Itemize
2922 Dump at correct framerate if dumping interlaced NTSC (height=448).
2925 \begin_layout Subsection
2929 \begin_layout Itemize
2930 Actually include the complete source code
2933 \begin_layout Itemize
2937 \begin_layout Subsection
2941 \begin_layout Itemize
2942 Document {save,start}time.{,sub}second.
2945 \begin_layout Itemize
2946 Intercept time() from bsnes core.
2949 \begin_layout Subsection
2953 \begin_layout Itemize
2954 Allow disabling time() interception (allow build on Mac OS X)
2957 \begin_layout Itemize
2958 Use SDLMain on Mac OS X (make SDL not crash)
2961 \begin_layout Itemize
2962 Disable delayed resets (just plain too buggy for now).
2965 \begin_layout Itemize
2969 \begin_layout Itemize
2970 Use 16-bit for graphics/video instead of 32-bit.
2973 \begin_layout Itemize
2974 gui.rectangle/gui.pixel
2977 \begin_layout Itemize
2981 \begin_layout Itemize
2982 New CSCD writer implementation.
2985 \begin_layout Subsection
2989 \begin_layout Itemize
2990 Fix interaction of * and +.
2993 \begin_layout Itemize
2997 \begin_layout Itemize
2998 Use gettimeofday()/usleep(), these seem portable enough.
3001 \begin_layout Itemize
3002 Move joystick axis manipulation to keymapper code.
3005 \begin_layout Itemize
3006 Changes to how read-only works.
3009 \begin_layout Itemize
3010 Refactor controller input code.
3013 \begin_layout Subsection
3017 \begin_layout Itemize
3018 Fix mouseclick scale compensation.
3021 \begin_layout Itemize
3022 Draw area boundaries correctly in SDL code.
3025 \begin_layout Itemize
3029 \begin_layout Itemize
3030 Fix CSCD output (buffer overrun and race condition).
3033 \begin_layout Subsection
3037 \begin_layout Itemize
3038 JMD dumping support.
3041 \begin_layout Itemize
3042 Allow unattended dumping to JMD.
3045 \begin_layout Itemize
3049 \begin_layout Itemize
3050 Switch back to 32-bit colors.
3053 \begin_layout Itemize
3054 Add Lua function gui.color.
3057 \begin_layout Itemize
3058 Use some new C++11 features in GCC 4.6.
3061 \begin_layout Itemize
3062 Be prepared for core frequency changes.
3065 \begin_layout Itemize
3066 Pass colors in one chunk from Lua.
3069 \begin_layout Subsection
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().
3078 \begin_layout Itemize
3079 Numerious documentation fixups
3082 \begin_layout Itemize
3083 RTC time format changed
3086 \begin_layout Itemize
3087 Reformat flags display
3090 \begin_layout Itemize
3091 Allow lua package name to be overridden
3094 \begin_layout Itemize
3095 SDUMP (high-quality dumping).
3098 \begin_layout Itemize
3099 Split platform support to plugins.
3102 \begin_layout Itemize
3103 Make all sound plugins support basic sound commands
3106 \begin_layout Itemize
3107 Support portaudio for sound.
3110 \begin_layout Itemize
3111 Allow disable Lua/SDL searching.
3114 \begin_layout Itemize
3115 Upconvert colors when copying lcscreen to screen.
3118 \begin_layout Itemize
3119 Reorganize source tree.
3122 \begin_layout Itemize
3123 Evdev joystick support.
3126 \begin_layout Itemize
3127 Refactor more code into generic window code.
3130 \begin_layout Subsection
3134 \begin_layout Itemize
3135 Refactor message handling.
3138 \begin_layout Itemize
3142 \begin_layout Itemize
3146 \begin_layout Itemize
3147 Finish pending saves before load/quit.
3150 \begin_layout Itemize
3151 Wxwidgets graphics plugin.
3154 \begin_layout Subsection
3158 \begin_layout Itemize
3159 Get rid of win32-crap.[ch]pp.
3162 \begin_layout Itemize
3163 Move files around a lot.
3166 \begin_layout Itemize
3167 Get rid of need for host C++ compiler.
3170 \begin_layout Itemize
3174 \begin_layout Itemize
3175 Refactor inter-component communication.
3178 \begin_layout Itemize
3182 \begin_layout Itemize
3183 Fix crash on multiline aliases.
3186 \begin_layout Itemize
3187 Load/Save settings in wxwidgets gui.
3190 \begin_layout Subsection
3194 \begin_layout Itemize
3195 Patch problems in bsnes core
3198 \begin_layout Itemize
3199 SNES is little-endian, not big-endian!
3202 \begin_layout Itemize
3203 Fix memory corruption in lcscreen::load()
3206 \begin_layout Subsection
3210 \begin_layout Itemize
3211 Fix interpretting repeat counts in rrdata loading.
3214 \begin_layout Itemize
3215 New lua callback: on_frame()
3218 \begin_layout Itemize
3219 Remove calls to runtosave() that aren't supposed to be there
3222 \begin_layout Itemize
3223 Lua function: movie.read_rtc()
3226 \begin_layout Itemize
3227 Ignore src/fonts/font.cpp
3230 \begin_layout Itemize
3231 Fix more bsnes core problems
3234 \begin_layout Itemize
3235 Control bsnes random seeding
3238 \begin_layout Itemize
3242 \begin_layout Itemize
3243 Some bsnes core debugging features (state dump and state hash)
3246 \begin_layout Itemize
3247 Fix titlebar version number (no, the last version wasn't 'lsnes-0-beta21',
3248 it was 'lsnes rr0-beta21').
3251 \begin_layout Subsection
3255 \begin_layout Itemize
3256 Fix memory corruption due to macro/field mixup
3259 \begin_layout Itemize
3260 search-memory update
3263 \begin_layout Itemize
3264 Allow direct-mapped framebuffer
3267 \begin_layout Itemize
3268 SDL: Use SDL_ANYFORMAT if possible
3271 \begin_layout Itemize
3272 SDMP2SOX: 2s delay modes.
3275 \begin_layout Itemize
3279 \begin_layout Itemize
3280 Use sed -E, not sed -r.
3281 Fixes building on Mac OS X.
3284 \begin_layout Itemize
3285 Wxwidgets: Save jukebox on exit
3288 \begin_layout Itemize
3289 Fix RTC if using load-movie on savestate.
3292 \begin_layout Itemize
3293 Fix crash related to full console mode.
3296 \begin_layout Subsection
3300 \begin_layout Itemize
3301 Wxwidgets: Allow bringing application to foreground on Mac OS X.
3304 \begin_layout Itemize
3305 Wxwidgets: Allow compiling on Mac OS X.
3308 \begin_layout Itemize
3309 Use movie compare instead of movie hashing (faster save/load).
3312 \begin_layout Itemize
3316 \begin_layout Subsection
3320 \begin_layout Itemize
3321 sdmp2sox: Pad soundtrack if using -l or -L.
3324 \begin_layout Itemize
3325 sdmp2sox: Fix NTSC overscan.
3328 \begin_layout Itemize
3329 sdmp2sox: Add AR correction mode.
3332 \begin_layout Itemize
3333 call lua_close() when exiting.
3336 \begin_layout Itemize
3337 Fix zip_writer bug causing warnings from info-zip and error from advzip.
3340 \begin_layout Subsection
3344 \begin_layout Itemize
3345 Fix IPS patching code (use bsnes core IPS patcher).
3348 \begin_layout Itemize
3349 Implement BPS patching (using bsnes core IPS patcher).
3352 \begin_layout Itemize
3353 Add feature to load headered ROMs.
3356 \begin_layout Subsection
3360 \begin_layout Itemize
3361 Show command names when showing keybindings
3364 \begin_layout Subsection
3368 \begin_layout Itemize
3369 Fix pause-on-end to be actually controllable
3372 \begin_layout Itemize
3373 SDL: Poll all events in queue, not just first one (fixes slowness in command
3377 \begin_layout Itemize
3378 Wxwidgets: Fix ROM loading.
3381 \begin_layout Subsection
3385 \begin_layout Itemize
3386 Lua: Add gui.textH, gui.textV, gui.textHV
3389 \begin_layout Itemize
3390 Fix text colors on SDL on Mac OS X
3393 \begin_layout Itemize
3394 Mode 'F' for finished in readonly mode.
3397 \begin_layout Itemize
3401 \begin_layout Itemize
3402 Reliably pause after skip poll
3405 \begin_layout Itemize
3406 Split UI and core into their own threads
3409 \begin_layout Subsection
3413 \begin_layout Itemize
3414 Remove leftover dummy SRAM slot
3417 \begin_layout Itemize
3418 Fix controller numbers.
3421 \begin_layout Subsection
3425 \begin_layout Itemize
3426 Fix lsnes-dumpavi after interface change.
3429 \begin_layout Itemize
3430 Also give BSNES patches for v085.
3433 \begin_layout Itemize
3434 Pack movie data in memory.
3437 \begin_layout Subsection
3441 \begin_layout Itemize
3442 Fix framecount/length given when loading movies.
3445 \begin_layout Itemize
3446 Controller command memory leak fixes.
3449 \begin_layout Itemize
3450 Don't leak palette if freeing screen object.
3453 \begin_layout Subsection
3457 \begin_layout Itemize
3461 \begin_layout Itemize
3462 Wxwidgets: Allow controlling dumper from the menu.
3465 \begin_layout Subsection
3469 \begin_layout Itemize
3470 Rewrite parts of manual
3473 \begin_layout Itemize
3474 Lua: Make it work with Lua 5.2.
3477 \begin_layout Subsection
3481 \begin_layout Itemize
3482 Win32: Fix compile errors.
3485 \begin_layout Subsection
3489 \begin_layout Itemize
3490 Refactor controller input code.
3493 \begin_layout Itemize
3494 Fix crash when using command line on SDL / Mac OS X.
3497 \begin_layout Subsection
3501 \begin_layout Itemize
3502 Delete core/coroutine (obsolete)
3505 \begin_layout Itemize
3506 Lag input display by one frame.
3509 \begin_layout Itemize
3510 Rewind movie to beginning function.
3513 \begin_layout Itemize
3514 Fix wrong frame number reported to Lua when repainting after loadstate
3517 \begin_layout Itemize
3518 Support UI editing of jukebox
3521 \begin_layout Itemize
3522 Wxwidgets: Save settings on exit.
3525 \begin_layout Itemize
3526 Support ${project} for filenames
3529 \begin_layout Itemize
3530 SDL: Fix command history
3533 \begin_layout Subsection
3537 \begin_layout Itemize
3538 Fix some order-of-global-ctor bugs.
3541 \begin_layout Subsection
3545 \begin_layout Itemize
3546 Fix crashes when quitting on Win32.
3549 \begin_layout Subsection
3553 \begin_layout Itemize
3554 EVDEV: Queue keypresses from joystick, don't send directly
3557 \begin_layout Itemize
3558 Wxwidgets: Load-Preserve that actually works.
3561 \begin_layout Subsection
3565 \begin_layout Itemize
3566 Wxwidgets: GUI for memory search.
3569 \begin_layout Itemize
3570 Warn about using synchronous queue in UI callback.
3573 \begin_layout Subsection
3577 \begin_layout Itemize
3578 Remember last saved file for each ROM
3581 \begin_layout Itemize
3582 Support MT dumping via boost.
3585 \begin_layout Itemize
3589 \begin_layout Itemize
3593 \begin_layout Itemize
3594 Make mouse be ordinary input instead of special-casing
3597 \begin_layout Itemize
3598 SDL: Don't screw up commands with NUL codepoints.
3601 \begin_layout Subsection
3605 \begin_layout Itemize
3606 Merge status panel and main window
3609 \begin_layout Itemize
3610 True movie slot support (the rest of it)
3613 \begin_layout Itemize
3614 SDL: Fix compilation error
3617 \begin_layout Itemize
3618 Elminate cross calls in dump menu code.
3621 \begin_layout Subsection
3625 \begin_layout Itemize
3626 Cancel pending saves command
3629 \begin_layout Itemize
3630 Wxwidgets: Code refactoring
3633 \begin_layout Itemize
3634 Wxwidgets: Fix system -> reset
3637 \begin_layout Itemize
3638 Wxwidgets: Read watch expressions in the right thread
3641 \begin_layout Subsection
3645 \begin_layout Itemize
3646 Wxwidgets: Don't prompt for member when running Lua script (Lua doesn't
3650 \begin_layout Itemize
3651 Wxwidgets: 128 -> 1024 Autohold slots (in case more are needed).
3654 \begin_layout Itemize
3655 Don't append trailing '-' to prefix when saving movie.
3658 \begin_layout Itemize
3659 Fix ROM/savestate handling (don't let user mismatch ROM and savestates).
3662 \begin_layout Subsection
3666 \begin_layout Itemize
3667 Document memory watch syntax.
3670 \begin_layout Subsection
3674 \begin_layout Itemize
3675 Fix unattended dumping (lsnes-dumpavi)
3678 \begin_layout Itemize
3682 \begin_layout Itemize
3683 Use adv_dumper instead of the old interface in lsnes-dumpavi (changes syntax)
3686 \begin_layout Itemize
3687 Add option to control sample rate preturbation in AVI dumper
3690 \begin_layout Subsection
3694 \begin_layout Itemize
3695 Wxwidgets: Fix dumper submodes
3698 \begin_layout Itemize
3699 Set core controller types before loadstate
3702 \begin_layout Subsection
3706 \begin_layout Itemize
3707 Fix compiling with bsnes v086.
3710 \begin_layout Subsection
3714 \begin_layout Itemize
3715 Don't prompt before quitting
3718 \begin_layout Itemize
3719 Start unpaused, preserve pause/unpause over load.
3722 \begin_layout Itemize
3723 Try to autodetect if ROM is headered.
3726 \begin_layout Itemize
3727 Wxwidgets: Only bring up ROM patching screen if specifically requested.
3730 \begin_layout Itemize
3731 Allow configuring some hotkeys.
3734 \begin_layout Subsection
3738 \begin_layout Itemize
3739 Lots of code cleanups
3742 \begin_layout Itemize
3743 Fix JMD compression (JMD dumping was broken)
3746 \begin_layout Itemize
3747 Don't crash if Lua C function throws an exception.
3750 \begin_layout Itemize
3751 Support bitmap drawing in Lua.
3754 \begin_layout Itemize
3755 Fix bsnes v085/v086 patches.
3758 \begin_layout Itemize
3759 Improve stability on win32.
3762 \begin_layout Subsection
3766 \begin_layout Itemize
3767 Don't corrupt movie if movie length is integer multiple of frames per page.
3770 \begin_layout Subsection
3774 \begin_layout Itemize
3775 New Lua hooks: on_rewind, on_frame_emulated, on_idle, on_timer
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
3784 \begin_layout Itemize
3785 Wxwidgets: Fix internal focus lost (hotkeys stop working)
3788 \begin_layout Itemize
3789 Wxwidgets: Fix broken modifiers
3792 \begin_layout Itemize
3793 on_paint has parameter now.
3796 \begin_layout Itemize
3797 Optional initital fill for bitmaps
3800 \begin_layout Itemize
3801 Fix palette changing.
3804 \begin_layout Itemize
3805 Optimize rendering a bit.
3808 \begin_layout Itemize
3812 \begin_layout Subsection
3816 \begin_layout Itemize
3817 Movieinfo: Fix display of port #2 type.
3820 \begin_layout Itemize
3821 Call on_input() after loadstate.
3824 \begin_layout Subsection
3828 \begin_layout Itemize
3829 Fix writing port2 data to movie.
3832 \begin_layout Itemize
3833 Fix SRAM handling with Bsnes v087.
3836 \begin_layout Subsection
3840 \begin_layout Itemize
3841 Library loading support
3844 \begin_layout Itemize
3845 Built-in TSCC encoder
3848 \begin_layout Itemize
3849 Hi-color (256T colors) dumping.
3852 \begin_layout Itemize
3853 Dump over TCP/IP(v6)
3856 \begin_layout Itemize
3857 Hidable status panel
3860 \begin_layout Itemize
3864 \begin_layout Itemize
3865 Adjustable sound volume
3868 \begin_layout Itemize
3872 \begin_layout Itemize
3873 Allow DnD into filename boxes
3876 \begin_layout Itemize
3880 \begin_layout Itemize
3881 Portaudio: Fix speaker popping at start
3884 \begin_layout Itemize
3888 \begin_layout Itemize
3889 Speed adjustment menu
3892 \begin_layout Itemize
3893 Win32 joystick support
3896 \begin_layout Itemize
3897 Lua: gui.rainbow and gui.box
3900 \begin_layout Itemize
3901 Split key lists into classes (the key list was large!)
3904 \begin_layout Itemize
3905 More save slots support
3908 \begin_layout Itemize
3909 Wxwidgets (wxJoystick) joystick support
3912 \begin_layout Subsection
3916 \begin_layout Itemize
3917 Lots of internal joystick refactoring
3920 \begin_layout Itemize
3921 Evdev: Add mapping for BTN_TOOL_QUINTTAP
3924 \begin_layout Itemize
3925 Wxwidgets: Settings mode (open settings without ROM)
3928 \begin_layout Itemize
3929 Wxwidgets: Prompt key to use option
3932 \begin_layout Itemize
3933 Wxwidgets: Fix crash if key goes away underneath
3936 \begin_layout Itemize
3937 Wxwidgets: Fix mouse position in presence of scaling
3940 \begin_layout Itemize
3941 AVI dumper: Mode 4 (high-quality resampling to common rate using SRC)
3944 \begin_layout Itemize
3945 Wxwidgets: Redesign hotkeys dialog to avoid tree control (tree control doesn't
3946 seem to work well on WinXP)
3949 \begin_layout Itemize
3950 Start paused option.
3953 \begin_layout Subsection
3957 \begin_layout Itemize
3961 \begin_layout Itemize
3962 lsnes-dumpavi: Start Lua before starting dumper
3965 \begin_layout Itemize
3966 AVI: Fix secondary audio in mode 4.
3969 \begin_layout Subsection
3973 \begin_layout Itemize
3974 AVI: Refactor ZMBV a bit.
3977 \begin_layout Itemize
3978 Fix error reading analog values from movie file
3981 \begin_layout Subsection
3985 \begin_layout Itemize
3986 Delayed reset support
3989 \begin_layout Itemize
3990 Lua: memory.hash_region
3993 \begin_layout Subsection
3997 \begin_layout Itemize
3998 Rework the build system
4001 \begin_layout Itemize
4002 Typing input support
4005 \begin_layout Itemize
4006 Fix building with bsnes v086 and v087.
4009 \begin_layout Itemize
4010 SDL: Save settings on exit
4013 \begin_layout Itemize
4014 SDL: Command to enter command line mode with given command.
4017 \begin_layout Itemize
4018 SDL: More advanced command editing.
4021 \begin_layout Subsection
4025 \begin_layout Itemize
4027 \begin_inset Quotes eld
4030 arrow keys and enter don't work
4031 \begin_inset Quotes erd
4037 \begin_layout Itemize
4041 \begin_layout Itemize
4042 Show mode changes due to rewinding.
4045 \begin_layout Itemize
4046 Unsafe rewind support
4049 \begin_layout Itemize
4050 Fix directory transversal.
4053 \begin_layout Subsection
4057 \begin_layout Itemize
4058 AVI: Sound mode 5 (48kHz high-quality)
4061 \begin_layout Itemize
4065 \begin_layout Itemize
4066 Map the SNES bus into address space
4069 \begin_layout Itemize
4070 Fix loading memory watch files with CRLF line endings
4073 \begin_layout Subsection
4077 \begin_layout Itemize
4078 Map bsnes internal state into memory space
4081 \begin_layout Itemize
4083 \begin_inset Quotes eld
4086 click on panel wedges the emulator
4087 \begin_inset Quotes erd
4093 \begin_layout Itemize
4094 DnD movies/saves on the main window.
4097 \begin_layout Subsection
4101 \begin_layout Itemize
4102 Split core bindings into own module.
4105 \begin_layout Itemize
4106 Remember invalid settings
4109 \begin_layout Itemize
4110 Support for modified Gambatte core for GB/GBC emulation.
4113 \begin_layout Itemize
4114 Reload/swap ROM function
4117 \begin_layout Subsection
4121 \begin_layout Itemize
4122 Fix step poll function
4125 \begin_layout Subsection
4129 \begin_layout Itemize
4130 Non-insane savestate anchoring
4133 \begin_layout Subsection
4137 \begin_layout Itemize
4138 More Memory search methods
4141 \begin_layout Itemize
4142 Preserve movie if loading in RO mode.
4145 \begin_layout Itemize
4146 Fix a obscure case in timeline check
4149 \begin_layout Itemize
4150 Revamp the entiere ROM loading code
4153 \begin_layout Itemize
4157 \begin_layout Itemize
4161 \begin_layout Itemize
4162 Standalone hotkey config dialog
4165 \begin_layout Itemize
4166 Show bindings in more user-friendly format
4169 \begin_layout Subsection
4173 \begin_layout Itemize
4177 \begin_layout Itemize
4178 Fix uninitialized variables in bsnes v085
4181 \begin_layout Subsection
4185 \begin_layout Itemize
4186 Merge gambatte core into mainline (from its own branch)
4189 \begin_layout Itemize
4190 Wxwidgets: Show expected dump file formats
4193 \begin_layout Itemize
4194 Memory watch: Data typing
4197 \begin_layout Itemize
4198 lsnes internal MMIO area.
4201 \begin_layout Itemize
4202 Wxwidgets: New memory watch editor
4205 \begin_layout Itemize
4206 Hexadecimal memory watches
4209 \begin_layout Itemize
4210 Wxwidgets: Monospaced panel
4213 \begin_layout Itemize
4214 Wxwidgets: Split memory watches in panel
4217 \begin_layout Itemize
4218 Wxwidgets: Disable VMAs in memory search
4221 \begin_layout Itemize
4222 lsnes-dumpavi: Fix speed bug
4225 \begin_layout Itemize
4226 Movie subtitle support
4229 \begin_layout Itemize
4230 Fix rerecord count reporting
4233 \begin_layout Itemize
4234 Don't trash movie when loading in readonly mode.
4237 \begin_layout Subsection
4241 \begin_layout Itemize
4242 Wxwidgets: Fix crashes on closing settings dialogs on Mac OS X.
4245 \begin_layout Itemize
4246 Fix build on Mac OS X.
4249 \begin_layout Itemize
4253 \begin_layout Itemize
4254 Wxwidgets: Hidable messages window
4257 \begin_layout Itemize
4261 \begin_layout Itemize
4262 Bsnes: Support inconsistent saves
4265 \begin_layout Itemize
4266 Bsnes: Allow simulating saving every frame
4269 \begin_layout Itemize
4270 Fix desync if savestate is loaded in readonly mode in certain conditions.
4273 \begin_layout Itemize
4274 Wxwidgets: Fix save dialogs on Mac OS X.
4277 \begin_layout Itemize
4278 Wxwidgets: Fix insane status width on Win32.
4281 \begin_layout Itemize
4282 Wxwidgets: Fix autohold processing to be faster.
4285 \begin_layout Itemize
4286 Wxwidgets: Allow loading ROMs and movies from commandline.
4289 \begin_layout Subsection
4293 \begin_layout Itemize
4294 Be a bit smarter with --load
4297 \begin_layout Itemize
4298 Rewrote higher-level parts of audio system
4301 \begin_layout Itemize
4302 Tool to build commentary tracks
4305 \begin_layout Itemize
4309 \begin_layout Itemize
4310 Gambatte: Add support for SVN358
4313 \begin_layout Itemize
4314 Use builtin font when rendering status panel.
4317 \begin_layout Itemize
4318 Option to detach memory watch to its own window.
4321 \begin_layout Itemize
4322 Recent ROMs/Movies menu
4325 \begin_layout Itemize
4329 \begin_layout Itemize
4330 Useful lag counter for SNES games that autopoll
4333 \begin_layout Itemize
4334 Fix buffer overflow in gambatte sound output
4337 \begin_layout Subsection
4341 \begin_layout Itemize
4342 Don't blow up on wxGTK if the window is hidden somehow
4345 \begin_layout Itemize
4346 Support simultaneous drop of ROM and movie.
4349 \begin_layout Itemize
4350 Gambatte: Don't save spurious SRAMs.
4353 \begin_layout Itemize
4354 Make SGB ROMs actually usable.
4357 \begin_layout Itemize
4358 Fix so that saved movies appear in recent movies.
4361 \begin_layout Itemize
4362 Don't open multiple commentary editors at once.
4365 \begin_layout Subsection
4369 \begin_layout Itemize
4370 Lua: memory.readregion/memory.writeregion
4373 \begin_layout Itemize
4374 Lua: memory.map{,s}{byte,word,dword,qword}
4377 \begin_layout Itemize
4378 Lua: memory.map_structure
4381 \begin_layout Itemize
4382 Lua: Fix bus_address for gambatte
4385 \begin_layout Itemize
4386 Fix features dependent of bsnes debugger
4389 \begin_layout Itemize
4390 Cleanup bsnes debugger logic
4393 \begin_layout Itemize
4394 Fix resets in presence of save every frame
4397 \begin_layout Subsection
4401 \begin_layout Itemize
4402 Lua: input.lcid_to_pcid
4405 \begin_layout Itemize
4406 Fix off-by-one bug with slot hashes
4409 \begin_layout Itemize
4410 Fix crashes on certain memory watch expressions
4413 \begin_layout Itemize
4414 Lua: memory.read_expr
4417 \begin_layout Itemize
4418 Lua: Fix memory.read_expr on nil argument
4421 \begin_layout Itemize
4422 Fix the code to compile on G++ 4.7
4425 \begin_layout Itemize
4426 Change button_id to be a function pointer field, not a virtual method
4429 \begin_layout Itemize
4430 Add bsnes patches to fix libsnes to compile on GCC 4.7
4433 \begin_layout Itemize
4434 Gambatte: Always use legacy lag counting
4437 \begin_layout Itemize
4438 Memory commands: Memory addresses are up to 16 hex digits, not up to 8
4441 \begin_layout Itemize
4442 Fix analog controllers
4445 \begin_layout Itemize
4449 \begin_layout Itemize
4450 Fix button symbols in input display
4453 \begin_layout Itemize
4454 Compensate for nuts bsnes superscope/justifier handling
4457 \begin_layout Itemize
4458 Lua: Fix bit.extract boolean handling
4461 \begin_layout Subsection
4465 \begin_layout Itemize
4466 Split emulation cores more from the rest
4469 \begin_layout Itemize
4470 Support having multiple emulation cores compiled at once
4473 \begin_layout Itemize
4474 Support arbitrary number of ports (well, up to 31 anyway).
4477 \begin_layout Itemize
4478 SNES debugger support
4481 \begin_layout Itemize
4482 Support 16-button controllers
4485 \begin_layout Itemize
4486 Remove old SDL front end
4489 \begin_layout Itemize
4490 Data-driven controller buttons
4493 \begin_layout Itemize
4494 Generate the port code from defines
4497 \begin_layout Subsection
4501 \begin_layout Itemize
4502 Update libgambatte to SVN364
4505 \begin_layout Itemize
4506 Get rid of partial linking (building with MXE works)
4509 \begin_layout Itemize
4510 Load XML even without gamepack files
4513 \begin_layout Itemize
4514 Support screen rotate & flip
4517 \begin_layout Itemize
4518 Fix bug when changing controller key to another subkey of the same key
4521 \begin_layout Subsection
4525 \begin_layout Itemize
4526 Stop at movie end: Don't off-by-one
4529 \begin_layout Itemize
4530 Fix crash closing lsnes with voice playback active.
4533 \begin_layout Itemize
4534 Import/Export OggOpus for commentary tracks
4537 \begin_layout Itemize
4538 16-button controllers.
4541 \begin_layout Itemize
4542 Don't show nonexistent controllers in input display
4545 \begin_layout Itemize
4546 Set voice record/playback volume from UI
4549 \begin_layout Itemize
4550 Patches for gambatte SVN364.
4553 \begin_layout Itemize
4554 Load markup (if exists) even without gamepack file.
4557 \begin_layout Itemize
4558 Screen rotation & flipping
4561 \begin_layout Itemize
4562 Lua: Some new bit functions
4565 \begin_layout Itemize
4566 Auto-refresh voice streams on change.
4569 \begin_layout Itemize
4570 Auto-refresh subtitles on change & new subtitle editor.
4573 \begin_layout Itemize
4574 Fix music volume adjustment.
4577 \begin_layout Subsection
4581 \begin_layout Itemize
4582 Use system threads instead of platform threads
4585 \begin_layout Itemize
4586 Cleanup build by allowing dummy and real drivers to link together.
4589 \begin_layout Itemize
4590 Split duplex support
4593 \begin_layout Subsection
4597 \begin_layout Itemize
4598 Wxwidgets: Fix memory watch rendering.
4601 \begin_layout Itemize
4602 Wxwidgets: Allow setting voice stream gain.
4605 \begin_layout Itemize
4606 Wxwidgets: VU meters and volume adjustment.
4609 \begin_layout Itemize
4610 Lua: Custom fonts support.
4613 \begin_layout Itemize
4614 Lua: Fix methods stopping working when resetting Lua.
4617 \begin_layout Itemize
4618 Fix loading standard-format movies in preserve (readonly) mode.
4621 \begin_layout Subsection
4625 \begin_layout Itemize
4626 Primitive movie editor
4629 \begin_layout Itemize
4630 Fix VU meter with no sound device.
4633 \begin_layout Itemize
4634 Fix various undefined return values.
4637 \begin_layout Itemize
4638 Show rates in VU meter window.
4641 \begin_layout Subsection
4645 \begin_layout Itemize
4646 Lua: Render queues as objects
4649 \begin_layout Itemize
4650 Bsnes: support hard resets
4653 \begin_layout Itemize
4654 Dedicated sound devices dialog
4657 \begin_layout Itemize
4658 Change the default AVI sound mode to 2 or 5.
4661 \begin_layout Itemize
4662 Fix totally borked movie saving.
4665 \begin_layout Itemize
4666 Portaudio: Use split duplex with different devices.
4669 \begin_layout Itemize
4670 Fix controls with gambatte core.
4673 \begin_layout Itemize
4674 Modify save slot set handling.
4677 \begin_layout Itemize
4678 lsnes-dumpavi: --firmware-path.
4681 \begin_layout Itemize
4682 Fix lots of compiler warnings.
4685 \begin_layout Subsection
4689 \begin_layout Itemize
4690 Commentary tool: Set nominal bit rate and limit max bit rate.
4693 \begin_layout Itemize
4694 Lua: Unconditionally reload host memory on loadstate
4697 \begin_layout Itemize
4698 Lua: Query bindings, manipulate aliases, create inverse bindings
4701 \begin_layout Itemize
4702 Lua: Fix crashes with resetting VM while some types of paint requests are
4706 \begin_layout Itemize
4707 Lua: gui.text: Clip the text properly instead of corrupting memory in some
4711 \begin_layout Itemize
4712 Save screenshot header reliably
4715 \begin_layout Itemize
4716 Lua: Backport input.get2 and input.set2
4719 \begin_layout Itemize
4720 Lua: New controller info functions.
4723 \begin_layout Itemize
4724 Movie editor: Fix reset delay counters to be the right way around.
4727 \begin_layout Itemize
4731 \begin_layout Itemize
4732 Lua: on_button and input.veto_button.
4735 \begin_layout Subsection
4739 \begin_layout Itemize
4740 Revert memory leak fix breaking input
4743 \begin_layout Itemize
4744 Refactor Opus handling
4747 \begin_layout Itemize
4748 Restrict member picking only to .zip files
4751 \begin_layout Itemize
4752 Fix reading of host-endian VMAs.
4755 \begin_layout Itemize
4756 Fix rlow and rhigh to be the right way around.
4759 \begin_layout Itemize
4760 Lua: Don't wedge VM if callback fails with an exception
4763 \begin_layout Itemize
4764 Refactor Ogg handling.
4767 \begin_layout Subsection
4771 \begin_layout Itemize
4772 Fix saving PNG screenshots on Win32.
4775 \begin_layout Itemize
4776 Movie editor: Sweep axis.
4779 \begin_layout Itemize
4780 Load selected slot in ro/rw/preserve/movie mode.
4783 \begin_layout Itemize
4784 input.joyset: Preserve and invert user input.
4787 \begin_layout Itemize
4788 Allow immediate saving at point of save (transfer saves).
4791 \begin_layout Itemize
4792 Wxwidgets: Filter filenames in dialogs, autoappend extensions.
4795 \begin_layout Itemize
4796 data/verysmall.font: Add missing glyph 70 (
4797 \begin_inset Quotes eld
4801 \begin_inset Quotes erd
4807 \begin_layout Itemize
4808 Lua: Allow painting custom fonts with halo.
4811 \begin_layout Itemize
4812 Fix memory value search to work on byte types.
4815 \begin_layout Subsection
4819 \begin_layout Itemize
4820 Reject oggopus files with incomplete pregap
4823 \begin_layout Itemize
4824 Fix multistream and ogg demuxing
4827 \begin_layout Itemize
4828 Workaround bug with screen >1024 pixels wide.
4831 \begin_layout Itemize
4832 Allow on_input to force/veto system controls.
4835 \begin_layout Itemize
4836 Dedicated autohold/autofire window.
4839 \begin_layout Itemize
4840 Support per-button autofire.
4843 \begin_layout Itemize
4844 Fix crash on trying to frameadvance/exit with no ROM loaded.
4847 \begin_layout Itemize
4848 Fix nonexistent controller key warnings.
4851 \begin_layout Itemize
4852 Movie editor: Fix mouse editing (TYPE_RAXIS)
4855 \begin_layout Itemize
4859 \begin_layout Itemize
4863 \begin_layout Itemize
4864 Add throttle axes (TYPE_TAXIS).
4867 \begin_layout Itemize
4868 Fix movie reading with first port having multiple controllers.
4871 \begin_layout Itemize
4872 Move some info from status panel to statusbar.
4875 \begin_layout Subsection
4879 \begin_layout Itemize
4880 Fix status panel (and movie editor) flicker
4883 \begin_layout Itemize
4884 Show effects of Lua in input display
4887 \begin_layout Itemize
4888 Offer lsmv.backup as file filter too for load lsmv
4891 \begin_layout Itemize
4892 Allow slowing down subframe advance
4895 \begin_layout Itemize
4896 Display current save slot information
4899 \begin_layout Itemize
4903 \begin_layout Itemize
4904 Fix hotkeys stopping working after X-ing settings dialog
4907 \begin_layout Itemize
4908 Movie editor: Fix bug if extending finished movie
4911 \begin_layout Itemize
4912 Cap current_frame_first_subframe to movie size when recounting movie
4915 \begin_layout Itemize
4916 Movie editor: Interpret ctrl+click as right click
4919 \begin_layout Subsection
4923 \begin_layout Itemize
4924 Autofire: Fix false status indications
4927 \begin_layout Itemize
4928 Fix subframe counter
4931 \begin_layout Itemize
4932 Fix print() after Lua reset
4935 \begin_layout Itemize
4936 New settings framework
4939 \begin_layout Itemize
4940 Remove some unused leftover stuff
4943 \begin_layout Itemize
4944 Fix race condition causing possible crash on startup
4947 \begin_layout Itemize
4948 Fix compiling if uint64_t and size_t are not compatible
4951 \begin_layout Itemize
4952 Lua: Don't crash if input.[gs]et{,a} is called outside on_input
4955 \begin_layout Subsection
4959 \begin_layout Itemize
4960 Fix bug causing crash if triple has invalid button