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