Short: Snes9X / Amiga v1.29 (WarpOS port) Authors: Amiga port by jesper@fxrealm.com (Jesper Svennevid), original by Gary Henderson and Jerremy Koot Uploader: jesper@fxrealm.com (Jesper Svennevid) Requires: OS 3.0+, WarpOS 4+ Replaces: misc/emu/snes9x-wos.lha Type: misc/emu This is a port of the SuperNES-emulator Snes9x, that is available for a vast variation of platforms. New in this version: - Hicolor now works on all machines, even ones without hicolor capability. This is solved by dithering to 8-bit. - Supports all 15/16-bit modes except the byteswapped ones. - The CD32 joypad is polled directly(PPC only, 68k still use ReadJoyPort()), so there is no context- switch required. - All 8-bit rendering is now remapped using a 332 RGB colormap. This results in slightly distorted colors, but speed is much improved, as LoadRGB32() no longer need to be called(1 c-switch less). - Using a custom inputhandler for key-events instead of QueryKeys(), and storing the result in a cache-inhibited memory-area. This removed all the keymap-problems and resulted in much cleaner polling. - AGA is now supported as a output-target for the graphics again. Optimized chunky-to-planar is only used in fullscreen mode, windowed mode uses WritePixelArray8() right now. If you are to play in windowed mode, install "newwpa8" first. - Dynamic frameskip. It is enabled by default, and if you want a static frameskip, you must supply the parameter -f when starting. - Window rendering. Don't use -directhack when using windowed rendering, as it WILL distort the WB graphics if moved, and don't place windows above the Snes9X-window, they will be trashed. Known issues: - Promoting a 8-bit display into hi/truecolor seems to be problematic right now. (No graphics displayed) - Byteswapped 15/16-bit modes are not supported, neither are 24/32-bit modes. Rasterizers will be written soon. - You cannot push the Start-button if you press either A or B on the CD32-joypad. This is due to some kind of bug that may accidently trigger Start (and in many cases pause the game) if A or B is pressed while pushing another direction/button, so it has been masked out while the problem is being resolved. - Snes9X seems to ignore certain switches from time to time. (Enabling/disabling BGs, etc) The switches seem to work when using hicolor and transparency. - The 332 RGB remapping is not dithered at the moment. - Sound is emulated, but not replayed. I'm working on a ppc-native audio-replayer engine, and as soon as I've finished it I'll try to replay sound. - Joypad 2 isn't directly usable, as no CD32-joypad or keymap is accessing it. - You cannot change the keyboard-layout. This will be resolved ASAP, as the new keyboard-polling routines make it very simple to poll other keys. - The mouse is not emulated. - There is no GUI. This has been the problem from the start, as every time I've implemented a GUI, the entire emulator has become unstable and it had to be scrapped. This was found to be the includes I was using (every m68k call was leaking some stack, and eventually this caused a stack-overflow), and GUI will be added. There are a few switches that I've added that aren't in the original version: -hicolor Selects 16-bit hicolor rendering instead of 8-bit CLUT rendering -directhack Disable locking of bitmap (only on gfxboards), so that 2 context-switches per frame is evaded. Do NOT use this if you aren't sure that your screen won't be swapped to fast-memory, and don't use it when running in window mode. -transparency Enables transparency in 16-bit hicolor. This setting is ignored in 8-bit mode. -modeselect Brings up a screenmode-requester (use only if you can't get a proper mode) -cd32 Enable polling of CD32 joypad 1. This switch was added due to the new polling- routines that may cause problems if no CD32 joypad is connected. -window Switches rendering to windowed mode. If the opened window is running on a gfxboard, direct rendering will be enabled (might leave artifacts on screen if the window is moved). Don't forget to use -nosound if possible (some games can't handle it though), as the SPC700 i still emulated even though no sound is replayed. Disabling it gives quite a boost. If -nosound gives problem with any game (Like Super Mario Allstars), try using -soundskip and select another skipper. This version of Snes9x has been compiled using EGCS/GCC 1.1.2, with very minor modifications to the original source. (Only globals.cpp was edited, due to major executable-size reduction.) The WarpOS port has been post-processed with elf2exe2, which reduced the entire program with approx. 500kB compared to the 1.26 release(which was processed with elf2exe release 1). Controls: This port supports both joypad and keyboard for controlling the emulator. You can only access joypad 1 at the moment, due to a few minor shortcomings of the joypad and keyboard routines. Use '6' to toggle pads if needed. Keys are as follows: Esc - Quit Snes9X Arrow Up - Up on joypad 1 Arrow Down - Down on joypad 1 Arrow Left - Left on joypad 1 Arrow Right - Right on joypad 1 Z - A on joypad 1 A - B on joypad 1 X - X on joypad 1 S - Y on joypad 1 C - TL on joypad 1 D - TR on joypad 1 1 - Toggle BG 0 2 - Toggle BG 1 3 - Toggle BG 2 4 - Toggle BG 3 5 - Toggle OBJs 6 - Swap joypad 1/2 8 - Swap layering 9 - Toggle transparency 0 - Toggle HDMA CD32 Joypad 1: Up/Down/Right/Left - The same Blue/Stop - A Red/Select - B Green/Shuffle - X Yellow/Repeat - Y Reverse - TL Forward - TR Play/Pause - Start CD32 Joypad 2 is not polled at the moment. Contacting: Email me at jesper@fxrealm.com, or use the forum at http://snes.amiga.tm/ Original copyright: Snes9x - Portable Super Nintendo Entertainment System (TM) emulator. (c) Copyright 1996 - 2000 Gary Henderson (gary@daniver.demon.co.uk) and Jerremy Koot (jkoot@snes9x.com) Super FX C emulator code (c) Copyright 1997 - 1999 Ivar (Ivar@snes9x.com) and Gary Henderson. Super FX assembler emulator code (c) Copyright 1998 zsKnight and _Demo_. DSP1 emulator code (c) Copyright 1998 Ivar, _Demo_ and Gary Henderson. DOS port code contains the works of other authors. See headers in individual files. Snes9x homepage: www.snes9x.com Permission to use, copy, modify and distribute Snes9x in both binary and source form, for non-commercial purposes, is hereby granted without fee, providing that this license information and copyright notice appear with all copies and any derived work. This software is provided 'as-is', without any express or implied warranty. In no event shall the authors be held liable for any damages arising from the use of this software. Snes9x is freeware for PERSONAL USE only. Commercial users should seek permission of the copyright holders first. Commercial use includes charging money for Snes9x or software derived from Snes9x. The copyright holders request that bug fixes and improvements to the code should be forwarded to them so everyone can benefit from the modifications in future versions. Super NES and Super Nintendo Entertainment System are trademarks of Nintendo Co., Limited and its subsidiary companies.