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
|