mojo wrote:
DerTrueForce wrote:
Video generation the way he wants it(memory-mapped, VGA or HDMI output, probably with sprites as well) isn't going to be trivial, though it might not be too hard, given that VGA is fairly well-mapped territory. I do think that the best way for that is an FPGA, though, so he's on the right track with the Gameduino.
Yeah, unfortunately using an ARM may be difficult because none of them seem to have a 6800 compatible bus where they can act as a slave device. You could emulate it with interrupts but then timing for VGA output becomes non-deterministic, as in if you generate each line one line ahead you may find you don't have enough time left to render all sprites or something. I suppose you could over-spec it massively so that even with heavy bus I/O you can always draw X tiles and Y sprites per line.
Cheaper than an FPGA and it can handle all I/O including sound and tape, plus it's easy to bootload new firmware and best of all the development tools are all free and open source.
If you go "cpu bus" route then you're dealing with what's effectively shared RAM. You might as well stick (expensive) dual-port SRAM and be done with it.
Otherwise - you're making the ARM/FPGA into some sort of memory mapped register device? From what I've read on the PiTubeDirect project that's do-able, but only just at the BBC Micros 2Mhz speed and who wants a 2Mhz 6502 these days...
So if you don't want to directly memory map the video RAM, then you probably need something like a Gameduino FPGA approach - and if that can act as a memory mapped peripheral then you'll save a few clock cycles, or via an 8 or 16-bit bus like using a 6522 VIA with a strobe+ack type data path to de-couple the CPU bus from the graphics card.
The VS23S010D is an interesting approach though - although not directly addressable, you can effectively peek & poke pixels, however, it takes time - you need to send 5 bytes to it to set an 8-bit pixel (as far as I can tell), so if drawing a line from the 6502 it's going to be slower than drawing it into RAM - that's where an FPGA or ARM interface may have an advantage - a similar set of bytes, but that could command it to draw a whole line not just a point.
But everyone has their own preferences and ideas. My own is to lean towards a good retro software platform rather than a retro gaming platform, however we all know that games and bling graphics and sound do excite people...
-Gordon
_________________
--
Gordon Henderson.
See my
Ruby 6502 and 65816 SBC projects here:
https://projects.drogon.net/ruby/