Difference between revisions of "ARM"

From SizeCoding
Jump to: navigation, search
(GBA Rom Header explanation.)
 
(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

To be added