Ian Burgmyer
4 years ago
commit
3d8ec4d4ad
7 changed files with 416 additions and 0 deletions
@ -0,0 +1,33 @@ |
|||||||
|
AS = rgbasm
|
||||||
|
LD = rgblink
|
||||||
|
FIX = rgbfix -f hg
|
||||||
|
|
||||||
|
BIN_DIR = bin
|
||||||
|
OBJ_DIR = obj
|
||||||
|
|
||||||
|
MKDIR = mkdir
|
||||||
|
|
||||||
|
.PHONY: dirs |
||||||
|
|
||||||
|
all: dirs video |
||||||
|
|
||||||
|
clean: |
||||||
|
rm -r ${BIN_DIR}/ ${OBJ_DIR}/
|
||||||
|
|
||||||
|
dirs: |
||||||
|
${MKDIR} -p ${BIN_DIR}
|
||||||
|
${MKDIR} -p ${OBJ_DIR}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Video
|
||||||
|
#
|
||||||
|
video: videoDirs vblankInt.gb |
||||||
|
|
||||||
|
videoDirs: |
||||||
|
${MKDIR} -p ${BIN_DIR}/video
|
||||||
|
${MKDIR} -p ${OBJ_DIR}/video
|
||||||
|
|
||||||
|
vblankInt.gb: dirs |
||||||
|
${AS} -o ${OBJ_DIR}/video/vblankInt.o video/vblankInt.s
|
||||||
|
${LD} -l common.lnk -o ${BIN_DIR}/video/vblankInt.gb ${OBJ_DIR}/video/vblankInt.o
|
||||||
|
${FIX} ${BIN_DIR}/video/vblankInt.gb
|
@ -0,0 +1,10 @@ |
|||||||
|
{ |
||||||
|
"folders": |
||||||
|
[ |
||||||
|
{ |
||||||
|
"path": ".", |
||||||
|
"file_exclude_patterns": [ "*.sublime-*" ], |
||||||
|
"folder_exclude_patterns": [ "bin", "obj" ] |
||||||
|
} |
||||||
|
] |
||||||
|
} |
@ -0,0 +1,51 @@ |
|||||||
|
ROM0 |
||||||
|
org $0000 |
||||||
|
"rst00" |
||||||
|
|
||||||
|
org $0008 |
||||||
|
"rst08" |
||||||
|
|
||||||
|
org $0010 |
||||||
|
"rst10" |
||||||
|
|
||||||
|
org $0018 |
||||||
|
"rst18" |
||||||
|
|
||||||
|
org $0020 |
||||||
|
"rst20" |
||||||
|
|
||||||
|
org $0028 |
||||||
|
"rst28" |
||||||
|
|
||||||
|
org $0030 |
||||||
|
"rst30" |
||||||
|
|
||||||
|
org $0038 |
||||||
|
"rst38" |
||||||
|
|
||||||
|
org $0040 |
||||||
|
"intVblank" |
||||||
|
|
||||||
|
org $0048 |
||||||
|
"intLcdc" |
||||||
|
|
||||||
|
org $0050 |
||||||
|
"intTimer" |
||||||
|
|
||||||
|
org $0058 |
||||||
|
"intSerial" |
||||||
|
|
||||||
|
org $0060 |
||||||
|
"intJoypad" |
||||||
|
|
||||||
|
org $0068 |
||||||
|
"preHeader" |
||||||
|
|
||||||
|
org $0100 |
||||||
|
"headerJump" |
||||||
|
|
||||||
|
org $0104 |
||||||
|
"header" |
||||||
|
|
||||||
|
org $0150 |
||||||
|
"home" |
@ -0,0 +1,121 @@ |
|||||||
|
; |
||||||
|
; Overrides |
||||||
|
; |
||||||
|
OverrideRst00 SET 0 |
||||||
|
OverrideRst08 SET 0 |
||||||
|
OverrideRst10 SET 0 |
||||||
|
OverrideRst18 SET 0 |
||||||
|
OverrideRst20 SET 0 |
||||||
|
OverrideRst28 SET 0 |
||||||
|
OverrideRst30 SET 0 |
||||||
|
OverrideRst38 SET 0 |
||||||
|
|
||||||
|
OverrideIntVblank SET 0 |
||||||
|
OverrideIntLcdc SET 0 |
||||||
|
OverrideIntTimer SET 0 |
||||||
|
OverrideIntSerial SET 0 |
||||||
|
OverrideIntJoypad SET 0 |
||||||
|
|
||||||
|
OverrideHeaderJump SET 0 |
||||||
|
|
||||||
|
; |
||||||
|
; Memory Locations |
||||||
|
; |
||||||
|
HeaderEnd EQU $0150 |
||||||
|
|
||||||
|
; |
||||||
|
; CGB Flag |
||||||
|
; |
||||||
|
CgbUnsupported EQU $00 |
||||||
|
CgbCompatible EQU $80 |
||||||
|
CgbOnly EQU $C00 |
||||||
|
|
||||||
|
HeaderCgbFlag SET CgbUnsupported |
||||||
|
|
||||||
|
; |
||||||
|
; SGB Flag |
||||||
|
; |
||||||
|
SgbUnsupported EQU $00 |
||||||
|
SgbSupported EQU $03 |
||||||
|
|
||||||
|
HeaderSgbFlag SET SgbUnsupported |
||||||
|
|
||||||
|
; |
||||||
|
; Cartridge Type |
||||||
|
; |
||||||
|
CartRomOnly EQU $00 |
||||||
|
CartMbc1 EQU $01 |
||||||
|
CartMbc1Ram EQU $02 |
||||||
|
CartMbc1Battery EQU $03 |
||||||
|
CartMbc2 EQU $05 |
||||||
|
CartMbc2Battery EQU $06 |
||||||
|
CartRomRam EQU $08 |
||||||
|
CartRomBattery EQU $09 |
||||||
|
CartMmm01 EQU $0B |
||||||
|
CartMmm01Ram EQU $0C |
||||||
|
CartMmm01RamBattery EQU $0D |
||||||
|
CartMbc3TimerBattery EQU $0F |
||||||
|
CartMbc3TimerRamBattery EQU $10 |
||||||
|
CartMbc3 EQU $11 |
||||||
|
CartMbc3Ram EQU $12 |
||||||
|
CartMbc3RamBattery EQU $13 |
||||||
|
CartMbc4 EQU $15 |
||||||
|
CartMbc4Ram EQU $16 |
||||||
|
CartMbc4RamBattery EQU $17 |
||||||
|
CartMbc5 EQU $19 |
||||||
|
CartMbc5Ram EQU $1A |
||||||
|
CartMbc5RamBattery EQU $1B |
||||||
|
CartMbc5Rumble EQU $1C |
||||||
|
CartMbc5RumbleRam EQU $1D |
||||||
|
CartMbc5RumbleRamBattery EQU $1E |
||||||
|
CartPocketCamera EQU $FC |
||||||
|
CartBandaiTama5 EQU $FD |
||||||
|
CartHuc3 EQU $FE |
||||||
|
CartHuc1RamBattery EQU $ff |
||||||
|
|
||||||
|
HeaderCartType SET CartRomOnly |
||||||
|
|
||||||
|
; |
||||||
|
; ROM Size |
||||||
|
; |
||||||
|
Rom32K EQU $00 |
||||||
|
Rom64K EQU $01 |
||||||
|
Rom128K EQU $02 |
||||||
|
Rom256K EQU $03 |
||||||
|
Rom512K EQU $04 |
||||||
|
Rom1024K EQU $05 |
||||||
|
Rom2048K EQU $06 |
||||||
|
Rom4096K EQU $07 |
||||||
|
Rom1152K EQU $52 |
||||||
|
Rom1280K EQU $53 |
||||||
|
Rom1536K EQU $54 |
||||||
|
|
||||||
|
HeaderRomSize SET Rom32K |
||||||
|
|
||||||
|
; |
||||||
|
; RAM Size |
||||||
|
; |
||||||
|
RamNone EQU $00 |
||||||
|
Ram2K EQU $01 |
||||||
|
Ram8K EQU $02 |
||||||
|
Ram32K EQU $02 |
||||||
|
|
||||||
|
HeaderRamSize SET RamNone |
||||||
|
|
||||||
|
; |
||||||
|
; Destination Code |
||||||
|
; |
||||||
|
DestinationJapan EQU $00 |
||||||
|
DestinationInternational EQU $01 |
||||||
|
|
||||||
|
HeaderDestinationCode SET DestinationInternational |
||||||
|
|
||||||
|
; |
||||||
|
; Old Licensee Code |
||||||
|
; |
||||||
|
HeaderOldLicensee SET $33 |
||||||
|
|
||||||
|
; |
||||||
|
; Mask ROM Version |
||||||
|
; |
||||||
|
HeaderMaskRomVersion SET $00 |
@ -0,0 +1,166 @@ |
|||||||
|
; 0000-003F : RST Handlers |
||||||
|
IF OverrideRst00 == 0 |
||||||
|
SECTION "rst00", ROM0 |
||||||
|
ret |
||||||
|
REPT 7 |
||||||
|
nop |
||||||
|
ENDR |
||||||
|
ENDC |
||||||
|
|
||||||
|
IF OverrideRst08 == 0 |
||||||
|
SECTION "rst08", ROM0 |
||||||
|
ret |
||||||
|
REPT 7 |
||||||
|
nop |
||||||
|
ENDR |
||||||
|
ENDC |
||||||
|
|
||||||
|
IF OverrideRst10 == 0 |
||||||
|
SECTION "rst10", ROM0 |
||||||
|
ret |
||||||
|
REPT 7 |
||||||
|
nop |
||||||
|
ENDR |
||||||
|
ENDC |
||||||
|
|
||||||
|
IF OverrideRst18 == 0 |
||||||
|
SECTION "rst18", ROM0 |
||||||
|
ret |
||||||
|
REPT 7 |
||||||
|
nop |
||||||
|
ENDR |
||||||
|
ENDC |
||||||
|
|
||||||
|
IF OverrideRst20 == 0 |
||||||
|
SECTION "rst20", ROM0 |
||||||
|
ret |
||||||
|
REPT 7 |
||||||
|
nop |
||||||
|
ENDR |
||||||
|
ENDC |
||||||
|
|
||||||
|
IF OverrideRst28 == 0 |
||||||
|
SECTION "rst28", ROM0 |
||||||
|
ret |
||||||
|
REPT 7 |
||||||
|
nop |
||||||
|
ENDR |
||||||
|
ENDC |
||||||
|
|
||||||
|
IF OverrideRst30 == 0 |
||||||
|
SECTION "rst30", ROM0 |
||||||
|
ret |
||||||
|
REPT 7 |
||||||
|
nop |
||||||
|
ENDR |
||||||
|
ENDC |
||||||
|
|
||||||
|
IF OverrideRst38 == 0 |
||||||
|
SECTION "rst38", ROM0 |
||||||
|
ret |
||||||
|
REPT 7 |
||||||
|
nop |
||||||
|
ENDR |
||||||
|
ENDC |
||||||
|
|
||||||
|
; 0040-0067 : Interrupt Handlers |
||||||
|
IF OverrideIntVblank == 0 |
||||||
|
SECTION "intVblank", ROM0 |
||||||
|
reti |
||||||
|
REPT 7 |
||||||
|
nop |
||||||
|
ENDR |
||||||
|
ENDC |
||||||
|
|
||||||
|
IF OverrideIntLcdc == 0 |
||||||
|
SECTION "intLcdc", ROM0 |
||||||
|
reti |
||||||
|
REPT 7 |
||||||
|
nop |
||||||
|
ENDR |
||||||
|
ENDC |
||||||
|
|
||||||
|
IF OverrideIntTimer == 0 |
||||||
|
SECTION "intTimer", ROM0 |
||||||
|
reti |
||||||
|
REPT 7 |
||||||
|
nop |
||||||
|
ENDR |
||||||
|
ENDC |
||||||
|
|
||||||
|
IF OverrideIntSerial == 0 |
||||||
|
SECTION "intSerial", ROM0 |
||||||
|
reti |
||||||
|
REPT 7 |
||||||
|
nop |
||||||
|
ENDR |
||||||
|
ENDC |
||||||
|
|
||||||
|
IF OverrideIntJoypad == 0 |
||||||
|
SECTION "intJoypad", ROM0 |
||||||
|
reti |
||||||
|
REPT 7 |
||||||
|
nop |
||||||
|
ENDR |
||||||
|
ENDC |
||||||
|
|
||||||
|
; 0068-00FF : Undefined |
||||||
|
SECTION "preHeader", ROM0 |
||||||
|
|
||||||
|
; 0100-0103 : Jump Past Header |
||||||
|
IF OverrideHeaderJump == 0 |
||||||
|
SECTION "headerJump", ROM0 |
||||||
|
nop |
||||||
|
jp HeaderEnd |
||||||
|
ENDC |
||||||
|
|
||||||
|
; ---------------------- |
||||||
|
; 0104-014F : ROM Header |
||||||
|
; ---------------------- |
||||||
|
|
||||||
|
SECTION "header", ROM0 |
||||||
|
; 0104-0133 : Nintendo Logo |
||||||
|
DB $CE, $ED, $66, $66, $CC, $0D, $00, $0B, $03, $73, $00, $83, $00, $0C, $00, $0D |
||||||
|
DB $00, $08, $11, $1F, $88, $89, $00, $0E, $DC, $CC, $6E, $E6, $DD, $DD, $D9, $99 |
||||||
|
DB $BB, $BB, $67, $63, $6E, $0E, $EC, $CC, $DD, $DC, $99, $9F, $BB, $B9, $33, $3E |
||||||
|
|
||||||
|
; 0134-013E : Title |
||||||
|
STATIC_ASSERT STRLEN(HeaderTitle) <= 13, "Header title is too large!" ; 11 characters + 2 quotes |
||||||
|
DB HeaderTitle |
||||||
|
DS 11 - STRLEN(HeaderTitle) |
||||||
|
|
||||||
|
; 013F-0142 : Manufacturer Code |
||||||
|
DS 4 |
||||||
|
|
||||||
|
; 0143 : CGB Flag |
||||||
|
DB HeaderCgbFlag |
||||||
|
|
||||||
|
; 0144-0145 : New Licensee Code |
||||||
|
DB "HI" |
||||||
|
|
||||||
|
; 0146 : SGB Flag |
||||||
|
DB HeaderSgbFlag |
||||||
|
|
||||||
|
; 0147 : Cartridge Type |
||||||
|
DB HeaderCartType |
||||||
|
|
||||||
|
; 0148 : ROM Size |
||||||
|
DB HeaderRomSize |
||||||
|
|
||||||
|
; 0149 : RAM Size |
||||||
|
DB HeaderRamSize |
||||||
|
|
||||||
|
; 014A : Destination Code |
||||||
|
DB HeaderDestinationCode |
||||||
|
|
||||||
|
; 014B : Old Licensee Code |
||||||
|
DB HeaderOldLicensee |
||||||
|
|
||||||
|
; 014C : Mask ROM Version Number |
||||||
|
DB HeaderMaskRomVersion |
||||||
|
|
||||||
|
; 014D : Header Checksum |
||||||
|
DS 1 |
||||||
|
|
||||||
|
; 014E-014F : Global Checksum |
||||||
|
DS 2 |
@ -0,0 +1,32 @@ |
|||||||
|
HeaderTitle EQUS "\"BUILDTEST\"" |
||||||
|
|
||||||
|
include "common/defines.inc" |
||||||
|
|
||||||
|
OverrideIntVblank SET 1 |
||||||
|
include "common/header.inc" |
||||||
|
|
||||||
|
SECTION "intVblank", ROM0 |
||||||
|
ld a, [hl] |
||||||
|
xor a, $ff |
||||||
|
ld [hli], a |
||||||
|
reti |
||||||
|
|
||||||
|
SECTION "home", ROM0 |
||||||
|
ld a, %00011011 |
||||||
|
ld [$ff47], a |
||||||
|
|
||||||
|
ei |
||||||
|
ld a, %11100001 |
||||||
|
ld [$ffff], a |
||||||
|
|
||||||
|
ld a, 127 |
||||||
|
ld b, 0 |
||||||
|
reset: |
||||||
|
ld hl, $8010 |
||||||
|
ld d, 48 * 4 |
||||||
|
|
||||||
|
loop: |
||||||
|
halt |
||||||
|
dec d |
||||||
|
jr z, reset |
||||||
|
jr loop |
Loading…
Reference in new issue