For this project I've mentioned in the previous thread, I'm looking to make a 16-bit VDP for this project. I'm set on using a Lattice iCE40 FPGA if it proves able to handle the workload I need of it (the ones I'm looking at are in the $7-$10 range on Mouser where I will be ordering the bulk of parts for this project.) I'm not dead set on the iCE40, but it is the most appealing option for me at the moment as it meets the requirements in price, availability (on Mouser) and power I need for this project.
The current specifications I'm looking to achieve are as follows:
- 16-bit color or 15-bit color
- 320x240 resolution (QVGA)
- Possible NTSC output (connecting to a TV through Composite or S-Video)
- 60 frames per second to keep it on par with Game Boy framerate (though I'm not as attached to this requirement as the first three, will drop to 30 if I go with NTSC output as an option, CPU will still run at 60 FPS)
- Possibly some kind of SuperFX-esque 3D graphics, either on the VDP itself or an expansion module using a more powerful FPGA that will either enhance or bypass the onboard VDP if the one I use isn't powerful enough by itself
- Graphical capabilities are intended to be on par with 16-bit home consoles
I see three options on how to do this:
- Option A: Look into open source FPGA VDP with permissive licensing (likely a drop in replacement for a V9938 or similar) and learn enough VHDL to modify it to achieve intended specifications
- Option B: Learn how to code an FPGA from scratch (given that I don't really have much knowledge of VHDL, this will take a long time on my own)
- Option C: Pay someone to do one of the above (likely cannot afford this any time soon)
I was curious to hear from anyone familiar with open source FPGA VDP clones, or anyone generally knowledgeable in FPGA programming, to see if expanding an 8-bit VDP FPGA to 16-bit capability and changing its resolution and framerate is feasible or if the amount of changes needed to accomplish that was approaching the level of writing a new one from scratch. And, if so, if it requires a more powerful FPGA than an iCE40. My hope is that expanding an existing VDP drop in will made software development for the device easier due to the overlap with a familiar VDP.
If writing one from scratch becomes the plan, I intend to model its graphical management to be similar to that of game consoles of the 8-bit and 16-bit eras. I have a pretty good idea of how graphical data is stored and managed on a Game Boy so it would likely be more in line with that, but with more VRAM and colors available.
Or is such a project already in the works I missed in my own attempts to find one? If it is, point me to it and, if it looks usable for my own project, I will do what I can to support that project's development.