Page 1 of 2
Theoretical SNES flash cart idea
Posted: Wed Aug 26, 2009 8:46 pm
by pcmantinker
I've been thinking about a possible flash cart that would load games from either an SD card or a Compact Flash card. It would really depend on how fast I want the roms to load into RAM. Compact Flash would be faster though. Also, a chip that could emulate most SNES mappers and other co-processors would be awesome. I'm not sure if this is technically correct but would an FPGA be able to emulate mappers and/or co-processors such as the Super FX or Capcom chip? I did some research to see how the PowerPak worked and saw that it uses an FPGA or a PLD to emulate the specific mappers for different games. I am not sure exactly how large the unit would be, but it may end up turning into something like a modern copier/homebrew device with SD/Compact Flash support.
Please note that at the given moment, I am not 100% educated on the ins and outs of the SNES hardware so it may be a while until I can start on a prototype. Also, I need to think of how I could do this cost effectively.
Posted: Wed Aug 26, 2009 9:28 pm
by darknezz19
I think this is a great idea. If i could build something like this I would! but i'm just a 2 bit user in a 64bit world. this one guy i ran across is trying it though. Here, check
it out.
Re: Theoretical SNES flash cart idea
Posted: Thu Aug 27, 2009 5:52 am
by MatthewCallis
pcmantinker wrote:I've been thinking about a possible flash cart that would load games from either an SD card or a Compact Flash card. It would really depend on how fast I want the roms to load into RAM. Compact Flash would be faster though. Also, a chip that could emulate most SNES mappers and other co-processors would be awesome. I'm not sure if this is technically correct but would an FPGA be able to emulate mappers and/or co-processors such as the Super FX or Capcom chip? I did some research to see how the PowerPak worked and saw that it uses an FPGA or a PLD to emulate the specific mappers for different games. I am not sure exactly how large the unit would be, but it may end up turning into something like a modern copier/homebrew device with SD/Compact Flash support.
Please note that at the given moment, I am not 100% educated on the ins and outs of the SNES hardware so it may be a while until I can start on a prototype. Also, I need to think of how I could do this cost effectively.
I would check to see how mash-mods.com did theirs, Tomy from ToToTek did his and how how the guys at optixx.org are coming along with theirs (and eventually their SDcard Daughter Board).
That would jump start your work for sure.
Posted: Thu Aug 27, 2009 1:16 pm
by MottZilla
I'm sure in theory somewhere there is an FPGA that could fit a clone of the SNES coprocessor chips. Who knows what it would cost but not to mention it's not like you can just copy the chip. You'd have to understand how to use a FPGA which I imagine you don't.
Another thing is the SNES doesn't have "mappers". Games use LoROM and HiROM mapping but that's not the same thing as the NES and memory mappers.
If you want to make something like this you're going to need to know alot of things which I'm guessing you don't know how to do right now. For example just making a Copier like you'd find on the used market today for SNES which is just a seemingly basic unit such as the GDSF3 or Super UFO.
Just remember if it was that easy someone else would have already done it. There is a project going on to basically do what you want with loading off a SD card. I remember they made test code and modified BSNES as a testing ground. I'm guessing that is the optixx.org project Matthew mentioned.
Posted: Thu Aug 27, 2009 2:37 pm
by pcmantinker
With my current knowledge of the subject, I don't really know how to interface with an FPGA let alone most of the SNES hardware. I have more of a software background with high level compilers like C or C++. I will have to study how the low level hardware works before attempting to get too involved in the project. I understand the basics of a computer system, but low level hardware accessing is a bit past my expertise right now.
Posted: Thu Aug 27, 2009 5:35 pm
by MottZilla
Well you have to think, do you want to build something like this or do you just want to have something like this? If you just want to have something like this you have options and if you wait there may be more options.
If you are actually interested in building one yourself go right ahead, learn the things you need to know.
Posted: Fri Aug 28, 2009 5:34 pm
by neviksti
I'm trying to make a SNES flash cart that can hold multiple games with SD card + (potentially) onboard DSP1 support. My first simplified prototype has run its course and I'm currently ordering prototypes of the full (hopefully final) version. I'm having fun and would like to share my work with others, but it is quickly becoming apparent that I will have to risk quite a bit of money and charge ~ $120 per cart just to hope to break even. I don't care if I lose too much money, as the main point is to hopefully share my fun with others, but I wouldn't be willing to risk too much ... What I'm trying to say, is that if my experiences have shown me anything, it is that you probably won't be seeing an affordable SFX and SA1 and C4 and SDD1 and etc. capable cart with FPGA anytime soon.
If someone does make an "everything" SNES hardware emulator cart, it will either be a personal project, or will be something like what Kevin was shooting for a couple years ago with his awesome hardware console emulator in that it will be: probably be a short run of pre-orders, with a significant cost, and only for those that understand exactly what they are buying (ie. somewhat capable of programming it themselves).
For those wanting to tinker with other co-processors, it seems more reasonable to me for them to modify a cart to make a dedicated EEPROM (or flash) cartridge for those purposes ... because the jump from handling all the memory mapping capabilities, to emulating a full co-processor, is very far from being a small step in price and capability.
(EDIT: For those interested, my current design's intended features:
- fits in a PAL and NTSC cartridge shell
- has a microcontroller to read the SD card
- microcontroller can act as a simple co-processor if one so chooses (more useful for homebrew -- do not expect emulation, but I'm trying DSP1 and can currently play MarioKart and some of PilotWings)
- 128Mbit flash, which can support up to 31 games on the cart (so you don't have to wait for flash programming every frickin time)
- 2Mbit SRAM, battery backed, and can support multiple games
- and to make it easy on those really wanting to fiddle with it ... both the microcontroller code and CPLD are fully reprogrammable / updatable without the need for special programming cables (after my initial programming of course)
I don't know how much free time I'll have, but a lot of programming is already done from previous version. Maybe I can start releasing it in 2 months?
)
Posted: Fri Aug 28, 2009 7:15 pm
by Dwedit
What about sticking a GBA SuperCard inside a cartridge, converting the voltage, and hoping it works?
Obviously you'd need a mapper, because the 32MB address space is too big, and there would need to be a way to switch the supercard bewteen BIOS/IO mode and RAM mode. Can't do that without twiddling the highest address bits.
Probably would also need a custom BIOS which would run SNES code instead of GBA code.
Posted: Fri Aug 28, 2009 8:16 pm
by tepples
Using a SuperCard would have complications:
- The BIOS issue, as Dwedit pointed out.
- The interface circuitry would need something to translate between the roughly N64-RAMBUS-ish 16-bit multiplexed address and data bus in the GBA and the non-multiplexed 8-bit bus on the Super NES cart edge. I don't think the SuperCard has anything like the hardware on the old Visoly cards that allowed the GB Bridge to work at GBC speeds.
- With 4 wait states (at 16.78 MHz) for random access, the SuperCard's RAM runs at an effective (1000/16.78)*(4 + 1) = 300 ns, which isn't even fast enough for SlowROM. How fast is your SuperCard in memtestARM?
Posted: Fri Aug 28, 2009 9:42 pm
by Memblers
neviksti wrote:
- has a microcontroller to read the SD card
- microcontroller can act as a simple co-processor if one so chooses (more useful for homebrew -- do not expect emulation, but I'm trying DSP1 and can currently play MarioKart and some of PilotWings)
I think that's really cool way to do the DSP chip. What MCU are you using?
On my Squeedo NES cart, with it's PIC18, at one point I had considered replicating some functions of the SNES DSP. But I'm not a math person at all, and the application of some of it's functions are a little beyond me (plus maybe of questionable use on NES). Mostly it just provided a kind-of well documented framework that seemed interesting.
Posted: Sun Aug 30, 2009 1:42 am
by neviksti
I'm using PIC24H for the mcu. I needed something large enough and fast enough to handle the SD card okay. Due to unknown and or undocumented issues with the pic chip (I've already found one undocumented bug/"feature") the timing doesn't seem to work as planned for supporting some DSP1 emulation features. It may still be possible, but I'm not going to waste anymore time on it right now. (Some games expect crazy fast response, such as write command, write data, read response ... absolutely no pause. They don't wait for RQM at all.)
For as simple as SNES mapping is, I was amazed at how much logic it took to make a simplified version of the SF3 was. I got the design to fit in the CPLD, so I should be good to go, but I'd really like to use some of its features better ... but I'm struggling with the Xilinx's software. Their support department refuses to talk to students, and their support documents are aweful. The software sent with a cpld kit was actual outdated enough that it couldn't be installed, and their tutorials don't match versions currently available. I'd like to reduce the mA needed, but the fitter completely ignores my timing constraints and just does what it wants. So currently I can only get it to work if I set everything to fast and just accept the additional power usage. If anyone is familiar with Xilinx software, and would be interested in helping look over the design, please let me know.
Posted: Mon Aug 31, 2009 8:57 pm
by pcmantinker
Neviksti, would your flash cart be able to run your 96mbit Star Ocean hack? That would be amazing. Currently, I am playing it on my SF7.
Posted: Tue Sep 01, 2009 12:10 am
by neviksti
pcmantinker wrote:Neviksti, would your flash cart be able to run your 96mbit Star Ocean hack? That would be amazing. Currently, I am playing it on my SF7.
Yes. My mapper design is not as versatile as the SF7, but it should be able to play that.
Posted: Tue Sep 01, 2009 1:23 pm
by Near
neviksti, sent you a PM here that you might be interested in re: your SD cart idea.
Posted: Thu Jul 22, 2010 3:27 am
by electrochip
any update neviksti?