quickdev16/files/docs/snes/fastrom.txt
2016-02-15 17:42:39 +01:00

45 lines
2.0 KiB
Plaintext

From: LAY@uk.tele.nokia.fi
To: "Super Famicom Development Group" <FAMIDEV@BUSOP.CIT.WAYNE.EDU>
Subject: The need for speed revisited...
Date: Wed, 16 Feb 1994 11:00:49 GMT
I unsubscribed from this mailing list after my suggestion that
maybe the processor would run faster when executing from RAM
brought responses such as "if you want something to run that
fast you should use a PC" which quickly turned into a whole
barrage of "my Amiga is faster than your PC" mails. Just the
sort of comments I was hoping to get from this mailing
list... )-: However I'm changing jobs and I don't know whether
I'll have internet access at my new job, so I'd better make
the most of it...
So, for anyone like myself who wants to get the most out
of their SNES I thought I'd let you know that I've managed to
run the program in FASTROM which has resulted in a 33% speed
improvement - the 65816 runs at 3.58Mhz rather than 2.68Mhz.
This is possible because the ROMs have a faster access time
- hence the reason I thought it may be possible with RAM which
typically has faster access times than ROM.
So how's it done?
The SNES lets you access ROM through bank $00 onwards and bank
$80 onwards such that locations $008000 and $808000, $008001 and
$808001, $008002 and $808002 etc... all access the same locations.
When accessing bank $00 onwards the 65816 runs at 2.68Mhz. However,
when accessing bank $80 onwards the 65816 can run at 2.68Mhz or
3.58Mhz depending on how you set bit 0 of $420D.
So all you have to do is assemble your program so that it
starts at $808000, make sure you set the programming and
data banks to $80 (K and D) and set bit 0 of $420D. You'll
also need to mask off the bank part of the run/reset vector
and vertical blank interrupt locations.
Paul.
PS. I also see that the source code for an early version of my
GIF2SNES program has made it onto the ftp site by a somewhat
indirect route (UK->NZ->AUS->USA). If someone wanted
this source code let me know and I'll post the latest fully
optimising version.