diff options
author | Marcus Huderle <huderlem@gmail.com> | 2015-02-07 16:56:49 -0800 |
---|---|---|
committer | Marcus Huderle <huderlem@gmail.com> | 2015-02-07 16:56:49 -0800 |
commit | f8751ebc6db6d2d91ad157fd4c7daa5cdd9f936e (patch) | |
tree | 2016d9a1656e130ac2e306d6fec275ba9cb85adc | |
parent | aee754669c5323a1fbc55b5fa25206e319d3f220 (diff) |
First assembly dump. (Just the Start routine.)
-rwxr-xr-x | Makefile | 7 | ||||
-rwxr-xr-x | main.asm | 142 |
2 files changed, 143 insertions, 6 deletions
@@ -1,16 +1,13 @@ # Build Pokemon Pinball.
outputrom := pokepinball.gbc
-# Header options for rgbfix.
-header_opts = -jsvc -k 01 -l 0x33 -m 0x1e -p 0 -r 02 -t "POKEPINBALLVPHE"
-
# If your default python is 3, you may want to change this to python27.
PYTHON := python
# Link objects together to build a rom.
all: main.o wram.o
- rgblink -n pokepinball.sym -o $(outputrom) main.o wram.o
- rgbfix $($header_opts) pokepinball.gbc
+ rgblink -n pokepinball.sym -m pokepinball.map -o $(outputrom) main.o wram.o
+ rgbfix -jsvc -k 01 -l 0x33 -m 0x1e -p 0 -r 02 -t "POKEPINBALLVPHE" pokepinball.gbc
# Assemble source files into objects.
# Use rgbasm -h to use halts without nops.
@@ -2,7 +2,147 @@ INCLUDE "constants.asm" SECTION "Home", ROM0
-INCBIN "bin/0_3fff.bin" ; 0x0
+ INCBIN "bin/0_ff.bin"
+
+SECTION "Entry", ROM0 [$100]
+
+ nop
+ jp Start
+
+SECTION "Header", ROM0 [$104]
+
+ ; The header is generated by rgbfix.
+ ; The space here is allocated to prevent code from being overwritten.
+ ds $150 - $104
+
+SECTION "Main", ROM0
+
+Start: ; 0x150
+ ld [$fffe], a
+ ld sp, $fffe
+ di
+ xor a
+ ld [$ff0f], a
+ ld a, [$ff40]
+ bit 7, a
+ jr nz, .asm_163
+ set 7, a
+ ld [$ff40], a
+.asm_163
+ ld bc, $0002
+ call $0948
+.asm_169
+ ld a, [$ff44]
+ cp $91
+ jr c, .asm_169
+ ld a, $81
+ ld [$ff40], a
+ xor a
+ ld [$ff47], a
+ ld [$ff48], a
+ ld [$ff49], a
+ ld bc, $0002
+ call $0948
+.asm_180
+ ld a, [$ff44]
+ cp $91
+ jr c, .asm_180
+ xor a
+ ld [$ff40], a
+ ld hl, wc000
+ ld bc, $2000
+ call $0654
+ ld hl, $8000
+ ld bc, $1000
+ call $0654
+ ld a, $a
+ ld [$0000], a
+ ld a, $1
+ ld [$2000], a
+ ld a, $0
+ ld [$6000], a
+ ld a, $0
+ ld [$4000], a
+ ld a, $1
+ ld [$fff8], a
+ ld a, $1
+ ld [$6000], a
+ ld a, $0
+ ld [$4000], a
+ ld sp, $dfff
+ ld hl, $ff80
+ ld bc, $007e
+ call $0654
+ call $05f7
+ call $0916
+ xor a
+ ld [$d7fb], a
+ ld [$d7fc], a
+ ld [$d7fd], a
+ ld [$ffb0], a
+ ld [$ffb1], a
+ ld [$d8e1], a
+ ld [$d7fe], a
+ ld [$fffc], a
+ ld hl, $ff9e
+ xor a
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ld a, $8f
+ ld [hli], a
+ ld a, $a6
+ ld [hli], a
+ ld a, $0
+ ld [$d849], a
+ ld [$d84a], a
+ ld a, $f
+ call $052c
+ call $023b
+ ld a, [$fffe]
+ and a
+ jr nz, .asm_222
+ call $12f8
+ rl a
+ and $1
+ ld [$fffb], a
+ call $13a8
+ ld a, [$fffb]
+ and a
+ jr z, .asm_222
+ ld a, $1
+ ld [$d917], a
+.asm_222
+ ld a, $1
+ ld [$ffff], a
+ ei
+ ld a, $ff
+ ld [$d810], a
+ call $097a
+ xor a
+ ld [$daa3], a
+ ld a, $0
+ ld hl, $1ffc
+ call $0549
+ ld a, [$fffe]
+ cp $11
+ jr nz, .asm_248
+ ld a, $1
+ ld [$fffe], a
+ ld [$fffd], a
+ ret
+.asm_248
+ xor a
+ ld [$fffe], a
+ ld [$fffd], a
+ ret
+
+INCBIN "bin/24e_3fff.bin" ; 0x0
SECTION "bank1", ROMX, BANK[$1]
|