65C816 Handheld Planning
Posted: Mon Feb 12, 2024 4:12 am
I need to preface this with the fact that I have not built any kind of microcomputer or similar device before and have been doing research in my spare time. I'm coming into this with a decent understanding of how computers and 8-bit to 16-bit game consoles work at the hardware level, though I've never designed one from the ground up like this. I have a habit of taking on projects far above what I currently know and figure out what I need to learn along the way to get myself to learn new skills. Right now, I'm doing early research on building a 16-bit handheld game system using a 65C816 as its CPU and would like to help with being pointed in the right direction for my research and double checking what I think I know.
I'm looking to build a 16-bit handheld that has similar capabilities to a Sega Genesis or Super Nintendo in terms of graphics. I intend to avoid using FPGA solutions where I can. Graphics and audio solutions are where I might have to use an FPGA. If I do, I intend to hold it to the limitations of a system of the 16-bit era.
My plan is to try to create this as an open source handheld that anyone can build and develop for. Should I give up on this project, I do plan to make all of my project files available in case someone more talented than myself wishes to pick up where I left off. I've currently got notes and partial schematics which I'll expand as I finalize my parts list.
My goals with this project are as follows:
I'm currently watching a video series of someone getting VGA output out of a 65816 using an Atmel ATF22LV10 PLD to see if his solution might be viable for my project, though it is a bit over my head so I'm trying to do the necessary reading to understand his solution. I wanted to see if anyone else had other video output solutions to suggest that would not be difficult to adapt to an LCD screen instead of VGA output.
I'm looking to build a 16-bit handheld that has similar capabilities to a Sega Genesis or Super Nintendo in terms of graphics. I intend to avoid using FPGA solutions where I can. Graphics and audio solutions are where I might have to use an FPGA. If I do, I intend to hold it to the limitations of a system of the 16-bit era.
My plan is to try to create this as an open source handheld that anyone can build and develop for. Should I give up on this project, I do plan to make all of my project files available in case someone more talented than myself wishes to pick up where I left off. I've currently got notes and partial schematics which I'll expand as I finalize my parts list.
My goals with this project are as follows:
- It must be made using currently in production components that can be purchased by hobbyists, preferably parts that have ECAD files for EAGLE available as making new footprints and symbols is tedious
The first prototype's parts must fit on a $100 order from a single parts supplier (currently comfortably within budget with $30 remaining to work with for audio and video solutions)
Easy to develop for, at least comparable to using GBDK (toolchain for making Game Boy games using C that I use)
- Uses a 65C816 running at 10 Mhz or higher (the one I'm looking at has a maximum supported clock of 14 Mhz)
Displays a 320x240 resolution with 15-bit color at 60 frames per second (the LCD screen I'm considering for the prototype supports QVGA and 18-bit color) <=== This is where I believe I will need the most help
Makes the full 24-bit address bus of the 65C816 available to software developers (currently using the de-multiplex setup suggested in the 65C816 datasheet, but it might not be suitable for higher CPU speeds)
Minimal use of FPGA chips, using other types programmable logic chips where possible. Any FPGA used will be the bare minimum to achieve the task of a chip it's a replacement for and will be limited to what 16-bit era consoles could do
If it fits in the budget, I'm considering a graphics co-processor that would allow SNES Super FX-esque 3D graphics (at least if I go the FPGA graphics route)
I'm currently watching a video series of someone getting VGA output out of a 65816 using an Atmel ATF22LV10 PLD to see if his solution might be viable for my project, though it is a bit over my head so I'm trying to do the necessary reading to understand his solution. I wanted to see if anyone else had other video output solutions to suggest that would not be difficult to adapt to an LCD screen instead of VGA output.