mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2024-11-16 11:27:33 -08:00
commit
14567c2bee
3
hram.asm
3
hram.asm
@ -24,6 +24,9 @@ hJoyReleased EQU $ffa6
|
||||
hJoyPressed EQU $ffa7
|
||||
hJoyDown EQU $ffa8
|
||||
|
||||
hConnectionStripLength EQU $ffaf
|
||||
hConnectedMapWidth EQU $ffb0
|
||||
|
||||
hPastLeadingZeroes EQU $ffb3
|
||||
|
||||
hDividend EQU $ffb3
|
||||
|
388
main.asm
388
main.asm
@ -2493,7 +2493,204 @@ UpdateGameTimer: ; 20ad
|
||||
ret
|
||||
; 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
|
||||
; used to call a script from asm
|
||||
@ -2661,7 +2858,40 @@ GetAnyMapHeaderMember: ; 0x2c0c
|
||||
ret
|
||||
; 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
|
||||
; 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 "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:
|
||||
INCBIN "gfx/misc/mystery_gift.2bpp"
|
||||
|
86
wram.asm
86
wram.asm
@ -1030,7 +1030,91 @@ PartyMenuActionText ; d141
|
||||
CurPartyLevel: ; d143
|
||||
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:
|
||||
TileSetBank: ; d1d9
|
||||
|
Loading…
x
Reference in New Issue
Block a user