AmiSNESE
by
chip@ramses.ml.org
"Haven't you always wanted to play the 'classics' on SuperNES on your own Amiga? I have, and that's why I'm developing this emulator. It all started in August 1997 when I logged on into IRC, a few hours after I just had finished my 6502-emulator, that I didn't know what to do with. :)

"On IRC, I bumped into one of the authors of A/NES(Morgan Johansson), and when I asked him about what a 6502-emulator could have use for, he asked me why I didn't write a SuperNES-emulator, as the Amiga was lacking a good one. The more I thought of it, I liked the idea. I abandoned my 6502-emulator, and he gave me a link to a page with ton's of documentation for the SuperNES, and a few days later I had a GUI and a small CPU-emulator, emulating a few instructions. It was VERY buggy and slow, but it convinced me that this was something I could spend my time with. A few weeks later, I got my first graphics on the screen, a bit screwed up, but I didn't actually complain. I would have screamed out if it hadn't been in the middle of the night. :)"

Features:

  • Mode 0 & 1 implemented at last to a grade that's useful.
  • All 4 BG's implemented, controllable thru keyboard. The layers are perfectly masked thru each other.
  • Implemented tile palette-remapping.
  • 1 pass removed completly from the screen-rendering, resulting in a nice speed-up. Should not affect appearance of graphics.
  • Screen is not updated if no changes are made in VRAM or in any hwreg that affects the screen.
  • Rescaled the CPU-speed cfg-item, now 100 different speed-modes selectable(From 536 cycles per VBL up to 53600).
  • Entire CPU-emulation REWRITTEN. All opcodes are now macro-based. This gives smaller source-code and better debugging-possibilites.
  • The emulator is now FREEWARE. Source-code will be available when the emulator gets good enough.
  • CPU innerloop overhead decreased, and jsr is now replaced with jmp, removing several cycles per SNES-instruction.
  • 45% more speed thanks to the rewrite!
  • Public memory allocations pooled.
  • Joypad 1 now emulated. (See key-definitions)
  • Register PB now emulated correctly. Was before never stored, so long jumps could not be done.
  • Added check for CPU, so that 000/010 machines wont crash if running the program.
  • Icons enhanced to MagicWB look by Tomas Amsrud. (Thanks!)
  • Screenmode requester added to permit different modes w/o promoting.
  • Fixed library closing bug. (No libraries were actually closed on exit)
  • Files are now unlocked in a more compatible manner.
  • Fixed screenblanking when display is disabled.
To Do List:

  • Top priority is currently to rewrite DMA. The current DMA-code is exactly the same that was written for v0.01, and it doesn't support more than CPU -> VRAM and CPU -> CGRAM copy :)
  • Fix some badly emulated instructions, that forbid the emulator to run roms that wanna jump far into the rom.
  • Rewrite keyboard routines.
  • Write 4 different code-jumptables, handling all emulation-modes of the CPU. This will result in a 10 cycle gain per 65816-instruction.
  • Add true gfx-board support. (using native routines)
  • Optimize addressing-modes.
  • Much faster graphic-rendering. (without removing gfx-board support)
  • HDMA (Horizontal DMA).
  • Rewrite DMA completly.
  • Add bitwise hardware-scrolling.
  • Add support for screens larger than display-area.
  • Implement tile X/Y flipping.
  • Get those OAM/OBJ's running. (I'm so lazy :)
  • Implement more graphic-modes. (Like mode 7 and so. :)
  • Find out why some roms SHOULD be able to display graphics, but won't.

Download AmiSNESE
AmiSNESE for AmigaOS [Homepage]
. Super Nintendo Emulators Index . Emulators Index . Front Page .

© 1997/1998 Archaic Ruins