Tiles can have different attributes in different blocks

This commit is contained in:
Zeta_Null 2023-09-13 12:44:30 -04:00
parent 94d9c77070
commit 820c2257bc
374 changed files with 554 additions and 348 deletions

View file

@ -123,6 +123,8 @@
charmap "└", $be
charmap "┘", $bf
charmap "+", $cd
charmap "", $ce
charmap "″", $cf

View file

@ -39,7 +39,7 @@
DEF NUM_TILESETS EQU const_value - 1
; wTileset struct size
DEF TILESET_LENGTH EQU 15
DEF TILESET_LENGTH EQU 14
; roof length (see gfx/tilesets/roofs)
DEF ROOF_LENGTH EQU 9

File diff suppressed because it is too large Load diff

View file

@ -1,8 +1,6 @@
MACRO tileset
dba \1GFX, \1Meta, \1Coll
dba \1GFX, \1Meta, \1Coll, \1Attr
dw \1Anim
dw NULL
dw \1PalMap
ENDM
; Associated data:

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1 @@


Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -1,3 +1,4 @@
,-<=
II "#23$%45*+>?>?*+ !01JK Ж./悜憫悜憫惏辈惗犯*;;;>?>?>?;;;;&'67()89@AB+PQRECD\]STU VWVWXYXYZ[Z[ PQPQPQPQ^_^_呐魄哉肿壬仕貞憫*+>?>?,-<=*;;;>?>?::>?::;;;+>?::>?::>?>?:: ::>? F:F:F::G:G:G"#23$%45 LMLMLMLMNONO !HH01HH>?HH>?HHHH&'HH67HH()HH89枛枛枛枛枛枛枛枛 
II *+PQ>?PQ>?^_HH&'HH67HH()HH89/HHHHHHHHHHHHHHHHHHHH HHHHHHHHHHHHHHHH;;;;&'67()89>?>?.懒旅醒矣悜仝悜圮亖亖憫憫憫憫憫憫悜"#悜23悜$%悜媽悜憫悜憫牎 枛枛憫憫憫憫  枛枛憫櫄憫┆ 、枛枛憫憭憫憭憫櫄憫┆亖亗憫憭憫憭憫憭<E686AB><E686AD>憫憫憫憫憫憫亖亖憫憫憫噲憫棙憫憫憫憫憫憫憫憫儎厗摂敃  枛枛亖仠帋幀灋灛瑳亖伀崕帿灋灚<E7818B><01><>憫憫憫憫憫憫惏辈惞撼惢嫉惤靖
II "#23$%45*+>?>?*+ !01JK 
'(./012678*;;;>?>?>?;;;;&'67()89@AB+PQRECD\]STU VWVWXYXYZ[Z[ PQPQPQPQ^_^_DEFGTUVWHIJKX*+>?>?,-<=*;;;>?>?::>?::;;;+>?::>?::>?>?:: ::>? F:F:F::G:G:G"#23$%45 LMLMLMLMNONO !HH01HH>?HH>?HHHH&'HH67HH()HH89 
II *+PQ>?PQ>?^_HH&'HH67HH()HH89/HHHHHHHHHHHHHHHHHHHH HHHHHHHHHHHHHHHH;;;;&'67()89>?>?.@ABCPQRSYZ[\"#23$%  !!!!!!!)*!!!")*.///!!!!,,,+ ++///-0129:3;<5=>8

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -1,4 +1,4 @@
""""!!!!1111111111111111    ""  !!!!+,--9::3#$%./02;<=>&'()345?@AB*678CDE+,-39:PQXYZFGHIRRSSZ[\\IJKLT,-U]^^^MNOVW_˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙""""""""
""""!!!!1111111111111111    ""  !!!!+,--9::3#$%./02;<=>&'()345?@AB*678CDE+,-39:PQXYZFGHIRRSSZ[\\IJKLT,-U]^^^MNOVW_""""""""
@ -62,4 +62,4 @@

˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙


Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -1,2 +1,2 @@
 @ !!A1A1!!!!!!@ A1A1
A1A1A1A1A1A1A1A1A1A1!!!!!!!!A1A1!!!! -.=><>MN./>?,NO()89*+:;()89*+:;MN]^NO^_A1A1@ !!A1A1!!@ !!!!^^^^"#23&'67"#23&'67PQPQPQPQPQPQPQPQ$$$$  "#23!!67"#!!2367%545%545%545%545 ^^  ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙FV GW PQPQRSRSBCHZ[!XL\67IBCY!Z[L\67JKZ[L\67JKZ[L\67DETU!!!!PPPPPPPPFV   GW 
A1A1A1A1A1A1A1A1A1A1!!!!!!!!A1A1!!!! -.=><>MN./>?,NO()89*+:;()89*+:;MN]^NO^_A1A1@ !!A1A1!!@ !!!!^^^^"#23&'67"#23&'67PQPQPQPQPQPQPQPQ$$$$  "#23!!67"#!!2367%545%545%545%545 ^^  FV GW PQPQRSRSBCHZ[!XL\67IBCY!Z[L\67JKZ[L\67JKZ[L\67DETU!!!!PPPPPPPPFV   GW 

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -1,5 +1,10 @@
_LoadMapPart::
ld hl, wSurroundingTiles
decoord 0, 0
call .copy
ld hl, wSurroundingAttributes
decoord 0, 0, wAttrmap
.copy
ld a, [wPlayerMetatileY]
and a
jr z, .top_row
@ -14,7 +19,10 @@ _LoadMapPart::
inc hl
.left_column
decoord 0, 0
ldh a, [rSVBK]
push af
ld a, BANK("Surrounding Data")
ldh [rSVBK], a
ld b, SCREEN_HEIGHT
.loop
ld c, SCREEN_WIDTH
@ -33,4 +41,6 @@ _LoadMapPart::
.carry
dec b
jr nz, .loop
pop af
ldh [rSVBK], a
ret

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 2 KiB

