diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/engine/bank03.asm | 39 | ||||
-rw-r--r-- | src/engine/bank04.asm | 2 | ||||
-rw-r--r-- | src/engine/bank20.asm | 208 | ||||
-rw-r--r-- | src/gfx.asm | 130 | ||||
-rw-r--r-- | src/sram.asm | 4 | ||||
-rw-r--r-- | src/wram.asm | 9 |
6 files changed, 212 insertions, 180 deletions
diff --git a/src/engine/bank03.asm b/src/engine/bank03.asm index 700ebb4..345b345 100644 --- a/src/engine/bank03.asm +++ b/src/engine/bank03.asm @@ -468,33 +468,41 @@ Func_c36a: ; c36a (3:436a) .asm_c379 ret -Func_c37a: ; c37a (3:437a) +; loads in wPermissionMap the permissions +; of the map, which has its compressed permission data +; pointed by wBGMapPermissionDataPtr +LoadPermissionMap: ; c37a (3:437a) push hl push bc - ld hl, wBoosterViableCardList + ld hl, wPermissionMap push hl - ld a, $80 + ld a, $80 ; impassable and untalkable ld c, $00 -.asm_c384 +.loop_map ld [hli], a dec c - jr nz, .asm_c384 + jr nz, .loop_map pop hl - call Func_c38f + call DecompressPermissionMap pop bc pop hl ret -Func_c38f: ; c38f (3:438f) +; decompresses permission data pointed by wBGMapPermissionDataPtr +; hl = address to write to +DecompressPermissionMap: ; c38f (3:438f) push hl push bc - ld a, [wd23a] + ld a, [wBGMapPermissionDataPtr] ld e, a - ld a, [wd23a + 1] + ld a, [wBGMapPermissionDataPtr + 1] ld d, a or e jr z, .skip +; permissions are applied to 2x2 square tiles +; so the data is half the width and height +; of the actual tile map push hl ld b, HIGH(wDecompressionSecondaryBuffer) call InitDataDecompression @@ -503,23 +511,24 @@ Func_c38f: ; c38f (3:438f) ld a, [wBGMapHeight] inc a srl a - ld b, a + ld b, a ; (height + 1) / 2 ld a, [wBGMapWidth] inc a srl a - ld c, a + ld c, a ; (width + 1) / 2 pop de -.asm_c3b7 + +.loop push bc - ld b, $00 + ld b, 0 ; one row (with width in c) call DecompressDataFromBank - ld hl, $10 + ld hl, $10 ; next row add hl, de ld d, h ld e, l pop bc dec b - jr nz, .asm_c3b7 + jr nz, .loop .skip pop bc diff --git a/src/engine/bank04.asm b/src/engine/bank04.asm index ccde0ac..90f04c3 100644 --- a/src/engine/bank04.asm +++ b/src/engine/bank04.asm @@ -2990,7 +2990,7 @@ _LoadScene: ; 12c7f (4:6c7f) ld [wCurTilemap], a pop bc push bc - farcall Func_8007e ; load tilemap + farcall LoadTilemap_ToVRAM pop bc ; base x,y call LoadScene_LoadSGBPacket ld a, [hli] diff --git a/src/engine/bank20.asm b/src/engine/bank20.asm index d6a7ac0..ee7f304 100644 --- a/src/engine/bank20.asm +++ b/src/engine/bank20.asm @@ -3,7 +3,7 @@ Func_80000: ; 80000 (20:4000) xor a ld [wTextBoxFrameType], a call Func_8003d - farcall Func_c37a + farcall LoadPermissionMap farcall Func_c9c7 call Func_801a1 farcall Func_c3ff @@ -18,7 +18,7 @@ Func_80000: ; 80000 (20:4000) Func_80028: ; 80028 (20:4028) call ClearSRAMBGMaps ld bc, $0000 - call Func_80077 + call LoadTilemap_ToSRAM farcall Func_c9c7 call Func_801a1 farcall Func_c3ee @@ -28,15 +28,18 @@ Func_80028: ; 80028 (20:4028) Func_8003d: ; 8003d (20:403d) farcall LoadMapHeader farcall SetSGB2AndSGB3MapPalette - ld bc, $0 - call Func_80077 - ld a, $80 - ld [wd4ca], a - xor a + + lb bc, 0, 0 + call LoadTilemap_ToSRAM + + ld a, LOW(v0Tiles1 / TILE_SIZE) + ld [wVRAMTileOffset], a + xor a ; VRAM0 ld [wd4cb], a call LoadTilesetGfx - xor a - ld [wd4ca], a + + xor a ; LOW(v0Tiles2 / TILE_SIZE) + ld [wVRAMTileOffset], a ld a, [wd291] ld [wd4cb], a ld a, [wd28f] @@ -51,17 +54,21 @@ Func_8003d: ; 8003d (20:403d) ret ; 0x80077 -Func_80077: ; 80077 (20:4077) +LoadTilemap_ToSRAM: ; 80077 (20:4077) ld a, TRUE ld [wWriteBGMapToSRAM], a - jr Func_80082 + jr LoadTilemap -Func_8007e: ; 8007e (20:407e) - xor a +LoadTilemap_ToVRAM: ; 8007e (20:407e) + xor a ; FALSE ld [wWriteBGMapToSRAM], a ; fallthrough -Func_80082: ; 80082 (20:4082) +; loads the BG map corresponding to wCurTilemap +; either loads them in VRAM or SRAM, +; depending on wWriteBGMapToSRAM +; bc = starting coordinates +LoadTilemap: ; 80082 (20:4082) push hl push bc push de @@ -78,7 +85,7 @@ Func_80082: ; 80082 (20:4082) ; store header data ld de, wDecompressionBuffer - ld bc, $0006 ; header + 1st instruction + ld bc, $6 ; header + 1st instruction call CopyBankedDataToDE ld l, e ld h, d @@ -87,27 +94,29 @@ Func_80082: ; 80082 (20:4082) ld a, [hli] ld [wBGMapHeight], a ld a, [hli] - ld [wd23a], a + ld [wBGMapPermissionDataPtr], a ld a, [hli] - ld [wd23a + 1], a + ld [wBGMapPermissionDataPtr + 1], a ld a, [hli] - ld [wd23c], a - - call Func_800bd + ld [wBGMapCGBMode], a + call .InitAndDecompressBGMap pop de pop bc pop hl ret -Func_800bd: ; 800bd (20:40bd) +; prepares the pointers for decompressing BG Map +; and calls InitDataDecompression +; then decompresses the data +.InitAndDecompressBGMap ; 800bd (20:40bd) push hl push bc push de ld a, [wTempPointer] - add $05 + add $5 ; header ld e, a ld a, [wTempPointer + 1] - adc $00 + adc 0 ld d, a ld b, HIGH(wDecompressionSecondaryBuffer) call InitDataDecompression @@ -115,24 +124,29 @@ Func_800bd: ; 800bd (20:40bd) ld e, a ld a, [wVRAMPointer + 1] ld d, a - call Func_800e0 + call .Decompress pop de pop bc pop hl ret -Func_800e0: ; 800e0 (20:40e0) -; if wd23c != 0, then use double wBGMapWidth +; wTempBank:wTempPointer = source of compressed data +; wVRAMPointer = destination of decompressed data +.Decompress ; 800e0 (20:40e0) +; if wBGMapCGBMode is true, then use double wBGMapWidth +; since one "width" length goes to VRAM0 +; and the onther "width" length goes to VRAM1 push hl ld hl, wd28e ld a, [wBGMapWidth] ld [hl], a - ld a, [wd23c] + ld a, [wBGMapCGBMode] or a - jr z, .asm_800f0 + jr z, .skip_doubling_width sla [hl] -.asm_800f0 +.skip_doubling_width +; clear wDecompressionBuffer ld c, $40 ld hl, wDecompressionBuffer xor a @@ -153,6 +167,7 @@ Func_800e0: ; 800e0 (20:40e0) ld de, wDecompressionBuffer call DecompressDataFromBank + ; copy to VRAM0 ld a, [wBGMapWidth] ld b, a pop de @@ -164,17 +179,18 @@ Func_800e0: ; 800e0 (20:40e0) jr nz, .next_row ; cgb only + ; copy the second "half" to VRAM1 call BankswitchVRAM1 ld a, [wBGMapWidth] ld c, a - ld b, $00 + ld b, $0 ld hl, wDecompressionBuffer add hl, bc pop de push de ld a, [wBGMapWidth] ld b, a - call Func_80148 + call Func_80148 ; adds some wd291 offset to tiles call CopyBGDataToVRAMOrSRAM call BankswitchVRAM0 @@ -195,7 +211,7 @@ Func_80148: ; 80148 (20:4148) ld a, [wd291] or a ret z - ld a, [wd23c] + ld a, [wBGMapCGBMode] or a jr z, .asm_80162 @@ -231,7 +247,7 @@ Func_80148: ; 80148 (20:4148) ; to either VRAM or SRAM, depending on wWriteBGMapToSRAM ; de is the target address in VRAM, ; if SRAM is the target address to copy, -; copies data to s0BGMap or s1BGMap +; copies data to sBGMap0 or sBGMap1 ; for VRAM0 or VRAM1 respectively CopyBGDataToVRAMOrSRAM: ; 8016e (20:416e) ld a, [wWriteBGMapToSRAM] @@ -247,11 +263,11 @@ CopyBGDataToVRAMOrSRAM: ; 8016e (20:416e) ld a, BANK("SRAM1") call BankswitchSRAM push hl - ld hl, s0BGMap - v0BGMap0 + ld hl, sBGMap0 - v0BGMap0 ldh a, [hBankVRAM] or a jr z, .got_pointer - ld hl, s1BGMap - v1BGMap0 + ld hl, sBGMap1 - v1BGMap0 .got_pointer add hl, de ld e, l @@ -279,7 +295,7 @@ Func_801a1: ; 801a1 (20:41a1) push af ld a, $1 call BankswitchSRAM - ld hl, v0End + ld hl, sBGMap0 ld de, v0BGMap0 ld c, $20 .asm_801b4 @@ -322,16 +338,16 @@ Func_801a1: ; 801a1 (20:41a1) pop hl ret -; clears s0BGMap and s1BGMap +; clears sBGMap0 and sBGMap1 ClearSRAMBGMaps: ; 801f1 (20:41f1) push hl push bc ldh a, [hBankSRAM] push af - ld a, BANK(s0BGMap) ; SRAM 1 + ld a, BANK(sBGMap0) ; SRAM 1 call BankswitchSRAM - ld hl, s0BGMap - ld bc, $800 ; s0BGMap + s1BGMap + ld hl, sBGMap0 + ld bc, $800 ; sBGMap0 + sBGMap1 xor a call FillMemoryWithA pop af @@ -651,28 +667,30 @@ Func_803b9: ; 803b9 (20:43b9) ret ; 0x803c9 +; a = palette index to load Func_803c9: ; 803c9 (20:43c9) push hl push bc push de - call CopyPaletteDataToBuffer + call LoadPaletteDataToBuffer ld hl, wLoadedPalData ld a, [hli] or a - jr z, .asm_803dc + jr z, .skip_bgp ld a, [hli] push hl call SetBGP pop hl -.asm_803dc +.skip_bgp + ld a, [hli] or a - jr z, .asm_803e8 + jr z, .skip_pal ld c, a ld a, [wd4cb] ld b, a call LoadPaletteDataFromHL -.asm_803e8 +.skip_pal pop de pop bc pop hl @@ -733,7 +751,7 @@ LoadPaletteData: ; 80418 (20:4418) push hl push bc push de - call CopyPaletteDataToBuffer + call LoadPaletteDataToBuffer ld hl, wLoadedPalData ld a, [hli] ; number palettes @@ -786,7 +804,7 @@ LoadPaletteData: ; 80418 (20:4418) ; 0x80456 ; copies palette data of index in a to wLoadedPalData -CopyPaletteDataToBuffer: ; 80456 (20:4456) +LoadPaletteDataToBuffer: ; 80456 (20:4456) push hl push bc push de @@ -1161,9 +1179,9 @@ Func_80baa: ; 80baa (20:4baa) push af ld a, [wBGMapHeight] push af - ld a, [wd23a] + ld a, [wBGMapPermissionDataPtr] push af - ld a, [wd23a + 1] + ld a, [wBGMapPermissionDataPtr + 1] push af ld b, $0 @@ -1194,7 +1212,7 @@ Func_80baa: ; 80baa (20:4baa) ld a, [hl] ld [wCurTilemap], a push bc - farcall Func_80082 ; unnecessary farcall + farcall LoadTilemap ; unnecessary farcall pop bc srl b ld a, c @@ -1204,13 +1222,13 @@ Func_80baa: ; 80baa (20:4baa) add b ld c, a ld b, $0 - ld hl, wBoosterViableCardList + ld hl, wPermissionMap add hl, bc - farcall Func_c38f + farcall DecompressPermissionMap pop af - ld [wd23a + 1], a + ld [wBGMapPermissionDataPtr + 1], a pop af - ld [wd23a], a + ld [wBGMapPermissionDataPtr], a pop af ld [wBGMapHeight], a pop af @@ -2010,7 +2028,7 @@ OverworldMapTilemap:: ; 8191b (20:591b) db $14 ; width db $12 ; height dw $0000 - db $00 + db FALSE ; cgb mode INCBIN "data/maps/map0.bin" @@ -2018,7 +2036,7 @@ OverworldMapCGBTilemap:: ; 81a22 (20:5a22) db $14 ; width db $12 ; height dw $0000 - db $01 + db TRUE ; cgb mode INCBIN "data/maps/map1.bin" @@ -2026,7 +2044,7 @@ MasonLaboratoryTilemap:: ; 81c13 (20:5c13) db $1c ; width db $1e ; height dw $5d11 - db $00 + db FALSE ; cgb mode INCBIN "data/maps/map2.bin" @@ -2034,7 +2052,7 @@ MasonLaboratoryCGBTilemap:: ; 81d2e (20:5d2e) db $1c ; width db $1e ; height dw $5eb4 - db $01 + db TRUE ; cgb mode INCBIN "data/maps/map3.bin" @@ -2042,7 +2060,7 @@ Unused1Tilemap:: ; 81ed1 (20:5ed1) db $04 ; width db $06 ; height dw $5ef0 - db $00 + db FALSE ; cgb mode INCBIN "data/maps/map4.bin" @@ -2050,7 +2068,7 @@ Unused2Tilemap:: ; 81ef5 (20:5ef5) db $04 ; width db $06 ; height dw $5f21 - db $01 + db TRUE ; cgb mode INCBIN "data/maps/map5.bin" @@ -2058,7 +2076,7 @@ DeckMachineRoomTilemap:: ; 81f26 (20:5f26) db $18 ; width db $1e ; height dw $5fd3 - db $00 + db FALSE ; cgb mode INCBIN "data/maps/map6.bin" @@ -2066,7 +2084,7 @@ DeckMachineRoomCGBTilemap:: ; 81feb (20:5feb) db $18 ; width db $1e ; height dw $612b - db $01 + db TRUE ; cgb mode INCBIN "data/maps/map7.bin" @@ -2074,7 +2092,7 @@ Unused3Tilemap:: ; 82143 (20:6143) db $04 ; width db $01 ; height dw $614d - db $00 + db FALSE ; cgb mode INCBIN "data/maps/map8.bin" @@ -2082,7 +2100,7 @@ Unused4Tilemap:: ; 82150 (20:6150) db $04 ; width db $01 ; height dw $615d - db $01 + db TRUE ; cgb mode INCBIN "data/maps/map9.bin" @@ -2090,7 +2108,7 @@ IshiharaTilemap:: ; 82160 (20:6160) db $14 ; width db $18 ; height dw $620e - db $00 + db FALSE ; cgb mode INCBIN "data/maps/map10.bin" @@ -2098,7 +2116,7 @@ IshiharaCGBTilemap:: ; 82222 (20:6222) db $14 ; width db $18 ; height dw $6322 - db $01 + db TRUE ; cgb mode INCBIN "data/maps/map11.bin" @@ -2106,7 +2124,7 @@ FightingClubEntranceTilemap:: ; 82336 (20:6336) db $14 ; width db $12 ; height dw $63ec - db $00 + db FALSE ; cgb mode INCBIN "data/maps/map12.bin" @@ -2114,7 +2132,7 @@ FightingClubEntranceCGBTilemap:: ; 82400 (20:6400) db $14 ; width db $12 ; height dw $6509 - db $01 + db TRUE ; cgb mode INCBIN "data/maps/map13.bin" @@ -2122,7 +2140,7 @@ RockClubEntranceTilemap:: ; 8251d (20:651d) db $14 ; width db $12 ; height dw $65d3 - db $00 + db FALSE ; cgb mode INCBIN "data/maps/map14.bin" @@ -2130,7 +2148,7 @@ RockClubEntranceCGBTilemap:: ; 825e7 (20:65e7) db $14 ; width db $12 ; height dw $66f0 - db $01 + db TRUE ; cgb mode INCBIN "data/maps/map15.bin" @@ -2138,7 +2156,7 @@ WaterClubEntranceTilemap:: ; 82704 (20:6704) db $14 ; width db $12 ; height dw $67ba - db $00 + db FALSE ; cgb mode INCBIN "data/maps/map16.bin" @@ -2146,7 +2164,7 @@ WaterClubEntranceCGBTilemap:: ; 827ce (20:67ce) db $14 ; width db $12 ; height dw $68d7 - db $01 + db TRUE ; cgb mode INCBIN "data/maps/map17.bin" @@ -2154,7 +2172,7 @@ LightningClubEntranceTilemap:: ; 828eb (20:68eb) db $14 ; width db $12 ; height dw $69a1 - db $00 + db FALSE ; cgb mode INCBIN "data/maps/map18.bin" @@ -2162,7 +2180,7 @@ LightningClubEntranceCGBTilemap:: ; 829b5 (20:69b5) db $14 ; width db $12 ; height dw $6abe - db $01 + db TRUE ; cgb mode INCBIN "data/maps/map19.bin" @@ -2170,7 +2188,7 @@ GrassClubEntranceTilemap:: ; 82ad2 (20:6ad2) db $14 ; width db $12 ; height dw $6b88 - db $00 + db FALSE ; cgb mode INCBIN "data/maps/map20.bin" @@ -2178,7 +2196,7 @@ GrassClubEntranceCGBTilemap:: ; 82b9c (20:6b9c) db $14 ; width db $12 ; height dw $6ca5 - db $01 + db TRUE ; cgb mode INCBIN "data/maps/map21.bin" @@ -2186,7 +2204,7 @@ PsychicClubEntranceTilemap:: ; 82cb9 (20:6cb9) db $14 ; width db $12 ; height dw $6d6f - db $00 + db FALSE ; cgb mode INCBIN "data/maps/map22.bin" @@ -2194,7 +2212,7 @@ PsychicClubEntranceCGBTilemap:: ; 82d83 (20:6d83) db $14 ; width db $12 ; height dw $6e8c - db $01 + db TRUE ; cgb mode INCBIN "data/maps/map23.bin" @@ -2202,7 +2220,7 @@ ScienceClubEntranceTilemap:: ; 82ea0 (20:6ea0) db $14 ; width db $12 ; height dw $6f56 - db $00 + db FALSE ; cgb mode INCBIN "data/maps/map24.bin" @@ -2210,7 +2228,7 @@ ScienceClubEntranceCGBTilemap:: ; 82f6a (20:6f6a) db $14 ; width db $12 ; height dw $7073 - db $01 + db TRUE ; cgb mode INCBIN "data/maps/map25.bin" @@ -2218,7 +2236,7 @@ FireClubEntranceTilemap:: ; 83087 (20:7087) db $14 ; width db $12 ; height dw $713d - db $00 + db FALSE ; cgb mode INCBIN "data/maps/map26.bin" @@ -2226,7 +2244,7 @@ FireClubEntranceCGBTilemap:: ; 83151 (20:7151) db $14 ; width db $12 ; height dw $725a - db $01 + db TRUE ; cgb mode INCBIN "data/maps/map27.bin" @@ -2234,7 +2252,7 @@ ChallengeHallEntranceTilemap:: ; 8326e (20:726e) db $14 ; width db $12 ; height dw $730d - db $00 + db FALSE ; cgb mode INCBIN "data/maps/map28.bin" @@ -2242,7 +2260,7 @@ ChallengeHallEntranceCGBTilemap:: ; 83321 (20:7321) db $14 ; width db $12 ; height dw $7410 - db $01 + db TRUE ; cgb mode INCBIN "data/maps/map29.bin" @@ -2250,7 +2268,7 @@ ClubLobbyTilemap:: ; 83424 (20:7424) db $1c ; width db $1a ; height dw $7529 - db $00 + db FALSE ; cgb mode INCBIN "data/maps/map30.bin" @@ -2258,7 +2276,7 @@ ClubLobbyCGBTilemap:: ; 83545 (20:7545) db $1c ; width db $1a ; height dw $76bf - db $01 + db TRUE ; cgb mode INCBIN "data/maps/map31.bin" @@ -2266,7 +2284,7 @@ FightingClubTilemap:: ; 836db (20:76db) db $18 ; width db $12 ; height dw $777b - db $00 + db FALSE ; cgb mode INCBIN "data/maps/map32.bin" @@ -2274,7 +2292,7 @@ FightingClubCGBTilemap:: ; 8378c (20:778c) db $18 ; width db $12 ; height dw $787c - db $01 + db TRUE ; cgb mode INCBIN "data/maps/map33.bin" @@ -2282,7 +2300,7 @@ RockClubTilemap:: ; 8388d (20:788d) db $1c ; width db $1e ; height dw $79b5 - db $00 + db FALSE ; cgb mode INCBIN "data/maps/map34.bin" @@ -2290,7 +2308,7 @@ RockClubCGBTilemap:: ; 839d6 (20:79d6) db $1c ; width db $1e ; height dw $7bd0 - db $01 + db TRUE ; cgb mode INCBIN "data/maps/map35.bin" @@ -2298,7 +2316,7 @@ Unused5Tilemap:: ; 83bf1 (20:7bf1) db $04 ; width db $03 ; height dw $7c00 - db $00 + db FALSE ; cgb mode INCBIN "data/maps/map52.bin" @@ -2306,7 +2324,7 @@ Unused6Tilemap:: ; 83c03 (20:7c03) db $04 ; width db $03 ; height dw $7c17 - db $01 + db TRUE ; cgb mode INCBIN "data/maps/map53.bin" @@ -2314,7 +2332,7 @@ Unused7Tilemap:: ; 83c1a (20:7c1a) db $04 ; width db $03 ; height dw $7c23 - db $00 + db FALSE ; cgb mode INCBIN "data/maps/map56.bin" @@ -2322,7 +2340,7 @@ Unused8Tilemap:: ; 83c26 (20:7c26) db $04 ; width db $03 ; height dw $7c33 - db $01 + db TRUE ; cgb mode INCBIN "data/maps/map57.bin" @@ -2330,7 +2348,7 @@ GrassMedalTilemap:: ; 83c36 (20:7c36) db $03 ; width db $03 ; height dw $0000 - db $01 + db TRUE ; cgb mode INCBIN "data/maps/map62.bin" diff --git a/src/gfx.asm b/src/gfx.asm index 903cbad..c03f4e6 100644 --- a/src/gfx.asm +++ b/src/gfx.asm @@ -47,7 +47,7 @@ WaterClubTilemap:: ; 84000 (21:4000) db $1c ; width db $20 ; height dw $4164 - db $00 + db FALSE ; cgb mode INCBIN "data/maps/map36.bin" @@ -55,7 +55,7 @@ WaterClubCGBTilemap:: ; 84188 (21:4188) db $1c ; width db $20 ; height dw $4397 - db $01 + db TRUE ; cgb mode INCBIN "data/maps/map37.bin" @@ -63,7 +63,7 @@ LightningClubTilemap:: ; 843bb (21:43bb) db $1c ; width db $20 ; height dw $4511 - db $00 + db FALSE ; cgb mode INCBIN "data/maps/map38.bin" @@ -71,7 +71,7 @@ LightningClubCGBTilemap:: ; 84533 (21:4533) db $1c ; width db $20 ; height dw $470c - db $01 + db TRUE ; cgb mode INCBIN "data/maps/map39.bin" @@ -79,7 +79,7 @@ GrassClubTilemap:: ; 8472e (21:472e) db $1c ; width db $20 ; height dw $48b4 - db $00 + db FALSE ; cgb mode INCBIN "data/maps/map40.bin" @@ -87,7 +87,7 @@ GrassClubCGBTilemap:: ; 848d8 (21:48d8) db $1c ; width db $20 ; height dw $4b4f - db $01 + db TRUE ; cgb mode INCBIN "data/maps/map41.bin" @@ -95,7 +95,7 @@ PsychicClubTilemap:: ; 84b73 (21:4b73) db $1c ; width db $1c ; height dw $4c50 - db $00 + db FALSE ; cgb mode INCBIN "data/maps/map42.bin" @@ -103,7 +103,7 @@ PsychicClubCGBTilemap:: ; 84c6f (21:4c6f) db $1c ; width db $1c ; height dw $4ddf - db $01 + db TRUE ; cgb mode INCBIN "data/maps/map43.bin" @@ -111,7 +111,7 @@ ScienceClubTilemap:: ; 84dfe (21:4dfe) db $1c ; width db $20 ; height dw $4efe - db $00 + db FALSE ; cgb mode INCBIN "data/maps/map44.bin" @@ -119,7 +119,7 @@ ScienceClubCGBTilemap:: ; 84f1d (21:4f1d) db $1c ; width db $20 ; height dw $5097 - db $01 + db TRUE ; cgb mode INCBIN "data/maps/map45.bin" @@ -127,7 +127,7 @@ FireClubTilemap:: ; 850b6 (21:50b6) db $1c ; width db $20 ; height dw $5175 - db $00 + db FALSE ; cgb mode INCBIN "data/maps/map46.bin" @@ -135,7 +135,7 @@ FireClubCGBTilemap:: ; 85191 (21:5191) db $1c ; width db $20 ; height dw $52f9 - db $01 + db TRUE ; cgb mode INCBIN "data/maps/map47.bin" @@ -143,7 +143,7 @@ ChallengeHallTilemap:: ; 85315 (21:5315) db $20 ; width db $20 ; height dw $5484 - db $00 + db FALSE ; cgb mode INCBIN "data/maps/map48.bin" @@ -151,7 +151,7 @@ ChallengeHallCGBTilemap:: ; 854b3 (21:54b3) db $20 ; width db $20 ; height dw $56db - db $01 + db TRUE ; cgb mode INCBIN "data/maps/map49.bin" @@ -159,7 +159,7 @@ PokemonDomeEntranceTilemap:: ; 8570a (21:570a) db $20 ; width db $12 ; height dw $57ba - db $00 + db FALSE ; cgb mode INCBIN "data/maps/map50.bin" @@ -167,7 +167,7 @@ PokemonDomeEntranceCGBTilemap:: ; 857ce (21:57ce) db $20 ; width db $12 ; height dw $58db - db $01 + db TRUE ; cgb mode INCBIN "data/maps/map51.bin" @@ -175,7 +175,7 @@ PokemonDomeTilemap:: ; 858ef (21:58ef) db $20 ; width db $20 ; height dw $5a58 - db $00 + db FALSE ; cgb mode INCBIN "data/maps/map54.bin" @@ -183,7 +183,7 @@ PokemonDomeGBTilemap:: ; 85a79 (21:5a79) db $20 ; width db $20 ; height dw $5cc1 - db $01 + db TRUE ; cgb mode INCBIN "data/maps/map55.bin" @@ -191,7 +191,7 @@ HallOfHonorTilemap:: ; 85ce2 (21:5ce2) db $18 ; width db $1a ; height dw $5ddc - db $00 + db FALSE ; cgb mode INCBIN "data/maps/map58.bin" @@ -199,7 +199,7 @@ HallOfHonorCGBTilemap:: ; 85df4 (21:5df4) db $18 ; width db $1a ; height dw $5f64 - db $01 + db TRUE ; cgb mode INCBIN "data/maps/map59.bin" @@ -207,7 +207,7 @@ CardPopCGBTilemap:: ; 85f7c (21:5f7c) db $14 ; width db $12 ; height dw $0000 - db $01 + db TRUE ; cgb mode INCBIN "data/maps/map60.bin" @@ -215,7 +215,7 @@ CardPopTilemap:: ; 8607f (21:607f) db $14 ; width db $12 ; height dw $0000 - db $01 + db TRUE ; cgb mode INCBIN "data/maps/map61.bin" @@ -223,7 +223,7 @@ ScienceMedalTilemap:: ; 8617d (21:617d) db $03 ; width db $03 ; height dw $0000 - db $01 + db TRUE ; cgb mode INCBIN "data/maps/map63.bin" @@ -231,7 +231,7 @@ FireMedalTilemap:: ; 86193 (21:6193) db $03 ; width db $03 ; height dw $0000 - db $01 + db TRUE ; cgb mode INCBIN "data/maps/map64.bin" @@ -239,7 +239,7 @@ WaterMedalTilemap:: ; 861a9 (21:61a9) db $03 ; width db $03 ; height dw $0000 - db $01 + db TRUE ; cgb mode INCBIN "data/maps/map65.bin" @@ -247,7 +247,7 @@ LightningMedalTilemap:: ; 861bf (21:61bf) db $03 ; width db $03 ; height dw $0000 - db $01 + db TRUE ; cgb mode INCBIN "data/maps/map66.bin" @@ -255,7 +255,7 @@ FightingMedalTilemap:: ; 861d5 (21:61d5) db $03 ; width db $03 ; height dw $0000 - db $01 + db TRUE ; cgb mode INCBIN "data/maps/map67.bin" @@ -263,7 +263,7 @@ RockMedalTilemap:: ; 861eb (21:61eb) db $03 ; width db $03 ; height dw $0000 - db $01 + db TRUE ; cgb mode INCBIN "data/maps/map68.bin" @@ -271,7 +271,7 @@ PsychicMedalTilemap:: ; 86201 (21:6201) db $03 ; width db $03 ; height dw $0000 - db $01 + db TRUE ; cgb mode INCBIN "data/maps/map69.bin" @@ -279,7 +279,7 @@ GameBoyLinkCGBTilemap:: ; 86217 (21:6217) db $14 ; width db $12 ; height dw $0000 - db $01 + db TRUE ; cgb mode INCBIN "data/maps/map70.bin" @@ -287,7 +287,7 @@ GameBoyLinkTilemap:: ; 862da (21:62da) db $14 ; width db $12 ; height dw $0000 - db $00 + db FALSE ; cgb mode INCBIN "data/maps/map71.bin" @@ -295,7 +295,7 @@ GameBoyLinkConnectingCGBTilemap:: ; 86364 (21:6364) db $14 ; width db $12 ; height dw $0000 - db $01 + db TRUE ; cgb mode INCBIN "data/maps/map72.bin" @@ -303,7 +303,7 @@ GameBoyLinkConnectingTilemap:: ; 86443 (21:6443) db $14 ; width db $12 ; height dw $0000 - db $00 + db FALSE ; cgb mode INCBIN "data/maps/map73.bin" @@ -311,7 +311,7 @@ GameBoyPrinterCGBTilemap:: ; 864df (21:64df) db $14 ; width db $12 ; height dw $0000 - db $01 + db TRUE ; cgb mode INCBIN "data/maps/map74.bin" @@ -319,7 +319,7 @@ GameBoyPrinterTilemap:: ; 865b5 (21:65b5) db $14 ; width db $12 ; height dw $0000 - db $00 + db FALSE ; cgb mode INCBIN "data/maps/map75.bin" @@ -327,7 +327,7 @@ ColosseumTilemap:: ; 86647 (21:6647) db $08 ; width db $0c ; height dw $0000 - db $00 + db FALSE ; cgb mode INCBIN "data/maps/map76.bin" @@ -335,7 +335,7 @@ ColosseumCGBTilemap:: ; 866b8 (21:66b8) db $08 ; width db $0c ; height dw $0000 - db $01 + db TRUE ; cgb mode INCBIN "data/maps/map77.bin" @@ -343,7 +343,7 @@ EvolutionTilemap:: ; 8673e (21:673e) db $08 ; width db $0c ; height dw $0000 - db $00 + db FALSE ; cgb mode INCBIN "data/maps/map78.bin" @@ -351,7 +351,7 @@ EvolutionCGBTilemap:: ; 867af (21:67af) db $08 ; width db $0c ; height dw $0000 - db $01 + db TRUE ; cgb mode INCBIN "data/maps/map79.bin" @@ -359,7 +359,7 @@ MysteryTilemap:: ; 86833 (21:6833) db $08 ; width db $0c ; height dw $0000 - db $00 + db FALSE ; cgb mode INCBIN "data/maps/map80.bin" @@ -367,7 +367,7 @@ MysteryCGBTilemap:: ; 868a4 (21:68a4) db $08 ; width db $0c ; height dw $0000 - db $01 + db TRUE ; cgb mode INCBIN "data/maps/map81.bin" @@ -375,7 +375,7 @@ LaboratoryTilemap:: ; 86925 (21:6925) db $08 ; width db $0c ; height dw $0000 - db $00 + db FALSE ; cgb mode INCBIN "data/maps/map82.bin" @@ -383,7 +383,7 @@ LaboratoryCGBTilemap:: ; 86996 (21:6996) db $08 ; width db $0c ; height dw $0000 - db $01 + db TRUE ; cgb mode INCBIN "data/maps/map83.bin" @@ -391,7 +391,7 @@ CharizardIntroTilemap:: ; 86a14 (21:6a14) db $08 ; width db $0c ; height dw $0000 - db $00 + db FALSE ; cgb mode INCBIN "data/maps/map84.bin" @@ -399,7 +399,7 @@ CharizardIntroCGBTilemap:: ; 86a85 (21:6a85) db $08 ; width db $0c ; height dw $0000 - db $01 + db TRUE ; cgb mode INCBIN "data/maps/map85.bin" @@ -407,7 +407,7 @@ ScytherIntroTilemap:: ; 86b28 (21:6b28) db $08 ; width db $0c ; height dw $0000 - db $00 + db FALSE ; cgb mode INCBIN "data/maps/map86.bin" @@ -415,7 +415,7 @@ ScytherIntroCGBTilemap:: ; 86b99 (21:6b99) db $08 ; width db $0c ; height dw $0000 - db $01 + db TRUE ; cgb mode INCBIN "data/maps/map87.bin" @@ -423,7 +423,7 @@ AerodactylIntroTilemap:: ; 86c34 (21:6c34) db $08 ; width db $0c ; height dw $0000 - db $00 + db FALSE ; cgb mode INCBIN "data/maps/map88.bin" @@ -431,7 +431,7 @@ AerodactylIntroCGBTilemap:: ; 86ca5 (21:6ca5) db $08 ; width db $0c ; height dw $0000 - db $01 + db TRUE ; cgb mode INCBIN "data/maps/map89.bin" @@ -439,7 +439,7 @@ TitleScreen1Tilemap:: ; 86d37 (21:6d37) db $14 ; width db $12 ; height dw $0000 - db $00 + db FALSE ; cgb mode INCBIN "data/maps/map90.bin" @@ -447,7 +447,7 @@ TitleScreen2Tilemap:: ; 86dcc (21:6dcc) db $14 ; width db $12 ; height dw $0000 - db $01 + db TRUE ; cgb mode INCBIN "data/maps/map91.bin" @@ -455,7 +455,7 @@ SolidTiles1Tilemap:: ; 86e8a (21:6e8a) db $14 ; width db $12 ; height dw $0000 - db $01 + db TRUE ; cgb mode INCBIN "data/maps/map92.bin" @@ -463,7 +463,7 @@ SolidTiles2Tilemap:: ; 86f18 (21:6f18) db $14 ; width db $12 ; height dw $0000 - db $01 + db TRUE ; cgb mode INCBIN "data/maps/map93.bin" @@ -471,7 +471,7 @@ SolidTiles3Tilemap:: ; 86fc0 (21:6fc0) db $14 ; width db $12 ; height dw $0000 - db $01 + db TRUE ; cgb mode INCBIN "data/maps/map94.bin" @@ -479,7 +479,7 @@ TitleScreen3Tilemap:: ; 8704f (21:704f) db $14 ; width db $12 ; height dw $0000 - db $00 + db FALSE ; cgb mode INCBIN "data/maps/map95.bin" @@ -487,7 +487,7 @@ TitleScreen4Tilemap:: ; 871a5 (21:71a5) db $14 ; width db $12 ; height dw $0000 - db $01 + db TRUE ; cgb mode INCBIN "data/maps/map96.bin" @@ -495,7 +495,7 @@ SolidTiles4Tilemap:: ; 87397 (21:7397) db $08 ; width db $04 ; height dw $0000 - db $01 + db TRUE ; cgb mode INCBIN "data/maps/map97.bin" @@ -503,7 +503,7 @@ PlayerTilemap:: ; 873b7 (21:73b7) db $06 ; width db $06 ; height dw $0000 - db $00 + db FALSE ; cgb mode INCBIN "data/maps/map98.bin" @@ -511,7 +511,7 @@ OpponentTilemap:: ; 873e5 (21:73e5) db $06 ; width db $06 ; height dw $0000 - db $00 + db FALSE ; cgb mode INCBIN "data/maps/map99.bin" @@ -519,7 +519,7 @@ TitleScreen5Tilemap:: ; 87413 (21:7413) db $14 ; width db $12 ; height dw $0000 - db $00 + db FALSE ; cgb mode INCBIN "data/maps/map100.bin" @@ -527,7 +527,7 @@ TitleScreen6Tilemap:: ; 87538 (21:7538) db $14 ; width db $12 ; height dw $0000 - db $01 + db TRUE ; cgb mode INCBIN "data/maps/map101.bin" @@ -535,7 +535,7 @@ CopyrightTilemap:: ; 8769f (21:769f) db $14 ; width db $12 ; height dw $0000 - db $00 + db FALSE ; cgb mode INCBIN "data/maps/map102.bin" @@ -543,7 +543,7 @@ CopyrightCGBTilemap:: ; 876f6 (21:76f6) db $14 ; width db $12 ; height dw $0000 - db $01 + db TRUE ; cgb mode INCBIN "data/maps/map103.bin" @@ -551,7 +551,7 @@ NintendoTilemap:: ; 8777c (21:777c) db $14 ; width db $12 ; height dw $0000 - db $00 + db FALSE ; cgb mode INCBIN "data/maps/map104.bin" @@ -559,7 +559,7 @@ CompaniesTilemap:: ; 877c4 (21:77c4) db $14 ; width db $12 ; height dw $0000 - db $00 + db FALSE ; cgb mode INCBIN "data/maps/map105.bin" diff --git a/src/sram.asm b/src/sram.asm index f8d77fb..f2ffbf2 100644 --- a/src/sram.asm +++ b/src/sram.asm @@ -200,9 +200,9 @@ sba68:: ; ba68 SECTION "SRAM1", SRAM ; from VRAM0 -s0BGMap:: ds $400 ; a000 +sBGMap0:: ds $400 ; a000 ; from VRAM1 -s1BGMap:: ds $400 ; a400 +sBGMap1:: ds $400 ; a400 SECTION "SRAM2", SRAM diff --git a/src/wram.asm b/src/wram.asm index e5f8b9c..de91ebd 100644 --- a/src/wram.asm +++ b/src/wram.asm @@ -2167,10 +2167,15 @@ wd238:: ; d238 wCurTileset:: ; d239 ds $1 -wd23a:: ; d23a +; pointer to compressed data +; of the current map's permission map +wBGMapPermissionDataPtr:: ; d23a ds $2 -wd23c:: ; d23c +; whether the BG Map is in CGB mode +; this means half of the width is for +; VRAM0 and the other half is for VRAM1 +wBGMapCGBMode:: ; d23c ds $1 wd23d:: ; d23d |