mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2025-01-23 09:16:20 -08:00
commit
14567c2bee
3
hram.asm
3
hram.asm
@ -24,6 +24,9 @@ hJoyReleased EQU $ffa6
|
|||||||
hJoyPressed EQU $ffa7
|
hJoyPressed EQU $ffa7
|
||||||
hJoyDown EQU $ffa8
|
hJoyDown EQU $ffa8
|
||||||
|
|
||||||
|
hConnectionStripLength EQU $ffaf
|
||||||
|
hConnectedMapWidth EQU $ffb0
|
||||||
|
|
||||||
hPastLeadingZeroes EQU $ffb3
|
hPastLeadingZeroes EQU $ffb3
|
||||||
|
|
||||||
hDividend EQU $ffb3
|
hDividend EQU $ffb3
|
||||||
|
388
main.asm
388
main.asm
@ -2493,7 +2493,204 @@ UpdateGameTimer: ; 20ad
|
|||||||
ret
|
ret
|
||||||
; 210f
|
; 210f
|
||||||
|
|
||||||
INCBIN "baserom.gbc", $210f, $261f - $210f
|
|
||||||
|
INCBIN "baserom.gbc", $210f, $23a3 - $210f
|
||||||
|
|
||||||
|
|
||||||
|
GetMapConnection: ; 23a3
|
||||||
|
; Load map connection struct at hl into de.
|
||||||
|
ld c, SouthMapConnection - NorthMapConnection
|
||||||
|
.loop
|
||||||
|
ld a, [hli]
|
||||||
|
ld [de], a
|
||||||
|
inc de
|
||||||
|
dec c
|
||||||
|
jr nz, .loop
|
||||||
|
ret
|
||||||
|
; 23ac
|
||||||
|
|
||||||
|
|
||||||
|
INCBIN "baserom.gbc", $23ac, $2524 - $23ac
|
||||||
|
|
||||||
|
|
||||||
|
FillMapConnections: ; 2524
|
||||||
|
|
||||||
|
; North
|
||||||
|
ld a, [NorthConnectedMapGroup]
|
||||||
|
cp $ff
|
||||||
|
jr z, .South
|
||||||
|
ld b, a
|
||||||
|
ld a, [NorthConnectedMapNumber]
|
||||||
|
ld c, a
|
||||||
|
call GetAnyMapBlockdataBank
|
||||||
|
|
||||||
|
ld a, [NorthConnectionStripPointer]
|
||||||
|
ld l, a
|
||||||
|
ld a, [NorthConnectionStripPointer + 1]
|
||||||
|
ld h, a
|
||||||
|
ld a, [NorthConnectionStripLocation]
|
||||||
|
ld e, a
|
||||||
|
ld a, [NorthConnectionStripLocation + 1]
|
||||||
|
ld d, a
|
||||||
|
ld a, [NorthConnectionStripLength]
|
||||||
|
ld [hConnectionStripLength], a
|
||||||
|
ld a, [NorthConnectedMapWidth]
|
||||||
|
ld [hConnectedMapWidth], a
|
||||||
|
call FillNorthConnectionStrip
|
||||||
|
|
||||||
|
.South
|
||||||
|
ld a, [SouthConnectedMapGroup]
|
||||||
|
cp $ff
|
||||||
|
jr z, .West
|
||||||
|
ld b, a
|
||||||
|
ld a, [SouthConnectedMapNumber]
|
||||||
|
ld c, a
|
||||||
|
call GetAnyMapBlockdataBank
|
||||||
|
|
||||||
|
ld a, [SouthConnectionStripPointer]
|
||||||
|
ld l, a
|
||||||
|
ld a, [SouthConnectionStripPointer + 1]
|
||||||
|
ld h, a
|
||||||
|
ld a, [SouthConnectionStripLocation]
|
||||||
|
ld e, a
|
||||||
|
ld a, [SouthConnectionStripLocation + 1]
|
||||||
|
ld d, a
|
||||||
|
ld a, [SouthConnectionStripLength]
|
||||||
|
ld [hConnectionStripLength], a
|
||||||
|
ld a, [SouthConnectedMapWidth]
|
||||||
|
ld [hConnectedMapWidth], a
|
||||||
|
call FillSouthConnectionStrip
|
||||||
|
|
||||||
|
.West
|
||||||
|
ld a, [WestConnectedMapGroup]
|
||||||
|
cp $ff
|
||||||
|
jr z, .East
|
||||||
|
ld b, a
|
||||||
|
ld a, [WestConnectedMapNumber]
|
||||||
|
ld c, a
|
||||||
|
call GetAnyMapBlockdataBank
|
||||||
|
|
||||||
|
ld a, [WestConnectionStripPointer]
|
||||||
|
ld l, a
|
||||||
|
ld a, [WestConnectionStripPointer + 1]
|
||||||
|
ld h, a
|
||||||
|
ld a, [WestConnectionStripLocation]
|
||||||
|
ld e, a
|
||||||
|
ld a, [WestConnectionStripLocation + 1]
|
||||||
|
ld d, a
|
||||||
|
ld a, [WestConnectionStripLength]
|
||||||
|
ld b, a
|
||||||
|
ld a, [WestConnectedMapWidth]
|
||||||
|
ld [hConnectionStripLength], a
|
||||||
|
call FillWestConnectionStrip
|
||||||
|
|
||||||
|
.East
|
||||||
|
ld a, [EastConnectedMapGroup]
|
||||||
|
cp $ff
|
||||||
|
jr z, .Done
|
||||||
|
ld b, a
|
||||||
|
ld a, [EastConnectedMapNumber]
|
||||||
|
ld c, a
|
||||||
|
call GetAnyMapBlockdataBank
|
||||||
|
|
||||||
|
ld a, [EastConnectionStripPointer]
|
||||||
|
ld l, a
|
||||||
|
ld a, [EastConnectionStripPointer + 1]
|
||||||
|
ld h, a
|
||||||
|
ld a, [EastConnectionStripLocation]
|
||||||
|
ld e, a
|
||||||
|
ld a, [EastConnectionStripLocation + 1]
|
||||||
|
ld d, a
|
||||||
|
ld a, [EastConnectionStripLength]
|
||||||
|
ld b, a
|
||||||
|
ld a, [EastConnectedMapWidth]
|
||||||
|
ld [hConnectionStripLength], a
|
||||||
|
call FillEastConnectionStrip
|
||||||
|
|
||||||
|
.Done
|
||||||
|
ret
|
||||||
|
; 25d3
|
||||||
|
|
||||||
|
|
||||||
|
FillNorthConnectionStrip:
|
||||||
|
FillSouthConnectionStrip: ; 25d3
|
||||||
|
|
||||||
|
ld c, 3
|
||||||
|
.y
|
||||||
|
push de
|
||||||
|
|
||||||
|
push hl
|
||||||
|
ld a, [hConnectionStripLength]
|
||||||
|
ld b, a
|
||||||
|
.x
|
||||||
|
ld a, [hli]
|
||||||
|
ld [de], a
|
||||||
|
inc de
|
||||||
|
dec b
|
||||||
|
jr nz, .x
|
||||||
|
pop hl
|
||||||
|
|
||||||
|
ld a, [hConnectedMapWidth]
|
||||||
|
ld e, a
|
||||||
|
ld d, 0
|
||||||
|
add hl, de
|
||||||
|
pop de
|
||||||
|
|
||||||
|
ld a, [$d19f]
|
||||||
|
add 6
|
||||||
|
add e
|
||||||
|
ld e, a
|
||||||
|
jr nc, .asm_25f2
|
||||||
|
inc d
|
||||||
|
.asm_25f2
|
||||||
|
dec c
|
||||||
|
jr nz, .y
|
||||||
|
ret
|
||||||
|
; 25f6
|
||||||
|
|
||||||
|
|
||||||
|
FillWestConnectionStrip:
|
||||||
|
FillEastConnectionStrip: ; 25f6
|
||||||
|
|
||||||
|
.asm_25f6
|
||||||
|
ld a, [$d19f]
|
||||||
|
add 6
|
||||||
|
ld [hConnectedMapWidth], a
|
||||||
|
|
||||||
|
push de
|
||||||
|
|
||||||
|
push hl
|
||||||
|
ld a, [hli]
|
||||||
|
ld [de], a
|
||||||
|
inc de
|
||||||
|
ld a, [hli]
|
||||||
|
ld [de], a
|
||||||
|
inc de
|
||||||
|
ld a, [hli]
|
||||||
|
ld [de], a
|
||||||
|
inc de
|
||||||
|
pop hl
|
||||||
|
|
||||||
|
ld a, [hConnectionStripLength]
|
||||||
|
ld e, a
|
||||||
|
ld d, 0
|
||||||
|
add hl, de
|
||||||
|
pop de
|
||||||
|
|
||||||
|
ld a, [hConnectedMapWidth]
|
||||||
|
add e
|
||||||
|
ld e, a
|
||||||
|
jr nc, .asm_2617
|
||||||
|
inc d
|
||||||
|
.asm_2617
|
||||||
|
dec b
|
||||||
|
jr nz, .asm_25f6
|
||||||
|
ret
|
||||||
|
; 261b
|
||||||
|
|
||||||
|
|
||||||
|
INCBIN "baserom.gbc", $261b, $261f - $261b
|
||||||
|
|
||||||
|
|
||||||
PushScriptPointer: ; 261f
|
PushScriptPointer: ; 261f
|
||||||
; used to call a script from asm
|
; used to call a script from asm
|
||||||
@ -2661,7 +2858,40 @@ GetAnyMapHeaderMember: ; 0x2c0c
|
|||||||
ret
|
ret
|
||||||
; 0x2c1c
|
; 0x2c1c
|
||||||
|
|
||||||
INCBIN "baserom.gbc", $2c1c, $2c7d-$2c1c
|
|
||||||
|
INCBIN "baserom.gbc", $2c1c, $2c5b - $2c1c
|
||||||
|
|
||||||
|
|
||||||
|
GetAnyMapBlockdataBank: ; 2c5b
|
||||||
|
; Return the blockdata bank for group b map c.
|
||||||
|
push hl
|
||||||
|
push de
|
||||||
|
push bc
|
||||||
|
|
||||||
|
push bc
|
||||||
|
ld de, 3 ; second map header pointer
|
||||||
|
call GetAnyMapHeaderMember
|
||||||
|
ld l, c
|
||||||
|
ld h, b
|
||||||
|
pop bc
|
||||||
|
|
||||||
|
push hl
|
||||||
|
ld de, 0 ; second map header bank
|
||||||
|
call GetAnyMapHeaderMember
|
||||||
|
pop hl
|
||||||
|
|
||||||
|
ld de, 3 ; blockdata bank
|
||||||
|
add hl, de
|
||||||
|
ld a, c
|
||||||
|
call GetFarByte
|
||||||
|
rst Bankswitch
|
||||||
|
|
||||||
|
pop bc
|
||||||
|
pop de
|
||||||
|
pop hl
|
||||||
|
ret
|
||||||
|
; 2c7d
|
||||||
|
|
||||||
|
|
||||||
GetSecondaryMapHeaderPointer: ; 0x2c7d
|
GetSecondaryMapHeaderPointer: ; 0x2c7d
|
||||||
; returns the current map's secondary map header pointer in hl.
|
; returns the current map's secondary map header pointer in hl.
|
||||||
@ -16567,7 +16797,159 @@ INCBIN "baserom.gbc", $104000, $104350 - $104000
|
|||||||
|
|
||||||
INCBIN "gfx/ow/misc.2bpp"
|
INCBIN "gfx/ow/misc.2bpp"
|
||||||
|
|
||||||
INCBIN "baserom.gbc", $1045b0, $105258 - $1045b0
|
|
||||||
|
INCBIN "baserom.gbc", $1045b0, $1045d6 - $1045b0
|
||||||
|
|
||||||
|
|
||||||
|
EnterMapConnection: ; 1045d6
|
||||||
|
; Return carry if a connection has been entered.
|
||||||
|
ld a, [$d151]
|
||||||
|
and a
|
||||||
|
jp z, EnterSouthConnection
|
||||||
|
cp 1
|
||||||
|
jp z, EnterNorthConnection
|
||||||
|
cp 2
|
||||||
|
jp z, EnterWestConnection
|
||||||
|
cp 3
|
||||||
|
jp z, EnterEastConnection
|
||||||
|
ret
|
||||||
|
; 1045ed
|
||||||
|
|
||||||
|
|
||||||
|
EnterWestConnection: ; 1045ed
|
||||||
|
ld a, [WestConnectedMapGroup]
|
||||||
|
ld [MapGroup], a
|
||||||
|
ld a, [WestConnectedMapNumber]
|
||||||
|
ld [MapNumber], a
|
||||||
|
ld a, [WestConnectionStripXOffset]
|
||||||
|
ld [XCoord], a
|
||||||
|
ld a, [WestConnectionStripYOffset]
|
||||||
|
ld hl, YCoord
|
||||||
|
add [hl]
|
||||||
|
ld [hl], a
|
||||||
|
ld c, a
|
||||||
|
ld hl, WestConnectionWindow
|
||||||
|
ld a, [hli]
|
||||||
|
ld h, [hl]
|
||||||
|
ld l, a
|
||||||
|
srl c
|
||||||
|
jr z, .asm_10461e
|
||||||
|
ld a, [WestConnectedMapWidth]
|
||||||
|
add 6
|
||||||
|
ld e, a
|
||||||
|
ld d, 0
|
||||||
|
|
||||||
|
.asm_10461a
|
||||||
|
add hl, de
|
||||||
|
dec c
|
||||||
|
jr nz, .asm_10461a
|
||||||
|
|
||||||
|
.asm_10461e
|
||||||
|
ld a, l
|
||||||
|
ld [$d194], a
|
||||||
|
ld a, h
|
||||||
|
ld [$d195], a
|
||||||
|
jp EnteredConnection
|
||||||
|
; 104629
|
||||||
|
|
||||||
|
|
||||||
|
EnterEastConnection: ; 104629
|
||||||
|
ld a, [EastConnectedMapGroup]
|
||||||
|
ld [MapGroup], a
|
||||||
|
ld a, [EastConnectedMapNumber]
|
||||||
|
ld [MapNumber], a
|
||||||
|
ld a, [EastConnectionStripXOffset]
|
||||||
|
ld [XCoord], a
|
||||||
|
ld a, [EastConnectionStripYOffset]
|
||||||
|
ld hl, YCoord
|
||||||
|
add [hl]
|
||||||
|
ld [hl], a
|
||||||
|
ld c, a
|
||||||
|
ld hl, EastConnectionWindow
|
||||||
|
ld a, [hli]
|
||||||
|
ld h, [hl]
|
||||||
|
ld l, a
|
||||||
|
srl c
|
||||||
|
jr z, .asm_10465a
|
||||||
|
ld a, [EastConnectedMapWidth]
|
||||||
|
add 6
|
||||||
|
ld e, a
|
||||||
|
ld d, 0
|
||||||
|
|
||||||
|
.asm_104656
|
||||||
|
add hl, de
|
||||||
|
dec c
|
||||||
|
jr nz, .asm_104656
|
||||||
|
|
||||||
|
.asm_10465a
|
||||||
|
ld a, l
|
||||||
|
ld [$d194], a
|
||||||
|
ld a, h
|
||||||
|
ld [$d195], a
|
||||||
|
jp EnteredConnection
|
||||||
|
; 104665
|
||||||
|
|
||||||
|
|
||||||
|
EnterNorthConnection: ; 104665
|
||||||
|
ld a, [NorthConnectedMapGroup]
|
||||||
|
ld [MapGroup], a
|
||||||
|
ld a, [NorthConnectedMapNumber]
|
||||||
|
ld [MapNumber], a
|
||||||
|
ld a, [NorthConnectionStripYOffset]
|
||||||
|
ld [YCoord], a
|
||||||
|
ld a, [NorthConnectionStripXOffset]
|
||||||
|
ld hl, XCoord
|
||||||
|
add [hl]
|
||||||
|
ld [hl], a
|
||||||
|
ld c, a
|
||||||
|
ld hl, NorthConnectionWindow
|
||||||
|
ld a, [hli]
|
||||||
|
ld h, [hl]
|
||||||
|
ld l, a
|
||||||
|
ld b, 0
|
||||||
|
srl c
|
||||||
|
add hl, bc
|
||||||
|
ld a, l
|
||||||
|
ld [$d194], a
|
||||||
|
ld a, h
|
||||||
|
ld [$d195], a
|
||||||
|
jp EnteredConnection
|
||||||
|
; 104696
|
||||||
|
|
||||||
|
|
||||||
|
EnterSouthConnection: ; 104696
|
||||||
|
ld a, [SouthConnectedMapGroup]
|
||||||
|
ld [MapGroup], a
|
||||||
|
ld a, [SouthConnectedMapNumber]
|
||||||
|
ld [MapNumber], a
|
||||||
|
ld a, [SouthConnectionStripYOffset]
|
||||||
|
ld [YCoord], a
|
||||||
|
ld a, [SouthConnectionStripXOffset]
|
||||||
|
ld hl, XCoord
|
||||||
|
add [hl]
|
||||||
|
ld [hl], a
|
||||||
|
ld c, a
|
||||||
|
ld hl, SouthConnectionWindow
|
||||||
|
ld a, [hli]
|
||||||
|
ld h, [hl]
|
||||||
|
ld l, a
|
||||||
|
ld b, 0
|
||||||
|
srl c
|
||||||
|
add hl, bc
|
||||||
|
ld a, l
|
||||||
|
ld [$d194], a
|
||||||
|
ld a, h
|
||||||
|
ld [$d195], a
|
||||||
|
; fallthrough
|
||||||
|
; 1046c4
|
||||||
|
|
||||||
|
EnteredConnection: ; 1046c4
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
; 1046c6
|
||||||
|
|
||||||
|
|
||||||
|
INCBIN "baserom.gbc", $1046c6, $105258 - $1046c6
|
||||||
|
|
||||||
MysteryGiftGFX:
|
MysteryGiftGFX:
|
||||||
INCBIN "gfx/misc/mystery_gift.2bpp"
|
INCBIN "gfx/misc/mystery_gift.2bpp"
|
||||||
|
86
wram.asm
86
wram.asm
@ -1030,7 +1030,91 @@ PartyMenuActionText ; d141
|
|||||||
CurPartyLevel: ; d143
|
CurPartyLevel: ; d143
|
||||||
ds 1
|
ds 1
|
||||||
|
|
||||||
ds 149
|
|
||||||
|
SECTION "connections",BSS[$d1a9]
|
||||||
|
|
||||||
|
MapConnections:
|
||||||
|
|
||||||
|
NorthMapConnection: ; d1a9
|
||||||
|
NorthConnectedMapGroup: ; d1a9
|
||||||
|
ds 1
|
||||||
|
NorthConnectedMapNumber: ; d1aa
|
||||||
|
ds 1
|
||||||
|
NorthConnectionStripPointer: ; d1ab
|
||||||
|
ds 2
|
||||||
|
NorthConnectionStripLocation: ; d1ad
|
||||||
|
ds 2
|
||||||
|
NorthConnectionStripLength: ; d1af
|
||||||
|
ds 1
|
||||||
|
NorthConnectedMapWidth: ; d1b0
|
||||||
|
ds 1
|
||||||
|
NorthConnectionStripYOffset: ; d1b1
|
||||||
|
ds 1
|
||||||
|
NorthConnectionStripXOffset: ; d1b2
|
||||||
|
ds 1
|
||||||
|
NorthConnectionWindow: ; d1b3
|
||||||
|
ds 2
|
||||||
|
|
||||||
|
SouthMapConnection: ; d1b5
|
||||||
|
SouthConnectedMapGroup: ; d1b5
|
||||||
|
ds 1
|
||||||
|
SouthConnectedMapNumber: ; d1b6
|
||||||
|
ds 1
|
||||||
|
SouthConnectionStripPointer: ; d1b7
|
||||||
|
ds 2
|
||||||
|
SouthConnectionStripLocation: ; d1b9
|
||||||
|
ds 2
|
||||||
|
SouthConnectionStripLength: ; d1bb
|
||||||
|
ds 1
|
||||||
|
SouthConnectedMapWidth: ; d1bc
|
||||||
|
ds 1
|
||||||
|
SouthConnectionStripYOffset: ; d1bd
|
||||||
|
ds 1
|
||||||
|
SouthConnectionStripXOffset: ; d1be
|
||||||
|
ds 1
|
||||||
|
SouthConnectionWindow: ; d1bf
|
||||||
|
ds 2
|
||||||
|
|
||||||
|
WestMapConnection: ; d1c1
|
||||||
|
WestConnectedMapGroup: ; d1c1
|
||||||
|
ds 1
|
||||||
|
WestConnectedMapNumber: ; d1c2
|
||||||
|
ds 1
|
||||||
|
WestConnectionStripPointer: ; d1c3
|
||||||
|
ds 2
|
||||||
|
WestConnectionStripLocation: ; d1c5
|
||||||
|
ds 2
|
||||||
|
WestConnectionStripLength: ; d1c7
|
||||||
|
ds 1
|
||||||
|
WestConnectedMapWidth: ; d1c8
|
||||||
|
ds 1
|
||||||
|
WestConnectionStripYOffset: ; d1c9
|
||||||
|
ds 1
|
||||||
|
WestConnectionStripXOffset: ; d1ca
|
||||||
|
ds 1
|
||||||
|
WestConnectionWindow: ; d1cb
|
||||||
|
ds 2
|
||||||
|
|
||||||
|
EastMapConnection: ; d1cd
|
||||||
|
EastConnectedMapGroup: ; d1cd
|
||||||
|
ds 1
|
||||||
|
EastConnectedMapNumber: ; d1ce
|
||||||
|
ds 1
|
||||||
|
EastConnectionStripPointer: ; d1cf
|
||||||
|
ds 2
|
||||||
|
EastConnectionStripLocation: ; d1d1
|
||||||
|
ds 2
|
||||||
|
EastConnectionStripLength: ; d1d3
|
||||||
|
ds 1
|
||||||
|
EastConnectedMapWidth: ; d1d4
|
||||||
|
ds 1
|
||||||
|
EastConnectionStripYOffset: ; d1d5
|
||||||
|
ds 1
|
||||||
|
EastConnectionStripXOffset: ; d1d6
|
||||||
|
ds 1
|
||||||
|
EastConnectionWindow: ; d1d7
|
||||||
|
ds 2
|
||||||
|
|
||||||
|
|
||||||
TileSetHeader:
|
TileSetHeader:
|
||||||
TileSetBank: ; d1d9
|
TileSetBank: ; d1d9
|
||||||
|
Loading…
x
Reference in New Issue
Block a user