Skip to main content

Jamestation: An Ambitious Project

Intro 

Of all the projects I've ever conceived, the Jamestation is the most complex. I've never put any work into it other than learning and ideation, but there's plenty I'd need to do to see it through, most of which is currently beyond me. It started from conversations with a co-worker a couple of years before COVID hit, and the name is a play on Playstation and my name.

Concept 

The idea behind the Jamestation is to make a game console based loosely on tech available when the original Playstation came out. 32-bit processor, small amount of RAM, that sort of thing. There'd need to be some sort of physical media to give it the flavour of that era of console, probably something NFC based, since who wants to have a spinning media like a CD, or a physical cartridge interface that'd cost quite a bit to implement?

I'd implement a lot of components, but I'd make use of off-the-shelf bits when appropriate. In an ideal world it could be productized and made for purchase, but that's way off in some pie-in-the-sky future.

Emulation

My first plan was to make an emulator for the hypothetical system, as that's usually the best place for a programmer to start with a hardware project. My original idea was to use an ARM emulation library since it seemed like the closest modern CPU architecture and is pretty common. That was a good starting point for thinking about the project.

I never ended up putting together an emulator, just did a bit of research. That's all I get to with some projects, but it helps inform future project ideas. However, I have written an emulator before, so the ideas aren't new to me.

FPGA

After creating an emulator, an FPGA, or Field-Programmable Gate Array, implementation would be the next logical step. It's easy to iterate on, and cheaper than committing to buying individual components. This is a path used by retro video game enthusiasts to recreate old game consoles in a way that preserves the timing considerations of the original hardware. Emulation can often leave the more hardcore enthusiast disappointed in performance or timing characteristics.

The ARM CPU cores that you can get for FPGAs cost money. ARM is a business, and their chief product is their intellectual property (IP) for CPUs and the like. I'm not likely to ever get around to this project, but if I do, I don't want to sink a bunch of money into an ARM license. No, I'll be going for the RISC-V architecture, which is a free CPU architecture that's on its way to becoming a serious player in the CPU market. I'd like use the Hazard3 core that's currently implemented on the RP2350 microcontroller from the Raspberry Pi Foundation.

That'd leave me with a few bits and pieces to implement myself in Verilog, namely the rasterizer and the matrix/vector arithmetic unit. These would be where the bulk of the work would occur, since they're the most custom bits of the whole machine.

The RAM, peripherals, and sound chip could probably just be made with off-the-shelf IP cores from OpenCores, or predefined IP cores from the FPGA manufacturer.

I'd need to up my FPGA game to much higher levels, hopefully helped by the nand2tetris implementation I plan on making. That was one of my intended goals for that project, to prepare me for doing bigger and better things.

Games

I have no idea if I could implement interesting enough samples for the Jamestation to get people interested in making games for it. I'd need the emulator, at least, to be able to attract people looking to develop for a machine like this. Since I'm unlikely to get that far, it's a bit moot.

Conclusion

Any part of it beyond an emulator is a project that's beyond my current skill set. I'll need to spend a lot of time learning Verilog and hardware implementations for matrices and rasterizers. Learning is something I enjoy, though, so maybe I'll set aside some time for improving my hardware knowledge.

Hoped you enjoyed this, and maybe it helped you with inspiration for your own projects! 

Comments

Popular posts from this blog

Losing a loved one, as an atheist

When I was around 11 or 12, I started to question the received wisdom that there was a deity. I came to the conclusion that all signs pointed to no. Do I outright, unequivocally and without reservation deny the existence of such an entity? No. However, I don’t see it as a likely scenario, and until I’m presented with hard evidence, I have enough reason to say that there isn’t. Some people take comfort in their religious beliefs, especially their belief in an afterlife. I have no interest in an afterlife, either for myself of my loved ones. In the past five years I’ve lost both my grandmother and mother, both of whom I loved dearly. No amount of belief in an afterlife would soothe my pain. I mourn at the fact that they are lost from my life, right here, right now. I imagine it’s the same even for those who believe that the dead pass on to somewhere else. You can’t escape the fact that their tangible presence is forever gone from your life. Unless you believe in ghosts, but that’s a ...

If I Grow Up

I’ve figured out what I want to be if I grow up: a writer. In fact, by writing this I’m living the dream, aren’t I? I guess things have been building up to this my whole life; I’ve been reading since I could, and writing even when I didn’t have to. Whatever my mood has been, as long as it wasn’t too severe, I’ve always written. When I was down, I wrote depressing poetry or prose. When I was up, I wrote whatever popped into my head. Now that I’m stable, I can take the time to write coherent, sensible articles. What are you going to write? It’s a good question, and I like it quite a bit. I’m going to write articles here, like the ones I’ve written so far. I’m going to write for HandmadeNews.org , with my first article there out just recently. I’ll always be writing emails. Sometimes I’ll write things down in my notebooks. If I feel like my writing is worthy of it, I might write a screenplay Josh Olson would enjoy reading. I wont bring it to him to read, though. If it’s good enough ...

SpaceRat - an exercise in game programming

Almost entirely throughout my life, I’ve had access to computers. In most of that time I’ve wanted to write computer games. Most of my attempts have been aborted early on, before even getting code written. Stacks and stacks of paper have been used to sketch characters and scenery. One day in 2001 I decided to put together a small Space Invaders-like game named SpaceRat . SpaceRat began as a set of graphics I had created for a friend’s clone of Space Invaders. I had drawn a “hero” space ship and some enemy ships. There were a number of enemy sprites that I did not use in SpaceRat, simple because they did not fit the look I was going for. Starting off with pre-made graphics gave me the push I needed and gave me the opportunity to jump straight into programming the game. I was still in university, but was then employed in a co-operative education placement for discreet, a division of AutoDesk . Health problems prevented me from actually working at the time, and so to judge my ability ...