View file

@ -335,3 +335,119 @@ INCBIN "data/tilesets/omanyte_word_room_metatiles.bin"
TilesetAerodactylWordRoomMeta::
INCBIN "data/tilesets/aerodactyl_word_room_metatiles.bin"
SECTION "Tileset Data 9", ROMX
Tileset0Attr::
TilesetJohtoAttr::
INCBIN "data/tilesets/johto_attributes.bin"
TilesetJohtoModernAttr::
INCBIN "data/tilesets/johto_modern_attributes.bin"
TilesetKantoAttr::
INCBIN "data/tilesets/kanto_attributes.bin"
TilesetBattleTowerOutsideAttr::
INCBIN "data/tilesets/battle_tower_outside_attributes.bin"
TilesetHouseAttr::
INCBIN "data/tilesets/house_attributes.bin"
TilesetPlayersHouseAttr::
INCBIN "data/tilesets/players_house_attributes.bin"
TilesetPokecenterAttr::
INCBIN "data/tilesets/pokecenter_attributes.bin"
TilesetGateAttr::
INCBIN "data/tilesets/gate_attributes.bin"
TilesetPortAttr::
INCBIN "data/tilesets/port_attributes.bin"
TilesetLabAttr::
INCBIN "data/tilesets/lab_attributes.bin"
SECTION "Tileset Data 10", ROMX
TilesetFacilityAttr::
INCBIN "data/tilesets/facility_attributes.bin"
TilesetMartAttr::
INCBIN "data/tilesets/mart_attributes.bin"
TilesetMansionAttr::
INCBIN "data/tilesets/mansion_attributes.bin"
TilesetGameCornerAttr::
INCBIN "data/tilesets/game_corner_attributes.bin"
TilesetEliteFourRoomAttr::
INCBIN "data/tilesets/elite_four_room_attributes.bin"
TilesetTraditionalHouseAttr::
INCBIN "data/tilesets/traditional_house_attributes.bin"
TilesetTrainStationAttr::
INCBIN "data/tilesets/train_station_attributes.bin"
TilesetChampionsRoomAttr::
INCBIN "data/tilesets/champions_room_attributes.bin"
TilesetLighthouseAttr::
INCBIN "data/tilesets/lighthouse_attributes.bin"
TilesetPlayersRoomAttr::
INCBIN "data/tilesets/players_room_attributes.bin"
TilesetPokeComCenterAttr::
INCBIN "data/tilesets/pokecom_center_attributes.bin"
TilesetBattleTowerInsideAttr::
INCBIN "data/tilesets/battle_tower_inside_attributes.bin"
TilesetTowerAttr::
INCBIN "data/tilesets/tower_attributes.bin"
SECTION "Tileset Data 11", ROMX
TilesetCaveAttr::
TilesetDarkCaveAttr::
INCBIN "data/tilesets/cave_attributes.bin"
TilesetParkAttr::
INCBIN "data/tilesets/park_attributes.bin"
TilesetRuinsOfAlphAttr::
INCBIN "data/tilesets/ruins_of_alph_attributes.bin"
TilesetRadioTowerAttr::
INCBIN "data/tilesets/radio_tower_attributes.bin"
TilesetUndergroundAttr::
INCBIN "data/tilesets/underground_attributes.bin"
TilesetIcePathAttr::
INCBIN "data/tilesets/ice_path_attributes.bin"
TilesetForestAttr::
INCBIN "data/tilesets/forest_attributes.bin"
TilesetBetaWordRoomAttr::
INCBIN "data/tilesets/beta_word_room_attributes.bin"
TilesetHoOhWordRoomAttr::
INCBIN "data/tilesets/ho_oh_word_room_attributes.bin"
TilesetKabutoWordRoomAttr::
INCBIN "data/tilesets/kabuto_word_room_attributes.bin"
TilesetOmanyteWordRoomAttr::
INCBIN "data/tilesets/omanyte_word_room_attributes.bin"
TilesetAerodactylWordRoomAttr::
INCBIN "data/tilesets/aerodactyl_word_room_attributes.bin"

View file

