Quote:
Making a game system on an FPGA always sounds like a fun project, but just doing the video hardware would be extremly hard
Everything about FPGA design is a pain. And even once you get good at it, it does no real good: nobody else is going to go through all that trouble to build their own.
My idea would be something of a hybrid between a PC and an FPGA. Give you multiple processors (so you don't have to use multi-tasking to simulate parallelism) with a high enough clock to divide down to rough estimates of standard 90's era systems.
Have a really, really light API to help control the hardware (video, audio, input -- connection interface details, eg memory card reader, HDMI, S/PDIF, controller ports -- are handled for you), with a focus on minimal latency. Drive the video and audio on per-pixel/sample clock rates ... get a certain memory address to hold the value you want, and make sure it's ready in time. Input polled from the controllers would also be done in real time. With a real-time OS, and known cycle overhead per operation, that shouldn't be too hard. Ideally, it'd be like blargg's S-DSP core: concrete "do this on this cycle" steps, and there'd be no need for things like semaphores or locks.
Worst case, buffer it a tiny bit if needed. Just nothing like to up to ~75ms video, ~120ms audio we get on PCs now.
Essentially like an open console, but with lower-level timing control. As if you're writing DSP firmware / microcode.
You just give out the program, people load it into the system (that's the key part -- so that anyone can use it, not just EEs), and it can act just like anything it emulates.
Better still if it's in a standardized language, so that the work won't be lost when a new generation of hardware comes out.
Quote:
I contacted the guy thinking that he directly implemented the SNES hardware low-level style, but IIRC, he ported SNES9x to some CPU core running on the FPGA.
While the former is technically more impressive, I don't see much of a practical difference once you're emulating the hardware anyway. So long as the timing is the same, it'd be ideal to write in a language that's easier to understand.
Quote:
That might have been reasonable until the mid-2000s, when the Famicom/NES patents expired.
The only one I remember reading about was the (albeit very successful until he was sued) idiot selling NES-on-a-chip N64-knockoff controllers with ~30 copyrighted NES ROMs on-board. He got sued because of the games included.
It would be interesting to try selling such a device with only a memory stick slot, so users can load games themselves.