Chapter 0: Introductory FAQ
This is the JayStation2. I designed the CPU and GPU, and etched all the transistors with my own two hands. Except that I didn’t. This is the excellent Raspberry Pi 2 B+. Also shown: James Lee’s serial to USB cable he loaned me so I could do some proper kernel reloading/debugging
Disclaimer: I do not work for Sony. Despite the disturbing percentage of my shirts, jackets, and bookbags that are PlayStation dev-related, I have never worked for Sony. I do, however, have many friends that work at Sony, some of which I hope will call off the corporate lawyers. JayStation is in no way associated with Sony or PlayStation, and any stupid things I say represent only my own ineptitude and silliness.
Who are you?
Jaymin Kessler, a senior engine programmer and low level enthusiast on the Q-Games tech team. I am not an expert in any of the stuff I will be posting on. I’m just figuring it all out as I go along.
What is JayStation2?
A for-fun learning project where I try to make my own “console” by writing a real time game OS, GPU driver, SDK, and dev/debug/profiling tools for a Raspberry Pi 2B+ system.
Why document the process?
After some awkward searching, it seems no one out there is really doing/documenting the kind of stuff I want to do. Its been alot of trial and error*, and I thought collecting all the information I (sometimes painfully) picked up in one place might be of use to someone just starting out
Coming hot off the heels of the extremely** successful*** JayStation rollout****, I began thinking about what I wanted to do for my next project. I had it in the back of my mind that I wanted to go lower level, writing my own realtime game OS and GPU driver, but had no idea what hardware suited what I pictured the project becoming. That is until a coworker suggested Raspberry Pi 2, a quad core ARM Cortex A7 system that was too fun to pass by.
Why write an entire OS in ARM assembly?
In order to convince you of the technical merits and advantages of writing the entire JayStation2 OS in assembly, I have included the following comprehensive list of technical considerations that went into making this very important design decision
0) blah blah
1) blah blah blah blah
2) blah blah blah blah blah blah blah blah
3) BECAUSE ITS FUN
And the GPU driver?
Working on it. I have all the documentation and I am predicting a very tedious, difficult, and utterly thrilling ride.
What do I need to get started?
In the beginning all you need is a Raspberry Pi 2B+, MicroSD card and reader/writer, and a micro USB cable like the one the Orbis DualShock4 uses to power the system. Later on you’ll need a serial to USB adaptor for the UART and an HDMI cable.
Where dat source at?
Unfortunately, the technology I am developing is proprietary and I have multiple patents pending, but if you are willing to sign an NDA covering... PSYCH! Source link below
That is the public repo. Every few months I copy stable features over there from my private repo.
What are you planning for JayStation3?
I want to go even lower level, maybe even design my own GPU and ISA via FPGA. Remember, you always save the best architectures for 3 ;)
* mostly error. In fact, almost all error