Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;Hello World by Seru-kun/LuigiBlood and Prof.9 (fix) for GBA.
- .gba
- .create hello.gba,0x08000000
- .org 0x08000000
- .area 0xC0 ;Header Area
- header:
- .arm
- b rom_start ;Start the ROM
- .incbin nintendo.bin
- .db "HELLO WORLD " ;Game Title
- .db "HOME" ;Game Code
- .db "01" ;Maker Code
- .db 0x96 ;Fixed Value
- .db 0x00 ;GBA Model
- .db 0x00 ;Normal Cart
- .fill 7 ;Reserved Area
- .db 1 ;Version: 0.1
- .db 0xFF ;Checksum, must be replaced
- .fill 2
- .endarea
- rom_start:
- .arm
- ldr r0,=rom_start2|1
- bx r0
- .pool
- rom_start2:
- .thumb
- ldr r0,=GFXData
- ldr r1,=0x06000000
- ldr r2,=TileMap-GFXData
- bl uploadDMA1
- b rom_start3
- .pool
- uploadDMA1:
- .thumb
- ;Inputs:
- ;r0=SourceAddr
- ;r1=DestAddr
- ;r2=Size (Bytes)
- push r3,r4,r14
- ldr r3,=0x040000BC
- str r0,[r3] ;Put r0 data to 0x040000BC
- str r1,[r3,0x4] ;Put r1 data to 0x040000C0
- strh r2,[r3,0x8] ;Put r2 data to 0x040000C4
- mov r4,0x80
- strb r4,[r3,0xB] ;Begin DMA Channel 1
- pop r3,r4,r15 ;Return
- .pool
- rom_start3:
- .thumb
- ;Set Palette
- ldr r0,=0x05000000
- ldr r1,=0xFFFF0000
- str r1,[r0] ;Put 0xFFFF0000 to address 0x05000000
- ;Set BG1 Map to 0x06000800
- ldr r3,=0x100
- ldr r4,=0x04000000
- strh r3,[r4,0x8] ;Put 0x0100 to address 0x04000008
- ;Set BG1 Tile Map
- ldr r0,=TileMap
- ldr r1,=0x06000800
- mov r2,22
- bl uploadDMA1
- strh r3,[r4] ;Remove Force Blank and activate BG1
- @@loop:
- b @@loop
- .pool
- .org 0x08001000
- GFXData:
- .incbin hello.bin
- TileMap:
- .dh 0x0001,0x0002,0x0003,0x0003,0x0004 ;HELLO
- .dh 0x0000 ;space
- .dh 0x0005,0x0004,0x0006,0x0003,0x0007 ;WORLD
- .close
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement