Short: Super Nes Emulator Author: Martin Johansson Uploader: Samir Hawamdeh Type: misc/emu Version: 0.18b Requires: Amiga with 68020, AGA, around 2.5 Mb free mem. and reqtools.library Architecture: m68k-amigaos >= 3.0.0 ���������������������������������������� /ŻŻŻŻŻŻ/___ _______ ____/ ___ / / ____ / / \/ / / / / / / / /\ / \____/_ / / ŻŻŻ \ / / / / / ______/ __/_/____/_____/ *** MySNES 0.18b *** RELEASEDATE - 981115 Created by Martin Johansson email: f94majo@dd.chalmers.se www.dd.chalmers.se/~f94majo/mysnes/mysnes.htm Note: I'd like to know how MySNES works for you. You don't have to report bugs. Just e-mail me so I know how people use it, what settings you have for your computer etc. Martin Johansson, email: f94majo@dd.chalmers.se (Please don't ask for commercial roms) WHAT'S NEW ---------------- New in MySNES 0.18 beta: ------------------------ * Some speed increase in gfx (mostly visible with frameskip 0) * Major speed increase in mode7 FX * Some speed increase in CPU * You can set screen height and vertical startpos. (use F6-F9) This is very useful to speed up gfx. * Small fixes * .... New in MySNES 0.17 beta: ------------------------ * Bugs removed from 0.16b * Debugger included * You can choose cacheskip (read usage) * BIT-instruction corrected * Some HW-Regs corrected * When program can't decide HiROM or LoROM, you can press left mousebutton for LoROM and right for HiROM. This is necessary for DKC_2 (which only shows the intro) * Two simple mode7-demos included in the archive. * .... New in MySNES 0.16 beta: ------------------------ * You can load zsnes savestate-files * Filereq. only show rom-files * Remade some interrupt-code * Gfxmodes 0-7 now supported. mode7 WITH fx (scaling/2d-rotating) But some effects use hdma to make it look like 3d-rotating, this will not look right. For non-rotating plane I will make alot of speedups some day. * Alot of small fixes New in MySNES 0.15 beta: ------------------------ * ROMs always loaded into FASTmem. Before it could often end up in CHIPmem for some reason. * Hopefully removed bug that made MySNES hang up when loading a ROM. It now works for me when using MCP1.30 with FASTrom=on. * Corrected a major mistake in my DMA-handler. It assumed that only one channel was started at a time, so many dma-requests where left-out. * Better tilecache which now detects all changes in gfx, and updates necessary tiles after that. The texts in Zelda now come up and a lot of background-animations are now visible. New in MySNES 0.14 beta: ------------------------ * New GUI with separate prefs-window (alot of new settings) * Faster GFX-routines (mostly for 030-users) * Added a new apu-skip method, much faster than old one and seems to skip much more hang-up-loops. * A few fixes with DMA etc. New in MySNES 0.13 beta: ------------------------ * sprites were drawn in backward order, that is corrected now * up to 20% faster * better headerdetection, no need to have a 512-byte header * removed two cpu-bugs making LufiaI, Big sky troopers, ... run * fixed colorsettings => perfect colors in Alien3, Censor, Intro-3, LufiaI, ... * fixed screenwrap for 32*64 screens. Jaki crush fully playable * screenwrap correct in FAST. Look at Gooftroop. * you can now press F1-F5 when using a CD32 * screenupdates done differently (depth-first) so there is no blinking anymore when scrolling New in MySNES 0.12 beta (there's alot, I know I'll forget some things): ----------------------------------------------------------------------- * new more reliable DMA-handler => Mario sprite-bug from 0.11 is gone, Pacman intro ok now, ... * CPU-speedups * removed a bug => no more disappearing sprites in Super Mario World (you can now reach the first castle), Zelda fully playable (earlier it could freeze sometimes), sprites ok in Krusty Super Fun House, Super battleship and much more ... * implemented correct emulation of regs. $4210-$4212 => smoother fading and scrolling in some cases and some new games start: secret of the stars, sidepocket, ... * FAST now works to 80% on all screens-sizes. It only fails when y_scroll > 256 (ex. Gooftroop) * full tileflip in FAST * fastmode1 can be used in FAST * new option (Swap BGs) that is very useful when running Zelda It draws BG1 and BG2 in reversed order. Try it in any castle and see the difference (still no sprite-priorities) * fixed two bugs in the memorymapping * changed the initial settings a bit * .... New in MySNES 0.11 beta: ------------------------ * remade the screenmode "SQUASHED". Check it out. * cd32-joypad supported * new read/write-routines => faster * a little sprite-fixes, pacman sprites much better * read from OAM/VRAM/WRAM added * mysnes.cfg saved to remember last directory * the new screenmode "FAST" worked on. Have a lot left though * pacman, breakthru & gooftroop playable * mode7 implemented (no fx or scrolling yet) * some mode7 regs implemented => rpg1.smc works as it should How to install. ------------------- * copy directory "marble" and file "marble.font" to your font-directory. I seem to have missed the file "marble/15" in some earlier versions. If you can't find it, please mail me. The prg crashes if the font can't be found. * start MySNES.EXE from CLI or WORKBENCH What is this? ------------------ This is (becoming) a SNES emulator for Amiga. It's written in 100% assembler but is still very slow (to be honest). I use AsmPro 1.14 and have an Amiga 1200, blizzard 1230 50 MHz without FPU, a 2.5 Gb HD and 8 Mb FASTRAM (+ 2 CHIP). Before using this program, please note that: * it is still rather slow * it requires an Amiga with 68020, AGA, at least 2.5 Mb of ram and reqtools.library * I take no responsibility for any damage this program may cause on your computer * I won't answer any rom-requests What is emulated? ------------------ * All opcodes of CPU 65816 * Mode 0-6, 7 (with FX) all with 8x8 tiles (not 16x16) flipped in all dirs. * Screen size 32x32, 32x64, 64x32, 64x64 * Sprites 8x8, 16x16, 32x32 (no flip), 64x64 (no flip) * NMI = vertical blank interrupt * IRQ, not perfect but helps some roms * Multiply/divide registers * Joypad 1 via keyboard or cd32 (see 4. Keys) * Autosave of battery backup * All 8 dma channels, modes 0, 1, 2, 3, 4 * Read/write OAM/VRAM/WRAM Requirements ------------------ * Amiga with 68020, AGA, around 2.5 Mb free mem. and reqtools.library * SNES-Roms How to use emulator ------------------------ Main ------------- * Prefs - Switch to prefs-page * Debug - Start the debugger * Save state - Not implemented yet * Load state - Load a ZSNES savestate-file These are named *.zst or *.zs0, *.zs1, .... Prefs ------------- * Save - Save prefs in file "SYS:S/MySNES.cfg" This will also save current rom-dir and state-dir. This is NOT automatically saved anymore. * Static screens - When selected it only copies changes of the screen to chipmem. It should be faster on games with static displays like pacman etc. * Speedtrick 1 - For future implementations * Speedtrick 2 - For future implementations * Swap BGs - Will reverse the order in which BG1 and BG2 are drawn. This is very helpful in Zelda. Try it in castles. Outside you can use this or disable BG1 (by pressing F1), otherwise you wont see through the rain. * Player input (PLAYER 2 NOT EMULATED YET) - Choose your input, keyboard or CD32 - If you use CD32 then it's PAUSE-button = SNES' startbutton and SPACE on kbd = SNES' selectbutton ------------------------------------------------------------- * APU-skipper - Choose method to skip communications with the Audio Processing Unit. Old method=0. New in MySNES 0.14 is method 1 - method 1 improved in ver 0.17 Now it should start metroid3 - method 2 tries to simulate the apu block transfer but doesn't seem to work correct yet * Save battery-backup - Remember to have this checked if you want to save your progress in games. ------------------------------------------------------------- * Resolution - Choose LoRES or HiRES screen * Update method - Tilecache was known as FAST in version 0.13 - Full will update all tiles in all bgs every update. * Copymode - How to copy data to chipmem. 1. Full copies whole 256*240 screen 2. Spaces (also known as scanlines) will copy every second line. Much faster compared to 1 on a 030, but I couldn't see any big difference on 060. 3. Squashed also copies every second line but doesn't leave any spaces between the copied rows, so the screen looks squashed. Try this in HiRES. * Cacheskip - How often you want to update the BGs. Setting 0 make them get updated before every frame update. It only updates changes. This doesn't change smoothness of the scrolling. Just animations and such things. * Frameskip - Number of frames to skip before every frame is rendered frameskip = 0 => all frames are rendered * Hcycles% - How many percent of the 206 horiz.machine cycles you want to do before entering Hblank. Many demoroms only need about 50. 4.1 *** EMULATOR keys *** --------------------------- F1 - BG1 on/off F2 - BG2 on/off F3 - BG3 on/off F4 - BG4 on/off F5 - SPR on/off -new- F6 - Start screen rendering 8 pixels higher up (if possible) -new- F7 - Start screen rendering 8 pixels lower (if possible) -new- F8 - End screen rendering 8 pixels higher up (if possible) -new- F9 - End screen rendering 8 pixels lower (if possible) F10 - Force screen on/off Esc - quit emulator Left Amiga - A button Left Alt - B button Right Amiga - TopLeft Right Alt - TopRight Ctrl - Y button Left shift - X button Return - Start button Right shift - Select button Demos that show decent gfx ------------------------------- NOT UPDATED SINCE 0.10 beta * infinity.smc * unknown.smc * sonic.smc * intro-1.smc * intro-2.smc * intro-3.smc * magical.smc * censor.smc * taurus.smc * cdi.smc * dwarf.smc * tictac.smc (fully playable!) * wa-chess.smc (seems ok, I can't start playing in Snes9x either) * bluesky.smc * FinalFantasy 2 (only titlescreen) * smile!.smc * s-snake.smc (playable!) * rpg1.smc * rapegame.smc (playable!) * 15puzzle (fully playable!) * Bioworm (fully playable!) * Nuke (playable) * jaki crush (some gfxbugs) * zelda (some gfxbugs) * super mario world (some gfxbugs, but seems fully playable) * super r-type (can't start playing) * simcity (gfx-priority problems but fully playable I think) * harvest moon (extremely slow) .. (actually I know a lot more that starts now) .. Thanks to... ------------------ * Morgan "A/NES" Johansson for codes, ideas and testing * Fredrik "A/NES" Schultz for programming books used in optimization and maybe future PowerPC-coding * Savoury SnaX, author of SNEeSe (SNES emulator for PC), for docs on the 65816 * Yoshi, for the technical docs on SNES * Tomas Amsrud for the Icons and the AmigaGuide (it's great isn't it). * Jesper Svennevid for the competition with AmiSNESE, and good luck with your new project. * Sidewinder who gave me a beta of a mysnes.guide file * zsknight and _demo_ (ZSNES team) for showing me how their state- files are designed * All other people that have helped