sark02 wrote:
I just noticed it has been a little over 6 months that Ardis first started posting on this topic.
I'd be curious to know if anything tangible has happened, or if the time has been spent with general noodling on the what-ifs...
I know it can be tough to take that first concrete step. It's all easy and open to possibilities while it's brainware.
Nothing tangible yet, trying to figure out what I need to learn before I can buy parts to design and build a breadboard prototype. Work stuck me with extra hours while we're short a few hands, hours that would have been put into researching getting a basic 65C816 boot ROM put together with an FPGA that can show a boot logo on an LCD and expanding from there. I am still kind of in the research phase. I was trying to get a parts list in order to order everything on Mouser in one go along with a few extra breadboards.
enso1 wrote:
As I said before, everyone has different needs, and I totally get what you are saying!
For me, running 6502 emulators on PCs running at several GHz with gigabytes of RAM makes me feel like a fool. And emulators don't make me feel like I'm runing on real hardware -- even with the advantages mentioned, I often perceive delays and flakiness that is just wrong. Even attaching a Raspberry Pi or a fast AVR chip to a 6502 feels wrong, in terms of power imbalance.
But FPGA 6502 cores feel really good to me -- like real hardware.
When building hardware, we may leave some underutilized - use two out of four quad NAND gates, say. With an FPGA, leaving 90% unused is likewise fine, if the 10% does the job.
As for the budget, maybe it's me, but I've never gone under hundreds of dollars (usually into thousands) with even simple projects. My lowest-cost Chochi boards went through 11 official revisions. I always need something -- a new microscope or oscilloscope or a signal generator, consumables, tools, ICs, etc. during the project. And I am not even trying to amortize the $10,000 laser cutter purchased early this century which I absolutely need for LQFPs and other non-BGA chips (BGAs are a lot easier to solder on, but need a hotplate which cost me a couple of hundred dollars to build, would be a lot more if I hadn't spent many thousands on my home shop!). So I never thought of my hardware hobby as inexpensive (unlike software, which is).
So if your goal is to make a hand-held computer using some LCD you already own and a discrete CPU and under $100, it's kind of like a puzzle or writing something in Brainfuck. OK. I would not even try, but if you find that kind of a challenge enjoyable, by all means enjoy it. If your goal is to make a hand-held 65x02 device for under $100, you can definitely do it with a nano board and an LCD that plugs right in for under $50, tomorrow. (Edit: well, to get it working would take a bit of verilog/VHDL engineering!)
But again, to each his or her own!
P.S. If you tried to form a startup and raise money for a project like this, and hire a couple of engineers and a marketing professional, I'd shoot for a budget of at least a few million, which would probably be not nearly enough! We live in a crazy world, insanely expensive and amazingly affordable at the same time.
VHDL/Verilog were things I was planning to learn as part of the journey to making this system since it's looking like running graphics on a second 65C816 isn't going to happen unless I can manage clock speeds that would likely fry it without external cooling. I will probably ask for help from people more knowledgeable to help get this done right along the way, though it's going to be more "can someone double check my work?" than "how do I do this?" type questions, things I've tried to do myself first but can't get working or not well enough.
I don't have the resources to hire engineers or marketers and I will not turn to crowdfunding until I have at least a working prototype and am looking to produce them at scale. If anything, I'd be setting aside my own money to pay a few hobbyists for their time to help me program the FPGA display chip, boot ROM and development tools. I just want to have a semi-final hardware plan in place. I can do PCB design and even have a 65C816 with a de-multiplexer setup for the upper address pins in EAGLE right now (see attached, also to help me make sure all the parts I'm throwing in my Mouser project list actually fit in the size I want this to be,) but most of that prior experience is just designing or modifying flash cartridges for existing game systems.
sark02 wrote:
Those Nano boards look very interesting. Insanely low priced for an FPGA board with an HDMI port. I might have to pick one up and play.
As for the "cheating" aspect of using an FPGA: I think it's fine to use an FPGA to act as an era-appropriate logic chip. Computer builders of the late 70s through to the 90s built sound/video/logic custom chips for their Z80, 6502, 68k, ARM and other systems. If you stick to using a real 65C816 as the CPU, and use the FPGA to build an era-appropriate video design*, as you might have done as a hardware engineer in Commodore, or Atari, or Apple at the time, then I think you'd be keeping within the spirit of what designers of the era did.
An FPGA is just a resource. If your design uses only 10% of what the FPGA can do, but it's the lowest-cost FPGA you can find, then it's still a good choice. If you're new to FPGAs and logic design, then I can tell you (as a software guy) that FPGAs are immense fun to learn about.
Wish you the best of luck with the project.
[*] I consider an "era-appropriate video design" to be a design that isn't out of line with home computer graphics chips at the time. I'd put the Atari ANTIC/GTIA at the low end, and Amiga Agnus/Denise at the high end; thinking about the trade-offs and configuration options for resolution, color depth, hardware scrolling, character map, bit map, and sprites. I see some designs that pair a 6502 or Z80 with ridiculously over-powered graphics...
If you're looking more towards Nintendo graphics, especially stepping towards the Gameboy Advance, with shearing-type pseudo-3D, then that took a good amount of custom logic to achieve, and for game programming most of it was done in 'C' which was a good fit for the ARM core. To do this as a novice in FPGA design is quite a challenge.
It's all doable, of course.
Out of curiosity, is this purely a solo fun project, or are you planning to commercialize it, e.g. via a Kickstarter?
That was the conditions I was setting myself for using an FPGA for graphics. I may even experiment with different FPGAs if I find the one I'm currently looking at is overkill. I figured a $7 Lattice FPGA was a good starting point. I know what I'm aiming for in terms of graphics capabilities, just not how to get there yet.
I don't really have plans to go as far as a Kickstarter or any kind of crowdfunding platform or starting a business off these as I don't think there's that big of a market for a new 16-bit game system, but I haven't written them off. Just not optimistic enough to see a need for those. This is just a hobby to me. If it is one that breaks even or helps pay for itself just a little, I'll call that a win. If I get as far as a playable prototype and there's serious interest, I might look into making more or publishing resources for people to build their own. The goal was to keep this along the lines of a 16-bit system. Graphics/audio comparable to an SNES or Sega Genesis, but in a handheld form factor.
I guess the better way to put this is that I don't really have an end goal, per se, more of a "see how far this goes" approach with multiple jump off points depending on a combination of my own motivation and demand for such a product:
First stage is the "I give up" point where I decide this project isn't possible with my time/resources or just won't become what I want it to be. Should it reach that point, I intend to make all notes/files/designs related to it available in case someone else wants to take over where I left off (probably under an open source license.) This would be me hoping that I put in enough work to inspire someone more talented to take a swing at it.
Second stage is a working prototype (breadboard and eventually its own PCB) that I can package into a 3D printed shell and show off and publish design files for (again, open source.) Likely to remain a small hobbyist thing since I don't see much demand for a pseudo-retro game console. Might sell kits with all the parts people need to assemble one on a web store.
Third is if that working prototype shows a lot of demand, I might look into getting the design refined for manufacturing and see about a limited run through a crowdfunding platform as pre-orders. Maybe distribute a few with homemade games to local used game stores, maybe a few convention dealers.
Fourth is if this thing somehow catches any large scale appeal and getting a more serious production run made.
plasmo wrote:
I would start off simple and get a feel of the hardware/software challenges. Pc boards are so cheap and basic hardware is cheap that iterative approach can be fun yet cost effective. In my exploration of 6502 world, the most costly component is W65C02. Everything else is cheap by comparison. I’m doing VGA graphic with cheap CPLD, so FPGA seems overkill. Anyway, the sort of high resolution color graphic FPGA can handle seems out of balance with what 6502 can reasonably manipulate even at 25Mhz. Balanced designs based on 6502/65816 are necessarily cheap. $100 seems very reasonable goal.
Bill
I have been considering trying to break this down into simpler stages or smaller side projects to see what I can/can't do on my own and help learn along the way. I might even see if I can find some open source 65C816 computer designs or kits to mess around with to get a better feel before I order parts for my own system. I am jumping into this with very little knowledge outside of how game consoles manage their memory and an understanding of how computer components work and C programming knowledge. I will likely see if I can make Small Device C Compiler or WDC's own tools to work with me to get 65XX binaries for this so I don't have to learn assembly (I struggling with shorthand and abbreviations and assembly is nothing but shorthand, so I struggle to even read it.)
The $100 parts budget means that, if I get far enough that I have something to sell, I might be able to save money on bulk orders on parts and sell the system as a DIY kit for $100-$150 (components, PCB, shell, etc.), though I was hoping to sell a completed system would be closer to the latter price of $150 (even if that's very optimistic.) I want to get the barrier for entry on these as low as possible both to play them and develop for them. I may even go down to a 2.8" LCD (I wanted 3.2", but the manufacturer I was looking at doesn't offer that size) to get the price down further. Theoretically, the LCDs I'm looking at are all the same at the controller side of the ribbon cable, so making shells for each size of screen is possible and making cheaper kits for smaller LCDs available.