diff options
author | dannye <33dannye@gmail.com> | 2020-12-13 14:27:45 -0600 |
---|---|---|
committer | dannye <33dannye@gmail.com> | 2020-12-13 14:28:35 -0600 |
commit | b10768d7539d01df09cdbd2ec66a82406c382e7c (patch) | |
tree | d1d31b0733bd2d8bc6887a0101e10b88f6322d64 /src | |
parent | d8f98d97bcd41f710d51925470dc799a6051f022 (diff) |
Use rgbgfx instead of gfx.py
and use pokered's Makefile structure
Diffstat (limited to 'src')
-rw-r--r-- | src/audio/music1.asm | 116 | ||||
-rw-r--r-- | src/audio/music2.asm | 116 | ||||
-rw-r--r-- | src/audio/sfx.asm | 18 | ||||
-rw-r--r-- | src/engine/bank04.asm | 4 | ||||
-rw-r--r-- | src/engine/bank1c.asm | 6 | ||||
-rw-r--r-- | src/engine/home.asm | 244 | ||||
-rw-r--r-- | src/gfx/cards/grassenergy.8x6.png | bin | 542 -> 593 bytes | |||
-rw-r--r-- | src/gfx/duel/cgb_symbols.t7.png | bin | 2960 -> 1270 bytes | |||
-rw-r--r-- | src/gfx/duel/dmg_sgb_symbols.t7.png | bin | 3107 -> 1374 bytes | |||
-rw-r--r-- | src/gfx/duel/other.t7.png | bin | 1588 -> 820 bytes | |||
-rw-r--r-- | src/gfx/fonts/full_width/4.t3.png | bin | 2279 -> 1153 bytes | |||
-rw-r--r-- | src/gfx/fonts/symbols.png | bin | 1398 -> 726 bytes | |||
-rw-r--r-- | src/layout.link | 180 | ||||
-rw-r--r-- | src/rgbdscheck.asm | 12 |
14 files changed, 444 insertions, 252 deletions
diff --git a/src/audio/music1.asm b/src/audio/music1.asm index a3a6e9e..03c55b9 100644 --- a/src/audio/music1.asm +++ b/src/audio/music1.asm @@ -106,13 +106,13 @@ Func_f406f: ; f406f (3d:406f) Music1_Init: ; f407d (3d:407d) xor a - ld [rNR52], a + ldh [rNR52], a ld a, $80 - ld [rNR52], a + ldh [rNR52], a ld a, $77 - ld [rNR50], a + ldh [rNR50], a ld a, $ff - ld [rNR51], a + ldh [rNR51], a ld a, $3d ld [wCurSongBank], a ld a, $80 @@ -216,34 +216,34 @@ Music1_StopAllChannels: ; f414b (3d:414b) bit 0, d jr nz, .stop_channel_2 ld a, $8 - ld [rNR12], a + ldh [rNR12], a swap a - ld [rNR14], a + ldh [rNR14], a .stop_channel_2 xor a ld [wMusicIsPlaying + 1], a bit 1, d jr nz, .stop_channel_4 ld a, $8 - ld [rNR22], a + ldh [rNR22], a swap a - ld [rNR24], a + ldh [rNR24], a .stop_channel_4 xor a ld [wMusicIsPlaying + 3], a bit 3, d jr nz, .stop_channel_3 ld a, $8 - ld [rNR42], a + ldh [rNR42], a swap a - ld [rNR44], a + ldh [rNR44], a .stop_channel_3 xor a ld [wMusicIsPlaying + 2], a bit 2, d jr nz, .done ld a, $0 - ld [rNR32], a + ldh [rNR32], a .done ret @@ -429,9 +429,9 @@ Music1_UpdateChannel1: ; f42a5 (3d:42a5) bit 0, a jr nz, .asm_f4309 ld a, $8 - ld [rNR12], a + ldh [rNR12], a swap a - ld [rNR14], a + ldh [rNR14], a .asm_f4309 ret @@ -482,9 +482,9 @@ Music1_UpdateChannel2: ; f430a (3d:430a) bit 1, a jr nz, .asm_f436e ld a, $8 - ld [rNR22], a + ldh [rNR22], a swap a - ld [rNR24], a + ldh [rNR24], a .asm_f436e ret @@ -506,7 +506,7 @@ Music1_UpdateChannel3: ; f436f (3d:436f) cp $1 jr z, .asm_f4398 ld a, [wMusicE9 + 2] - ld [rNR32], a + ldh [rNR32], a .asm_f4398 ld a, [wddbb + 2] dec a @@ -531,9 +531,9 @@ Music1_UpdateChannel3: ; f436f (3d:436f) bit 2, a jr nz, .asm_f43cd ld a, $0 - ld [rNR32], a + ldh [rNR32], a ld a, $80 - ld [rNR34], a + ldh [rNR34], a .asm_f43cd ret @@ -569,9 +569,9 @@ Music1_UpdateChannel4: ; f43ce (3d:43ce) xor a ld [wddef], a ld a, $8 - ld [rNR42], a + ldh [rNR42], a swap a - ld [rNR44], a + ldh [rNR44], a .asm_f4413 ret @@ -1167,19 +1167,19 @@ Func_f4714: ; f4714 (3d:4714) cp $80 jr z, .asm_f4733 ld a, [wMusicVolume] - ld [rNR12], a + ldh [rNR12], a ld d, $80 .asm_f4733 ld [hl], $2 ld a, $8 - ld [rNR10], a + ldh [rNR10], a ld a, [wMusicDuty1] - ld [rNR11], a + ldh [rNR11], a ld a, [wMusicCh1CurPitch] - ld [rNR13], a + ldh [rNR13], a ld a, [wMusicCh1CurOctave] or d - ld [rNR14], a + ldh [rNR14], a .asm_f4749 ret .asm_f474a @@ -1206,17 +1206,17 @@ Func_f475a: ; f475a (3d:475a) cp $80 jr z, .asm_f4779 ld a, [wMusicVolume + 1] - ld [rNR22], a + ldh [rNR22], a ld d, $80 .asm_f4779 ld [hl], $2 ld a, [wMusicDuty2] - ld [rNR21], a + ldh [rNR21], a ld a, [wMusicCh2CurPitch] - ld [rNR23], a + ldh [rNR23], a ld a, [wMusicCh2CurOctave] or d - ld [rNR24], a + ldh [rNR24], a .asm_f478b ret .asm_f478c @@ -1239,7 +1239,7 @@ Func_f479c: ; f479c (3d:479c) or a jr z, .no_wave_change xor a - ld [rNR30], a + ldh [rNR30], a call Music1_LoadWaveInstrument ld d, $80 .no_wave_change @@ -1251,28 +1251,28 @@ Func_f479c: ; f479c (3d:479c) cp $80 jr z, .asm_f47cc ld a, [wMusicVolume + 2] - ld [rNR32], a + ldh [rNR32], a xor a - ld [rNR30], a + ldh [rNR30], a ld d, $80 .asm_f47cc ld [hl], $2 xor a - ld [rNR31], a + ldh [rNR31], a ld a, [wMusicCh3CurPitch] - ld [rNR33], a + ldh [rNR33], a ld a, $80 - ld [rNR30], a + ldh [rNR30], a ld a, [wMusicCh3CurOctave] or d - ld [rNR34], a + ldh [rNR34], a .asm_f47e0 ret .asm_f47e1 ld hl, wMusicTie ld [hl], $0 xor a - ld [rNR30], a + ldh [rNR30], a ret Music1_LoadWaveInstrument: ; f479c (3d:47ea) @@ -1349,7 +1349,7 @@ Func_f4839: ; f4839 (3d:4839) jr nz, .asm_f4853 jr asm_f482a .asm_f4853 - ld [rNR43], a + ldh [rNR43], a inc de ld a, d ld [hld], a @@ -1368,7 +1368,7 @@ Func_f485a: ; f485a (3d:485a) Func_f4866: ; f4866 (3d:4866) ld a, [wMusicPanning] - ld [rNR50], a + ldh [rNR50], a ld a, [wdd8c] or a ld hl, wMusicDC @@ -1397,7 +1397,7 @@ Func_f4866: ; f4866 (3d:4866) swap e or e and d - ld [rNR51], a + ldh [rNR51], a ret Music1_UpdateVibrato: ; f4898 (3d:4898) @@ -1495,13 +1495,13 @@ Func_f490b: ; f490b (3d:490b) bit 0, a jr nz, .done ld a, e - ld [rNR13], a - ld a, [rNR11] + ldh [rNR13], a + ldh a, [rNR11] and $c0 - ld [rNR11], a + ldh [rNR11], a ld a, d and $3f - ld [rNR14], a + ldh [rNR14], a ret .not_channel_1 cp $1 @@ -1513,12 +1513,12 @@ Func_f490b: ; f490b (3d:490b) bit 1, a jr nz, .done ld a, e - ld [rNR23], a - ld a, [rNR21] + ldh [rNR23], a + ldh a, [rNR21] and $c0 - ld [rNR21], a + ldh [rNR21], a ld a, d - ld [rNR24], a + ldh [rNR24], a ret .not_channel_2 cp $2 @@ -1530,11 +1530,11 @@ Func_f490b: ; f490b (3d:490b) bit 2, a jr nz, .done ld a, e - ld [rNR33], a + ldh [rNR33], a xor a - ld [rNR31], a + ldh [rNR31], a ld a, d - ld [rNR34], a + ldh [rNR34], a .done ret @@ -1567,28 +1567,28 @@ Func_f4980: ; f4980 (3d:4980) bit 0, d jr nz, .asm_f4990 ld a, $8 - ld [rNR12], a + ldh [rNR12], a swap a - ld [rNR14], a + ldh [rNR14], a .asm_f4990 bit 1, d jr nz, .asm_f499c swap a - ld [rNR22], a + ldh [rNR22], a swap a - ld [rNR24], a + ldh [rNR24], a .asm_f499c bit 3, d jr nz, .asm_f49a8 swap a - ld [rNR42], a + ldh [rNR42], a swap a - ld [rNR44], a + ldh [rNR44], a .asm_f49a8 bit 2, d jr nz, .asm_f49b0 ld a, $0 - ld [rNR32], a + ldh [rNR32], a .asm_f49b0 ret diff --git a/src/audio/music2.asm b/src/audio/music2.asm index e13389e..4a8178e 100644 --- a/src/audio/music2.asm +++ b/src/audio/music2.asm @@ -106,13 +106,13 @@ Func_f806f: ; f806f (3e:406f) Music2_Init: ; f807d (3e:407d) xor a - ld [rNR52], a + ldh [rNR52], a ld a, $80 - ld [rNR52], a + ldh [rNR52], a ld a, $77 - ld [rNR50], a + ldh [rNR50], a ld a, $ff - ld [rNR51], a + ldh [rNR51], a ld a, $3d ld [wCurSongBank], a ld a, $80 @@ -216,34 +216,34 @@ Music2_StopAllChannels: ; f814b (3e:414b) bit 0, d jr nz, .stop_channel_2 ld a, $8 - ld [rNR12], a + ldh [rNR12], a swap a - ld [rNR14], a + ldh [rNR14], a .stop_channel_2 xor a ld [wMusicIsPlaying + 1], a bit 1, d jr nz, .stop_channel_4 ld a, $8 - ld [rNR22], a + ldh [rNR22], a swap a - ld [rNR24], a + ldh [rNR24], a .stop_channel_4 xor a ld [wMusicIsPlaying + 3], a bit 3, d jr nz, .stop_channel_3 ld a, $8 - ld [rNR42], a + ldh [rNR42], a swap a - ld [rNR44], a + ldh [rNR44], a .stop_channel_3 xor a ld [wMusicIsPlaying + 2], a bit 2, d jr nz, .done ld a, $0 - ld [rNR32], a + ldh [rNR32], a .done ret @@ -429,9 +429,9 @@ Music2_UpdateChannel1: ; f82a5 (3e:42a5) bit 0, a jr nz, .asm_f8309 ld a, $8 - ld [rNR12], a + ldh [rNR12], a swap a - ld [rNR14], a + ldh [rNR14], a .asm_f8309 ret @@ -482,9 +482,9 @@ Music2_UpdateChannel2: ; f830a (3e:430a) bit 1, a jr nz, .asm_f836e ld a, $8 - ld [rNR22], a + ldh [rNR22], a swap a - ld [rNR24], a + ldh [rNR24], a .asm_f836e ret @@ -506,7 +506,7 @@ Music2_UpdateChannel3: ; f836f (3e:436f) cp $1 jr z, .asm_f8398 ld a, [wMusicE9 + 2] - ld [rNR32], a + ldh [rNR32], a .asm_f8398 ld a, [wddbb + 2] dec a @@ -531,9 +531,9 @@ Music2_UpdateChannel3: ; f836f (3e:436f) bit 2, a jr nz, .asm_f83cd ld a, $0 - ld [rNR32], a + ldh [rNR32], a ld a, $80 - ld [rNR34], a + ldh [rNR34], a .asm_f83cd ret @@ -569,9 +569,9 @@ Music2_UpdateChannel4: ; f83ce (3e:43ce) xor a ld [wddef], a ld a, $8 - ld [rNR42], a + ldh [rNR42], a swap a - ld [rNR44], a + ldh [rNR44], a .asm_f8413 ret @@ -1167,19 +1167,19 @@ Func_f8714: ; f8714 (3e:4714) cp $80 jr z, .asm_f8733 ld a, [wMusicVolume] - ld [rNR12], a + ldh [rNR12], a ld d, $80 .asm_f8733 ld [hl], $2 ld a, $8 - ld [rNR10], a + ldh [rNR10], a ld a, [wMusicDuty1] - ld [rNR11], a + ldh [rNR11], a ld a, [wMusicCh1CurPitch] - ld [rNR13], a + ldh [rNR13], a ld a, [wMusicCh1CurOctave] or d - ld [rNR14], a + ldh [rNR14], a .asm_f8749 ret .asm_f874a @@ -1206,17 +1206,17 @@ Func_f875a: ; f875a (3e:475a) cp $80 jr z, .asm_f8779 ld a, [wMusicVolume + 1] - ld [rNR22], a + ldh [rNR22], a ld d, $80 .asm_f8779 ld [hl], $2 ld a, [wMusicDuty2] - ld [rNR21], a + ldh [rNR21], a ld a, [wMusicCh2CurPitch] - ld [rNR23], a + ldh [rNR23], a ld a, [wMusicCh2CurOctave] or d - ld [rNR24], a + ldh [rNR24], a .asm_f878b ret .asm_f878c @@ -1239,7 +1239,7 @@ Func_f879c: ; f879c (3e:479c) or a jr z, .no_wave_change xor a - ld [rNR30], a + ldh [rNR30], a call Music2_LoadWaveInstrument ld d, $80 .no_wave_change @@ -1251,28 +1251,28 @@ Func_f879c: ; f879c (3e:479c) cp $80 jr z, .asm_f87cc ld a, [wMusicVolume + 2] - ld [rNR32], a + ldh [rNR32], a xor a - ld [rNR30], a + ldh [rNR30], a ld d, $80 .asm_f87cc ld [hl], $2 xor a - ld [rNR31], a + ldh [rNR31], a ld a, [wMusicCh3CurPitch] - ld [rNR33], a + ldh [rNR33], a ld a, $80 - ld [rNR30], a + ldh [rNR30], a ld a, [wMusicCh3CurOctave] or d - ld [rNR34], a + ldh [rNR34], a .asm_f87e0 ret .asm_f87e1 ld hl, wMusicTie ld [hl], $0 xor a - ld [rNR30], a + ldh [rNR30], a ret Music2_LoadWaveInstrument: ; f879c (3e:47ea) @@ -1349,7 +1349,7 @@ Func_f8839: ; f8839 (3e:4839) jr nz, .asm_f8853 jr asm_f882a .asm_f8853 - ld [rNR43], a + ldh [rNR43], a inc de ld a, d ld [hld], a @@ -1368,7 +1368,7 @@ Func_f885a: ; f885a (3e:485a) Func_f8866: ; f8866 (3e:4866) ld a, [wMusicPanning] - ld [rNR50], a + ldh [rNR50], a ld a, [wdd8c] or a ld hl, wMusicDC @@ -1397,7 +1397,7 @@ Func_f8866: ; f8866 (3e:4866) swap e or e and d - ld [rNR51], a + ldh [rNR51], a ret Func_f8898: ; f8898 (3e:4898) @@ -1495,13 +1495,13 @@ Func_f890b: ; f890b (3e:490b) bit 0, a jr nz, .done ld a, e - ld [rNR13], a - ld a, [rNR11] + ldh [rNR13], a + ldh a, [rNR11] and $c0 - ld [rNR11], a + ldh [rNR11], a ld a, d and $3f - ld [rNR14], a + ldh [rNR14], a ret .not_channel_1 cp $1 @@ -1513,12 +1513,12 @@ Func_f890b: ; f890b (3e:490b) bit 1, a jr nz, .done ld a, e - ld [rNR23], a - ld a, [rNR21] + ldh [rNR23], a + ldh a, [rNR21] and $c0 - ld [rNR21], a + ldh [rNR21], a ld a, d - ld [rNR24], a + ldh [rNR24], a ret .not_channel_2 cp $2 @@ -1530,11 +1530,11 @@ Func_f890b: ; f890b (3e:490b) bit 2, a jr nz, .done ld a, e - ld [rNR33], a + ldh [rNR33], a xor a - ld [rNR31], a + ldh [rNR31], a ld a, d - ld [rNR34], a + ldh [rNR34], a .done ret @@ -1567,28 +1567,28 @@ Func_f8980: ; f8980 (3e:4980) bit 0, d jr nz, .asm_f8990 ld a, $8 - ld [rNR12], a + ldh [rNR12], a swap a - ld [rNR14], a + ldh [rNR14], a .asm_f8990 bit 1, d jr nz, .asm_f899c swap a - ld [rNR22], a + ldh [rNR22], a swap a - ld [rNR24], a + ldh [rNR24], a .asm_f899c bit 3, d jr nz, .asm_f89a8 swap a - ld [rNR42], a + ldh [rNR42], a swap a - ld [rNR44], a + ldh [rNR44], a .asm_f89a8 bit 2, d jr nz, .asm_f89b0 ld a, $0 - ld [rNR32], a + ldh [rNR32], a .asm_f89b0 ret diff --git a/src/audio/sfx.asm b/src/audio/sfx.asm index 6b3e2bc..c682191 100644 --- a/src/audio/sfx.asm +++ b/src/audio/sfx.asm @@ -400,7 +400,7 @@ SFX_7: ; fc202 (3f:4202) ld h, [hl] ld l, a ld a, $0 - ld [rNR30], a + ldh [rNR30], a ld b, d ld de, $ff30 .asm_fc215 @@ -414,7 +414,7 @@ SFX_7: ; fc202 (3f:4202) ld a, $1 ld [wMusicWaveChange], a ld a, $80 - ld [rNR30], a + ldh [rNR30], a ld b, $0 pop hl jp Func_fc094 @@ -481,14 +481,14 @@ Func_fc26c: ; fc26c (3f:426c) Func_fc279: ; fc279 (3f:4279) ld a, $8 - ld a, [rNR12] - ld a, [rNR22] - ld a, [rNR32] - ld a, [rNR42] + ldh a, [rNR12] + ldh a, [rNR22] + ldh a, [rNR32] + ldh a, [rNR42] ld a, $80 - ld a, [rNR14] - ld a, [rNR24] - ld a, [rNR44] + ldh a, [rNR14] + ldh a, [rNR24] + ldh a, [rNR44] xor a ld [wdd8c], a ret diff --git a/src/engine/bank04.asm b/src/engine/bank04.asm index a1e504f..8fb4d29 100644 --- a/src/engine/bank04.asm +++ b/src/engine/bank04.asm @@ -13,8 +13,8 @@ Func_10000: ; 10000 (4:4000) bit LCDC_ENABLE_F, a jr nz, .asm_10025 xor a - ld [rSCX], a - ld [rSCY], a + ldh [rSCX], a + ldh [rSCY], a .asm_10025 call Func_1288c diff --git a/src/engine/bank1c.asm b/src/engine/bank1c.asm index cff0a96..b8ac4fb 100644 --- a/src/engine/bank1c.asm +++ b/src/engine/bank1c.asm @@ -176,13 +176,13 @@ Func_70136: ; 70136 (1c:4136) or LCDC_BGON ld [wLCDC], a ld a, %11100100 - ld [rBGP], a + ldh [rBGP], a call SetBGP xor a ldh [hSCX], a - ld [rSCX], a + ldh [rSCX], a ldh [hSCY], a - ld [rSCY], a + ldh [rSCY], a pop de pop bc pop hl diff --git a/src/engine/home.asm b/src/engine/home.asm index ff887fd..f33ec2f 100644 --- a/src/engine/home.asm +++ b/src/engine/home.asm @@ -39,8 +39,8 @@ Start: ; 0150 (0:0150) ld sp, $fffe push af xor a - ld [rIF], a - ld [rIE], a + ldh [rIF], a + ldh [rIE], a call ZeroRAM ld a, $1 call BankswitchROM @@ -87,16 +87,16 @@ VBlankHandler: ; 019b (0:019b) .no_oam_copy ; flush scaling/windowing parameters ldh a, [hSCX] - ld [rSCX], a + ldh [rSCX], a ldh a, [hSCY] - ld [rSCY], a + ldh [rSCY], a ldh a, [hWX] - ld [rWX], a + ldh [rWX], a ldh a, [hWY] - ld [rWY], a + ldh [rWY], a ; flush LCDC ld a, [wLCDC] - ld [rLCDC], a + ldh [rLCDC], a ei call wVBlankFunctionTrampoline call FlushPalettesIfRequested @@ -186,17 +186,17 @@ SetupTimer: ; 0241 (0:0241) ld b, -68 ; Value for Normal Speed call CheckForCGB jr c, .set_timer - ld a, [rKEY1] + ldh a, [rKEY1] and $80 jr z, .set_timer ld b, $100 - 2 * 68 ; Value for CGB Double Speed .set_timer ld a, b - ld [rTMA], a + ldh [rTMA], a ld a, TAC_16384_HZ - ld [rTAC], a + ldh [rTAC], a ld a, TAC_START | TAC_16384_HZ - ld [rTAC], a + ldh [rTAC], a ret ; return carry if not CGB @@ -231,36 +231,36 @@ EnableLCD: ; 0277 (0:0277) ret nz ; assert that LCD is off or LCDC_ON ; ld [wLCDC], a ; - ld [rLCDC], a ; turn LCD on + ldh [rLCDC], a ; turn LCD on ld a, FLUSH_ALL_PALS ld [wFlushPaletteFlags], a ret ; wait for vblank, then turn LCD off DisableLCD: ; 028a (0:028a) - ld a, [rLCDC] ; + ldh a, [rLCDC] ; bit LCDC_ENABLE_F, a ; ret z ; assert that LCD is on - ld a, [rIE] + ldh a, [rIE] ld [wIE], a res INT_VBLANK, a ; - ld [rIE], a ; disable vblank interrupt + ldh [rIE], a ; disable vblank interrupt .wait_vblank - ld a, [rLY] ; + ldh a, [rLY] ; cp LY_VBLANK ; jr nz, .wait_vblank ; wait for vblank - ld a, [rLCDC] ; + ldh a, [rLCDC] ; and LCDC_OFF ; - ld [rLCDC], a ; + ldh [rLCDC], a ; ld a, [wLCDC] ; and LCDC_OFF ; ld [wLCDC], a ; turn LCD off xor a - ld [rBGP], a - ld [rOBP0], a - ld [rOBP1], a + ldh [rBGP], a + ldh [rOBP0], a + ldh [rOBP1], a ld a, [wIE] - ld [rIE], a + ldh [rIE], a ret ; set OBJ size: 8x8 @@ -293,50 +293,50 @@ Set_WD_off: ; 02d4 (0:02d4) ; enable timer interrupt EnableInt_Timer: ; 02dd (0:02dd) - ld a, [rIE] + ldh a, [rIE] or 1 << INT_TIMER - ld [rIE], a + ldh [rIE], a ret ; enable vblank interrupt EnableInt_VBlank: ; 02e4 (0:02e4) - ld a, [rIE] + ldh a, [rIE] or 1 << INT_VBLANK - ld [rIE], a + ldh [rIE], a ret ; enable lcdc interrupt on hblank mode EnableInt_HBlank: ; 02eb (0:02eb) - ld a, [rSTAT] + ldh a, [rSTAT] or 1 << STAT_MODE_HBLANK - ld [rSTAT], a + ldh [rSTAT], a xor a - ld [rIF], a - ld a, [rIE] + ldh [rIF], a + ldh a, [rIE] or 1 << INT_LCD_STAT - ld [rIE], a + ldh [rIE], a ret ; disable lcdc interrupt and the hblank mode trigger DisableInt_HBlank: ; 02fb (0:02fb) - ld a, [rSTAT] + ldh a, [rSTAT] and ~(1 << STAT_MODE_HBLANK) - ld [rSTAT], a + ldh [rSTAT], a xor a - ld [rIF], a - ld a, [rIE] + ldh [rIF], a + ldh a, [rIE] and ~(1 << INT_LCD_STAT) - ld [rIE], a + ldh [rIE], a ret ; initialize scroll, window, and lcdc registers, set trampoline functions ; for the lcdc and vblank interrupts, latch clock data, and enable SRAM/RTC SetupRegisters: ; 030b (0:030b) xor a - ld [rSCY], a - ld [rSCX], a - ld [rWY], a - ld [rWX], a + ldh [rSCY], a + ldh [rSCX], a + ldh [rWY], a + ldh [rWX], a ld [wcab0], a ld [wcab1], a ld [wcab2], a @@ -378,7 +378,7 @@ DetectConsole: ; 0349 (0:0349) cp CONSOLE_CGB ret nz ld a, $01 - ld [rSVBK], a + ldh [rSVBK], a call SwitchToCGBDoubleSpeed ret @@ -386,10 +386,10 @@ DetectConsole: ; 0349 (0:0349) SetupPalettes: ; 036a (0:036a) ld hl, wBGP ld a, %11100100 - ld [rBGP], a + ldh [rBGP], a ld [hli], a ; wBGP - ld [rOBP0], a - ld [rOBP1], a + ldh [rOBP0], a + ldh [rOBP1], a ld [hli], a ; wOBP0 ld [hl], a ; wOBP1 xor a @@ -545,11 +545,11 @@ FlushPalettesIfRequested: ; 042d (0:042d) ; flush grayscale (non-CGB) palettes ld hl, wBGP ld a, [hli] - ld [rBGP], a + ldh [rBGP], a ld a, [hli] - ld [rOBP0], a + ldh [rOBP0], a ld a, [hl] - ld [rOBP1], a + ldh [rOBP1], a ld a, [wConsole] cp CONSOLE_CGB jr z, .CGB @@ -600,7 +600,7 @@ CopyCGBPalettes: ; 0467 (0:0467) ld [$ff00+c], a inc c .wait - ld a, [rSTAT] + ldh a, [rSTAT] and 1 << STAT_BUSY ; wait until hblank or vblank jr nz, .wait ld a, [hl] @@ -679,21 +679,21 @@ BCCoordToBGMap0Address: ; 04cf (0:04cf) ; the A + B + Start + Select combination resets the game ReadJoypad: ; 04de (0:04de) ld a, JOY_BTNS_SELECT - ld [rJOYP], a - ld a, [rJOYP] - ld a, [rJOYP] + ldh [rJOYP], a + ldh a, [rJOYP] + ldh a, [rJOYP] cpl and JOY_INPUT_MASK swap a ld b, a ; buttons data ld a, JOY_DPAD_SELECT - ld [rJOYP], a - ld a, [rJOYP] - ld a, [rJOYP] - ld a, [rJOYP] - ld a, [rJOYP] - ld a, [rJOYP] - ld a, [rJOYP] + ldh [rJOYP], a + ldh a, [rJOYP] + ldh a, [rJOYP] + ldh a, [rJOYP] + ldh a, [rJOYP] + ldh a, [rJOYP] + ldh a, [rJOYP] cpl and JOY_INPUT_MASK or b @@ -726,7 +726,7 @@ SaveButtonsHeld: ld a, c ldh [hKeysHeld], a ld a, JOY_BTNS_SELECT | JOY_DPAD_SELECT - ld [rJOYP], a + ldh [rJOYP], a ret ; clear joypad hmem data @@ -824,7 +824,7 @@ CopyDMAFunction: ; 0593 (0:0593) ; CopyDMAFunction copies this function to hDMAFunction ($ff83) DMA: ; 05a1 (0:05a1) ld a, HIGH(wOAM) - ld [rDMA], a + ldh [rDMA], a ld a, $28 .wait dec a @@ -1322,7 +1322,7 @@ BankswitchVRAM0: ; 07c5 (0:07c5) push af xor a ldh [hBankVRAM], a - ld [rVBK], a + ldh [rVBK], a pop af ret @@ -1331,14 +1331,14 @@ BankswitchVRAM1: ; 07cd (0:07cd) push af ld a, $1 ldh [hBankVRAM], a - ld [rVBK], a + ldh [rVBK], a pop af ret ; set current dest VRAM bank to a BankswitchVRAM: ; 07d6 (0:07d6) ldh [hBankVRAM], a - ld [rVBK], a + ldh [rVBK], a ret ; switch to CGB Normal Speed Mode if playing on CGB and current mode is Double Speed Mode @@ -1361,20 +1361,20 @@ SwitchToCGBDoubleSpeed: ; 07e7 (0:07e7) ; switch between CGB Double Speed Mode and Normal Speed Mode CGBSpeedSwitch: ; 07f1 (0:07f1) - ld a, [rIE] + ldh a, [rIE] push af xor a - ld [rIE], a + ldh [rIE], a set 0, [hl] xor a - ld [rIF], a - ld [rIE], a + ldh [rIF], a + ldh [rIE], a ld a, $30 - ld [rJOYP], a + ldh [rJOYP], a stop call SetupTimer pop af - ld [rIE], a + ldh [rIE], a ret ; validate the saved data in SRAM @@ -1983,30 +1983,30 @@ DetectSGB: ; 0b59 (0:0b59) call Wait ld hl, MltReq2Packet call SendSGB - ld a, [rJOYP] + ldh a, [rJOYP] and %11 cp SNES_JOYPAD1 jr nz, .sgb ld a, P15 - ld [rJOYP], a - ld a, [rJOYP] - ld a, [rJOYP] + ldh [rJOYP], a + ldh a, [rJOYP] + ldh a, [rJOYP] ld a, P15 | P14 - ld [rJOYP], a + ldh [rJOYP], a ld a, P14 - ld [rJOYP], a - ld a, [rJOYP] - ld a, [rJOYP] - ld a, [rJOYP] - ld a, [rJOYP] - ld a, [rJOYP] - ld a, [rJOYP] + ldh [rJOYP], a + ldh a, [rJOYP] + ldh a, [rJOYP] + ldh a, [rJOYP] + ldh a, [rJOYP] + ldh a, [rJOYP] + ldh a, [rJOYP] ld a, P15 | P14 - ld [rJOYP], a - ld a, [rJOYP] - ld a, [rJOYP] - ld a, [rJOYP] - ld a, [rJOYP] + ldh [rJOYP], a + ldh a, [rJOYP] + ldh a, [rJOYP] + ldh a, [rJOYP] + ldh a, [rJOYP] and %11 cp SNES_JOYPAD1 jr nz, .sgb @@ -2037,13 +2037,13 @@ Func_0bcb: ; 0bcb (0:0bcb) di push de .wait_vbalnk - ld a, [rLY] + ldh a, [rLY] cp LY_VBLANK + 3 jr nz, .wait_vbalnk ld a, LCDC_BGON | LCDC_OBJON | LCDC_WIN9C00 - ld [rLCDC], a + ldh [rLCDC], a ld a, %11100100 - ld [rBGP], a + ldh [rBGP], a ld de, v0Tiles1 ld bc, v0BGMap0 - v0Tiles1 .tiles_loop @@ -2069,7 +2069,7 @@ Func_0bcb: ; 0bcb (0:0bcb) dec c jr nz, .bgmap_outer_loop ld a, LCDC_BGON | LCDC_OBJON | LCDC_WIN9C00 | LCDC_ON - ld [rLCDC], a + ldh [rLCDC], a pop hl call SendSGB ei @@ -2098,12 +2098,12 @@ HblankCopyDataHLtoDE: ; 0c19 (0:0c19) .loop ei di - ld a, [rSTAT] ; + ldh a, [rSTAT] ; and STAT_LCDC_STATUS ; jr nz, .loop ; assert hblank ld a, [hl] ld [de], a - ld a, [rSTAT] ; + ldh a, [rSTAT] ; and STAT_LCDC_STATUS ; jr nz, .loop ; assert still in hblank ei @@ -2120,12 +2120,12 @@ HblankCopyDataDEtoHL: ; 0c32 (0:0c32) .loop ei di - ld a, [rSTAT] ; + ldh a, [rSTAT] ; and STAT_LCDC_STATUS ; jr nz, .loop ; assert hblank ld a, [de] ld [hl], a - ld a, [rSTAT] ; + ldh a, [rSTAT] ; and STAT_LCDC_STATUS ; jr nz, .loop ; assert still in hblank ei @@ -2228,13 +2228,13 @@ SerialTimerHandler: ; 0c91 (0:0c91) jr z, .check_for_timeout ret .begin_transfer - ld a, [rSC] ; + ldh a, [rSC] ; add a ; make sure that no serial transfer is active ret c ; ld a, SC_INTERNAL - ld [rSC], a ; use internal clock + ldh [rSC], a ; use internal clock ld a, SC_START | SC_INTERNAL - ld [rSC], a ; use internal clock, set transfer start flag + ldh [rSC], a ; use internal clock, set transfer start flag ret .check_for_timeout ; sets bit7 of [wSerialFlags] if the serial interrupt hasn't triggered @@ -2273,11 +2273,11 @@ Func_0cc5: ; 0cc5 (0:0cc5) ret .asm_cdc ld a, $29 - ld [rSB], a + ldh [rSB], a ld a, SC_INTERNAL - ld [rSC], a + ldh [rSC], a ld a, SC_START | SC_INTERNAL - ld [rSC], a + ldh [rSC], a .asm_ce8 ld a, [hl] or a @@ -2330,17 +2330,17 @@ SerialHandler: ; 0d26 (0:0d26) or a ; jr z, .asm_d55 ; skip ahead if [wSerialOp] zero ; send/receive a byte - ld a, [rSB] + ldh a, [rSB] call SerialHandleRecv call SerialHandleSend ; returns byte to actually send push af .wait_for_completion - ld a, [rSC] + ldh a, [rSC] add a jr c, .wait_for_completion pop af ; end send/receive - ld [rSB], a ; prepare sending byte (from Func_0dc8?) + ldh [rSB], a ; prepare sending byte (from Func_0dc8?) ld a, [wSerialOp] cp $29 jr z, .done ; if [wSerialOp] != $29, use external clock @@ -2348,16 +2348,16 @@ SerialHandler: ; 0d26 (0:0d26) .asm_d55 ld a, $1 ld [wSerialRecvCounter], a - ld a, [rSB] + ldh a, [rSB] ld [wSerialRecvBuf], a ld a, $ac - ld [rSB], a + ldh [rSB], a ld a, [wSerialRecvBuf] cp $12 ; if [wSerialRecvBuf] != $12, use external clock jr z, .done ; and prepare for next byte. either way, return .asm_d6a ld a, SC_START | SC_EXTERNAL - ld [rSC], a ; transfer start, use external clock + ldh [rSC], a ; transfer start, use external clock .done ld hl, wSerialCounter inc [hl] @@ -2592,25 +2592,25 @@ SerialExchangeBytes: ; 0e63 (0:0e63) Func_0e8e: ; 0e8e (0:0e8e) call ClearSerialData ld a, $12 - ld [rSB], a ; send $12 + ldh [rSB], a ; send $12 ld a, SC_START | SC_EXTERNAL - ld [rSC], a ; use external clock, set transfer start flag - ld a, [rIF] + ldh [rSC], a ; use external clock, set transfer start flag + ldh a, [rIF] and ~(1 << INT_SERIAL) - ld [rIF], a ; clear serial interrupt flag - ld a, [rIE] + ldh [rIF], a ; clear serial interrupt flag + ldh a, [rIE] or 1 << INT_SERIAL ; enable serial interrupt - ld [rIE], a + ldh [rIE], a ret ; disable serial interrupt, and clear rSB, rSC, and serial registers in WRAM ResetSerial: ; 0ea6 (0:0ea6) - ld a, [rIE] + ldh a, [rIE] and ~(1 << INT_SERIAL) - ld [rIE], a + ldh [rIE], a xor a - ld [rSB], a - ld [rSC], a + ldh [rSB], a + ldh [rSC], a ; fallthrough ; zero serial registers in WRAM @@ -9400,14 +9400,14 @@ Func_31e5: ; 31e5 (0:31e5) jr Func_31e0 Func_31ea: ; 31ea (0:31ea) - ld a, [rSB] + ldh a, [rSB] ld [wce6e], a Func_31ef: ; 31ef (0:31ef) xor a jr Func_31e0 Func_31f2: ; 31f2 (0:31f2) - ld a, [rSB] + ldh a, [rSB] ld [wce6f], a xor a ld [wce63], a @@ -9434,11 +9434,11 @@ Func_31fc: ; 31fc (0:31fc) ; fallthrough Func_3212: ; 3212 (0:3212) - ld [rSB], a + ldh [rSB], a ld a, SC_INTERNAL - ld [rSC], a + ldh [rSC], a ld a, SC_START | SC_INTERNAL - ld [rSC], a + ldh [rSC], a ret ; doubles the damage at de if swords dance or focus energy was used @@ -11255,7 +11255,7 @@ CallBC: ; 3c46 (0:3c46) DoFrameIfLCDEnabled: ; 3c48 (0:3c48) push af - ld a, [rLCDC] + ldh a, [rLCDC] bit LCDC_ENABLE_F, a jr z, .done push bc diff --git a/src/gfx/cards/grassenergy.8x6.png b/src/gfx/cards/grassenergy.8x6.png Binary files differindex 2046bcb..5cc6b30 100644 --- a/src/gfx/cards/grassenergy.8x6.png +++ b/src/gfx/cards/grassenergy.8x6.png diff --git a/src/gfx/duel/cgb_symbols.t7.png b/src/gfx/duel/cgb_symbols.t7.png Binary files differindex 578867f..ac0f54d 100644 --- a/src/gfx/duel/cgb_symbols.t7.png +++ b/src/gfx/duel/cgb_symbols.t7.png diff --git a/src/gfx/duel/dmg_sgb_symbols.t7.png b/src/gfx/duel/dmg_sgb_symbols.t7.png Binary files differindex 10715db..91eede5 100644 --- a/src/gfx/duel/dmg_sgb_symbols.t7.png +++ b/src/gfx/duel/dmg_sgb_symbols.t7.png diff --git a/src/gfx/duel/other.t7.png b/src/gfx/duel/other.t7.png Binary files differindex 796ecf7..d2aa1e9 100644 --- a/src/gfx/duel/other.t7.png +++ b/src/gfx/duel/other.t7.png diff --git a/src/gfx/fonts/full_width/4.t3.png b/src/gfx/fonts/full_width/4.t3.png Binary files differindex 6ccef5d..c872a6d 100644 --- a/src/gfx/fonts/full_width/4.t3.png +++ b/src/gfx/fonts/full_width/4.t3.png diff --git a/src/gfx/fonts/symbols.png b/src/gfx/fonts/symbols.png Binary files differindex 81afc3b..347001a 100644 --- a/src/gfx/fonts/symbols.png +++ b/src/gfx/fonts/symbols.png diff --git a/src/layout.link b/src/layout.link new file mode 100644 index 0000000..49511eb --- /dev/null +++ b/src/layout.link @@ -0,0 +1,180 @@ +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 + "vblank" + org $0048 + "lcdc" + org $0050 + "timer" + org $0058 + "serial" + org $0060 + "joypad" + org $0100 + "romheader" + org $0150 + "start" +ROMX $01 + "Bank 1" +ROMX $02 + "Bank 2" +ROMX $03 + "Bank 3" +ROMX $04 + "Bank 4" +ROMX $06 + "Bank 6" +ROMX $07 + "Bank 7" + "Booster Packs" +ROMX $08 + "Bank 8" +ROMX $09 + "Empty Bank 9" +ROMX $0a + "Empty Bank A" +ROMX $0b + "Effect Functions" +ROMX $0c + "Decks" + "Cards" +ROMX $0d + "Text 1" +ROMX $0e + "Text 2" +ROMX $0f + "Text 3" +ROMX $10 + "Text 4" +ROMX $11 + "Text 5" +ROMX $12 + "Text 6" +ROMX $13 + "Text 7" +ROMX $14 + "Text 8" +ROMX $15 + "Text 9" +ROMX $16 + "Text 10" +ROMX $17 + "Text 11" +ROMX $18 + "Text 12" +ROMX $19 + "Text 13" +ROMX $1a + "Empty Bank 1A" +ROMX $1b + "Empty Bank 1B" +ROMX $1c + "Bank 1C" +ROMX $1d + "Gfx 1" +ROMX $1e + "Gfx 2" +ROMX $1f + "Empty Bank 1F" +ROMX $20 + "Bank 20" +ROMX $21 + "Gfx 3" +ROMX $22 + "Gfx 4" +ROMX $23 + "Gfx 5" +ROMX $24 + "Gfx 6" +ROMX $25 + "Gfx 7" +ROMX $26 + "Gfx 8" +ROMX $27 + "Gfx 9" +ROMX $28 + "Gfx 10" +ROMX $29 + "Gfx 11" +ROMX $2a + "Gfx 12" +ROMX $2b + "Gfx 13" +ROMX $2c + "Gfx 14" +ROMX $2d + "Gfx 15" +ROMX $2e + "Gfx 16" +ROMX $2f + "Empty Bank 2F" +ROMX $30 + "Empty Bank 30" +ROMX $31 + "Card Gfx 1" +ROMX $32 + "Card Gfx 2" +ROMX $33 + "Card Gfx 3" +ROMX $34 + "Card Gfx 4" +ROMX $35 + "Card Gfx 5" +ROMX $36 + "Card Gfx 6" +ROMX $37 + "Card Gfx 7" +ROMX $38 + "Card Gfx 8" +ROMX $39 + "Card Gfx 9" +ROMX $3a + "Card Gfx 10" +ROMX $3b + "Card Gfx 11" +ROMX $3c + "Empty Bank 3C" +ROMX $3d + "Audio 1" +ROMX $3e + "Audio 2" +ROMX $3f + "Audio 3" +WRAM0 + "WRAM0" + "WRAM0 Duels 1" + "WRAM0 Text Engine" + "WRAM0 1" + "WRAM0 Serial Transfer" + "WRAM0 Duels 2" + "WRAM0 2" +WRAMX 1 + "WRAM1" + "WRAM1 Audio" +VRAM $00 + "VRAM0" +VRAM $01 + "VRAM1" +SRAM $00 + "SRAM0" +SRAM $01 + "SRAM1" +SRAM $02 + "SRAM2" +SRAM $03 + "SRAM3" diff --git a/src/rgbdscheck.asm b/src/rgbdscheck.asm new file mode 100644 index 0000000..622023d --- /dev/null +++ b/src/rgbdscheck.asm @@ -0,0 +1,12 @@ +; poketcg requires rgbds 0.4.1 or newer. +MAJOR EQU 0 +MINOR EQU 4 +PATCH EQU 1 + +IF !DEF(__RGBDS_MAJOR__) || !DEF(__RGBDS_MINOR__) || !DEF(__RGBDS_PATCH__) + fail "poketcg requires rgbds {MAJOR}.{MINOR}.{PATCH} or newer." +ELIF (__RGBDS_MAJOR__ < MAJOR) || \ + (__RGBDS_MAJOR__ == MAJOR && __RGBDS_MINOR__ < MINOR) || \ + (__RGBDS_MAJOR__ == MAJOR && __RGBDS_MINOR__ == MINOR && __RGBDS_PATCH__ < PATCH) + fail "poketcg requires rgbds {MAJOR}.{MINOR}.{PATCH} or newer." +ENDC |