Does anybody know details regarding Jonathan Scobbie's SNES romulator? Apparently he went through the trouble of creating custom circuit boards for a portable SNES project of his.
http://www.mash-mods.com/products/Mash- ... rtablesnes
One of the circuit boards allows loading SNES ROMs from an SD card onto a real SNES. It is the board labeled "SNES Romulator".
wow,
it looks great <3
anyone got the schematic ?
Anyone could interpolate this schematic, the thing is, you need to redesign the CPLD and BIOS. The CPLD only has to:
-power on to the BIOS, register to switch to emulation RAM and unmap the following registers
-decode the emulation SRAMs, register for SRAM limiting
-decode save RAM, register to select Lo/HiROM map
-register to shift A15-A21 to A16-A22 for LoROM
-registers for SD interface
The hard part is getting SD interfacing information and writing the FAT code.
kyuusaku wrote:
-registers for SD interface
The SD interface could just be an 8-bit shift register that speaks
SPI protocol. Or you could use CompactFlash and make an ATA interface instead.
Quote:
The hard part is getting SD interfacing information and writing the FAT code.
I wonder if the source code for various SD reader drivers in
DLDI might help.
I've actually seen a self contained 'FAT on a Chip' card, it does all the legwork of reading / writing a FAT file system with a MC.
Just uses some simple 'COPY, LOAD, DIR' type commands...
Forget the name however. It was expensive.
AVR's are what $5 these days? shesh.
Hey guys, I'm the one who did this project and was very surprised to see my name on this forum!
kyuusaku: you got it down pretty much exactly. The only detail missing is the 4MB of RAM is on a separate bus (since its 3.3v). You are right about the schematic, its trivial compared to the CPLD and menu program.
The CPLD acts in between the SNES and the RAM, allowing it to take over and write directly to the RAM while the menu program is running from flash. This is the only way to load games without being unbearably slow. Now it takes just a few seconds.
SD interface is really simple, although it was difficult to find the datasheet for. Its basically an 8 bit shift register, with software sending commands and receiving data.
Writing the menu program in assembly was a pain, so there is no FAT filesystem at all. I put all the ROMs in one huge file with list data in front of it.
The whole thing was wayyy too much work
Any other questions about this?
We will be releasing a new product on MashMods soon, a SNES FLASH CART and a nice USB programmer/reader to go with it.
Will you please post a topic here when your new SNES Flash cart goes on sale? I'm sure we'd all like to know when it becomes available.
Any chance you'll ever make a SNES cartridge that loads ROMs from a CF Flash or SD memory card similar to your SNES Romulator?
Quote:
Any chance you'll ever make a SNES cartridge that loads ROMs from a CF Flash or SD memory card similar to your SNES Romulator?
Yes, precisely. Much, much more valuable to have a cart that takes memory cards, rather than requiring custom USB flashing software (which probably only works on older copies of Windows.)
I'd be very interested in picking one up as well, assuming it is reasonably priced [~$50-120 or so]. Always looking to expand my available options for running code on real hardware.
So far, I have two copiers and an awesome controller <> serial interface + SRAM cart from blargg. A memory-card flash cart would be great for the latter ... could make a much larger boot ROM with lots of fancy options, and no risk of SRAM loss when yanking the cart out while its running (only a ~0.1% chance now thanks to a 10-frame x ~100 DMA loop.)
Would also be nice if someone sold RGB modded SNES units that can stream that data to a PC for analysis (eg to work on a pixel-level PPU emulator), but I'll keep dreaming ;)
I thought about making one that uses an SD card but concluded that the RAM and extra chips would not fit in the cartridge (unless I used BGA or something crazy).
The USB programmer is really nice, and will work on any version of windows (uses an FTDI chip). Plus you can back up regular carts and their save RAM, or copy a save from an emulator to the real cart.
With a flash cartridge you get an authentic retro experience
Only one game means you will actually play it, versus 700 you will never play. You could use it for hacks of fullsize games, or translations.
I haven't determined a final price, but it will be affordable. I will defiantly post a thread when its done (just have to figure out mass producing).
Whats this about BIOSes and DMA?
cybertron wrote:
I thought about making one that uses an SD card but concluded that the RAM and extra chips would not fit in the cartridge (unless I used BGA or something crazy).
Look at the CycloDS miniSD for Game Boy Advance, and see how the chips manage to fit in the cart.
Quote:
The USB programmer is really nice, and will work on any version of windows (uses an FTDI chip).
Does it use a non-generic kernel-level driver? If so, it won't work with 64-bit Windows Vista or later unless the publisher of the driver buys a $200/year code signing certificate. That's cost-prohibitive unless you're mass-producing the hardware that goes with it.
Quote:
The USB programmer is really nice, and will work on any version of windows (uses an FTDI chip).
Great, except my main PC runs Linux; and my secondary runs OS X. Good for ~92% of people, at least.
Quote:
Whats this about BIOSes and DMA?
Sorry, I was explaining what I'd use it for (reverse engineering); though I'm well aware I'm quite outside of the norm there.
Ah well. As it stands, it sounds like a good product; but it doesn't offer anything Tototek hasn't already with their Super Flash Cart. But since they're out of stock anyway, and because we can never have too much homebrew stuff, it still has plenty of merit.
Best wishes with the product!
Tepples, the DS devices stream the data off the SD card. The SNES requires it be loaded into RAM first to be fast enough, so that must be what he means.
cybertron, if the RAM and extra chips wouldn't fit in a normal cartridge, why not just make the cartridge bigger? Backup devices say on the top of the SNES and were pretty big, no one seemed to mind that. Infact I think it looks cool. So you could certainly just make the cartridge taller or make something in the shape of a backup unit.
As byuu was saying, a SNES cartridge that loaded ROMs off SD or CF cards would be totally awesome. While I can see your point of people having a million roms on a card they never play and such, the idea has already been tested in the NES with the PowerPAK and the result was pure awesomeness. Such a product for SNES would be equally if not even more awesome. So you might want to consider the idea again.
I do agree with byuu though that your Flash Cart will be very welcomed. While the NES is great and all, I think the SNES needs more loving. More products like this are a good thing.
MottZilla wrote:
tepples wrote:
Look at the CycloDS miniSD for Game Boy Advance
Tepples, the DS devices stream the data off the SD card.
What DS devices? I'm talking about devices that are compatible with software for the Game Boy Advance platform. Like NES, Game Boy, Super NES, and N64 Game Paks, GBA Game Paks have a word-addressed ROM. The GBA adapters that take SD cards copy up to 32 MB from the SD card into a RAM on the adapter, just like PowerPak copies games from the CF to its RAM. CycloDS miniSD is one of these; others include SuperCard and M3. Are you thinking of SLOT-1 adapters such as R4, SuperCard DS One, M3 Real, and CycloDS Evolution, which use a block-addressed microSD card to simulate the
block-addressed ROM of a DS Game Card?
I checked Digikey and I can get 1Mx16 SRAM chips. So basically 2 chips instead of one flash. Plus a huge CPLD to take care of all the bus stuff. So basically I probably could fit it in a normal cartridge. It would still take a while to design, but could possibly be my next project.
I checked the FTDI website, and it looks like they do have drivers for Vista x64, and linux. I love FTDI chips, they are so easy to use. It even has the oscillator built in so there are no external components.
Tototek has the advantage of more then one game, but I think USB makes mine more accessible. Modern computers don't have parallel ports (that work).
Right now im taking apart old sports games to steal their CIC and case. Bunnyboy made his own cases, and uses Kevtris's Ciclone. I don't know how many games I can find to take apart
I think you should consider DRAM instead of SRAM; SRAM at that density not only is way expensive but is IMO completely wasted on a SNES device.
(Unless you're talking about SRAM because you're thinking of replacing your cart's flash with SRAM, which wouldn't make any sense!)
Quote:
I think you should consider DRAM instead of SRAM; SRAM at that density not only is way expensive but is IMO completely wasted on a SNES device.
I doubt he wants the added expense / complexity of using an extended PCB and capturing the SNES' DRAM refresh signal, to refresh his own DRAM chips.
<= 4MB SRAM can't possibly be that expensive still.
Who needs the SNES' refresh signal? You can just base your timing off /ROMSEL and an oscillator like a copier. Some copiers don't even have hidden refresh, they rely on just /RAS from addressing.
BTW, 4MB of true SRAM (2x TSOP) is at least $30 and very hard to source... compare that to $4-5 for 8MB of flash (1x TSOP) for the same application. If RAM is needed without worrying about refresh, you'd be better off getting PSRAM (<$8) for 8MB if you can solder FBGA.
I second kyuusaku's suggestion of PSRAM (pseudo-static RAM). It's in the Nintendo DS, and it's in GBA copiers such as M3. It's a DRAM chip with a built-in controller that makes it look like SRAM to the surrounding circuit. But you might need level shifters to get any modern RAM to work with the 5.0 V bus of classic game consoles.
8MB of PSRAM would be quite nice. Then you could support memory mappings for games using large amounts of ROM, such as for that Star Ocean hacks that is 96mbits.
I'd never really heard anything about PSRAM before, but I did know about how DRAM is cheaper than SRAM but requires refreshing so it doesn't decay. PSRAM sounds very nice.
I have one of those GBA M3 Mini SD models, and they are very cool as they are the size of a GBA cartridge and no more.
I'd prefer a modern copier for the SNES. Something that would be hands down better than any existing flash cart or copier for the SNES.
I'm thinking of something like a Game Doctor SF7 with a CF slot instead of a floppy, a USB port instead of a parallel port, and a cart slot that can be used to dump ROMs, upload saves, and pass-through any SNES game or cart (e.g. Super Gameboy).
While your at the wish list, it should have a FPGA or something and by able to emulate every coprocessor there is.I mean while we are dreaming we might as well aim as high as we can. :p
I'd be happy with just a flash cart that loads off CF similar to the devices that exist for GBA. I don't really need to dump any SNES carts and if I did I already have a copier.
PSRAM looks like the ideal solution... but the ones I found are 1.8v and tiny BGA. no way. They had a 3.3v BGA one, but its 'obsolete'
SDRAM is no good, there is way too much latency. You have to send a bunch of commands and wait a lot of cycles.
So SRAM looks like the choice. The cart doesn't need a battery, so that frees up a lot of space! And the 4 bus buffer chips can be replaced by a larger CPLD
Emulating custom chips has very limited use... but adds something new, and lets you play the most interesting games. But it also looks really difficult
How about reverse engineering the SNES CIC? That is if its a standard chip, not a custom one like the tengen. Tracing out the entire circuit does not look like fun.
MottZilla wrote:
While your at the wish list, it should have a FPGA or something and by able to emulate every coprocessor there is.I mean while we are dreaming we might as well aim as high as we can. :p
If FPGA are in the picture, why not emulate the SNES along with the coprocessors?
cybertron wrote:
PSRAM looks like the ideal solution... but the ones I found are 1.8v and tiny BGA. no way. They had a 3.3v BGA one, but its 'obsolete'
SDRAM is no good, there is way too much latency. You have to send a bunch of commands and wait a lot of cycles.
So SRAM looks like the choice. The cart doesn't need a battery, so that frees up a lot of space! And the 4 bus buffer chips can be replaced by a larger CPLD
Emulating custom chips has very limited use... but adds something new, and lets you play the most interesting games. But it also looks really difficult
How about reverse engineering the SNES CIC? That is if its a standard chip, not a custom one like the tengen. Tracing out the entire circuit does not look like fun.
I was kidding about the custom chips.
If you can create a SNES cartridge that loads roms off CF or SD card, I wouldn't care if its SRAM or DRAM or PSRAM. So long as it's reasonably affordable and works well, I'd be quite happy.
I think real cartridges are the only source for lockout chips. It is possible to use another cartridge as a piggy back but thats rather nasty to do. It'd be better to just find some shitty sports game and sacrifice it to the gods.
MottZilla wrote:
It'd be better to just find some shitty sports game and sacrifice it to the gods.
Now that's a butchering I CAN agree with. We've got enough crappy old sports games rotting in pawn shops here to fill a warehouse or two.
Well this video game store in Toronto has a box of crappy sports game for $1 each, so I will pick up a whole pile for the initial run.
Sports games are great, most of them have Save RAM inside them, so they are perfect for homebrew. NFL Quarterback Club 96 is interesting, its an actual 4MB LOROM game! I didn't know that was possible.
I just pop the CIC chip off with a heat gun, it melts all the solder at once.
I am making 20 units of the flash cart. if more sell I can order a ton more boards from China
kyuusaku wrote:
If FPGA are in the picture, why not emulate the SNES along with the coprocessors?
That would have to wait for 2011, when key Super NES patents (presumably owned by Nintendo, Ricoh, and Sony) expire. Famiclones just became legal[1] throughout the developed world a couple years ago, when Nintendo's patents on the NES expired.
[1] Except when bundled with a pirate multicart.
Well in that case they might as well get their R&D done now so they'll be ready to produce in a few years.
If the console is implemented using reverse engineered documentation and isn't enclosed in a similar case, why do the patents have to expire?
So I went to the video game store, but they only had four $1 games left
One of them is Mario Paint. Any objections to taking this one apart?
On the back of the cart is a list of patents!
http://www.google.com/patents?id=81EWAA ... dq=4799635 (CIC chip for the NES)
http://www.google.com/patents?id=JMwDAA ... dq=4984193 (Memory Cartridge, again for the NES)
http://www.google.com/patents?id=6G43AA ... dq=4801489 (PCB layout to prevent interference. I think this is that bloody copper layer on the bottom of the SNES mobo! Makes it hard to access bottom traces)
http://www.google.com/patents?id=h8kpAA ... dq=5070479 (External memory with authentication processor. Looks like its still for the NES, but issued in 1991)
Pretty interesting
kyuusaku wrote:
If the console is implemented using reverse engineered documentation and isn't enclosed in a similar case, why do the patents have to expire?
Because the clean room method applies only to copyrights for reasons that apply to copyright law but not to patent law. A patent encumbers making a product embodying any of its claims within a country whether or not the product is derived (in the copyright sense) from the patent document or from an authorized product. The use of the blanket term "intellectual property" in mass media has
fooled the public into thinking that copyrights and patents are more similar than they are.
Hey cybertron.. nice to hear you are working on some snes dev hardware related stuff. I'll take the liberty of adding my 2 cents on this topic
as well:
Personally I would love to have some hardware that allows for ...
- A quick test cycles. No annoying plugging/unplugging of carts and
cables etc.
- Some sort of runtime interface that could be used for debugging
purposes. Ideally something that would make hardware level
debugging possible. Or maybe just something to exchange data
between PC and SNES without too much overhead on the SNES
side.
That'd be awesome :) Oh and pretty please linux support and
no parallel port connectivity :D But you already said you are
going to use USB.
Good luck on that stuff.. Looking forward to hear more
Thanks man!
My first design had a USB port built in, but that caused way too many design problems. Plus you need your computer right next to the TV!
Flashing is fast, about 2 mins MAX to reprogram the whole chip. Should be less then a minute for a smaller program.
Debugging is an interesting idea! If it had a built in USB port, I could have put that in
just to send messages back to the computer. An emulator would be great for a debug version tho
I plan on having a linux version of the flashing program, if the FTDI drivers are easy enough to install and use.
cybertron wrote:
My first design had a USB port built in, but that caused way too many design problems. Plus you need your computer right next to the TV!
That's not a problem for everyone. For a couple months, I was using a Vizio 32" HDTV as my PC's monitor, sometimes with the picture-in-picture set on side-by-side. Other users have TV tuner cards and can open NES video just as easily as any FCEU-ABCSOUP.
My computer desk is right next to my TV...
BMF54123 wrote:
My computer desk is right next to my TV... :P
same here