@ -90,8 +90,7 @@ GetMapSceneID::
ret
OverworldTextModeSwitch::
call LoadMapPart
jp SwapTextboxPalettes
; fallthrough
LoadMapPart::
ldh a, [hROMBank]
@ -106,6 +105,10 @@ LoadMapPart::
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
call ByteFill
ld a, [wTilesetAttributesBank]
rst Bankswitch
call LoadMetatileAttributes
ld a, BANK(_LoadMapPart)
rst Bankswitch
call _LoadMapPart
@ -115,12 +118,27 @@ LoadMapPart::
ret
LoadMetatiles::
ld hl, wSurroundingTiles
ld de, wTilesetBlocksAddress
jr _LoadMetatilesOrAttributes
LoadMetatileAttributes::
ld hl, wSurroundingAttributes
ld de, wTilesetAttributesAddress
; fallthrough
_LoadMetatilesOrAttributes:
ld a, [de]
ld [wTilesetDataAddress], a
inc de
ld a, [de]
ld [wTilesetDataAddress + 1], a
; de <- wOverworldMapAnchor
ld a, [wOverworldMapAnchor]
ld e, a
ld a, [wOverworldMapAnchor + 1]
ld d, a
ld hl, wSurroundingTiles
ld b, SCREEN_META_HEIGHT
.row
@ -143,20 +161,24 @@ LoadMetatiles::
ld e, l
ld d, h
; Set hl to the address of the current metatile data ([wTilesetBlocksAddress] + (a) tiles).
; BUG: LoadMetatiles wraps around past 128 blocks (see docs/bugs_and_glitches.md)
add a
ld l, a
ld h, 0
add hl, hl
add hl, hl
add hl, hl
ld a, [wTilesetBlocksAddress]
add hl, hl
ld a, [wTilesetDataAddress]
add l
ld l, a
ld a, [wTilesetBlocksAddress + 1]
ld a, [wTilesetDataAddress + 1]
adc h
ld h, a
ldh a, [rSVBK]
push af
ld a, BANK("Surrounding Data")
ldh [rSVBK], a
; copy the 4x4 metatile
rept METATILE_WIDTH - 1
rept METATILE_WIDTH
@ -176,6 +198,10 @@ rept METATILE_WIDTH
ld [de], a
inc de
endr
pop af
ldh [rSVBK], a
; Next metatile
pop hl
ld de, METATILE_WIDTH
@ -1143,8 +1169,9 @@ ScrollMapUp::
hlcoord 0, 0
ld de, wBGMapBuffer
call BackupBGMapRow
ld c, 2 * SCREEN_WIDTH
call ScrollBGMapPalettes
hlcoord 0, 0, wAttrmap
ld de, wBGMapPalBuffer
call BackupBGMapRow
ld a, [wBGMapAnchor]
ld e, a
ld a, [wBGMapAnchor + 1]
@ -1158,8 +1185,9 @@ ScrollMapDown::
hlcoord 0, SCREEN_HEIGHT - 2
ld de, wBGMapBuffer
call BackupBGMapRow
ld c, 2 * SCREEN_WIDTH
call ScrollBGMapPalettes
hlcoord 0, SCREEN_HEIGHT - 2, wAttrmap
ld de, wBGMapPalBuffer
call BackupBGMapRow
ld a, [wBGMapAnchor]
ld l, a
ld a, [wBGMapAnchor + 1]
@ -1181,8 +1209,9 @@ ScrollMapLeft::
hlcoord 0, 0
ld de, wBGMapBuffer
call BackupBGMapColumn
ld c, 2 * SCREEN_HEIGHT
call ScrollBGMapPalettes
hlcoord 0, 0, wAttrmap
ld de, wBGMapPalBuffer
call BackupBGMapColumn
ld a, [wBGMapAnchor]
ld e, a
ld a, [wBGMapAnchor + 1]
@ -1196,8 +1225,9 @@ ScrollMapRight::
hlcoord SCREEN_WIDTH - 2, 0
ld de, wBGMapBuffer
call BackupBGMapColumn
ld c, 2 * SCREEN_HEIGHT
call ScrollBGMapPalettes
hlcoord SCREEN_WIDTH - 2, 0, wAttrmap
ld de, wBGMapPalBuffer
call BackupBGMapColumn
ld a, [wBGMapAnchor]
ld e, a
and %11100000

View file

@ -319,11 +319,3 @@ ReloadSpritesNoPalettes::
ld a, TRUE
ldh [hCGBPalUpdate], a
jp DelayFrame
SwapTextboxPalettes::
homecall _SwapTextboxPalettes
ret
ScrollBGMapPalettes::
homecall _ScrollBGMapPalettes
ret

View file

@ -343,6 +343,7 @@ WRAMX 1
"Party"
WRAMX 2
"Pic Animations"
"Surrounding Data"
align 8
"16-bit WRAM tables"
WRAMX 3

View file

@ -190,8 +190,6 @@ INCLUDE "engine/events/buena_menu.asm"
SECTION "bank13", ROMX
INCLUDE "engine/tilesets/map_palettes.asm"
INCLUDE "gfx/tileset_palette_maps.asm"
INCLUDE "data/collision/collision_permissions.asm"
INCLUDE "engine/menus/empty_sram.asm"
INCLUDE "engine/menus/savemenu_copytilemapatonce.asm"

Some files were not shown because too many files have changed in this diff Show more