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 Subsection
70 \begin_layout Standard
71 These options control loading the ROM.
72 <kind> can be one of following:
80 bsx: BS-X flash ROM in non-slotted mode.
84 bsxslotted: BS-X flash ROM in slotted mode.
92 slot-a: Sufami Turbo Slot A.
96 slot-b: Sufami Turbo Slot B.
99 \begin_layout Subsubsection
103 \begin_layout Standard
104 Set the <file> to use as ROM of <kind>.
107 \begin_layout Subsubsection
111 \begin_layout Standard
112 Apply IPS patch <file> to ROM of <kind>
115 \begin_layout Subsubsection
119 \begin_layout Standard
120 Set the <file> to use as ROM mapping for <kind>.
121 If no mapping file is specified, defaults are used.
124 \begin_layout Subsubsection
125 --ips-<kind>-xml=<file>
128 \begin_layout Standard
129 Apply IPS patch <file> to ROM mapping for <kind>.
132 \begin_layout Subsubsection
133 --ips-offset=<offset>
136 \begin_layout Standard
137 Set IPS apply offset to <offset> (can be negative).
138 In practicular, <offset> of -512 might be handy for applying headered IPS
142 \begin_layout Subsubsection
146 \begin_layout Standard
147 Force ROM to be considered PAL-only (warning: Will cause error if used on
148 anything except SNES and SGB).
151 \begin_layout Subsubsection
155 \begin_layout Standard
156 Force ROM to be considered NTSC-only (default for everything except SNES
160 \begin_layout Subsection
161 New session options (not for lsnes-avidump.exe)
164 \begin_layout Standard
165 If filename is not specified, new session is started.
166 These options control properties of that:
169 \begin_layout Subsubsection
173 \begin_layout Standard
174 Set type of port1 (default is 'gamepad').
175 Valid values are 'none', 'gamepad', 'multitap' (warning: makes most games
176 refuse to start) and 'mouse'.
179 \begin_layout Subsubsection
183 \begin_layout Standard
184 Set type of port2 (default is 'none').
185 Valid values are 'none', 'gamepad', 'multitap', 'mouse', 'superscope',
186 'justifier' and 'justifiers'.
189 \begin_layout Subsubsection
193 \begin_layout Standard
194 Set the name of game to <name>
197 \begin_layout Subsubsection
201 \begin_layout Standard
202 Add author with full name of <name> (no nickname).
205 \begin_layout Subsubsection
209 \begin_layout Standard
210 Add author with nickname of <name> (no full name).
213 \begin_layout Subsubsection
214 --author=<fullname>|<nickname>
217 \begin_layout Standard
218 Add author with full name of <fullname> and nickname of <nickname>.
221 \begin_layout Subsection
225 \begin_layout Standard
226 If filename is specified on command line, it is loaded as initial state
227 (instead of constructing one).
230 \begin_layout Standard
231 Mandatory for lsnes-avidump.exe
234 \begin_layout Subsection
235 lsnes-avidump.exe options
238 \begin_layout Subsubsection
242 \begin_layout Standard
245 \begin_inset Quotes eld
249 \begin_inset Quotes erd
255 \begin_layout Subsubsection
259 \begin_layout Standard
260 Set compression level (0-18).
264 \begin_layout Subsubsection
268 \begin_layout Standard
269 Set number of frames to dump.
273 \begin_layout Subsubsection
277 \begin_layout Standard
278 Run specified lua script.
281 \begin_layout Section
285 \begin_layout Itemize
286 Syntax: Movieinfo.exe <file>
289 \begin_layout Standard
290 Opens <file> and parses it as a movie, giving all sorts of information about
294 \begin_layout Section
295 Startup file lsnes.rc
298 \begin_layout Standard
299 Upon startup, lsnes executes file lsnes.rc as commands.
300 This file is located in:
303 \begin_layout Itemize
308 lsnes.rc (if %APPDATA% exists)
311 \begin_layout Itemize
312 Unix: $XDG_CONFIG_HOME/lsnes/lsnes.rc (if $XDG_CONFIG_HOME exists)
315 \begin_layout Itemize
316 Unix: $HOME/.config/lsnes/lsnes.rc (if $HOME exists)
319 \begin_layout Itemize
320 All: ./lsnes.rc (fallback default).
323 \begin_layout Standard
324 If leading directories do not exist, attempt to create them is made.
327 \begin_layout Subsection
331 \begin_layout Standard
332 If command line parameter --run=<file> is specified, that file is run after
333 lsnes.rc has executed.
334 If multiple such options are present, the files are run in order specified.
337 \begin_layout Section
338 Game internal commands
341 \begin_layout Itemize
342 Commands beginning with '*' invoke the corresponding command without alias
346 \begin_layout Itemize
347 If command starts with '+', the command is executed as-is when button is
348 pressed, and when button is released, it is executed with '+' replaced
352 \begin_layout Subsection
356 \begin_layout Standard
357 Settings control various aspects of emulator behaviour.
360 \begin_layout Subsubsection
361 set-setting <setting> <value>
364 \begin_layout Standard
365 Sets setting <setting> to value <value> (may be empty).
368 \begin_layout Subsubsection
369 unset-setting <setting>
372 \begin_layout Standard
373 Try to unset setting <setting> (not all settings can be unset).
376 \begin_layout Subsubsection
377 get-setting <setting>
380 \begin_layout Standard
381 Read value of setting <setting>
384 \begin_layout Subsubsection
388 \begin_layout Standard
389 Print names and values of all settings.
392 \begin_layout Subsection
396 \begin_layout Standard
397 Keybindings bind commands or aliases to keys (or pseudo-keys).
401 \begin_layout Standard
405 \begin_layout Itemize
406 Do not bind edge active (+/-) commands to keys with modifiers, that won't
410 \begin_layout Itemize
411 Names of keys and modifiers are platform-dependent.
414 \begin_layout Subsubsection
415 bind-key [<mod>/<modmask>] <key> <command>
418 \begin_layout Standard
419 Bind <command> to key <key> (activating if modifiers in <modmask> (comma-seperat
420 ed list) are set as <mod> (comma-seperated list).
424 \begin_layout Subsubsection
425 unbind-key [<mod>/<modmask>] <key>
428 \begin_layout Standard
429 Unbind command from <key> (with specified <mod> and <modmask>).
432 \begin_layout Subsubsection
436 \begin_layout Standard
437 Print all key bindings in effect.
440 \begin_layout Subsection
444 \begin_layout Standard
445 Aliases bind command to sequence of commands.
446 After alias has been defined, it replaces the command it shadows.
449 \begin_layout Standard
453 \begin_layout Itemize
454 You can't alias command to itself.
457 \begin_layout Itemize
458 Aliases starting with +/- are edge active just like ordinary commands starting
462 \begin_layout Itemize
463 One command can be aliased to multiple commands.
466 \begin_layout Subsubsection
467 alias-command <command> <expansion>
470 \begin_layout Standard
471 Append <expansion> to alias <command>.
474 \begin_layout Subsubsection
475 unalias-command <command>
478 \begin_layout Standard
479 Clear alias expansion for <command>.
482 \begin_layout Subsubsection
486 \begin_layout Standard
487 Print all aliases and their expansions in effect.
490 \begin_layout Subsection
494 \begin_layout Standard
495 Run <script> as if commands were entered on command line.
498 \begin_layout Subsection
502 \begin_layout Standard
503 Following commands control video dumping:
506 \begin_layout Subsubsection
507 dump-avi <level> <prefix>
510 \begin_layout Standard
511 Dump AVI video to prefix <prefix> at level <level> (0-18).
514 \begin_layout Itemize
515 The codec is Camstudio Codec in gzip mode.
518 \begin_layout Itemize
519 Encoder and muxer are internal, available on all platforms.
522 \begin_layout Itemize
523 Audio enable/disable and framerate has no effect.
526 \begin_layout Itemize
527 Warning: Levels 10-18 are not compatible with AVISource.
530 \begin_layout Itemize
531 Recomended level is 7 if decoded by AVISource.
534 \begin_layout Itemize
535 Recomended level is 16 if decoded by ffmpeg, mencoder or FFMpegSource.
538 \begin_layout Standard
539 Note: The audio dumped to .avi is low-quality version.
540 The high-quality version is dumped to .sox file.
543 \begin_layout Subsubsection
547 \begin_layout Standard
548 End current AVI video dump.
551 \begin_layout Subsection
555 \begin_layout Standard
556 <address> may be decimal or hexadecimal (prefixed with '0x').
557 <value> can be hexadecimal (prefixed with '0x'), unsigned or signed (prefixed
561 \begin_layout Standard
562 The available element <sizes> are:
565 \begin_layout Itemize
569 \begin_layout Itemize
573 \begin_layout Itemize
577 \begin_layout Itemize
581 \begin_layout Standard
582 When reading RAM and ROM, multi-byte reads/writes are big-endian.
583 When dealing with DSP memory, multi-byte reads/writes are native-endian
584 (do not use operand sizes exceeding DSP bitness, except dword is OK for
588 \begin_layout Subsubsection
589 read-<size> <address>
592 \begin_layout Standard
593 Read the value of byte in <address>.
596 \begin_layout Subsubsection
597 read-s<size> <address>
600 \begin_layout Standard
601 Read the value of signed byte in <address>.
604 \begin_layout Subsubsection
605 write-<size> <address> <value>
608 \begin_layout Standard
609 Write <value> to byte in address <address>.
612 \begin_layout Subsubsection
616 \begin_layout Standard
617 Reset the memory search
620 \begin_layout Subsubsection
624 \begin_layout Standard
625 Print number of candidates remaining
628 \begin_layout Subsubsection
632 \begin_layout Standard
633 Print all candidates remaining
636 \begin_layout Subsubsection
637 search-memory <usflag><sizeflag><op>
640 \begin_layout Standard
641 Searches memory for addresses satisfying criteria.
644 \begin_layout Standard
648 \begin_layout Itemize
652 \begin_layout Itemize
656 \begin_layout Standard
660 \begin_layout Itemize
664 \begin_layout Itemize
668 \begin_layout Itemize
672 \begin_layout Itemize
676 \begin_layout Standard
680 \begin_layout Itemize
681 lt: < previous value.
684 \begin_layout Itemize
685 le: <= previous value.
688 \begin_layout Itemize
689 eq: = previous value.
692 \begin_layout Itemize
693 ne: != previous value.
696 \begin_layout Itemize
697 ge: >= previous value.
700 \begin_layout Itemize
701 gt: > previous value.
704 \begin_layout Subsubsection
705 search-memory <sizeflag> <value>
708 \begin_layout Standard
709 Searches for addresses that currently have value <value>.
710 <sizeflag> is as in previous command.
713 \begin_layout Subsection
717 \begin_layout Standard
718 These commands are not available in lsnesrc, but are available after ROM
722 \begin_layout Subsubsection
726 \begin_layout Standard
727 Quits the emulator (asking for confirmation).
728 If /y is given, no confirmation is asked.
731 \begin_layout Subsubsection
735 \begin_layout Standard
736 Toggle paused/unpaused
739 \begin_layout Subsubsection
743 \begin_layout Standard
745 If the button is still held after configurable timeout expires, game unpauses
746 for the duration frame advance is held.
749 \begin_layout Subsubsection
753 \begin_layout Standard
755 If the button is still held after configurable timeout expires, game unpauses
756 for the duration frame advance is held.
759 \begin_layout Subsubsection
763 \begin_layout Standard
764 Skip to first poll in frame after current.
767 \begin_layout Subsubsection
771 \begin_layout Standard
772 Reset the SNES after this frame.
775 \begin_layout Subsubsection
776 load-state <filename>
779 \begin_layout Standard
780 Load savestate <filename> in readwrite mode.
783 \begin_layout Subsubsection
784 load-readonly <filename>
787 \begin_layout Standard
788 Load savestate <filename> in readonly mode.
791 \begin_layout Subsubsection
792 load-preserve <filename>
795 \begin_layout Standard
796 Load savestate <filename> in readonly mode, preserving current events.
799 \begin_layout Subsubsection
800 load-movie <filename>
803 \begin_layout Standard
804 Load savestate <filename>, ignoring save part in readonly mode.
807 \begin_layout Subsubsection
808 save-state <filename>
811 \begin_layout Standard
812 Save system state to <filename> as soon as possible.
815 \begin_layout Subsubsection
816 save-movie <filename>
819 \begin_layout Standard
820 Save movie to <filename>.
823 \begin_layout Subsubsection
827 \begin_layout Standard
831 \begin_layout Subsubsection
835 \begin_layout Standard
836 Set name of the game to <name>
839 \begin_layout Subsubsection
843 \begin_layout Standard
844 Print the name of the game.
847 \begin_layout Subsubsection
851 \begin_layout Standard
852 Adds new author <author>.
853 If <author> does not contain '|' it is full name.
854 If it contains '|', '|' splits the full name and nickname.
857 \begin_layout Subsubsection
858 edit-author <num> <author>
861 \begin_layout Standard
862 Edit the author in slot <num> (0-based) to be <author> (see add-author for
866 \begin_layout Subsubsection
870 \begin_layout Standard
871 Remove author in slot <num>
874 \begin_layout Subsubsection
878 \begin_layout Standard
882 \begin_layout Subsubsection
883 test-1, test-2, test-3
886 \begin_layout Standard
887 Internal test commands
890 \begin_layout Subsubsection
891 take-screenshot <filename>
894 \begin_layout Standard
895 Save screenshot to <filename>.
898 \begin_layout Subsubsection
899 +controller<num><button>
902 \begin_layout Standard
903 Press button <button> on controller <num> (1-8).
904 The following button names are known:
907 \begin_layout Itemize
911 \begin_layout Itemize
915 \begin_layout Itemize
919 \begin_layout Itemize
923 \begin_layout Itemize
927 \begin_layout Itemize
931 \begin_layout Itemize
935 \begin_layout Itemize
939 \begin_layout Itemize
943 \begin_layout Itemize
947 \begin_layout Itemize
951 \begin_layout Itemize
955 \begin_layout Itemize
959 \begin_layout Itemize
963 \begin_layout Itemize
967 \begin_layout Itemize
971 \begin_layout Subsubsection
972 controllerh<num><button>
975 \begin_layout Standard
976 Hold/unhold button <button> on controller <num> (1-8).
977 See +controller for button names.
980 \begin_layout Subsubsection
981 autofire (<pattern>|-)...
984 \begin_layout Standard
985 Set autofire pattern.
986 Each parameter is comma-separated list of button names (in form of 1start,
987 1A, 2B, etc..) to hold on that frame.
988 After reaching the end of pattern, the pattern restarts from the beginning.
991 \begin_layout Subsubsection
995 \begin_layout Standard
999 \begin_layout Subsection
1003 \begin_layout Subsubsection
1004 cycle-jukebox-backward
1007 \begin_layout Standard
1008 Cycle save jukebox backwards.
1011 \begin_layout Subsubsection
1012 cycle-jukebox-forward
1015 \begin_layout Standard
1016 Cycle save jukebox forwards
1019 \begin_layout Subsubsection
1020 add-jukebox-save <filename>
1023 \begin_layout Standard
1024 Add <filename> to jukebox saves.
1027 \begin_layout Subsubsection
1031 \begin_layout Standard
1032 Do R/W load from jukebox.
1035 \begin_layout Subsubsection
1039 \begin_layout Standard
1040 Do state save to jukebox.
1043 \begin_layout Subsection
1047 \begin_layout Standard
1048 Only available if lua support is compiled in.
1051 \begin_layout Subsubsection
1055 \begin_layout Standard
1056 Run Lua code <luacode> using built-in Lua interpretter.
1059 \begin_layout Subsubsection
1063 \begin_layout Standard
1064 Run specified lua file using built-in Lua interpretter.
1067 \begin_layout Subsection
1071 \begin_layout Subsubsection
1072 add-watch <name> <expression>
1075 \begin_layout Standard
1076 Adds new watch (or modifies old one).
1079 \begin_layout Subsubsection
1083 \begin_layout Standard
1087 \begin_layout Section
1091 \begin_layout Subsection
1095 \begin_layout Standard
1096 Set where bsnes looks for firmware files.
1098 \begin_inset Quotes eld
1102 \begin_inset Quotes erd
1108 \begin_layout Subsection
1112 \begin_layout Standard
1114 Numeric, range is 0.001 to
1115 \begin_inset Quotes eld
1119 \begin_inset Quotes erd
1123 Default is native framerate.
1126 \begin_layout Subsection
1130 \begin_layout Standard
1131 Set save compression level (integer 0-9).
1132 Default is 7 (0 is no compression).
1135 \begin_layout Subsection
1139 \begin_layout Standard
1140 Set the frame advance timeout in milliseconds.
1141 Numeric integer, range is 0-999999999.
1145 \begin_layout Subsection
1149 \begin_layout Standard
1150 AVI dumper: Always dump at 512x448 or 512x478 regardless of what the console
1154 \begin_layout Subsection
1158 \begin_layout Standard
1159 AVI dumper: Set the default left border thickness (unless lua overrides)
1165 \begin_layout Subsection
1169 \begin_layout Standard
1170 AVI dumper: Set the default right border thickness (unless lua overrides)
1176 \begin_layout Subsection
1180 \begin_layout Standard
1181 AVI dumper: Set the default top border thickness (unless lua overrides)
1187 \begin_layout Subsection
1191 \begin_layout Standard
1192 AVI dumper: Set the default bottom border thickness (unless lua overrides)
1198 \begin_layout Subsection
1202 \begin_layout Standard
1203 AVI dumper: Maximum number of frames per dump segment (0 => unlimited).
1208 \begin_layout Section
1212 \begin_layout Subsection
1213 Core (in main table)
1216 \begin_layout Subsubsection
1220 \begin_layout Standard
1221 Print line to message console.
1224 \begin_layout Subsubsection
1225 exec(string command)
1228 \begin_layout Standard
1229 Run command as it was entered on the command line
1232 \begin_layout Subsection
1236 \begin_layout Standard
1237 Bitwise logical functions and related.
1240 \begin_layout Subsubsection
1241 none(number...) / bnot(number...)
1244 \begin_layout Standard
1245 48-bit bitwise NOT / NONE function (set bits that are set in none of the
1249 \begin_layout Subsubsection
1250 any(number...) / bor(number...)
1253 \begin_layout Standard
1254 48-bit bitwise OR / ANY function (set bits that are set in any of the arguments).
1257 \begin_layout Subsubsection
1258 all(number...) / band(number...)
1261 \begin_layout Standard
1262 48-bit bitwise AND / ALL function (set bits that are set in all of the arguments
1266 \begin_layout Subsubsection
1267 parity(number...) / bxor(number...)
1270 \begin_layout Standard
1271 48-bit bitwise XOR / PARITY function (set bits that are set in odd number
1275 \begin_layout Subsubsection
1276 lrotate(number base[, number amount[, number bits]])
1279 \begin_layout Standard
1280 Rotate bits-bit (max 48, default 48) number left by amount (default 1) places.
1283 \begin_layout Subsubsection
1284 rrotate(number base[, number amount[, number bits]])
1287 \begin_layout Standard
1288 Rotate bits-bit (max 48, default 48) number right by amount (default 1)
1292 \begin_layout Subsubsection
1293 lshift(number base[, number amount[, number bits]])
1296 \begin_layout Standard
1297 Shift bits-bit (max 48, default 48) number left by amount (default 1) places.
1298 The new bits are filled with zeroes.
1301 \begin_layout Subsubsection
1302 lrshift(number base[, number amount[, number bits]])
1305 \begin_layout Standard
1306 Shift bits-bit (max 48, default 48) number logically right by amount (default
1308 The new bits are filled with zeroes.
1311 \begin_layout Subsubsection
1312 arshift(number base[, number amount[, number bits]])
1315 \begin_layout Standard
1316 Shift bits-bit (max 48, default 48) number arithmetically right by amount
1318 The new bits are shifted in with copy of the high bit.
1321 \begin_layout Subsection
1325 \begin_layout Standard
1326 Most of these functions can only be called in on_paint and on_video callbacks.
1327 Exceptions are noted.
1330 \begin_layout Subsubsection
1334 \begin_layout Standard
1335 Returns 5-tuple (hresolution, vresolution, rshift, gshift, bshift).
1338 \begin_layout Subsubsection
1339 gui.<class>_gap(number gap)
1342 \begin_layout Standard
1343 Set the <class> (left, right, top, bottom) gap to specified value (max gap
1347 \begin_layout Subsubsection
1348 gui.text(number x, number y, string text[, number fgc[, number fga[, number
1349 bgc[, number bga]]]])
1352 \begin_layout Standard
1353 Draw text on the GUI.
1354 Font size is 8(or 16) by 16.
1358 \begin_layout Itemize
1359 Coordinate origin is at top-left of the game area.
1360 Left and top gaps have negative coordinates.
1363 \begin_layout Itemize
1364 Use gui.resolution() to discover how to layout colors.
1367 \begin_layout Itemize
1368 Alpha range is 0(transparent)-256(opaque).
1371 \begin_layout Itemize
1372 Only available in on_paint() and on_video() callbacks.
1375 \begin_layout Subsubsection
1379 \begin_layout Standard
1380 Request on_repaint() to happen as soon as possible.
1381 Can be used anywhere.
1384 \begin_layout Subsubsection
1385 gui.subframe_update(boolean on)
1388 \begin_layout Standard
1389 Request subframe updates (calling on_paint() on subframes) to happen (on=true)
1390 or not happen (on=false).
1391 Can be used anywhere.
1394 \begin_layout Subsection
1398 \begin_layout Standard
1400 Only available in on_input callback.
1403 \begin_layout Subsection
1404 get(number controller, number index)
1407 \begin_layout Standard
1408 Read the specified index (0-11) from specified controller (0-7).
1412 \begin_layout Itemize
1413 Uses physical controller numbering.
1414 Gamepad in port 2 is controller 4, not 1!
1417 \begin_layout Subsection
1418 set(number controller, number index, number value)
1421 \begin_layout Standard
1422 Write the specified index (0-11) from specified controller (0-7), storing
1427 \begin_layout Itemize
1428 Uses physical controller numbering.
1429 Gamepad in port 2 is controller 4, not 1!
1432 \begin_layout Subsection
1433 reset([number cycles])
1436 \begin_layout Standard
1438 If cycles is greater than zero, do delayed reset.
1441 \begin_layout Itemize
1442 Only available with subframe flag false.
1445 \begin_layout Subsection
1449 \begin_layout Standard
1450 Host memory handling (extra memory saved to savestates).
1451 Host memory starts empty.
1454 \begin_layout Subsubsection
1455 read(number address)
1458 \begin_layout Standard
1459 Reads hostmemory slot address.
1460 Slot numbers out of range return false instead of numeric.
1463 \begin_layout Subsubsection
1464 write(number address, number value)
1467 \begin_layout Standard
1468 Writes hostmemory slot with 0-255.
1469 Slot numbers out of range cause extension of host memory slot space.
1472 \begin_layout Subsection
1476 \begin_layout Standard
1480 \begin_layout Subsubsection
1481 movie.currentframe()
1484 \begin_layout Standard
1485 Return number of current frame.
1488 \begin_layout Subsubsection
1492 \begin_layout Standard
1493 Return number of frames in movie.
1496 \begin_layout Subsubsection
1500 \begin_layout Standard
1501 Return true if in readonly mode, false if in readwrite.
1504 \begin_layout Subsubsection
1505 movie.set_readwrite()
1508 \begin_layout Standard
1509 Set readwrite mode (does not cause on_readwrite callback).
1512 \begin_layout Subsubsection
1513 movie.frame_subframes(number frame)
1516 \begin_layout Standard
1517 Count number of subframes in specified frame (frame numbers are 1-based)
1521 \begin_layout Subsubsection
1522 movie.read_subframe(number frame, number subframe)
1525 \begin_layout Standard
1526 Read specifed subframe in specified frame and return data as array (100
1527 elements, numbered 0-99 currently).
1530 \begin_layout Subsection
1534 \begin_layout Standard
1535 Routines for settings manipulation
1538 \begin_layout Subsubsection
1542 \begin_layout Standard
1543 Get value of setting.
1544 If setting is blank, returns false.
1545 If setting value can't be obtained, returns (nil, error message).
1548 \begin_layout Subsubsection
1549 set(string name, string value)
1552 \begin_layout Standard
1553 Set value of setting.
1554 If setting can't be set, returns (nil, error message).
1557 \begin_layout Subsubsection
1561 \begin_layout Standard
1562 Returns if setting is set.
1563 If setting does not exist, returns (nil, error message).
1566 \begin_layout Subsubsection
1570 \begin_layout Standard
1571 Blanks a setting and returns true.
1572 If setting can't be blanked, returns (nil, error message).
1575 \begin_layout Subsection
1579 \begin_layout Standard
1580 Various callbacks to Lua that can occur.
1583 \begin_layout Subsubsection
1584 Callback: on_paint()
1587 \begin_layout Standard
1588 Called when screen is being painted.
1589 Any gui.* calls requiring graphic context draw on the screen.
1592 \begin_layout Subsubsection
1593 Callback: on_video()
1596 \begin_layout Standard
1597 Called when video dump frame is being painted.
1598 Any gui.* calls requiring graphic context draw on the video.
1601 \begin_layout Subsubsection
1602 Callback: on_startup()
1605 \begin_layout Standard
1606 Called when the emulator is starting (lsnes.rc has been run).
1609 \begin_layout Subsubsection
1610 Callback: on_pre_load(string name)
1613 \begin_layout Standard
1614 Called just before savestate/movie load occurs (note: loads are always delayed,
1615 so this occurs even when load was initiated by lua).
1618 \begin_layout Subsubsection
1619 Callback: on_err_load(string name)
1622 \begin_layout Standard
1623 Called if loadstate goes wrong.
1626 \begin_layout Subsubsection
1627 Callback: on_post_load(string name, boolean was_savestate)
1630 \begin_layout Standard
1631 Called on successful loadstate.
1632 was_savestate gives if this was a savestate or a movie.
1635 \begin_layout Subsubsection
1636 Callback: on_pre_save(string name, boolean is_savestate)
1639 \begin_layout Standard
1640 Called just before savestate save occurs (note: movie saves are synchronous
1641 and won't trigger these callbacks if called from Lua).
1644 \begin_layout Subsubsection
1645 Callback: on_err_save(string name)
1648 \begin_layout Standard
1649 Called if savestate goes wrong.
1652 \begin_layout Subsubsection
1653 Callback: on_post_save(string name, boolean is_savestate)
1656 \begin_layout Standard
1657 Called on successful savaestate.
1658 is_savestate gives if this was a savestate or a movie.
1661 \begin_layout Subsubsection
1665 \begin_layout Standard
1666 Called when emulator is shutting down.
1669 \begin_layout Subsubsection
1670 Callback: on_input(boolean subframe)
1673 \begin_layout Standard
1674 Called when emulator is just sending input to bsnes core.
1675 Warning: This is called even in readonly mode, but the results are ignored.
1678 \begin_layout Subsubsection
1679 Callback: on_reset()
1682 \begin_layout Standard
1683 Called when SNES is reset.
1686 \begin_layout Subsubsection
1687 Callback: on_readwrite()
1690 \begin_layout Standard
1691 Called when moving into readwrite mode as result of
1692 \begin_inset Quotes eld
1696 \begin_inset Quotes erd
1699 command (note: moving to rwmode by Lua won't trigger this, as per recursive
1703 \begin_layout Subsubsection
1704 Callback: on_snoop(number port, number controller, number index, number
1708 \begin_layout Standard
1709 Called each time bsnes asks for input.
1710 The value is the final value to be sent to bsnes core.
1711 Might be useful when translating movies to format suitable for console
1715 \begin_layout Section
1719 \begin_layout Subsection
1720 Platform-specific commands:
1723 \begin_layout Subsubsection
1727 \begin_layout Standard
1728 Enable sounds in GUI (has no effect on video dumping).
1731 \begin_layout Subsubsection
1735 \begin_layout Standard
1736 Disable sounds in GUI (has no effect on video dumping).
1739 \begin_layout Subsubsection
1743 \begin_layout Standard
1744 Asks to press a key and then identifies that key.
1747 \begin_layout Subsubsection
1751 \begin_layout Standard
1752 Toggle between windowed/fullscreen console.
1755 \begin_layout Subsubsection
1759 \begin_layout Standard
1760 Scroll messages window as far back as it goes.
1763 \begin_layout Subsubsection
1767 \begin_layout Standard
1768 Scroll messages window as far forward as it goes.
1771 \begin_layout Subsubsection
1775 \begin_layout Standard
1776 Scroll messages window back one screenful.
1779 \begin_layout Subsubsection
1783 \begin_layout Standard
1784 Scroll messages window forward one screenful.
1787 \begin_layout Subsubsection
1788 axismode <axis> <mode>
1791 \begin_layout Standard
1792 Set joystick axis mode.
1794 \begin_inset Quotes eld
1797 joystick<num>axis<axis>
1798 \begin_inset Quotes erd
1803 \begin_inset Quotes eld
1807 \begin_inset Quotes erd
1814 \begin_layout Itemize
1815 axis: Normal axis mode
1818 \begin_layout Itemize
1819 axis_inverse: Inverse axis mode.
1822 \begin_layout Itemize
1823 pressure_0m: Pressure sensitive.
1824 Released at 0, pressed at full negative.
1827 \begin_layout Itemize
1828 pressure_0p: Pressure sensitive.
1829 Released at 0, pressed at full positive.
1832 \begin_layout Itemize
1833 pressure_m0: Pressure sensitive.
1834 Released at full negative, pressed at 0.
1837 \begin_layout Itemize
1838 pressure_mp: Pressure sensitive.
1839 Released at full negative, pressed at full positive.
1842 \begin_layout Itemize
1843 pressure_p0: Pressure sensitive.
1844 Released at full positive, pressed at 0.
1847 \begin_layout Itemize
1848 pressure_pm: Pressure sensitive.
1849 Released at full positive, pressed at full negative.
1852 \begin_layout Standard
1853 Note that if you have Wired Microsoft XBox 360 controller (works great in
1854 Linux, BTW), you might want to do the following:
1857 \begin_layout Itemize
1858 axismode joystick0axis2 pressure_mp
1861 \begin_layout Itemize
1862 axismode joystick0axis5 pressure_mp
1865 \begin_layout Standard
1866 Since axes 2 and 5 are LT/RT, which are pressure sensitive.
1869 \begin_layout Standard
1871 \begin_inset Quotes eld
1875 \begin_inset Quotes erd
1878 controller, disable (axismode joystick0axis<n> disabled) joystick axes
1879 8-19, since otherwise the pressure sensors generate weird events (those
1880 buttons have digital component as well).
1883 \begin_layout Subsection
1887 \begin_layout Subsubsection
1888 autorepeat-first-delay
1891 \begin_layout Standard
1892 Sets the delay for first character in typematic autorepeat.
1895 \begin_layout Subsubsection
1896 autorepeat-subsequent-delay
1899 \begin_layout Standard
1900 Sets the delay for subsequent characters in typematic autorepeat.
1903 \begin_layout Subsection
1907 \begin_layout Standard
1908 Following modifier names are known:
1911 \begin_layout Itemize
1912 ctrl, lctrl, rctrl: Control keys
1915 \begin_layout Itemize
1916 alt, lalt, ralt: ALT keys.
1919 \begin_layout Itemize
1920 shift, lshift, rshift: Shift keys.
1923 \begin_layout Itemize
1924 meta, lmeta, rmeta: Meta keys.
1927 \begin_layout Itemize
1928 num, caps: Numlock/Capslock (these are sticky!)
1931 \begin_layout Itemize
1935 \begin_layout Subsection
1939 \begin_layout Standard
1940 Following key names are known:
1943 \begin_layout Itemize
1944 backspace, tab, clear, return, pause, escape, space, exclaim, quotedbl,
1945 hash, dollar, ampersand, quote, leftparen, rightparen, asterisk, plus,
1946 comma, minus, period, slash, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, colon, semicolon,
1947 less, equals, greater, question, at, leftbracket, backslash, rightbracket,
1948 caret, underscore, backquote, a, b, c, d, e, f, g, h, i, j, k, l, m, n,
1949 o, p, q, r, s, t, u, v, w, x, y, z, delete, world_0, world_1, world_2,
1950 world_3, world_4, world_5, world_6, world_7, world_8, world_9, world_10,
1951 world_11, world_12, world_13, world_14, world_15, world_16, world_17, world_18,
1952 world_19, world_20, world_21, world_22, world_23, world_24, world_25, world_26,
1953 world_27, world_28, world_29, world_30, world_31, world_32, world_33, world_34,
1954 world_35, world_36, world_37, world_38, world_39, world_40, world_41, world_42,
1955 world_43, world_44, world_45, world_46, world_47, world_48, world_49, world_50,
1956 world_51, world_52, world_53, world_54, world_55, world_56, world_57, world_58,
1957 world_59, world_60, world_61, world_62, world_63, world_64, world_65, world_66,
1958 world_67, world_68, world_69, world_70, world_71, world_72, world_73, world_74,
1959 world_75, world_76, world_77, world_78, world_79, world_80, world_81, world_82,
1960 world_83, world_84, world_85, world_86, world_87, world_88, world_89, world_90,
1961 world_91, world_92, world_93, world_94, world_95, kp0, kp1, kp2, kp3, kp4,
1962 kp5, kp6, kp7, kp8, kp9, kp_period, kp_divide, kp_multiply, kp_minus, kp_plus,
1963 kp_enter, kp_equals, up, down, right, left, insert, home, end, pageup,
1964 pagedown, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14,
1965 f15, numlock, capslock, scrollock, rshift, lshift, rctrl, lctrl, ralt,
1966 lalt, rmeta, lmeta, lsuper, rsuper, mode, compose, help, print, sysreq,
1967 break, menu, power, euro, undo
1970 \begin_layout Itemize
1971 Names of form 'key<n>' where <n> is 0-255 are interpretted as key having
1972 hardware-dependent scan code of <n> (useful to bind those keys that don't
1973 have symbolic names).
1976 \begin_layout Standard
1977 In addition, following pseudo-keys are known (note: these do not work in
1978 conjunction with modifers):
1981 \begin_layout Itemize
1982 joystick<num>button<button>: Joystick <num> (0-based) button <button> (0-based).
1985 \begin_layout Itemize
1986 joystick<num>hat<hat>n: Joystick <num> (0-based) hat <hat> (0-based) up.
1989 \begin_layout Itemize
1990 joystick<num>hat<hat>w: Joystick <num> (0-based) hat <hat> (0-based) left.
1993 \begin_layout Itemize
1994 joystick<num>hat<hat>s: Joystick <num> (0-based) hat <hat> (0-based) down.
1997 \begin_layout Itemize
1998 joystick<num>hat<hat>e: Joystick <num> (0-based) hat <hat> (0-based) right.
2001 \begin_layout Itemize
2002 joystick<num>axis<axis>-: Joystick <num> (0-based) axis <axis> negative
2006 \begin_layout Itemize
2007 joystick<num>axis<axis>+: Joystick <num> (0-based) axis <axis> positive
2011 \begin_layout Subsection
2015 \begin_layout Itemize
2016 Escape: Enter/Exit Command mode, cancel modal dialogs.
2019 \begin_layout Itemize
2020 Return (also KPEnter): Execute command, ok modal dialog.
2023 \begin_layout Itemize
2024 Pgup/Up (also KP8/9 if no num lock; command mode): Previous command in command
2028 \begin_layout Itemize
2029 Pgdn/Down(also KP2/3 if no num lock; command mode): Next command in command
2033 \begin_layout Itemize
2034 Home (also KP7 if no num lock; command mode): Beginning of command.
2037 \begin_layout Itemize
2038 End (also KP1 if no num lock; command mode): End of command.
2041 \begin_layout Itemize
2042 Left (also KP4 if no num lock; command mode): Move cursor left.
2045 \begin_layout Itemize
2046 Right (also KP6 if no num lock; command mode): Move cursor right.
2049 \begin_layout Itemize
2051 if no num lock; command mode): Delete character to right of cursor.
2054 \begin_layout Itemize
2055 Insert (also KP0 if no num lock; command mode): Toggle between insert /
2059 \begin_layout Itemize
2060 Backspace (command mode): Delete character to left of cursor.
2063 \begin_layout Itemize
2064 LCTRL+LALT+ESCAPE: Ungraceful shutdown (leaves dump corrupted!).
2067 \begin_layout Subsection
2071 \begin_layout Standard
2072 If emulator does not reach internal polling loop in 15 seconds after leaving
2073 it or 15 seconds after starting, the emulator instantly bombs out.
2076 \begin_layout Section
2080 \begin_layout Standard
2081 Movie file is .zip archive in itself, normal ZIP archive tools work on it
2082 (note: If you recompress it, do not use compression methods other than
2083 store and deflate and especially do not use encryption of any kind).
2086 \begin_layout Subsection
2087 Detecting clean start/SRAM/Savestate
2090 \begin_layout Itemize
2092 \begin_inset Quotes eld
2096 \begin_inset Quotes erd
2099 it is savestate, otherwise:
2102 \begin_layout Itemize
2103 If file has members with names starting
2104 \begin_inset Quotes eld
2108 \begin_inset Quotes erd
2111 it is movie starting from SRAM, otherwise:
2114 \begin_layout Itemize
2115 It is movie starting from clear state.
2118 \begin_layout Subsection
2122 \begin_layout Standard
2123 Type of game ROM and region (as one line).
2127 \begin_layout Standard
2128 \begin_inset Tabular
2129 <lyxtabular version="3" rows="8" columns="3">
2130 <features tabularvalignment="middle">
2131 <column alignment="center" valignment="top" width="0">
2132 <column alignment="center" valignment="top" width="0">
2133 <column alignment="center" valignment="top" width="0">
2135 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
2138 \begin_layout Plain Layout
2144 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
2147 \begin_layout Plain Layout
2153 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
2156 \begin_layout Plain Layout
2164 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
2167 \begin_layout Plain Layout
2173 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
2176 \begin_layout Plain Layout
2182 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
2185 \begin_layout Plain Layout
2193 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
2196 \begin_layout Plain Layout
2202 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
2205 \begin_layout Plain Layout
2211 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
2214 \begin_layout Plain Layout
2222 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
2225 \begin_layout Plain Layout
2231 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
2234 \begin_layout Plain Layout
2240 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
2243 \begin_layout Plain Layout
2251 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
2254 \begin_layout Plain Layout
2260 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
2263 \begin_layout Plain Layout
2269 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
2272 \begin_layout Plain Layout
2280 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
2283 \begin_layout Plain Layout
2289 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
2292 \begin_layout Plain Layout
2298 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
2301 \begin_layout Plain Layout
2309 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
2312 \begin_layout Plain Layout
2318 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
2321 \begin_layout Plain Layout
2327 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
2330 \begin_layout Plain Layout
2338 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
2341 \begin_layout Plain Layout
2347 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
2350 \begin_layout Plain Layout
2356 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
2359 \begin_layout Plain Layout
2373 \begin_layout Standard
2377 \begin_layout Standard
2378 \begin_inset Tabular
2379 <lyxtabular version="3" rows="3" columns="2">
2380 <features tabularvalignment="middle">
2381 <column alignment="center" valignment="top" width="0">
2382 <column alignment="center" valignment="top" width="0">
2384 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
2387 \begin_layout Plain Layout
2393 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
2396 \begin_layout Plain Layout
2404 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
2407 \begin_layout Plain Layout
2413 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
2416 \begin_layout Plain Layout
2424 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
2427 \begin_layout Plain Layout
2433 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
2436 \begin_layout Plain Layout
2450 \begin_layout Subsection
2454 \begin_layout Standard
2455 Contains type of port #1 (as one line).
2456 Valid values are 'none', 'gamepad', 'multitap' and 'mouse'.
2457 If not present, defaults to 'gamepad'.
2460 \begin_layout Subsection
2464 \begin_layout Standard
2465 Contains type of port #2 (as one line).
2466 Valid values are 'none', 'gamepad', 'multitap', 'mouse', 'superscope',
2467 'justifier' and 'justifiers'.
2468 If not present, defaults to 'none'.
2471 \begin_layout Subsection
2475 \begin_layout Standard
2476 Contains name of the game (as one line).
2479 \begin_layout Subsection
2483 \begin_layout Standard
2484 Contains authors, one per line.
2485 Part before '|' is the full name, part after is the nickname.
2488 \begin_layout Subsection
2492 \begin_layout Standard
2494 \begin_inset Quotes eld
2498 \begin_inset Quotes erd
2502 Used to reject other saves.
2505 \begin_layout Subsection
2506 Member: controlsversion
2509 \begin_layout Standard
2511 \begin_inset Quotes eld
2515 \begin_inset Quotes erd
2519 Used to identify what controls are there.
2522 \begin_layout Subsection
2524 \begin_inset Quotes eld
2528 \begin_inset Quotes erd
2534 \begin_layout Standard
2535 Contains bsnes core version number (as one line).
2538 \begin_layout Subsection
2542 \begin_layout Standard
2543 Contains project ID (as one line).
2544 Used to identify if two movies are part of the same project.
2547 \begin_layout Subsection
2548 Member: {rom,slota,slotb}{,xml}.sha256
2551 \begin_layout Standard
2552 Contains SHA-256 of said ROM or ROM mapping file (as one line).
2553 Absent if corresponding file is absent.
2556 \begin_layout Subsection
2557 Member: moviesram.<name>
2560 \begin_layout Standard
2561 Raw binary startup SRAM of kind <name>.
2562 Only present in savestates and movies starting from SRAM.
2565 \begin_layout Subsection
2569 \begin_layout Standard
2570 Raw binary movie state data.
2571 Only present in savestates.
2574 \begin_layout Standard
2578 \begin_layout Itemize
2579 32 bytes: SHA-256 of project ID.
2582 \begin_layout Itemize
2583 8 bytes: Big-endian current frame.
2586 \begin_layout Itemize
2587 100x4 bytes: Poll counters for each control (bit31 of each is
2588 \begin_inset Quotes eld
2592 \begin_inset Quotes erd
2598 \begin_layout Itemize
2599 8 bytes: Big-endian lag frame count.
2602 \begin_layout Itemize
2603 32 bytes: SHA-256 of past input
2606 \begin_layout Itemize
2607 32 bytes: SHA-256 of previous.
2610 \begin_layout Itemize
2611 (total of 512 bytes)
2614 \begin_layout Subsection
2618 \begin_layout Standard
2619 Raw binary dump of host memory.
2620 Only present in savestates.
2623 \begin_layout Subsection
2627 \begin_layout Standard
2628 The raw binary savestate itself.
2629 Savestate detection uses this file, only present in savestates.
2632 \begin_layout Subsection
2636 \begin_layout Standard
2637 Screenshot of current frame.
2638 Only present in savestates.
2639 First 2 bytes are big-endian width of image, rest are big-endian 15-bit
2640 image data (5 bits per channel*pixel, the MSB is unused).
2641 Height of image is inferred from the width and size of data.
2644 \begin_layout Subsection
2648 \begin_layout Standard
2649 Raw binary SRAM of kind <name> at time of savestate.
2650 Only present in savestates.
2653 \begin_layout Subsection
2657 \begin_layout Standard
2658 The actual input track, one line per subframe (blank lines are skipped).
2661 \begin_layout Itemize
2662 If the first byte of each line is '.', ' ', <tab> or '|', then the line is
2663 part of same frame as previous, otherwise it starts a new frame.
2666 \begin_layout Itemize
2667 First subframe must start a new frame.
2670 \begin_layout Standard
2671 Length of movie in frames is number of lines in input file that start a
2675 \begin_layout Subsection
2679 \begin_layout Standard
2680 Contains textual base-10 rerecord count (as one line; emulator just writes
2681 this, it doesn't read it) + 1.
2684 \begin_layout Subsection
2688 \begin_layout Standard
2689 This member stores set of load IDs.
2690 There is one load ID per rerecord (plus one corresponding to start of project).
2693 \begin_layout Itemize
2694 This member constists of concatenation of records
2697 \begin_layout Itemize
2698 Each record is 2-36 bytes long and can represent 1-16,843,009 consequtive
2702 \begin_layout Itemize
2703 IDs are interpretted as 256-bit big-endian integers with warparound.
2706 \begin_layout Itemize
2707 Initial predicted ID is all zeroes.
2710 \begin_layout Standard
2711 Format of each record is:
2714 \begin_layout Itemize
2715 1 byte: Opcode byte.
2716 Bits 0-4 are prefix length (prefixlen), bits 5-6 are count length (countlen).
2720 \begin_layout Itemize
2721 32-prefixlen bytes of ID.
2724 \begin_layout Itemize
2725 countlen bytes of big-endian count (count).
2728 \begin_layout Standard
2729 Records are processed as follows:
2732 \begin_layout Itemize
2733 To form the first ID encoded by record, take the first prefixlen bytes predicted
2734 ID and append the read ID value to it.
2735 The result is the first ID encoded.
2738 \begin_layout Itemize
2739 If countlen is 0, record encodes 1 ID.
2742 \begin_layout Itemize
2743 If countlen is 1, record encodes 2+count IDs.
2746 \begin_layout Itemize
2747 If countlen is 2, record encodes 258+count IDs.
2750 \begin_layout Itemize
2751 If countlen is 3, record encodes 65794+count IDs.
2754 \begin_layout Itemize
2755 The new predicted ID is the next ID after last one encoded by the record.
2758 \begin_layout Standard
2759 The number of rerecords + 1 is equal to the sum of number of IDs encoded
2763 \begin_layout Section
2767 \begin_layout Subsection
2771 \begin_layout Standard
2772 make ui=ui-libsnes options=debugger profile=accuracy
2775 \begin_layout Itemize
2776 Yes, debugger is needed.
2779 \begin_layout Subsection
2780 Prerequisite libraries:
2783 \begin_layout Itemize
2787 \begin_layout Itemize
2791 \begin_layout Itemize
2792 SDLmain (Windows only)
2795 \begin_layout Itemize
2799 \begin_layout Itemize
2803 \begin_layout Itemize
2804 boost (conversion, header only)
2807 \begin_layout Subsection
2808 Compile options to make:
2811 \begin_layout Subsubsection
2815 \begin_layout Standard
2816 Set path to BSNES bsnes directory to <path>.
2819 \begin_layout Subsubsection
2823 \begin_layout Standard
2824 Don't use threads on Linux.
2827 \begin_layout Subsubsection
2831 \begin_layout Standard
2832 Try to use threads even on non-Linux systems.
2835 \begin_layout Subsubsection
2839 \begin_layout Standard
2840 Target C++ compiler to use.
2841 Defaults to g++-4.5.
2844 \begin_layout Standard
2845 Note: If crosscompiling, this has to be crosscompiler.
2848 \begin_layout Subsubsection
2852 \begin_layout Standard
2853 Host C++ compiler to use.
2854 Defaults to the same as CC.
2857 \begin_layout Standard
2858 Note: If crosscompiling, that has to be host compiler (the files produced
2859 will be run in the build process!)
2862 \begin_layout Subsubsection
2866 \begin_layout Standard
2867 Assume BSNES uses compatiblity core instead of accuracy core.
2870 \begin_layout Subsubsection
2874 \begin_layout Standard
2875 Don't compile in Lua support.
2878 \begin_layout Section
2882 \begin_layout Subsection
2883 Problems from BSNES core:
2886 \begin_layout Itemize
2887 The whole pending save stuff.
2890 \begin_layout Itemize
2891 Delay resets are slow.
2894 \begin_layout Itemize
2895 RTC is not emulated in sync-stable manner.
2898 \begin_layout Itemize
2899 Lack of layer hiding.
2902 \begin_layout Itemize
2906 \begin_layout Itemize
2907 Firmwares can't be loaded from ZIP archives.
2910 \begin_layout Itemize
2911 Manual polls can be corrupted if savestate occurs during those.
2914 \begin_layout Subsection
2918 \begin_layout Itemize
2919 Audio for last dumped frame is not itself dumped.
2922 \begin_layout Itemize
2923 Audio in UI is pretty bad in quality.
2926 \begin_layout Itemize
2927 UI itself is 30fps max.
2930 \begin_layout Itemize
2931 AVI compression levels 10-18 are not compatible with AVISynth AVISource.
2934 \begin_layout Itemize
2935 No menus, command based interface (SDL).
2938 \begin_layout Itemize
2939 Long commands don't scroll.
2942 \begin_layout Section
2946 \begin_layout Subsection
2950 \begin_layout Itemize
2954 \begin_layout Itemize
2955 Fix dumper video corruption with levels 10-18.
2958 \begin_layout Subsection
2962 \begin_layout Itemize
2966 \begin_layout Itemize
2967 Lots of code cleanups
2970 \begin_layout Itemize
2971 Lua interface to settings
2974 \begin_layout Itemize
2975 Allow specifying AVI borders without Lua
2978 \begin_layout Itemize
2979 Fix scaling if vscale > 1 and originx > 0 (left border exists)
2982 \begin_layout Itemize
2983 on_snoop lua callback
2986 \begin_layout Itemize
2987 Faster movie loading and saving.
2990 \begin_layout Subsection
2994 \begin_layout Itemize
2998 \begin_layout Subsection
3002 \begin_layout Itemize
3006 \begin_layout Itemize
3007 Save jukebox functionality.
3010 \begin_layout Subsection
3014 \begin_layout Itemize
3015 Try to fix some nasty failing movie load edge cases
3018 \begin_layout Itemize
3019 Allow specifying scripts to run on command line.
3022 \begin_layout Subsection
3026 \begin_layout Itemize
3027 Major source code reorganization.
3030 \begin_layout Itemize
3031 Backup savestates before overwriting.
3034 \begin_layout Itemize
3035 Don't crash if loading initial state fails.
3038 \begin_layout Subsection
3042 \begin_layout Itemize
3046 \begin_layout Itemize
3047 Fix author name parsing
3050 \begin_layout Itemize
3051 Fix rerecord counting
3054 \begin_layout Itemize
3055 (SDL) Print messages to console if SDL is uninitialized
3058 \begin_layout Itemize
3059 Add movieinfo program
3062 \begin_layout Itemize
3063 Fix loading movies starting from SRAM.
3066 \begin_layout Subsection
3070 \begin_layout Itemize
3071 Add support for unattended dumping
3074 \begin_layout Itemize
3075 Fix compiling for Win32
3078 \begin_layout Itemize
3079 Don't lock up if sound can't be initialized
3082 \begin_layout Itemize
3083 Strip trailing CR from commands
3086 \begin_layout Itemize
3087 Don't try to do dubious things in global ctors (fix crash on startup)
3090 \begin_layout Subsection
3094 \begin_layout Itemize
3095 Small documentation tweaking
3098 \begin_layout Itemize
3102 \begin_layout Itemize
3103 Fix major bug in modifier matching