|
|
(6 intermediate revisions by 3 users not shown) |
Line 5: |
Line 5: |
| The ARM Processor is a RISC based architecture and comes in many flavors. | | The ARM Processor is a RISC based architecture and comes in many flavors. |
| | | |
− | == Gameboy Advance ==
| + | *'''[[RISC OS on ARM based CPUs]]''' - Create your tiny intro on ARM hardware on RISC OS. |
− | The Gameboy Advance uses an ARM7TDMI Processor running at 16.7 MHz, 384kb of memory and a 240x160 pixel resolution.
| + | *'''[[Acorn Archimedes]]''' - Acorn Archimedes |
| + | *'''[[Gameboy Advance]]''' - Gameboy Advance Sizecoding Information |
| | | |
− | === Setting up === | + | == Generic ARM sinus table generator == |
− | Setting up your development platform for the Gameboy Advance:
| + | Here is a fairly generic ARM sinus table generator |
− | | + | <syntaxhighlight lang=""> |
− | * Assembler: -
| + | To be added |
− | * Emulator(s): -
| + | </syntaxhighlight> |
− | | |
− | === Video display ===
| |
− | The Gameboy Advance has many graphics modes to play in both 256 colors as well as 15-bit direct RGB access, as well as support for tilemaps and 128 hardware sprites with a max 64x64 resolution.
| |
− | | |
− | ==== Getting something on screen ====
| |
− | To be added soon.
| |
− | | |
− | | |
− | === Sound ===
| |
− | The Gameboy Advance has 4 channel sound + 2 x DMA for digital audio.
| |
− | | |
− | ==== Make some noise ====
| |
− | To be added soon. | |
− | | |
− | ==== ROM Header ===
| |
− | The Gameboy Advance ROM header is 192 bytes in size, where 156 bytes are reserved for the Nintendo logo. The first 4 bytes in the ROM header is a ARM-branch instruction to the actual code. The following 156 bytes are the mandatory Nintendo Logo. At offset 0x00A0 the header expects a game title in maximum 12 bytes. These 12 bytes can be reused by inserting instructions instead of a game title. Following the game title, the next 4 bytes are the game code, which can also be used for instructions. After the game code, 2 bytes for the maker code are reserved, which can be used, when already changed into THUMB-Mode. The next byte is fixed and has to be always 0x96. After the fixed byte, another 8 bytes can be used for instructions from offset 0x00B4. At offset 0x00BD a complementary check for the header has to be calculated. If the calculated checksum is different than the stored value, the ROM won't boot.
| |
− | | |
− | === Additional Resources ===
| |
− | * [https://problemkaputt.de/gbatek.htm GBATEK]
| |
− | * [https://www.pouet.net/prodlist.php?type%5B%5D=256b&platform%5B%5D=Gameboy+Advance Pouet: 256 byte productions for the GBA]
| |
Latest revision as of 13:12, 8 April 2024
Introduction
So here is a bit of help to get you started:
The ARM processor
The ARM Processor is a RISC based architecture and comes in many flavors.
Generic ARM sinus table generator
Here is a fairly generic ARM sinus table generator