2011-12-12 16:08:22 +02:00
|
|
|
|
1 Introduction
|
|
|
|
|
|
|
|
|
|
lsnes is SNES rerecording emulator based on bsnes core.
|
|
|
|
|
|
2012-01-11 15:05:01 +02:00
|
|
|
|
2 Dependencies
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2012-07-15 13:45:38 +03:00
|
|
|
|
1. bsnes libsnes (for bsnes SNES core)
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2012-05-12 23:20:43 +03:00
|
|
|
|
(a) v084-v087 (v084 or v085 for delayreset support)
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2012-05-11 19:36:13 +03:00
|
|
|
|
(b) accuracy or compatiblity core with debugger enabled.
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2012-05-12 23:10:00 +03:00
|
|
|
|
(c) Patched version (using included 7 patches)
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2012-07-15 13:45:38 +03:00
|
|
|
|
2. gambatte (for gambatte core)
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2013-02-09 12:39:25 +02:00
|
|
|
|
(a) SVN r320, r358 or r364
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2012-07-15 13:45:38 +03:00
|
|
|
|
(b) Patched with included patches
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2012-07-15 13:45:38 +03:00
|
|
|
|
3. Zlib
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2012-07-15 13:45:38 +03:00
|
|
|
|
4. boost_iostreams
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2012-07-15 13:45:38 +03:00
|
|
|
|
5. boost_filesystem
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2012-07-15 13:45:38 +03:00
|
|
|
|
6. boost_thread (if native std::thread is not available)
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2012-07-15 13:45:38 +03:00
|
|
|
|
7. libsdl (SDL only)
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2012-07-15 13:45:38 +03:00
|
|
|
|
8. sdlmain (SDL only, part of SDL)
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2012-07-15 13:45:38 +03:00
|
|
|
|
9. boost_conversion (this is header-only library)
|
|
|
|
|
|
|
|
|
|
10. libswscale (wxwidgets graphics only)
|
|
|
|
|
|
|
|
|
|
11. Portaudio (portaudio sound only)
|
|
|
|
|
|
2012-09-26 00:24:12 +03:00
|
|
|
|
12. libao (libao sound only)
|
|
|
|
|
|
2014-08-08 04:04:14 +03:00
|
|
|
|
13. Lua version 5.1.X or 5.2.X
|
2012-01-17 01:01:52 +02:00
|
|
|
|
|
2014-08-08 04:04:14 +03:00
|
|
|
|
14. G++ 4.6 or 4.7
|
2012-01-11 16:41:23 +02:00
|
|
|
|
|
2013-02-09 12:39:25 +02:00
|
|
|
|
15. libopus (optional, for commentary track tool)
|
2012-01-11 16:41:23 +02:00
|
|
|
|
|
2012-01-11 15:05:01 +02:00
|
|
|
|
3 Building
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2012-05-12 14:04:15 +03:00
|
|
|
|
• Copy bsnes sources (the bsnes subdirectory) to subdirectory
|
2012-07-15 13:45:38 +03:00
|
|
|
|
'bsnes' (for bsnes core).
|
|
|
|
|
|
|
|
|
|
• Copy gambatte sources to subdirectory 'gambatte' (for gambatte
|
|
|
|
|
core).
|
2012-05-12 13:16:27 +03:00
|
|
|
|
|
|
|
|
|
• Patch the bsnes sources with included patches (directory
|
2012-07-15 13:45:38 +03:00
|
|
|
|
'bsnes-patches/<version>', bsnes core)
|
|
|
|
|
|
|
|
|
|
• Patch the gambatte sources with included patches (directory
|
|
|
|
|
'gambatte-patches/<version>', gambatte core)
|
2012-05-12 13:16:27 +03:00
|
|
|
|
|
2012-05-11 19:36:13 +03:00
|
|
|
|
• Edit options.build (or copy of that file)
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2012-05-11 19:36:13 +03:00
|
|
|
|
• Run make (passing 'OPTIONS=<filename>' if using something else
|
|
|
|
|
than options.build).
|
2012-01-11 15:05:01 +02:00
|
|
|
|
|
|
|
|
|
4 Command line options
|
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
4.1 Wxwidgets options
|
2012-01-11 15:05:01 +02:00
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
4.1.1 --rom=<file>
|
2012-01-11 15:05:01 +02:00
|
|
|
|
|
2012-08-24 21:39:58 +03:00
|
|
|
|
Load <file> as ROM.
|
2012-01-11 15:05:01 +02:00
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
4.1.2 <file>
|
2012-01-11 15:05:01 +02:00
|
|
|
|
|
2013-02-11 00:32:56 +02:00
|
|
|
|
Load <file> as ROM.
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
4.1.3 --load=<file>
|
2012-01-11 15:05:01 +02:00
|
|
|
|
|
2013-02-09 23:29:33 +02:00
|
|
|
|
Load <file> as movie or savestate file on startup.
|
2012-04-21 10:48:59 +03:00
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
4.1.4 --settings
|
2012-04-21 10:48:59 +03:00
|
|
|
|
|
2013-02-09 23:29:33 +02:00
|
|
|
|
Instead of starting the emulator, only display the settings.
|
2012-01-11 15:05:01 +02:00
|
|
|
|
|
2013-12-29 00:03:57 +02:00
|
|
|
|
4.1.5 --pluginmanager
|
|
|
|
|
|
|
|
|
|
Instead of starting the emulator, display the plugin manager
|
|
|
|
|
(useful to disable some plugin that causes emulator to crash on
|
|
|
|
|
startup)
|
|
|
|
|
|
|
|
|
|
4.1.6 --lua=<file>
|
2012-07-20 00:23:40 +03:00
|
|
|
|
|
2013-02-11 00:32:56 +02:00
|
|
|
|
Run this Lua file on startup
|
2012-09-21 05:50:00 +03:00
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
4.2 dump options (lsnes-dumpavi only)
|
2012-01-11 15:05:01 +02:00
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
4.2.1 --rom=<file>
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2013-02-09 23:29:33 +02:00
|
|
|
|
Load <file> as ROM. Required.
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
4.2.2 <filename>
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2013-02-09 23:29:33 +02:00
|
|
|
|
Load <filename> as movie or savestate file on startup. Required.
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
4.2.3 --dumper=<dumper>
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2012-01-23 11:26:32 +02:00
|
|
|
|
Set the dumper to use (required). Use 'list' for listing of known
|
|
|
|
|
dumpers.
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
4.2.4 --firmware-path=<path>
|
2013-02-09 23:29:33 +02:00
|
|
|
|
|
|
|
|
|
Set path to look for firmware.
|
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
4.2.5 --mode=<mode>
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2012-01-23 11:26:32 +02:00
|
|
|
|
Set the mode to use (required for dumpers with multiple modes,
|
|
|
|
|
forbidden otherwise). Use 'list' for known modes.
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
4.2.6 --prefix=<prefix>
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2012-01-23 11:26:32 +02:00
|
|
|
|
Set dump prefix. Default is “avidump”.
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
4.2.7 --option=<name>=<value>
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2012-01-23 11:26:32 +02:00
|
|
|
|
Set option <name> to value <value>.
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
4.2.8 --length=<length>
|
2012-01-11 15:05:01 +02:00
|
|
|
|
|
2013-08-15 22:55:59 +03:00
|
|
|
|
Set number of frames to dump. Mandatory, unless --overdump-length
|
|
|
|
|
is specified.
|
2012-01-11 15:05:01 +02:00
|
|
|
|
|
2013-08-15 22:55:59 +03:00
|
|
|
|
4.2.9 --overdump-length=<length>
|
|
|
|
|
|
|
|
|
|
Set number of frames to dump after movie end. Mutually exclusive
|
|
|
|
|
with --length.
|
|
|
|
|
|
|
|
|
|
4.2.10 --lua=<script>
|
2012-01-11 15:05:01 +02:00
|
|
|
|
|
2012-01-23 11:26:32 +02:00
|
|
|
|
Run specified lua script (lsnes-dumpavi does not have
|
|
|
|
|
initialization files).
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2013-08-15 22:55:59 +03:00
|
|
|
|
4.2.11 --load-library=<library>
|
2012-02-13 09:57:26 +02:00
|
|
|
|
|
|
|
|
|
Load the specified shared object / dynamic library / dynamic link
|
|
|
|
|
library.
|
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
4.3 lsnes settings directory
|
2012-01-11 15:05:01 +02:00
|
|
|
|
|
2013-02-09 23:29:33 +02:00
|
|
|
|
The lsnes settings directory is (in order of decreasing
|
|
|
|
|
perference):
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
• Windows: %APPDATA%\lsnes (if %APPDATA% exists)
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
• Unix: $XDG_CONFIG_HOME/lsnes (if $XDG_CONFIG_HOME exists)
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
• Unix: $HOME/.config/lsnes (if $HOME exists)
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
• All: . (fallback default).
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
If leading directories do not exist, attempt to create them is
|
|
|
|
|
made.
|
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
5 Internal commands
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
• Commands beginning with '*' invoke the corresponding command
|
|
|
|
|
without alias expansion.
|
|
|
|
|
|
|
|
|
|
• If command starts with '+' (after possible '*'), the command is
|
|
|
|
|
executed as-is when button is pressed, and when button is
|
|
|
|
|
released, it is executed with '+' replaced by '-'.
|
|
|
|
|
|
2012-01-11 15:05:01 +02:00
|
|
|
|
• Commands without '+' execute only on negative edge (release).
|
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
5.1 run-script <script>
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
Run <script> as if commands were entered on the command line.
|
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
5.2 Memory manipulation
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2014-04-26 20:20:23 +03:00
|
|
|
|
• <address> can be one of:
|
|
|
|
|
|
|
|
|
|
– Decimal number
|
|
|
|
|
|
|
|
|
|
– Hexadecimal number (prefixed with 0x)
|
|
|
|
|
|
|
|
|
|
– <memarea>+<hexoffset> (no 0x prefix for offset).
|
|
|
|
|
|
2011-12-12 16:08:22 +02:00
|
|
|
|
<value> can be hexadecimal (prefixed with '0x'), unsigned or
|
|
|
|
|
signed (prefixed with '-') decimal.
|
|
|
|
|
|
|
|
|
|
The available element <sizes> are:
|
|
|
|
|
|
|
|
|
|
• byte: 1 byte
|
|
|
|
|
|
|
|
|
|
• word: 2 bytes
|
|
|
|
|
|
2013-08-24 22:16:43 +03:00
|
|
|
|
• hword: 3 bytes
|
|
|
|
|
|
2011-12-12 16:08:22 +02:00
|
|
|
|
• dword: 4 bytes
|
|
|
|
|
|
|
|
|
|
• qword: 8 bytes
|
|
|
|
|
|
2013-08-25 04:06:46 +03:00
|
|
|
|
• float: 4 bytes (floating-point)
|
|
|
|
|
|
|
|
|
|
• double: 8 bytes (floating-point)
|
|
|
|
|
|
2011-12-12 16:08:22 +02:00
|
|
|
|
When reading RAM and ROM, multi-byte reads/writes are big-endian.
|
|
|
|
|
When dealing with DSP memory, multi-byte reads/writes are
|
|
|
|
|
native-endian (do not use operand sizes exceeding DSP bitness,
|
|
|
|
|
except dword is OK for 24-bit memory).
|
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
5.2.1 read-<size> <address>
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
Read the value of byte in <address>.
|
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
5.2.2 read-s<size> <address>
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
Read the value of signed byte in <address>.
|
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
5.2.3 write-<size> <address> <value>
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
Write <value> to byte in address <address>.
|
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
5.3 Main commands
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
These commands are not available in lsnesrc, but are available
|
|
|
|
|
after ROM has been loaded.
|
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
5.3.1 quit-emulator
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2013-02-09 23:29:33 +02:00
|
|
|
|
Quits the emulator.
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
5.3.2 pause-emulator
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
Toggle paused/unpaused
|
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
5.3.3 +advance-frame
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
Advance frame. If the button is still held after configurable
|
|
|
|
|
timeout expires, game unpauses for the duration frame advance is
|
|
|
|
|
held.
|
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
5.3.4 +advance-poll
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
Advance subframe. If the button is still held after configurable
|
|
|
|
|
timeout expires, game unpauses for the duration frame advance is
|
|
|
|
|
held.
|
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
5.3.5 advance-skiplag
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
Skip to first poll in frame after current.
|
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
5.3.6 reset
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
Reset the SNES after this frame.
|
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
5.3.7 load <filename>
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
Load savestate <filename> in current mode.
|
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
5.3.8 load-state <filename>
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
Load savestate <filename> in readwrite mode.
|
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
5.3.9 load-readonly <filename>
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
Load savestate <filename> in readonly mode.
|
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
5.3.10 load-preserve <filename>
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
Load savestate <filename> in readonly mode, preserving current
|
|
|
|
|
events.
|
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
5.3.11 load-movie <filename>
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
Load savestate <filename>, ignoring save part in readonly mode.
|
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
5.3.12 save-state <filename>
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
Save system state to <filename> as soon as possible.
|
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
5.3.13 save-movie <filename>
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
Save movie to <filename>.
|
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
5.3.14 set-rwmode
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2014-05-15 18:55:57 +03:00
|
|
|
|
Set recording mode.
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
5.3.15 set-romode
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2014-05-15 18:55:57 +03:00
|
|
|
|
Set playback mode
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
5.3.16 toggle-rwmode
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2014-05-15 18:55:57 +03:00
|
|
|
|
Toggle between playback and recording modes.
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
5.3.17 test-1, test-2, test-3
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
Internal test commands. Don't use.
|
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
5.3.18 take-screenshot <filename>
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
Save screenshot to <filename>.
|
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
5.3.19 +controller <class>-<#>-<button>
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2013-02-03 17:41:09 +02:00
|
|
|
|
Press button <button> on controller <num> of class <class>.
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
• Class 'gamepad': A, B, X, Y, L, R, select, start, up, down,
|
2013-02-03 17:41:09 +02:00
|
|
|
|
left, right, ext0, ext1, ext2, ext3
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
• Class 'mouse': L, R
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
• Class 'superscope': trigger, cursor, turbo, pause
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
• Class 'justifier': trigger, start
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
• Class 'gb': A, B, select, start, up, down, left, right
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
5.3.20 hold-controller <class>-<#>-<button>
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2013-02-03 17:41:09 +02:00
|
|
|
|
Hold/unhold button <button> on controller <num> of class <class>.
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
5.3.21 type-controller <class>-<#>-<button>
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2013-02-03 17:41:09 +02:00
|
|
|
|
Hold/unhold button <button> on controller <num> of class <class>
|
|
|
|
|
for the next frame. See +controller for button names.
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2013-02-03 17:41:09 +02:00
|
|
|
|
Cauntion: Does not work properly if outside frame advance.
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
5.3.22 +autofire-controller <class>-<#>-<button> [[<duty>]
|
|
|
|
|
<cyclelen>]
|
2012-05-11 19:37:06 +03:00
|
|
|
|
|
2013-03-14 00:15:43 +02:00
|
|
|
|
Start autofire. If duty is not specified, defaults to 1. If
|
|
|
|
|
<cyclelen> is not specified, defaults to 2.
|
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
5.3.23 -autofire-controller <class>-<#>-<button> [[<duty>]
|
|
|
|
|
<cyclelen>]
|
2013-03-14 00:15:43 +02:00
|
|
|
|
|
|
|
|
|
End autofire.
|
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
5.3.24 autofire-controller <class>-<#>-<button> [[<duty>]
|
|
|
|
|
<cyclelen>]
|
2012-05-11 19:37:06 +03:00
|
|
|
|
|
2013-03-14 00:15:43 +02:00
|
|
|
|
Toggle autofire. If autofire is turned on, specified cycle is
|
|
|
|
|
used.
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
5.3.25 designate-position <class>-<#>-analog<n>
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2013-03-14 00:15:43 +02:00
|
|
|
|
Designate position for analog pair. <n> is only there if there
|
|
|
|
|
are multiple axis pairs.
|
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
5.3.26 repaint
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
Force a repaint.
|
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
5.3.27 toggle-pause-on-end
|
2013-02-09 23:46:17 +02:00
|
|
|
|
|
|
|
|
|
Toggle pause on end flag.
|
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
5.3.28 set-pause-on-end
|
2013-02-09 23:46:17 +02:00
|
|
|
|
|
|
|
|
|
Set pause on end flag.
|
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
5.3.29 clear-pause-on-end
|
2013-02-09 23:46:17 +02:00
|
|
|
|
|
|
|
|
|
Clear pause on end flag.
|
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
5.3.30 action <action> [<parameters>]
|
2013-07-04 18:17:07 +03:00
|
|
|
|
|
|
|
|
|
Run specified core action.
|
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
5.4 Save jukebox
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
5.4.1 cycle-jukebox-backward
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
Cycle save jukebox backwards.
|
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
5.4.2 cycle-jukebox-forward
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
Cycle save jukebox forwards
|
|
|
|
|
|
2013-12-03 21:55:33 +02:00
|
|
|
|
5.4.3 set-jukebox-slot <slot>
|
|
|
|
|
|
|
|
|
|
Set current jukebox slot
|
|
|
|
|
|
|
|
|
|
5.4.4 load-jukebox
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
Do load from jukebox (current mode).
|
|
|
|
|
|
2013-12-03 21:55:33 +02:00
|
|
|
|
5.4.5 save-jukebox
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
Do state save to jukebox.
|
|
|
|
|
|
2014-01-18 11:50:19 +02:00
|
|
|
|
5.5 Slot branches
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2014-01-18 11:50:19 +02:00
|
|
|
|
5.5.1 list-branches
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2014-01-18 11:50:19 +02:00
|
|
|
|
List all branches
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2014-01-18 11:50:19 +02:00
|
|
|
|
5.5.2 create-branch <pid> <name>
|
2013-07-24 13:15:02 +03:00
|
|
|
|
|
2014-01-18 11:50:19 +02:00
|
|
|
|
Create a new branch, with <pid> as parent and <name> as name.
|
2013-07-24 13:15:02 +03:00
|
|
|
|
|
2014-01-18 11:50:19 +02:00
|
|
|
|
5.5.3 rename-branch <id> <name>
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2014-01-18 11:50:19 +02:00
|
|
|
|
Rename branch <id> to <name>.
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2014-01-18 11:50:19 +02:00
|
|
|
|
5.5.4 reparent-branch <id> <pid>
|
|
|
|
|
|
|
|
|
|
Set parent of branch <id> to <pid>.
|
|
|
|
|
|
|
|
|
|
5.5.5 set-branch <id>
|
|
|
|
|
|
|
|
|
|
Set current branch to <id>.
|
|
|
|
|
|
|
|
|
|
5.5.6 delete-branch <id>
|
|
|
|
|
|
|
|
|
|
Delete branch <id>.
|
2012-06-06 22:59:08 +03:00
|
|
|
|
|
|
|
|
|
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2014-01-18 11:50:19 +02:00
|
|
|
|
5.6 Lua
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2014-01-18 11:50:19 +02:00
|
|
|
|
5.6.1 evaluate-lua <luacode>
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2014-01-18 11:50:19 +02:00
|
|
|
|
Run Lua code <luacode> using built-in Lua interpretter.
|
|
|
|
|
|
|
|
|
|
5.6.2 L <luacode>
|
|
|
|
|
|
|
|
|
|
Synonym for evaluate-lua.
|
|
|
|
|
|
|
|
|
|
5.6.3 run-lua <script>
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2014-01-18 11:50:19 +02:00
|
|
|
|
Run specified lua file using built-in Lua interpretter.
|
|
|
|
|
|
|
|
|
|
5.6.4 reset-lua
|
|
|
|
|
|
|
|
|
|
Clear the Lua VM state and restore to factory defaults.
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
5.7 Sound
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
5.7.1 enable-sound <on/off>
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
Enable/Disable sound.
|
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
5.8 Misc.
|
2012-03-26 22:01:12 +03:00
|
|
|
|
|
2015-04-11 06:01:20 +03:00
|
|
|
|
5.8.1 load-rom <file>
|
2012-07-09 01:08:08 +03:00
|
|
|
|
|
2015-04-11 06:01:20 +03:00
|
|
|
|
Loads ROM (format autodetected) from <file>.
|
2012-07-09 01:08:08 +03:00
|
|
|
|
|
2015-04-11 06:01:20 +03:00
|
|
|
|
5.8.2 reload-rom
|
|
|
|
|
|
|
|
|
|
Reloads the main ROM image from.
|
|
|
|
|
|
|
|
|
|
5.8.3 +tangent
|
2012-09-23 23:02:53 +03:00
|
|
|
|
|
|
|
|
|
Tangent for recording voice for commentary track. While pressed,
|
|
|
|
|
record a stream.
|
|
|
|
|
|
2015-04-11 06:01:20 +03:00
|
|
|
|
5.8.4 advance-subframe-timeout
|
2012-09-21 05:50:00 +03:00
|
|
|
|
|
2013-04-17 15:55:24 +03:00
|
|
|
|
Subframe advance timeout in milliseconds. Default is 100.
|
2012-09-21 05:50:00 +03:00
|
|
|
|
|
2015-04-11 06:01:20 +03:00
|
|
|
|
5.8.5 set-speed <speed>
|
2015-01-17 09:25:50 +02:00
|
|
|
|
|
|
|
|
|
Set the speed multiplier. <speed> may be positive number (1 is
|
|
|
|
|
normal speed) or “turbo” for turbo.
|
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
6 Settings
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
6.1 Core settings
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
6.2 AVI dumper settings
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
6.2.1 avi-large
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
AVI dumper: Always dump at 512x448 or 512x478 regardless of what
|
|
|
|
|
the console outputs.
|
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
6.2.2 avi-left-border
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
AVI dumper: Set the default left border thickness (unless lua
|
|
|
|
|
overrides) for dumps. Range 0-8191. Default is 0.
|
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
6.2.3 avi-right-border
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
AVI dumper: Set the default right border thickness (unless lua
|
|
|
|
|
overrides) for dumps. Range 0-8191. Default is 0.
|
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
6.2.4 avi-top-border
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
AVI dumper: Set the default top border thickness (unless lua
|
|
|
|
|
overrides) for dumps. Range 0-8191. Default is 0.
|
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
6.2.5 avi-bottom-border
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
AVI dumper: Set the default bottom border thickness (unless lua
|
|
|
|
|
overrides) for dumps. Range 0-8191. Default is 0.
|
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
6.2.6 avi-maxframes
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
AVI dumper: Maximum number of frames per dump segment (0 =>
|
|
|
|
|
unlimited). Range 0-999999999. Default is 0.
|
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
6.2.7 avi-compresison
|
2012-01-11 15:24:36 +02:00
|
|
|
|
|
|
|
|
|
AVI dumper: Compression level (0-18).
|
|
|
|
|
|
|
|
|
|
• Compression levels 10 and above are not compatible with stock
|
|
|
|
|
CSCD codec.
|
|
|
|
|
|
|
|
|
|
• Recomended level is 7.
|
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
6.2.8 avi-soundrate
|
2012-01-23 13:36:54 +02:00
|
|
|
|
|
|
|
|
|
AVI dumper: Set method of determining the sound rate.
|
|
|
|
|
|
|
|
|
|
• 0: Pick nearest of 8, 11.025, 12, 16, 22.05, 24, 32, 44.1, 48,
|
|
|
|
|
64, 88.2, 96, 128, 176.4 and 192 kHz.
|
|
|
|
|
|
|
|
|
|
• 1: Round down to nearest integer.
|
|
|
|
|
|
|
|
|
|
• 2: Round up to nearest ingeter.
|
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
• 3: Multiply by denominator.
|
2012-01-11 15:24:36 +02:00
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
• 4: High quality 44.1kHz (SRC needed).
|
2012-01-11 15:24:36 +02:00
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
• 5: High quality 48kHz (SRC needed).
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
6.3 JMD options
|
2012-01-11 15:24:36 +02:00
|
|
|
|
|
2013-07-24 19:57:08 +03:00
|
|
|
|
6.3.1 jmd-compression
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2013-02-09 23:29:33 +02:00
|
|
|
|
JMD dumper: Compression level (0-9).
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2013-08-03 14:31:19 +03:00
|
|
|
|
7 Movie editor
|
2013-02-09 12:39:25 +02:00
|
|
|
|
|
|
|
|
|
• The editor edits in-memory movie.
|
|
|
|
|
|
|
|
|
|
• Because past can't be edited and readwrite mode doesn't allow
|
|
|
|
|
future, editing only works in read only mode.
|
|
|
|
|
|
|
|
|
|
• Keyboard triggers the normal hotkeys and bindings.
|
|
|
|
|
|
2013-08-03 14:31:19 +03:00
|
|
|
|
7.1 Left button actions
|
2013-02-09 12:39:25 +02:00
|
|
|
|
|
|
|
|
|
• Clicking on cell in future (indicated by lack of redish
|
|
|
|
|
background) toggles it (if it is a button) or prompts for a
|
|
|
|
|
value (if it is an axis)
|
|
|
|
|
|
2013-02-09 12:55:07 +02:00
|
|
|
|
• Dragging vertically toggles sequence of buttons or changes a
|
|
|
|
|
sequence of axis values.
|
2013-02-09 12:39:25 +02:00
|
|
|
|
|
2013-08-03 14:31:19 +03:00
|
|
|
|
7.2 Right button actions
|
2013-02-09 12:39:25 +02:00
|
|
|
|
|
|
|
|
|
The right mouse button pops up a context-sensitive menu:
|
|
|
|
|
|
|
|
|
|
• Toggle <something>: Toggle this button
|
|
|
|
|
|
|
|
|
|
• Change <something>: Change this axis value
|
|
|
|
|
|
|
|
|
|
• Insert frame after: Insert a frame after this frame
|
|
|
|
|
|
|
|
|
|
• Append frame: Append a frame to movie
|
|
|
|
|
|
|
|
|
|
• Append frames: Append specified number of frames to movie
|
|
|
|
|
|
|
|
|
|
• Delete frame: Delete this frame
|
|
|
|
|
|
|
|
|
|
• Delete subframe: Delete this subframe
|
|
|
|
|
|
|
|
|
|
• Truncate movie: Delete this subframe and everything after it.
|
|
|
|
|
|
|
|
|
|
• Scroll to frame: Prompt for a frame and scroll the display to
|
|
|
|
|
that frame.
|
|
|
|
|
|
|
|
|
|
• Scroll to current frame: Scroll the display to current position
|
|
|
|
|
|
|
|
|
|
• Run to frame: Prompts for frame and runs the emulation to that
|
|
|
|
|
frame.
|
|
|
|
|
|
|
|
|
|
• Change number of lines visible: Change the height of the movie
|
|
|
|
|
display (1 to 255).
|
|
|
|
|
|
|
|
|
|
• Lock scroll to playback: While playing back or rewinding
|
|
|
|
|
movies, the display will follow if enabled.
|
|
|
|
|
|
2013-08-03 14:31:19 +03:00
|
|
|
|
8 Memory watch expression syntax
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2014-01-10 12:09:19 +02:00
|
|
|
|
Memory watch expressions has the following syntax elements:
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2014-01-10 12:09:19 +02:00
|
|
|
|
${foo} The value of memory watch foo.
|
2012-01-21 16:48:46 +02:00
|
|
|
|
|
2014-01-10 12:09:19 +02:00
|
|
|
|
0x1234 Hexadecimal number 1234
|
2012-01-21 16:48:46 +02:00
|
|
|
|
|
2014-01-10 12:09:19 +02:00
|
|
|
|
12345 Decimal number 12345
|
2012-01-21 16:48:46 +02:00
|
|
|
|
|
2014-01-10 12:09:19 +02:00
|
|
|
|
3.141 Decimal number 3.141
|
2012-01-21 16:48:46 +02:00
|
|
|
|
|
2014-01-10 12:09:19 +02:00
|
|
|
|
-a Unary negation
|
2012-01-21 16:48:46 +02:00
|
|
|
|
|
2014-01-10 12:09:19 +02:00
|
|
|
|
~a Bitwise NOT (integers only)
|
2012-01-21 16:48:46 +02:00
|
|
|
|
|
2014-01-10 12:09:19 +02:00
|
|
|
|
a*b Multiplication
|
2012-01-21 16:48:46 +02:00
|
|
|
|
|
2014-01-10 12:09:19 +02:00
|
|
|
|
a/b Division/quotent
|
2012-01-21 16:48:46 +02:00
|
|
|
|
|
2014-01-10 12:09:19 +02:00
|
|
|
|
a%b Remainder (integers only)
|
2012-01-21 16:48:46 +02:00
|
|
|
|
|
2014-01-10 12:09:19 +02:00
|
|
|
|
a+b Sum or string concatenation
|
2012-01-21 16:48:46 +02:00
|
|
|
|
|
2014-01-10 12:09:19 +02:00
|
|
|
|
a-b Difference
|
2012-01-21 16:48:46 +02:00
|
|
|
|
|
2014-01-10 12:09:19 +02:00
|
|
|
|
a<<b Shift left (integers only)
|
2012-01-21 16:48:46 +02:00
|
|
|
|
|
2014-01-10 12:09:19 +02:00
|
|
|
|
a>>b Shift right (integers only). Arithmetic for signed.
|
2012-01-21 16:48:46 +02:00
|
|
|
|
|
2014-01-10 12:09:19 +02:00
|
|
|
|
a<b Less than
|
2012-01-21 16:48:46 +02:00
|
|
|
|
|
2014-01-10 12:09:19 +02:00
|
|
|
|
a<=b Less or equal to
|
2012-01-21 16:48:46 +02:00
|
|
|
|
|
2014-01-10 12:09:19 +02:00
|
|
|
|
a==b Equal to
|
2012-01-21 16:48:46 +02:00
|
|
|
|
|
2014-01-10 12:09:19 +02:00
|
|
|
|
a!=b Not equal to
|
2012-01-21 16:48:46 +02:00
|
|
|
|
|
2014-01-10 12:09:19 +02:00
|
|
|
|
a>=b Greater or equal to
|
2013-08-25 04:06:46 +03:00
|
|
|
|
|
2014-01-10 12:09:19 +02:00
|
|
|
|
a>b Greater than
|
2012-01-21 16:48:46 +02:00
|
|
|
|
|
2014-01-10 12:09:19 +02:00
|
|
|
|
a&b Bitwise AND (integers only)
|
2013-08-25 04:06:46 +03:00
|
|
|
|
|
2014-01-10 12:09:19 +02:00
|
|
|
|
a^b Bitwise XOR (integers only)
|
2012-01-21 16:48:46 +02:00
|
|
|
|
|
2014-01-10 12:09:19 +02:00
|
|
|
|
a|b Bitwise OR (integers only)
|
2012-01-21 16:48:46 +02:00
|
|
|
|
|
2014-01-10 12:09:19 +02:00
|
|
|
|
a&&b Logical AND
|
2012-01-21 16:48:46 +02:00
|
|
|
|
|
2014-01-10 12:09:19 +02:00
|
|
|
|
a||b Logical OR
|
2012-01-21 16:48:46 +02:00
|
|
|
|
|
2014-01-10 12:09:19 +02:00
|
|
|
|
π Numeric constant pi.
|
2012-01-21 16:48:46 +02:00
|
|
|
|
|
2014-01-10 12:09:19 +02:00
|
|
|
|
i Imaginary unit
|
2012-01-21 16:48:46 +02:00
|
|
|
|
|
2014-01-10 12:09:19 +02:00
|
|
|
|
if(x,y) If x is true, y, else false.
|
2012-01-21 16:48:46 +02:00
|
|
|
|
|
2014-01-10 12:09:19 +02:00
|
|
|
|
if(x,y,z) If x is true, y, else z.
|
2012-01-21 16:48:46 +02:00
|
|
|
|
|
2014-01-10 12:09:19 +02:00
|
|
|
|
select(x...)
|
2012-01-21 16:48:46 +02:00
|
|
|
|
|
2014-01-10 12:09:19 +02:00
|
|
|
|
First value in x... that is not false, or false if
|
|
|
|
|
none.
|
2012-01-21 16:48:46 +02:00
|
|
|
|
|
2014-01-10 12:09:19 +02:00
|
|
|
|
unsigned(x)
|
2012-01-21 16:48:46 +02:00
|
|
|
|
|
2014-01-10 12:09:19 +02:00
|
|
|
|
Cast x to unsigned.
|
2012-01-21 16:48:46 +02:00
|
|
|
|
|
2014-01-10 12:09:19 +02:00
|
|
|
|
signed(x)
|
2012-01-21 16:48:46 +02:00
|
|
|
|
|
2014-01-10 12:09:19 +02:00
|
|
|
|
Cast x to signed.
|
2013-08-25 04:06:46 +03:00
|
|
|
|
|
2014-01-10 12:09:19 +02:00
|
|
|
|
float(x)
|
2013-02-09 12:39:25 +02:00
|
|
|
|
|
2014-01-10 12:09:19 +02:00
|
|
|
|
Cast x to float.
|
2013-08-25 04:06:46 +03:00
|
|
|
|
|
2014-01-10 12:09:19 +02:00
|
|
|
|
min(x...) The smallest value among x... or false if empty.
|
2012-01-21 16:48:46 +02:00
|
|
|
|
|
2014-01-10 12:09:19 +02:00
|
|
|
|
max(x...) The largest value among x... or false if empty.
|
2012-01-21 16:48:46 +02:00
|
|
|
|
|
2014-01-10 12:09:19 +02:00
|
|
|
|
sum(x...) Sum/concatenation of x... or false if empty.
|
2012-01-21 16:48:46 +02:00
|
|
|
|
|
2014-01-10 12:09:19 +02:00
|
|
|
|
prod(x...) Product of x... or false if empty.
|
2012-01-21 16:48:46 +02:00
|
|
|
|
|
2014-01-10 12:09:19 +02:00
|
|
|
|
sqrt(x) Square root of x.
|
2012-01-21 16:48:46 +02:00
|
|
|
|
|
2014-01-10 12:09:19 +02:00
|
|
|
|
log(x) Natural log of x.
|
2012-01-21 16:48:46 +02:00
|
|
|
|
|
2014-01-10 12:09:19 +02:00
|
|
|
|
log(x,y) Log of y to base x.
|
2012-01-21 16:48:46 +02:00
|
|
|
|
|
2014-01-10 12:09:19 +02:00
|
|
|
|
exp(x) e^x.
|
2012-01-21 16:48:46 +02:00
|
|
|
|
|
2014-01-10 12:09:19 +02:00
|
|
|
|
exp(x,y) x^y
|
|
|
|
|
|
|
|
|
|
sin(x) Sine of x
|
|
|
|
|
|
|
|
|
|
cos(x) Cosine of x
|
|
|
|
|
|
|
|
|
|
tan(x) Tangent of x
|
|
|
|
|
|
|
|
|
|
asin(x) Arcsine of x
|
|
|
|
|
|
|
|
|
|
acos(x) Arccosine of x
|
|
|
|
|
|
|
|
|
|
atan(x) Arctangent of x
|
|
|
|
|
|
|
|
|
|
atan(x,y) Angle between vector (x,y) and x-axis.
|
|
|
|
|
|
|
|
|
|
sinh(x) Hyperbolic sine of x
|
|
|
|
|
|
|
|
|
|
cosh(x) Hyperbolic cosine of x
|
|
|
|
|
|
|
|
|
|
tanh(x) Hyperbolic tangent of x
|
|
|
|
|
|
|
|
|
|
arsinh(x) Hyperbolic arsine of x
|
|
|
|
|
|
|
|
|
|
arcosh(x) Hyperbolic arcosine of x
|
|
|
|
|
|
|
|
|
|
artanh(x) Hyperbolic artangent of x
|
|
|
|
|
|
|
|
|
|
torad(x) Convert x degrees to radians.
|
|
|
|
|
|
|
|
|
|
todeg(x) Convert x radians to degrees.
|
|
|
|
|
|
|
|
|
|
re(x) Real part of complex number x.
|
|
|
|
|
|
|
|
|
|
im(x) Imaginary part of complex number x.
|
|
|
|
|
|
|
|
|
|
conj(x) Complex conjugate of x.
|
|
|
|
|
|
|
|
|
|
abs(x) Absolute value of x.
|
|
|
|
|
|
|
|
|
|
arg(x) Argument of x.
|
|
|
|
|
|
|
|
|
|
pyth(x...) sqrt(sum(x^2)). I.e. pythagorean distance.
|
|
|
|
|
|
|
|
|
|
e Base of natural logarithm
|
|
|
|
|
|
|
|
|
|
pi Pi
|
|
|
|
|
|
|
|
|
|
true Constant true
|
|
|
|
|
|
|
|
|
|
false Constant false
|
2012-01-21 16:48:46 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-08-03 14:31:19 +03:00
|
|
|
|
9 Modifier and key names:
|
2012-01-21 16:48:46 +02:00
|
|
|
|
|
2013-08-03 14:31:19 +03:00
|
|
|
|
9.1 wxWidgets platform
|
2012-01-11 15:24:36 +02:00
|
|
|
|
|
2013-08-03 14:31:19 +03:00
|
|
|
|
9.1.1 Modifier names:
|
2012-01-11 15:24:36 +02:00
|
|
|
|
|
|
|
|
|
Following modifier names are known:
|
|
|
|
|
|
|
|
|
|
• alt
|
|
|
|
|
|
|
|
|
|
• ctrl
|
|
|
|
|
|
|
|
|
|
• shift
|
|
|
|
|
|
|
|
|
|
• meta
|
|
|
|
|
|
|
|
|
|
• cmd (Mac OS X only)
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2013-08-03 14:31:19 +03:00
|
|
|
|
9.1.2 Key names:
|
2012-01-11 15:24:36 +02:00
|
|
|
|
|
|
|
|
|
Following key names are known:
|
|
|
|
|
|
|
|
|
|
• back, tab, return, escape, space, exclaim, quotedbl, hash,
|
|
|
|
|
dollar, percent, ampersand, quote, leftparen, rightparen,
|
|
|
|
|
asterisk, plus, comma, minus, period, slash, 0, 1, 2, 3, 4, 5,
|
|
|
|
|
6, 7, 8, 9, colon, semicolon, less, equals, greater, question,
|
|
|
|
|
at, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t,
|
|
|
|
|
u, v, w, x, y, z, leftbracket, backslash, rightbracket, caret,
|
|
|
|
|
underscore, backquote, a, b, c, d, e, f, g, h, i, j, k, l, m,
|
|
|
|
|
n, o, p, q, r, s, t, u, v, w, x, y, z, leftcurly, pipe,
|
|
|
|
|
rightcurly, tilde, delete, start, lbutton, rbutton, cancel,
|
|
|
|
|
mbutton, clear, shift, alt, control, menu, pause, capital, end,
|
|
|
|
|
home, lefT, up, right, down, select, print, execute, snapshot,
|
|
|
|
|
insert, help, numpad0, numpad1, numpad2, numpad3, numpad4,
|
|
|
|
|
numpad5, numpad6, numpad7, numpad8, numpad9, multiply, add,
|
|
|
|
|
separator, subtract, decimal, divide, f1, f2, f3, f4, f5, f6,
|
|
|
|
|
f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19,
|
|
|
|
|
f20, f21, f22, f23, f24, numlock, scroll, pageup, pagedown,
|
|
|
|
|
numpad_space, numpad_tab, numpad_enter, numpad_f1, numpad_f2,
|
|
|
|
|
numpad_f3, numpad_f4, numpad_home, numpad_left, numpad_up,
|
|
|
|
|
numpad_right, numpad_down, numpad_pageup, numpad_pagedown,
|
|
|
|
|
numpad_end, numpad_begin, numpad_insert, numpad_delete,
|
|
|
|
|
numpad_equal, numpad_multiply, numpad_add, numpad_separator,
|
|
|
|
|
numpad_subtract, numpad_decimal, numpad_divide, windows_left,
|
|
|
|
|
windows_right, windows_menu, command, special1, special2,
|
|
|
|
|
special3, special4, special5, special6, special7, special8,
|
|
|
|
|
special9, special10, special11, special12, special13,
|
|
|
|
|
special14, special15, special16, special17, special18,
|
|
|
|
|
special19, special20
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2013-08-03 14:31:19 +03:00
|
|
|
|
10 Movie file format
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
Movie file is .zip archive in itself, normal ZIP archive tools
|
|
|
|
|
work on it (note: If you recompress it, do not use compression
|
|
|
|
|
methods other than store and deflate and especially do not use
|
|
|
|
|
encryption of any kind).
|
|
|
|
|
|
2013-08-03 14:31:19 +03:00
|
|
|
|
10.1 Detecting clean start/SRAM/Savestate
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
• If file has member “savestate” it is savestate, otherwise:
|
|
|
|
|
|
|
|
|
|
• If file has members with names starting “moviesram.” it is
|
|
|
|
|
movie starting from SRAM, otherwise:
|
|
|
|
|
|
|
|
|
|
• It is movie starting from clear state.
|
|
|
|
|
|
2013-08-03 14:31:19 +03:00
|
|
|
|
10.2 Member: gametype
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
Type of game ROM and region (as one line). Valid values are:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+--------------+---------------------+--------+
|
|
|
|
|
| Value | System | Region |
|
|
|
|
|
+--------------+---------------------+--------+
|
|
|
|
|
+--------------+---------------------+--------+
|
|
|
|
|
| snes_pal | Super NES | PAL |
|
|
|
|
|
+--------------+---------------------+--------+
|
|
|
|
|
| sgb_pal | Super Game Boy | PAL |
|
|
|
|
|
+--------------+---------------------+--------+
|
|
|
|
|
| snes_ntsc | Super NES | NTSC |
|
|
|
|
|
+--------------+---------------------+--------+
|
|
|
|
|
| sgb_ntsc | Super Game Boy | NTSC |
|
|
|
|
|
+--------------+---------------------+--------+
|
|
|
|
|
| bsx | BS-X (non-slotted) | NTSC |
|
|
|
|
|
+--------------+---------------------+--------+
|
|
|
|
|
| bsxslotted | BS-X (slotted) | NTSC |
|
|
|
|
|
+--------------+---------------------+--------+
|
|
|
|
|
| sufamiturbo | Sufami Turbo | NTSC |
|
|
|
|
|
+--------------+---------------------+--------+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Frame rates are:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+---------+-----------------+
|
|
|
|
|
| Region | Framerate (fps) |
|
|
|
|
|
+---------+-----------------+
|
|
|
|
|
+---------+-----------------+
|
|
|
|
|
| PAL | 322445/6448 |
|
|
|
|
|
+---------+-----------------+
|
|
|
|
|
| NTSC | 10738636/178683 |
|
|
|
|
|
+---------+-----------------+
|
|
|
|
|
|
|
|
|
|
|
2013-08-03 14:31:19 +03:00
|
|
|
|
10.3 Member: port1
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
Contains type of port #1 (as one line). Valid values are 'none',
|
|
|
|
|
'gamepad', 'multitap' and 'mouse'. If not present, defaults to
|
|
|
|
|
'gamepad'.
|
|
|
|
|
|
2013-08-03 14:31:19 +03:00
|
|
|
|
10.4 Member: port2
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
Contains type of port #2 (as one line). Valid values are 'none',
|
|
|
|
|
'gamepad', 'multitap', 'mouse', 'superscope', 'justifier' and
|
|
|
|
|
'justifiers'. If not present, defaults to 'none'.
|
|
|
|
|
|
2013-08-03 14:31:19 +03:00
|
|
|
|
10.5 Member: gamename
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
Contains name of the game (as one line).
|
|
|
|
|
|
2013-08-03 14:31:19 +03:00
|
|
|
|
10.6 Member: authors
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
Contains authors, one per line. Part before '|' is the full name,
|
|
|
|
|
part after is the nickname.
|
|
|
|
|
|
2013-08-03 14:31:19 +03:00
|
|
|
|
10.7 Member: systemid
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
Always “lsnes-rr1” (one line). Used to reject other saves.
|
|
|
|
|
|
2013-08-03 14:31:19 +03:00
|
|
|
|
10.8 Member: controlsversion
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
Always “0” (one line). Used to identify what controls are there.
|
|
|
|
|
|
2013-08-03 14:31:19 +03:00
|
|
|
|
10.9 Member: “coreversion”
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
Contains bsnes core version number (as one line).
|
|
|
|
|
|
2013-08-03 14:31:19 +03:00
|
|
|
|
10.10 Member: projectid
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
Contains project ID (as one line). Used to identify if two movies
|
|
|
|
|
are part of the same project.
|
|
|
|
|
|
2013-08-03 14:31:19 +03:00
|
|
|
|
10.11 Member: {rom,slota,slotb}{,xml}.sha256
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
Contains SHA-256 of said ROM or ROM mapping file (as one line).
|
|
|
|
|
Absent if corresponding file is absent.
|
|
|
|
|
|
2013-08-03 14:31:19 +03:00
|
|
|
|
10.12 Member: moviesram.<name>
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
Raw binary startup SRAM of kind <name>. Only present in
|
|
|
|
|
savestates and movies starting from SRAM.
|
|
|
|
|
|
2013-08-03 14:31:19 +03:00
|
|
|
|
10.13 Member: saveframe
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
Contains frame number (as one line) of frame movie was saved on.
|
|
|
|
|
Only present in savestates.
|
|
|
|
|
|
2013-08-03 14:31:19 +03:00
|
|
|
|
10.14 Member: lagcounter
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
Current value of lag counter (as one line). Only present in
|
|
|
|
|
savestates.
|
|
|
|
|
|
2013-08-03 14:31:19 +03:00
|
|
|
|
10.15 Member: pollcounters
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
Contains poll counters (currently 100 of them), one per line.
|
|
|
|
|
Each line is raw poll count if DRDY is set for it. Otherwise it
|
|
|
|
|
is negative poll count minus one. Only present in savestates.
|
|
|
|
|
|
2013-08-03 14:31:19 +03:00
|
|
|
|
10.16 Member: hostmemory
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
Raw binary dump of host memory. Only present in savestates.
|
|
|
|
|
|
2013-08-03 14:31:19 +03:00
|
|
|
|
10.17 Member: savestate
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
The raw binary savestate itself. Savestate detection uses this
|
|
|
|
|
file, only present in savestates.
|
|
|
|
|
|
2013-08-03 14:31:19 +03:00
|
|
|
|
10.18 Member: screenshot
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
Screenshot of current frame. Only present in savestates. First 2
|
|
|
|
|
bytes are big-endian width of image, rest are 24-bit RGB image
|
|
|
|
|
data. Height of image is inferred from the width and size of
|
|
|
|
|
data.
|
|
|
|
|
|
2013-08-03 14:31:19 +03:00
|
|
|
|
10.19 Member: sram.<name>
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
Raw binary SRAM of kind <name> at time of savestate. Only present
|
|
|
|
|
in savestates.
|
|
|
|
|
|
2013-08-03 14:31:19 +03:00
|
|
|
|
10.20 Member: input
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
The actual input track, one line per subframe (blank lines are
|
|
|
|
|
skipped).
|
|
|
|
|
|
|
|
|
|
• If the first byte of each line is '.', ' ', <tab> or '|', then
|
|
|
|
|
the line is part of same frame as previous, otherwise it starts
|
|
|
|
|
a new frame.
|
|
|
|
|
|
|
|
|
|
• First subframe must start a new frame.
|
|
|
|
|
|
|
|
|
|
Length of movie in frames is number of lines in input file that
|
|
|
|
|
start a new frame.
|
|
|
|
|
|
2013-08-03 14:31:19 +03:00
|
|
|
|
10.21 Member: subtitles
|
2012-09-08 20:51:38 +03:00
|
|
|
|
|
|
|
|
|
Subtitle track. Optional.
|
|
|
|
|
|
|
|
|
|
• Each line is in form <firstframe> <numframes> <text>.
|
|
|
|
|
|
|
|
|
|
• Linefeed is encoded as \n, backslash is encoded as \\.
|
|
|
|
|
|
2013-08-03 14:31:19 +03:00
|
|
|
|
10.22 Member: rerecords
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
Contains textual base-10 rerecord count (as one line; emulator
|
|
|
|
|
just writes this, it doesn't read it) + 1.
|
|
|
|
|
|
2013-08-03 14:31:19 +03:00
|
|
|
|
10.23 Member: rrdata
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
This member stores set of load IDs. There is one load ID per
|
|
|
|
|
rerecord (plus one corresponding to start of project).
|
|
|
|
|
|
|
|
|
|
• This member constists of concatenation of records
|
|
|
|
|
|
|
|
|
|
• Each record is 2-36 bytes long and can represent 1-16,843,009
|
|
|
|
|
consequtive IDs.
|
|
|
|
|
|
|
|
|
|
• IDs are interpretted as 256-bit big-endian integers with
|
|
|
|
|
warparound.
|
|
|
|
|
|
|
|
|
|
• Initial predicted ID is all zeroes.
|
|
|
|
|
|
|
|
|
|
Format of each record is:
|
|
|
|
|
|
|
|
|
|
• 1 byte: Opcode byte. Bits 0-4 are prefix length (prefixlen),
|
|
|
|
|
bits 5-6 are count length (countlen). Bit 7 is unused.
|
|
|
|
|
|
|
|
|
|
• 32-prefixlen bytes of ID.
|
|
|
|
|
|
|
|
|
|
• countlen bytes of big-endian count (count).
|
|
|
|
|
|
|
|
|
|
Records are processed as follows:
|
|
|
|
|
|
|
|
|
|
• To form the first ID encoded by record, take the first
|
|
|
|
|
prefixlen bytes predicted ID and append the read ID value to
|
|
|
|
|
it. The result is the first ID encoded.
|
|
|
|
|
|
|
|
|
|
• If countlen is 0, record encodes 1 ID.
|
|
|
|
|
|
|
|
|
|
• If countlen is 1, record encodes 2+count IDs.
|
|
|
|
|
|
|
|
|
|
• If countlen is 2, record encodes 258+count IDs.
|
|
|
|
|
|
|
|
|
|
• If countlen is 3, record encodes 65794+count IDs.
|
|
|
|
|
|
|
|
|
|
• The new predicted ID is the next ID after last one encoded by
|
|
|
|
|
the record.
|
|
|
|
|
|
|
|
|
|
The number of rerecords + 1 is equal to the sum of number of IDs
|
|
|
|
|
encoded by all records.
|
|
|
|
|
|
2013-08-03 14:31:19 +03:00
|
|
|
|
10.24 Member: starttime.second
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
Movie starting time, second part. Epoch is Unix epoch. Default is
|
|
|
|
|
1,000,000,000.
|
|
|
|
|
|
2013-08-03 14:31:19 +03:00
|
|
|
|
10.25 Member: starttime.subsecond
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
Movie starting time, subsecond part. Unit is CPU clocks. Default
|
|
|
|
|
is 0.
|
|
|
|
|
|
2013-08-03 14:31:19 +03:00
|
|
|
|
10.26 Member: savetime.second
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
Movie saving time, second part. Default is starttime.second. Only
|
|
|
|
|
present in savestates.
|
|
|
|
|
|
2013-08-03 14:31:19 +03:00
|
|
|
|
10.27 Member: savetime.subsecond
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
Movie saving time, subsecond part. Default is
|
|
|
|
|
starttime.subsecond. Only present in savestates.
|
|
|
|
|
|
2013-08-03 14:31:19 +03:00
|
|
|
|
11 lsvs file format (commentary tracks)
|
2012-09-23 19:16:30 +03:00
|
|
|
|
|
2013-08-03 14:31:19 +03:00
|
|
|
|
11.1 Clusters
|
2012-09-23 19:16:30 +03:00
|
|
|
|
|
|
|
|
|
• Each cluster is 8kB (8192 bytes) in size.
|
|
|
|
|
|
|
|
|
|
• Cluster n starts at offset 8192*n in file.
|
|
|
|
|
|
|
|
|
|
• The following clusters are system special:
|
|
|
|
|
|
|
|
|
|
– Cluster 0 and all clusters with number multiple of 2048
|
|
|
|
|
(cluster tables)
|
|
|
|
|
|
|
|
|
|
– Cluster 1 (superblock)
|
|
|
|
|
|
2013-08-03 14:31:19 +03:00
|
|
|
|
11.2 Cluster tables
|
2012-09-23 19:16:30 +03:00
|
|
|
|
|
|
|
|
|
• The cluster table describing cluster n is stored in cluster n &
|
|
|
|
|
~0x7FF (zero last 11 bits of n).
|
|
|
|
|
|
|
|
|
|
• This cluster table consists of 2048 4-byte big-endian integers.
|
|
|
|
|
|
|
|
|
|
• Each entry describes a cluster in 16MB supercluster, in order.
|
|
|
|
|
|
|
|
|
|
• The valid values for entries are:
|
|
|
|
|
|
|
|
|
|
– 0x00000000: Free cluster
|
|
|
|
|
|
|
|
|
|
– 0x00000001: Last cluster in chain.
|
|
|
|
|
|
|
|
|
|
– 0xFFFFFFFF: System cluster (cluster tables and superblock)
|
|
|
|
|
|
|
|
|
|
– (anything else): Number of next cluster in chain. Must not be
|
|
|
|
|
multiple of 2048.
|
|
|
|
|
|
|
|
|
|
• Due to limitations of the format, there can be at most 2097052
|
|
|
|
|
superclusters, giving maximum file size of 16TB.
|
|
|
|
|
|
2013-08-03 14:31:19 +03:00
|
|
|
|
11.3 Stream table
|
2012-09-23 19:16:30 +03:00
|
|
|
|
|
|
|
|
|
• The stream table chain always starts in cluster 2.
|
|
|
|
|
|
|
|
|
|
• Otherwise, it follows normal chaining.
|
|
|
|
|
|
|
|
|
|
• The stream table consists of 16-byte entries:
|
|
|
|
|
|
|
|
|
|
– The first 8 bytes of entry give big-endian beginning position
|
|
|
|
|
of stream in units of 1/48000 s.
|
|
|
|
|
|
|
|
|
|
– The next 4 bytes of entry give big-endian beginning cluster
|
|
|
|
|
for control data. 0 here marks the entry as not present.
|
|
|
|
|
|
|
|
|
|
– The last 4 bytes of entry give big-endian beginning cluster
|
|
|
|
|
for codec data.
|
|
|
|
|
|
|
|
|
|
• Stream table clusters are normal clusters, following normal
|
|
|
|
|
chaining.
|
|
|
|
|
|
|
|
|
|
• The stream begnning position is not guarenteed unique. There
|
|
|
|
|
can be multiple streams with the same starting position in the
|
|
|
|
|
file.
|
|
|
|
|
|
2013-08-03 14:31:19 +03:00
|
|
|
|
11.4 Stream control data
|
2012-09-23 19:16:30 +03:00
|
|
|
|
|
|
|
|
|
• The stream control data consists of entries 4 bytes each:
|
|
|
|
|
|
|
|
|
|
– The first 2 bytes of entry gives big-endian length of packet
|
|
|
|
|
|
|
|
|
|
– The next byte of entry gives audio length of packet in units
|
|
|
|
|
of 1/400 s.
|
|
|
|
|
|
|
|
|
|
– The last byte is control byte.
|
|
|
|
|
|
|
|
|
|
∗ 0 means this entry is not present and the control data
|
|
|
|
|
ends.
|
|
|
|
|
|
|
|
|
|
∗ 1 is valid control entry.
|
|
|
|
|
|
|
|
|
|
• The stream control data can also end by running into end of the
|
|
|
|
|
readable chain.
|
|
|
|
|
|
|
|
|
|
– This happens if there happens to be exact multiple of 2048
|
|
|
|
|
packets in stream and number of packets is nonzero.
|
|
|
|
|
|
|
|
|
|
• These clusters follow normal chaining.
|
|
|
|
|
|
2013-08-03 14:31:19 +03:00
|
|
|
|
11.5 Stream codec data
|
2012-09-23 19:16:30 +03:00
|
|
|
|
|
|
|
|
|
• Stream codec data consists of raw Opus data packets packed back
|
|
|
|
|
to back with nothing in between.
|
|
|
|
|
|
|
|
|
|
• Warning: Due to internal limitations, this data must reside in
|
|
|
|
|
the first 65536 superclusters (that is, the first 1TB of the
|
|
|
|
|
file).
|
|
|
|
|
|
2013-08-03 14:31:19 +03:00
|
|
|
|
11.6 Superblock
|
2012-09-23 19:16:30 +03:00
|
|
|
|
|
|
|
|
|
• The superblock is stored in cluster 1.
|
|
|
|
|
|
|
|
|
|
• The first 11 bytes are “sefs-magic”<NUL>.
|
|
|
|
|
|
|
|
|
|
• The rest are unused.
|
|
|
|
|
|
|
|
|
|
• This cluster 1 is marked as system special.
|
|
|
|
|
|
2013-08-03 14:31:19 +03:00
|
|
|
|
12 Known ROM extensions
|
2012-08-25 11:00:01 +03:00
|
|
|
|
|
|
|
|
|
• SNES cartridge ROMs: sfc, smc, swc, fig, ufo, sf2, gd3, gd7,
|
|
|
|
|
dx2, mgd, mgh.
|
|
|
|
|
|
|
|
|
|
• DMG cartridge ROMs: dmg, gb.
|
|
|
|
|
|
|
|
|
|
• GBC cartridge ROMs: cgb, gbc.
|
|
|
|
|
|
2013-08-03 14:31:19 +03:00
|
|
|
|
13 Gamepack files
|
2012-08-24 21:39:58 +03:00
|
|
|
|
|
|
|
|
|
• The first line must be: “[GAMEPACK FILE]”.
|
|
|
|
|
|
|
|
|
|
• There is one needed line: “type <systype>”. This sets system
|
2012-08-25 11:00:01 +03:00
|
|
|
|
type to <systype>. The following system types are valid:
|
|
|
|
|
|
|
|
|
|
– snes (SNES)
|
|
|
|
|
|
|
|
|
|
– bsx (BS-X non-slotted)
|
|
|
|
|
|
|
|
|
|
– bsxslotted (BS-X slotted)
|
|
|
|
|
|
|
|
|
|
– sufamiturbo (Sufami Turbo)
|
|
|
|
|
|
|
|
|
|
– sgb (Super Game Boy)
|
|
|
|
|
|
|
|
|
|
– dmg (Game Boy)
|
|
|
|
|
|
|
|
|
|
– gbc (Game Boy Color)
|
|
|
|
|
|
|
|
|
|
– gbc_gba (Game Boy Color with GBA initial register values)
|
|
|
|
|
|
|
|
|
|
• Optionally a region can be specified: “region <region>”. The
|
|
|
|
|
following values are valid:
|
|
|
|
|
|
|
|
|
|
– autodetect (Autodetect region: snes and sgb only)
|
|
|
|
|
|
|
|
|
|
– ntsc (NTSC: snes, bsx, bsxslotted, sufamiturbo, sgb)
|
|
|
|
|
|
|
|
|
|
– pal (PAL: snes, sgb)
|
|
|
|
|
|
|
|
|
|
– world (World: dmg, gbc, gbc_gba)
|
|
|
|
|
|
|
|
|
|
• ROM images are loaded as: “rom <type> <file>”. The following
|
|
|
|
|
types are valid:
|
|
|
|
|
|
|
|
|
|
– rom (Cartridge ROM in snes, dmg, gbc, gbc_gba. BIOS in bsx,
|
|
|
|
|
bsxslotted, sufamiturbo)
|
2012-08-24 21:39:58 +03:00
|
|
|
|
|
2012-08-25 11:00:01 +03:00
|
|
|
|
– bsx (Cartridge ROM in bsx, bsxslotted)
|
2012-08-24 21:39:58 +03:00
|
|
|
|
|
2012-08-25 11:00:01 +03:00
|
|
|
|
– slot-a (Cartridge ROM in sufamiturbo)
|
2012-08-24 21:39:58 +03:00
|
|
|
|
|
2012-08-25 11:00:01 +03:00
|
|
|
|
– slot-b (Cartridge ROM in sufamiturbo)
|
2012-08-24 21:39:58 +03:00
|
|
|
|
|
2012-08-25 11:00:01 +03:00
|
|
|
|
• ROM markup can be loaded as: “xml <type> <file>”. The types
|
|
|
|
|
valid are the same as for ROMs.
|
2012-08-24 21:39:58 +03:00
|
|
|
|
|
2012-08-25 11:00:01 +03:00
|
|
|
|
• Patches can be loaded as “patch[<offset>] <type> <file>”. The
|
|
|
|
|
types are the same as for ROMs.
|
2012-08-24 21:39:58 +03:00
|
|
|
|
|
2012-08-25 11:00:01 +03:00
|
|
|
|
– Offset is given in form [+-]<number>. Usually offset is
|
|
|
|
|
either +0 or -512.
|
2012-08-24 21:39:58 +03:00
|
|
|
|
|
2012-08-25 11:00:01 +03:00
|
|
|
|
– Default offset is +0.
|
2012-08-24 21:39:58 +03:00
|
|
|
|
|
2013-08-03 14:31:19 +03:00
|
|
|
|
13.1 Example:
|
2012-08-24 21:39:58 +03:00
|
|
|
|
|
|
|
|
|
[GAMEPACK FILE]
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2012-08-24 21:39:58 +03:00
|
|
|
|
type snes
|
|
|
|
|
|
|
|
|
|
rom rom speedygonzales.sfc
|
|
|
|
|
|
2012-08-25 11:00:01 +03:00
|
|
|
|
patch-512 rom sonicthehedgehog.ips
|
2012-08-24 21:39:58 +03:00
|
|
|
|
|
2013-08-03 14:31:19 +03:00
|
|
|
|
13.2 Example 2:
|
2012-08-24 21:39:58 +03:00
|
|
|
|
|
|
|
|
|
[GAMEPACK FILE]
|
|
|
|
|
|
|
|
|
|
type sgb
|
|
|
|
|
|
|
|
|
|
rom rom supergameboy.sfc
|
|
|
|
|
|
2012-08-25 11:00:01 +03:00
|
|
|
|
rom dmg megamanV.dmg
|
2012-08-24 21:39:58 +03:00
|
|
|
|
|
2013-08-03 14:31:19 +03:00
|
|
|
|
14 Quick'n'dirty encode guide
|
2012-08-24 21:39:58 +03:00
|
|
|
|
|
|
|
|
|
1. Start the emulator and load the ROM and movie file.
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
2. Set large AVI option 'set-setting avi-large on'
|
|
|
|
|
|
2012-01-06 18:31:18 +02:00
|
|
|
|
3. Enable dumping 'dump-avi tmpdump'
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
4. Unpause and let it run until you want to end dumping.
|
|
|
|
|
|
|
|
|
|
5. Close the emulator (closing the window is the easiest way). Or
|
|
|
|
|
use 'end-avi'.
|
|
|
|
|
|
|
|
|
|
6. For each tmpdump*.avi file created, on command prompt, do
|
|
|
|
|
'x264 --crf 10 -o tmpdump_<numbers>.mkv tmpdump_<numbers>.avi'.
|
|
|
|
|
|
|
|
|
|
7. Do 'sox tmpdump.sox tmpdump.ogg rate -v 32000'
|
|
|
|
|
|
|
|
|
|
8. Do 'mkvmerge -o tmpdump_video.mkv tmpdump_0000000.mkv +
|
|
|
|
|
tmpdump_0000001.mkv + tmpdump_0000002.mkv' (list every
|
|
|
|
|
tmpdump_<numbers>.mkv, with + in between).
|
|
|
|
|
|
|
|
|
|
9. Do 'mkvmerge -o final.mkv tmpdump_video.mkv tmpdump.ogg'. Now
|
|
|
|
|
final.mkv contains quick'n'dirty encode.
|
|
|
|
|
|
2013-08-03 14:31:19 +03:00
|
|
|
|
15 Axis configurations for some gamepad types:
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2013-08-03 14:31:19 +03:00
|
|
|
|
15.1 XBox360 controller:
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
Axes 2 and 5 (joystick<n>axis2 and joystick<n>axis5) should be
|
|
|
|
|
set to pressure-+.
|
|
|
|
|
|
|
|
|
|
set-axis joystick0axis2 pressure-+
|
|
|
|
|
|
|
|
|
|
set-axis joystick0axis5 pressure-+
|
|
|
|
|
|
2012-01-11 15:24:36 +02:00
|
|
|
|
• This is needed for SDL only. EVDEV sets those types correctly.
|
|
|
|
|
|
2013-08-03 14:31:19 +03:00
|
|
|
|
15.2 PS3 “sixaxis” controller:
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
Axes 8-19 should be disabled.
|
|
|
|
|
|
|
|
|
|
set-axis joystick0axis8 disabled
|
|
|
|
|
|
|
|
|
|
set-axis joystick0axis9 disabled
|
|
|
|
|
|
|
|
|
|
set-axis joystick0axis10 disabled
|
|
|
|
|
|
|
|
|
|
set-axis joystick0axis11 disabled
|
|
|
|
|
|
|
|
|
|
set-axis joystick0axis12 disabled
|
|
|
|
|
|
|
|
|
|
set-axis joystick0axis13 disabled
|
|
|
|
|
|
|
|
|
|
set-axis joystick0axis14 disabled
|
|
|
|
|
|
|
|
|
|
set-axis joystick0axis15 disabled
|
|
|
|
|
|
|
|
|
|
set-axis joystick0axis16 disabled
|
|
|
|
|
|
|
|
|
|
set-axis joystick0axis17 disabled
|
|
|
|
|
|
|
|
|
|
set-axis joystick0axis18 disabled
|
|
|
|
|
|
|
|
|
|
set-axis joystick0axis19 disabled
|
|
|
|
|
|
2013-08-03 14:31:19 +03:00
|
|
|
|
16 Errata:
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2013-08-03 14:31:19 +03:00
|
|
|
|
16.1 Problems from BSNES core:
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
• The whole pending save stuff.
|
|
|
|
|
|
2012-01-11 15:24:36 +02:00
|
|
|
|
• It is slow (especially accuracy).
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
• Firmwares can't be loaded from ZIP archives.
|
|
|
|
|
|
2013-08-03 14:31:19 +03:00
|
|
|
|
16.2 Other problems:
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
2013-08-24 22:16:43 +03:00
|
|
|
|
• Modifiers don't work with pseudo-keys.
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|
|
|
|
|
• Audio for last dumped frame is not itself dumped.
|
|
|
|
|
|
2012-01-11 15:24:36 +02:00
|
|
|
|
• Audio in UI is pretty bad in quality if game doesn't run at
|
|
|
|
|
full speed.
|
2011-12-12 16:08:22 +02:00
|
|
|
|
|