1 Introduction lsnes is SNES rerecording emulator based on bsnes core. 2 Dependencies 1. bsnes libsnes (a) v084 or 085 (b) accuracy or compatiblity core. (c) Patched version (using included 6 patches) 2. Zlib 3. boost_iostreams 4. boost_filesystem 5. libsdl (SDL only) 6. sdlmain (SDL only, part of SDL) 7. boost_conversion (this is header-only library) 8. libswscale (wxwidgets graphics only) 9. Portaudio (portaudio sound only) 10. std::thread and co (for threaded dumper only) 11. Lua (if Lua support is needed). • Version 5.1.X or 5.2X. 3 Building Building is via makefile, the following options are available: • CROSS_PREFIX= – Prefix to apply to commands when building executables / object files for the target architecture. – Default is blank. • CC= – Name of C++ compiler. – CROSS_PREFIX is prepended if compiling for target architecture. – This needs to be at least GCC 4.6. – Set to 'g++-mp-4.6' if compiling on Mac OS X using GCC 4.6 from Macports. – Default is 'g++'. • HOSTCC= – Name of host C++ compiler. – Default is value of 'CC' option. • USER_HOSTCCFLAGS=: – Compiler flags to pass when compiling/linking for host architecture. – Default is blank. • USER_CFLAGS= – Extra flags to pass when compiling for target architecture – Default is blank. • USER_LDFLAGS=: – Extra flags to pass when linking for target architecture. – Default is blank. • USER_PLATFORM_CFLAGS= – Extra flags to pass when compiling files using platform-dependent code for target architecture. – Default is blank. • USER_PLATFORM_LDFLAGS= – Extra flags to pass when linking files using platform-dependent code for target architecture. – Default is blank. • FONT_SRC= – Set the font file to use. – Currently the valid values are: ∗ cp437.hex: Standard VGA font (256 characters). ∗ unifontfull-5.1.20080820.hex: GNU unifont (covers most of Unicode BMP) – Default is 'unifontfull-5.1.20080820.hex' • LUA= – Package to use for Lua support. – Usually valid value is 'lua' or 'lua5.1'. – Default is not to build Lua support. • THREADS= – Override platform default for dumper threading support. – Threading is default on Linux. – 'YES' tries to use threading. – 'NO' disables threading. – Note: This has absolutely nothing to do with platform threading. • BSNES_IS_COMPAT= – Signals that BSNES core used is compatiblity core, not accuracy core. – Default is to assume accuracy core. • JOYSTICK= – Set joystick implementation. Valid values are: ∗ SDL: Use SDL for joystick (requires SDL graphics) ∗ EVDEV: Use EVDEV for joystick (Linux only). ∗ DUMMY: Disable joystick support. – Default is SDL. • SOUND= – Set sound implementation. Valid values are: ∗ SDL: Use SDL for sound (requires SDL graphics) ∗ PORTAUDIO: Use Portaudio for sound. ∗ DUMMY: Disable sound support – Default is SDL. • GRAPHICS= – Set windowing library to use. Valid values are: ∗ SDL: Use SDL for graphics ∗ WXWIDGETS: Use wxWidgets for graphics. – Default is SDL. 4 Command line options 4.1 ROM options in the following can be one of: • rom: Cartridge ROM (BIOS for special carts). This is required. • bsx: BS-X (non-slotted) Game flash ROM. • bsxslotted: BS-X (slotted) Game flash ROM. • dmg: DMG game ROM • slot-a: Sufami Turbo Slot A ROM • slot-b: Sufami Turbo Slot B ROM 4.1.1 --= (lsnes/SDL, lsnes-avidump) Load as specified ROM (SFC/BS/DMG/ST file format). 4.1.2 --headered-= (lsnes/SDL, lsnes-avidump) Load as specified ROM, stripping first 512 bytes. Handy for loading SMC / FIG and such files. 4.1.3 ---xml= (lsnes/SDL, lsnes-avidump) Override hardware detection for ROM, reading the values from (BSNES XML format). 4.1.4 --ips-= (lsnes/SDL, lsnes-avidump) Apply BPS/IPS patch to ROM . If specified multiple times, the patches are applied in order. 4.1.5 --ips--xml= (lsnes/SDL, lsnes-avidump) Apply BPS/IPS patch to XML of ROM . If specified multiple times, the patches are applied in order. 4.1.6 --ips-offset= (lsnes/SDL, lsnes-avidump) Set offset to apply to IPS patches. May be negative. Handy for applying headered IPS patches (use offset of -512 for this). The offset must be 0 for BPS patches. 4.1.7 --pal Force ROM to be considered PAL-only. • Only works on SNES and SGB ROMs (not BS-X or Sufami Turbo). • Attempting to load NTSC movie file will error out. 4.1.8 --ntsc Force ROM to be considered NTSC-only. • Attempting to load PAL movie file will error out. 4.2 Session options 4.2.1 (lsnes/SDL, lsnes-avidump, movieinfo) Load as movie or savestate file. All other session options are ignored. 4.2.2 --port1= (lsnes/SDL) Set type of port1. Valid values are: • none: No device connected • gamepad: One gamepad (the default) • multitap: Four gamepads (warning: makes most games refuse to start) • mouse: Mouse. 4.2.3 --port2= (lsnes/SDL) Set type of port2. Valid values are: • none: No device connected (the default) • gamepad: One gamepad • multitap: Four gamepads. • mouse: Mouse • superscope: Super Scope • justifier: One justifier • justifiers: Two justifiers 4.2.4 --gamename= (lsnes/SDL) Set the name of game to . Default is blank. 4.2.5 --author= (lsnes/SDL) Add author with full name of (no nickname). 4.2.6 --author=| (lsnes/SDL) Add author with nickname of (no full name). 4.2.7 --author=| (lsnes/SDL) Add author with full name of and nickname of . 4.2.8 --rtc-second= (lsnes/SDL) Set RTC second (0 is 1st January 1970 00:00:00Z). Default is 1,000,000,000. 4.2.9 --rtc-subsecond= (lsnes/SDL) Set RTC subsecond. Range is 0-. Unit is CPU cycle. Default is 0. 4.3 Misc. options: 4.3.1 --run= (lsnes/SDL) After running main RC file, run this file. If multiple are specified, these execute in order specified. 4.4 dump options (lsnes-dumpavi only) 4.4.1 --prefix= Set dump prefix. Default is “avidump”. 4.4.2 --level= Set compression level (0-18). Default is 7. 4.4.3 --length= Set number of frames to dump. Mandatory. 4.4.4 --lua=