Of course, it's nothing very special. In fact, you've all seen it before. It's the "sonic_test" demo from http://thdo-homebrew.narod.ru. BUT it was an important first step, and one that opens the doors to more interesting work.
So, my intention with this thread is to document my work and share technical information, as well as create a home here at 3DO Zone for technical homebrew discussion. I'll keep this first post updated with new information as I learn it.
The Basics
- The CPU is a 32-bit ARM60 running in big-endian mode
- 3 MB of RAM starting at 0x0
- 1 MB of Video RAM starting at address 0x200000, directly accessible by CPU
- The frame buffer for the video mode that initializes when FreeDO boots starts at address 0x2c0000
- The above video mode is 320*240 at 16 bits (2 bytes) per pixel, so it uses a total of 153600 bytes of memory
Some Homebrew Resources
- The FreeDO Homebrew forum. Check out some older threads for important hardware basics.
- 3DO Homebrew at http://thdo-homebrew.narod.ru/. He has several demos, including the sonic_test demo with source code.
- A variety of tools at http://madroms.free.fr/3do
- Download and install Cygwin to do development from Windows... Cygwin is a Linux emulation layer for Windows. Essentially, it lets you run a Linux environment on top of your Windows filesystem. I recommend you choose to include Nano in your install. It's a simple, easy to use text editor.
- Download and install GNUARM for your development environment (probably Cygwin)... This is a set of the GNU GCC tools compiled for ARM development. Install GNUARM with Big-Endian support and allow it to add itself to your path.
- Once GNUARM is installed, copy crt0.o and libc.a from C:\Program Files\GNUARM\arm-elf\lib\be to C:\Program Files\GNUARM\arm-elf\lib. If you don't do this, you'll get compilation errors!
- If you want to start digging deeper, get the 3DO SDK. Be sure to read the README, as it has info on what tools are included and how to read the HFV files on a Windows system.