Quote:
Thought about a MSU1-less version with HDMA audio streaming and just a big, fat ROM plus custom mapper, too.
FlashROM is dirt-cheap nowadays (
~$20 for an 8Gbit chip on digikey), so it's a possibility.
As long as you only use it for one data stream, that should be easy. You only need more expensive parallel NOR flash when you want to have two things hitting the storage at different areas simultaneously (audio track + data stream simultaneously.) [that, or you need a really fast chip and lots of buffering ahead.] The other design method is one ROM for data, one ROM for audio tracks. The latter with a TOC.
As for the audio, I was surprised to see you go with sound effects over the MSU1. It was really meant more to be the BGM track, with SPC700 sound effects ... but of course, you are free to use it however you like :D
If you want to implement it on hardware anyway, it's honestly not any harder than a custom bank mapper. The SNES has the left/right audio input pins right on the cart, which act exactly like an RCA input jack.
Although it would be great to have an MSU1 standalone design for just this sort of thing; I understand the appeal of a simpler design. If you want to prototype, I can help set up a custom chip under bsnes so you can get the code working in software first.
Simplest mass storage design: I would advise using a 74LS chip (or two?) to hold a 16-bit register value, map the write latches wherever (say, $?0??????:6000,6001). Then treat all accesses to $40:xxxx as $74LS:xxxx; by routing the 74LS to the upper address lines of your flash chip, and the lower lines directly to the Abus.
<offtopic, sorry>
Truth be told, I really wanted to allow >4GB of storage, and eight audio channels so that you could do BGM+sound effects, and completely ignore the SPC700 (aside from unmuting it at power-on.) Perhaps use it as a math coprocessor or something. But I knew that if I got too carried away, it'd never be implemented in hardware or other emulators.
I stopped at 4GB because that's a common limitation for most portable libc file access functions and for FAT32 and such (IIRC.) Made the 4GB block read-only so that you only had to buffer in one direction, and so any medium could be used. Stopped at one audio channel because each adds seek access overhead for non-parallel ROM; and >1 requires an audio mixer.
So I pretty much designed it to be 'stackable', instead. Idea is that in the future, you just use as many MSU1 'units' as you want. One at $2000-2007, one at $2008-200f, etc. Of course you'll probably never see that in hardware form; so it's
strongly advised to stick to one. I really owe a world of thanks to ikari. Had he not made the actual hardware implementation, this idea would have never taken off.
</offtopic>