diff options
-rwxr-xr-x | engine/dumps/bank01.asm | 1689 | ||||
-rw-r--r-- | home/map_objects.asm | 2 | ||||
-rw-r--r-- | pokegold-spaceworld.link | 27 | ||||
-rwxr-xr-x | shim.sym | 37 |
4 files changed, 1717 insertions, 38 deletions
diff --git a/engine/dumps/bank01.asm b/engine/dumps/bank01.asm index 4b299ac..29cae37 100755 --- a/engine/dumps/bank01.asm +++ b/engine/dumps/bank01.asm @@ -1,3 +1,5 @@ +include "constants.asm" + SECTION "engine/dumps/bank01.asm@Function40fd", ROMX Function40fd: ; 01:40fd @@ -37,6 +39,74 @@ Function40fd: ; 01:40fd ld [wd2a0], a ret +SECTION "engine/dumps/bank01.asm@Table416b", ROMX + +Table416b: + dw Unknown41eb + dw Unknown4203 + dw Unknown41ef + dw Unknown4203 + dw Unknown41eb + dw Unknown4203 + dw Unknown41ef + dw Unknown420f + dw Unknown41f3 + dw Unknown4203 + dw Unknown41f7 + dw Unknown4203 + dw Unknown41f3 + dw Unknown4203 + dw Unknown41f7 + dw Unknown420f + dw Unknown41fb + dw Unknown4203 + dw Unknown41ff + dw Unknown4203 + dw Unknown41fb + dw Unknown4203 + dw Unknown41ff + dw Unknown4203 + dw Unknown41fb + dw Unknown420f + dw Unknown41ff + dw Unknown420f + dw Unknown41fb + dw Unknown420f + dw Unknown41ff + dw Unknown420f + dw Unknown41eb + dw Unknown4203 + dw Unknown41eb + dw Unknown4203 + dw Unknown41eb + dw Unknown4203 + dw Unknown41eb + dw Unknown4203 + dw Unknown41eb + dw Unknown4203 + dw Unknown41eb + dw Unknown4203 + dw Unknown41eb + dw Unknown4203 + dw Unknown41eb + dw Unknown4203 + dw Unknown41eb + dw Unknown4203 + dw Unknown41eb + dw Unknown4203 + dw Unknown41eb + dw Unknown4203 + dw Unknown41eb + dw Unknown4203 + dw Unknown41eb + dw Unknown4203 + dw Unknown41eb + dw Unknown4203 + dw Unknown41eb + dw Unknown4203 + dw Unknown41eb + dw Unknown4203 + SECTION "engine/dumps/bank01.asm@Function42db", ROMX Function42db: ; 01:42db @@ -98,8 +168,316 @@ Table4329:: dw Function446c dw Function4495 -SECTION "engine/dumps/bank01.asm@Function44f2", ROMX +Function4333: ; 01:4333 + ret + +Function4334: ; 01:4334 + ret + +Function4335: ; 01:4335 + push bc + ld h, b + ld l, c + ld bc, $0010 + xor a + call ByteFill + pop bc + ret + +Function4341: ; 01:4341 + ld hl, $000a + add hl, bc + inc [hl] + ret + +Function4347: ; 01:4347 + pop hl + ld e, [hl] + inc hl + ld d, [hl] + ld hl, $000a + add hl, bc + ld l, [hl] + ld h, $00 + add hl, hl + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp hl + +Function4358: ; 01:4358 + ld hl, $000a + add hl, bc + ld a, [hl] + add a + ld l, a + ld h, $00 + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp hl +Function4366: ; 01:4366 + push bc + ld hl, $0000 + add hl, bc + ld a, [hl] + dec a + call GetObjectStruct + ld d, b + ld e, c + pop bc + ret + +Function4374: ; 01:4374 + ld de, Table437a + jp Function4358 + +Table437a: ; 01:437a + dw Function437e + dw Function439b + +Function437e: ; 01:437e + call Function4341 + ld hl, $000e + add hl, bc + ld a, [hl] + ld hl, $000b + add hl, bc + ld [hl], a + ld hl, $0006 + add hl, bc + ld [hl], $00 + ld hl, $000f + add hl, bc + ld a, [hl] + ld hl, $0007 + add hl, bc + ld [hl], a + +Function439b: ; 01:439b + jp Function4402 + +Function439e: ; 01:439e + ld de, Table43a4 + jp Function4358 + +Table43a4: ; 01:43a4 + dw Function43a8 + dw Function43c6 + +Function43a8: ; 01:43a8 + call Function4341 + call Function4366 + ld hl, $0009 + add hl, de + ld a, [hl] + add a + dec a + ld hl, $000b + add hl, bc + ld [hl], a + ld hl, $0006 + add hl, bc + ld [hl], $00 + ld hl, $0007 + add hl, bc + ld [hl], $08 + +Function43c6: ; 01:43c6 + jp Function4402 + +Function43c9: ; 01:43c9 + ld de, Table43cf + jp Function4358 + +Table43cf: ; 01:43cf + dw Function43d3 + dw Function43ff + +Function43d3: ; 01:43d3 + call Function4366 + ld hl, $0009 + add hl, de + ld a, [hl] + add $01 + ld hl, $000b + add hl, bc + ld [hl], a + ld hl, $000e + add hl, bc + ld a, [hl] + ld hl, $0006 + add hl, bc + ld [hl], a + ld hl, $000f + add hl, bc + ld a, [hl] + ld hl, $0007 + add hl, bc + ld [hl], a + ld hl, $000d + add hl, bc + ldh a, [rOBP1] + ld [hl], a + ldh [rOBP1], a + +Function43ff: ; 01:43ff + jp Function4402 + +Function4402: ; 01:4402 + ld hl, $000b + add hl, bc + ld a, [hl] + and a + jr z, .sub_440e + dec [hl] + jp z, Function4335 +.sub_440e + call Function4366 + ld hl, $0018 + add hl, de + ld a, [hl] + ld hl, $0006 + add hl, bc + add [hl] + ld hl, $0004 + add hl, bc + ld [hl], a + ld hl, $0019 + add hl, de + ld a, [hl] + ld hl, $0007 + add hl, bc + add [hl] + ld hl, $0005 + add hl, bc + ld [hl], a + ret + +Function4430: ; 01:4430 + ld hl, Table4436 + jp Function4358 + +Table4436: ; 01:4436 + dw Function443a + dw Function444f + +Function443a: ; 01:443a + call Function4341 + ld hl, $000b + add hl, bc + ld [hl], $31 + ld hl, $0006 + add hl, bc + ld [hl], $00 + ld hl, $0007 + add hl, bc + ld [hl], $f0 + +Function444f: ; 01:444f + jp Function4402 + +Function4452: ; 01:4452 + ld hl, $000c + add hl, bc + ld [hl], $02 + ret + +Function4459: ; 01:4459 + ld hl, $000b + add hl, bc + ld a, [hl] + cp $30 + ld a, $01 + jr c, .sub_4466 + ld a, $00 +.sub_4466 + ld hl, $000c + add hl, bc + ld [hl], a + ret + +Function446c: ; 01:446c + ld hl, $0009 + add hl, bc + inc [hl] + ld a, [hl] + cp $05 + jr c, .sub_4480 + xor a + ld [hl], a + ld hl, $0008 + add hl, bc + ld a, [hl] + xor $01 + ld [hl], a +.sub_4480 + ld hl, $0008 + add hl, bc + ld a, $00 + bit 0, [hl] + jr z, .sub_448f + ld hl, $000d + add hl, bc + ld a, [hl] +.sub_448f + ld hl, $000c + add hl, bc + ld [hl], a + ret + +Function4495: ; 01:4495 + ld hl, $0009 + add hl, bc + inc [hl] + ld a, [hl] + cp $03 + ld a, $03 + jr nz, .sub_44a5 + xor a + ld [hl], a + ld a, $04 +.sub_44a5 + ld hl, $000c + add hl, bc + ld [hl], a + ret + +Table44ab: ; 01:44ab + dw Unknown44b5 + dw Unknown44b6 + dw Unknown44c7 + dw Unknown44d0 + dw Unknown44e1 + +Unknown44b5: ; 01:44b5 + db $00 + +Unknown44b6: ; 01:44b6 + db $04, $00, $00, $00 + db $00, $00, $08, $01 + db $00, $08, $00, $02 + db $00, $08, $08, $03, $00 + +Unknown44c7: ; 01:44c7 + db $02, $00, $00, $00 + db $00, $00, $08, $00, $20 + +Unknown44d0: ; 01:44d0 + db $04, $00, $00, $00 + db $00, $00, $08, $00 + db $00, $08, $00, $00 + db $00, $08, $08, $00, $00 + +Unknown44e1: ; 01:44e1 + db $04, $00, $00, $00 + db $40, $00, $08, $00 + db $40, $08, $00, $00 + db $40, $08, $08, $00, $40 + Function44f2: ; 01:44f2 ld hl, $0008 add hl, bc @@ -110,7 +488,7 @@ Function44f2: ; 01:44f2 .sub_44fd ld e, a ld d, $00 - ld hl, Table4545 + ld hl, Function4545 push hl ld hl, $0005 add hl, bc @@ -140,16 +518,545 @@ Table4516:: dw Function485f dw Function485f dw Function485f + dw Function4ed5 + dw Function4f14 + dw Function4a05 + dw Function4a8b + dw Function4869 -SECTION "engine/dumps/bank01.asm@Function453e", ROMX - Function453e: ; 01:453e ld hl, $000a add hl, bc ld [hl], $02 ret + +Function4545: ; 01:4545 + ld hl, $0005 + add hl, bc + bit 6, [hl] + jr nz, Function4560 + ld hl, $000a + add hl, bc + ld a, [hl] + ld hl, Table4558 + jp CallJumptable + +Table4558: ; 01:4558 + dw Function4560 + dw Function4567 + dw Function4593 + dw Function45a0 + +Function4560: ; 01:4560 + ld hl, $000d + add hl, bc + ld [hl], $ff + ret + +Function4567: ; 01:4567 + ld hl, $0004 + add hl, bc + bit 3, [hl] + jr nz, Function4593 + ld hl, $0005 + add hl, bc + bit 5, [hl] + jr nz, Function4593 + ld hl, $000b + add hl, bc + ld a, [hl] + inc a + and $0f + ld [hl], a + rrca + rrca + and $03 + ld d, a + ld hl, $0007 + add hl, bc + ld a, [hl] + and $0c + or d + ld hl, $000d + add hl, bc + ld [hl], a + ret + +Function4593: ; 01:4593 + ld hl, $0007 + add hl, bc + ld a, [hl] + and $0c + ld hl, $000d + add hl, bc + ld [hl], a + ret + +Function45a0: ; 01:45a0 + ld hl, $000b + add hl, bc + ld a, [hl] + and $f0 + ld e, a + ld a, [hl] + inc a + and $0f + ld d, a + cp $04 + jr c, .sub_45b9 + ld d, $00 + ld a, e + add $10 + and $30 + ld e, a +.sub_45b9 + ld a, d + or e + ld [hl], a + swap e + ld d, $00 + ld hl, Unknown45d0 + add hl, de + ld a, [hl] + ld hl, $0007 + add hl, bc + ld [hl], a + ld hl, $000d + add hl, bc + ld [hl], a + ret + +Unknown45d0: ; 01:45d0 + db $00, $0C, $04, $08 + +Function45d4: ; 01:45d4 + ld hl, $0010 + add hl, bc + ld a, [hl] + ld hl, $0012 + add hl, bc + ld [hl], a + ld hl, $0011 + add hl, bc + ld a, [hl] + ld hl, $0013 + add hl, bc + ld [hl], a + ld hl, $000e + add hl, bc + ld a, [hl] + ld hl, $000f + add hl, bc + ld [hl], a + call Function464c + ld hl, $000e + add hl, bc + ld a, [hl] + call Function4636 + ret + +Function45fe: ; 01:45fe + ld hl, $0012 + add hl, bc + ld a, [hl] + ld hl, $0010 + add hl, bc + ld [hl], a + ld hl, $0013 + add hl, bc + ld a, [hl] + ld hl, $0011 + add hl, bc + ld [hl], a + ret + +Function4613: ; 01:4613 + ld hl, $0005 + add hl, bc + bit 3, [hl] + jr z, .sub_4623 + ld hl, $000e + add hl, bc + ld a, [hl] + call Function464c +.sub_4623 + nop + ld hl, $000e + add hl, bc + ld a, [hl] + call Function4636 + ret c + ld hl, $000f + add hl, bc + ld a, [hl] + call Function4636 + ret + +Function4636: ; 01:4636 + and $f0 + cp $70 + nop + nop + ld hl, $0005 + add hl, bc + res 7, [hl] + and a + ret + +Function4644: ; 01:4644 + ld hl, $0005 + add hl, bc + set 7, [hl] + scf + ret + +Function464c: ; 01:464c + call .sub_465f + jr c, .sub_4658 + ld hl, $0005 + add hl, bc + set 3, [hl] + ret +.sub_4658 + ld hl, $0005 + add hl, bc + res 3, [hl] + ret +.sub_465f + ld d, a + and $f0 + cp $10 + jr z, .sub_466c + cp $20 + jr z, .sub_4672 + scf + ret +.sub_466c + ld a, d + and $07 + ret z + scf + ret +.sub_4672 + ld a, d + and $07 + ret z + scf + ret + +Function4678: ; 01:4678 + xor a + ld hl, $000a + add hl, bc + ld [hl], a + ld hl, $000b + add hl, bc + ld [hl], a + ld hl, $0006 + add hl, bc + ld [hl], $ff + ret + +Function468a: ; 01:468a + and $0f + ld hl, $0006 + add hl, bc + ld [hl], a + ld hl, $0004 + add hl, bc + bit 2, [hl] + jr nz, .sub_46a2 + ld hl, $0007 + add hl, bc + add a + add a + and $0c + ld [hl], a +.sub_46a2 + call Function46d3.sub_46e5 + ld hl, $0009 + add hl, bc + ld [hl], a + ld a, d + call Function4748 + ld hl, $0012 + add hl, bc + add [hl] + ld hl, $0010 + add hl, bc + ld [hl], a + ld d, a + ld a, e + call Function4748 + ld hl, $0013 + add hl, bc + add [hl] + ld hl, $0011 + add hl, bc + ld [hl], a + ld e, a + push bc + call GetCoordTile + pop bc + ld hl, $000e + add hl, bc + ld [hl], a + ret + +Function46d3: ; 01:46d3 + call .sub_46e5 + ld hl, $0018 + add hl, bc + ld a, [hl] + add d + ld [hl], a + ld hl, $0019 + add hl, bc + ld a, [hl] + add e + ld [hl], a + ret +.sub_46e5 + ld hl, $0006 + add hl, bc + ld l, [hl] + ld h, $00 + add hl, hl + add hl, hl + ld de, Table4708 + add hl, de + ld d, [hl] + inc hl + ld e, [hl] + inc hl + ld a, [hli] + ld h, [hl] + ret + +Function46f9: ; 01:46f9 + ld hl, $0006 + add hl, bc + ld l, [hl] + ld h, $00 + add hl, hl + add hl, hl + ld de, Table470b + add hl, de + ld a, [hl] + ret + +Table4708: ; 01:4708 + db $00, $01, $10 + +SECTION "engine/dumps/bank01.asm@Function4748", ROMX + +Function4748: ; 01:4748 + add a + ret z + ld a, $01 + ret nc + ld a, $ff + ret + +Function4750: ; 01:4750 + ld hl, $0006 + add hl, bc + ld a, [hl] + and $03 + ld [wPlayerStepDirection], a + call Function46d3.sub_46e5 + ld a, d + ld [wcb6c], a + ld a, e + ld [wcb6d], a + ld hl, wcb6e + set 5, [hl] + ret + +Function476b: ; 01:476b + ld a, [wXCoord] + ld d, a + ld hl, $0010 + add hl, bc + ld a, [hl] + sub d + and $0f + swap a + ld hl, $0018 + add hl, bc + ld [hl], a + ld a, [wYCoord] + ld e, a + ld hl, $0011 + add hl, bc + ld a, [hl] + sub e + and $0f + swap a + ld hl, $0019 + add hl, bc + ld [hl], a + ret + +Function4792: ; 01:4792 + ld hl, $001d + add hl, bc + ld [hl], $00 + ret + +Function4799: ; 01:4799 + ld hl, $001d + add hl, bc + inc [hl] + ret + +Function479f: ; 01:479f + ld hl, $001d + add hl, bc + ld a, [hl] + ret + +Function47a5: ; 01:47a5 + ld hl, $001d + add hl, bc + ld [hl], a + ret + +Function47ab: ; 01:47ab + ld hl, $001d + add hl, bc + ld l, [hl] + ld h, $00 + add hl, hl + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp hl + +Function47b8: ; 01:47b8 + ld hl, $0003 + add hl, bc + ld a, [hl] + and $1f + ld hl, Table47c5 + jp CallJumptable + +Table47c5: ; 01:47c5 + dw Function47fb + dw Function4812 + dw Function481c + dw Function47fc + dw Function4806 + dw Function482b + dw Function482f + dw Function4833 + dw Function4837 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + dw Function484d + dw Function4856 + dw Function4859 + dw Function485c + dw Function485f + dw Function485f + dw Function485f + dw Function485f + dw Function4862 + dw Function4865 + dw Function4868 + +Function47fb: ; 01:47fb + ret + +Function47fc: ; 01:47fc + call Random + ldh a, [hRandomAdd] + and $01 + jp Function48a9 + +Function4806: ; 01:4806 + call Random + ldh a, [hRandomAdd] + and $01 + or $02 + jp Function48a9 + +Function4812: ; 01:4812 + call Random + ldh a, [hRandomAdd] + and $03 + jp Function48a9 + +Function481c: ; 01:481c + call Random + ldh a, [hRandomAdd] + and $0c + ld hl, $0007 + add hl, bc + ld [hl], a + jp Function48da + +Function482b: ; 01:482b + ld a, $00 + jr Function4839 + +Function482f: ; 01:482f + ld a, $04 + jr Function4839 + +Function4833: ; 01:4833 + ld a, $08 + jr Function4839 + +Function4837: ; 01:4837 + ld a, $0c + +Function4839: ; 01:4839 + ld hl, $0007 + add hl, bc + ld [hl], a + call Function45fe + call Function4678 + ld hl, $0008 + add hl, bc + ld [hl], $04 + jp Function4b78 + +Function484d: ; 01:484d + ld hl, $0008 + add hl, bc + ld [hl], $07 + jp Function4bed + +Function4856: ; 01:4856 + jp Function4bf9 + +Function4859: ; 01:4859 + jp Function4c0c + +Function485c: ; 01:485c + jp Function4fbc + +Function485f: ; 01:485f + jp Function4bf3 + +Function4862: ; 01:4862 + jp Function4fbc + +Function4865: ; 01:4865 + jp Function4c1f + +Function4868: ; 01:4868 + ret -SECTION "engine/dumps/bank01.asm@Function486a", ROMX +Function4869: ; 01:4869 + ret Function486a: ; 01:486a ld hl, $0010 @@ -172,6 +1079,651 @@ Function486a: ; 01:486a ld [hl], a ret +Function488c: ; 01:488c + call Function468a + call Function771e + jr c, Function48d4 + call Function4613 + ldh a, [hConnectionStripLength] + ld d, a + ld a, [wCenteredObject] + cp d + jr z, Function48c6 + ld hl, $0008 + add hl, bc + ld [hl], $02 + jp Function4b88 + +Function48a9: ; 01:48a9 + call Function468a + call Function771e + jr c, Function48d4 + call Function4613 + ldh a, [hConnectionStripLength] + ld d, a + ld a, [wCenteredObject] + cp d + jr z, Function48c6 + ld hl, $0008 + add hl, bc + ld [hl], $06 + jp Function4baa + +Function48c6: ; 01:48c6 + ld hl, $0008 + add hl, bc + ld [hl], $05 + ld hl, wcb6e + set 7, [hl] + jp Function4bc9 + +Function48d4: ; 01:48d4 + call Function4678 + call Function45fe + +Function48da: ; 01:48da + ld hl, $0006 + add hl, bc + ld [hl], $ff + ld hl, $0008 + add hl, bc + ld [hl], $03 + call Random + ldh a, [hRandomAdd] + and $7f + ld hl, $0009 + add hl, bc + ld [hl], a + jp Function4b65 + +Function48f5: ; 01:48f5 + ld hl, $0008 + add hl, bc + ld [hl], $01 + ld hl, $001c + add hl, bc + ld a, [hl] + and $07 + cp $04 + ld a, $07 + jr nc, .sub_490a + ld a, $06 +.sub_490a + call Function468a + call Function771e + jr c, .sub_4920 + ld hl, $0008 + add hl, bc + ld [hl], $02 + ld hl, $001c + add hl, bc + inc [hl] + jp Function4b88 +.sub_4920 + ld hl, $0006 + add hl, bc + ld [hl], $ff + ld hl, $000a + add hl, bc + ld [hl], $01 + call Function45fe + ret + +Function4930: ; 01:4930 + ld a, [wPlayerNextMapX] + ld d, a + ld a, [wPlayerNextMapY] + ld e, a + ld hl, $0010 + add hl, bc + ld a, d + sub [hl] + ld d, a + ld hl, $0011 + add hl, bc + ld a, e + sub [hl] + ld e, a + jr z, .sub_495b + ld a, d + and a + jr z, .sub_4965 + push de + ld a, d + call .sub_4973 + ld d, a + ld a, e + call .sub_4973 + ld e, a + cp d + pop de + jr nc, .sub_4965 +.sub_495b + ld a, $08 + bit 7, d + jr nz, .sub_496d + ld a, $0c + jr .sub_496d +.sub_4965 + ld a, $04 + bit 7, e + jr nz, .sub_496d + ld a, $00 +.sub_496d + ld hl, $0007 + add hl, bc + ld [hl], a + ret +.sub_4973 + bit 7, a + ret z + dec a + cpl + ret + +Function4979: ; 01:4979 + ret + +Function497a: ; 01:497a + ld hl, $001e + add hl, bc + inc [hl] + ld a, [hl] + srl a + srl a + and $07 + ld l, a + ld h, $00 + ld de, Table4994 + add hl, de + ld a, [hl] + ld hl, $001b + add hl, bc + ld [hl], a + ret + +SECTION "engine/dumps/bank01.asm@Function49fc", ROMX + +Function49fc: ; 01:49fc + ld hl, $0008 + add hl, bc + ld [hl], $11 + call Function4792 + +Function4a05: ; 01:4a05 + ld de, Table4a0b + jp Function47ab + +Table4a0b: ; 01:4a0b + dw Function4a13 + dw Function4a28 + dw Function4a38 + dw Function4a53 + +Function4a13: ; 01:4a13 + ld hl, $001e + add hl, bc + ld [hl], $04 + ld hl, $000b + add hl, bc + ld [hl], $00 + ld hl, $0009 + add hl, bc + ld [hl], $10 + call Function4799 + +Function4a28: ; 01:4a28 + ld hl, $000a + add hl, bc + ld [hl], $03 + ld hl, $0009 + add hl, bc + dec [hl] + ret nz + call Function4799 + ret + +Function4a38: ; 01:4a38 + ld hl, $001e + add hl, bc + ld [hl], $04 + ld hl, $000b + add hl, bc + ld [hl], $00 + ld hl, $001f + add hl, bc + ld [hl], $10 + ld hl, $0009 + add hl, bc + ld [hl], $10 + call Function4799 + +Function4a53: ; 01:4a53 + ld hl, $000a + add hl, bc + ld [hl], $03 + ld hl, $001f + add hl, bc + inc [hl] + ld a, [hl] + ld d, $60 + call Function17cd + ld a, h + sub $60 + ld hl, $001b + add hl, bc + ld [hl], a + ld hl, $0009 + add hl, bc + dec [hl] + ret nz + ld hl, $0008 + add hl, bc + ld [hl], $01 + ld hl, $000b + add hl, bc + ld [hl], $00 + call Function4792 + ret + +Function4a82: ; 01:4a82 + ld hl, $0008 + add hl, bc + ld [hl], $12 + call Function4792 + +Function4a8b: ; 01:4a8b + ld de, Table4a91 + jp Function47ab + +Table4a91: ; 01:4a91 + dw Function4a9f + dw Function4aaf + dw Function4ab8 + dw Function4ad4 + dw Function4af6 + dw Function4b00 + dw Function4b0c + +Function4a9f: ; 01:4a9f + ld hl, $000a + add hl, bc + ld [hl], $00 + ld hl, $0009 + add hl, bc + ld [hl], $10 + call Function4799 + ret + +Function4aaf: ; 01:4aaf + ld hl, $0009 + add hl, bc + dec [hl] + ret nz + call Function4799 + +Function4ab8: ; 01:4ab8 + ld hl, $000b + add hl, bc + ld [hl], $00 + ld hl, $001e + add hl, bc + ld [hl], $04 + ld hl, $001f + add hl, bc + ld [hl], $00 + ld hl, $0009 + add hl, bc + ld [hl], $10 + call Function4799 + ret + +Function4ad4: ; 01:4ad4 + ld hl, $000a + add hl, bc + ld [hl], $03 + ld hl, $001f + add hl, bc + inc [hl] + ld a, [hl] + ld d, $60 + call Function17cd + ld a, h + sub $60 + ld hl, $001b + add hl, bc + ld [hl], a + ld hl, $0009 + add hl, bc + dec [hl] + ret nz + call Function4799 + +Function4af6: ; 01:4af6 + ld hl, $0009 + add hl, bc + ld [hl], $10 + call Function4799 + ret + +Function4b00: ; 01:4b00 + ld hl, $000a + add hl, bc + ld [hl], $03 + ld hl, $0009 + add hl, bc + dec [hl] + ret nz + +Function4b0c: ; 01:4b0c + ld hl, $0008 + add hl, bc + ld [hl], $01 + ld hl, $000b + add hl, bc + ld [hl], $00 + ld hl, $001b + add hl, bc + ld [hl], $00 + call Function4792 + ret + +Function4b22: ; 01:4b22 + call Function4792 + ret + +Function4b26: ; 01:4b26 + ld a, $01 + ld [wcb70], a + push bc + ld de, Unknown4b42 + call PushToCmdQueue + ld d, b + ld e, c + pop bc + ld hl, $0009 + add hl, bc + ld a, [hl] + add a + dec a + ld hl, $000e + add hl, de + ld [hl], a + ret + +Unknown4b42: ; 01:4b42 + db $01, $01, $FC, $02, $00, $08 + +Function4b48: ; 01:4b48 + ld e, a + add a + add e + ld e, a + ld d, $00 + ld hl, Unknown4b5f + add hl, de + ld d, h + ld e, l + push bc + call PushToCmdQueue + pop bc + ld a, $06 + ld [wcb70], a + ret + +Unknown4b5f: ; 01:4b5f + db $05, $04, $FC, $02, $02, $08 + +Function4b65: ; 01:4b65 + ld hl, $000a + add hl, bc + ld [hl], $02 + ld hl, $0009 + add hl, bc + dec [hl] + ret nz + ld hl, $0008 + add hl, bc + ld [hl], $01 + ret + +Function4b78: ; 01:4b78 + call Function4979 + ld hl, $000a + add hl, bc + ld [hl], $02 + ld hl, $0006 + add hl, bc + ld [hl], $ff + ret + +Function4b88: ; 01:4b88 + call Function4979 + ld hl, $000a + add hl, bc + ld [hl], $01 + call Function46d3 + ld hl, $0009 + add hl, bc + dec [hl] + ret nz + call Function45d4 + ld hl, $0008 + add hl, bc + ld [hl], $01 + ld hl, $0006 + add hl, bc + ld [hl], $ff + ret + +Function4baa: ; 01:4baa + ld hl, $000a + add hl, bc + ld [hl], $01 + call Function46d3 + ld hl, $0009 + add hl, bc + dec [hl] + ret nz + call Function45d4 + ld hl, $0006 + add hl, bc + ld [hl], $ff + ld hl, $0008 + add hl, bc + ld [hl], $01 + ret + +Function4bc9: ; 01:4bc9 + ld hl, $000a + add hl, bc + ld [hl], $01 + call Function4750 + ld hl, $0009 + add hl, bc + dec [hl] + ret nz + ld hl, wcb6e + set 6, [hl] + call Function45d4 + ld hl, $0008 + add hl, bc + ld [hl], $01 + ld hl, $0006 + add hl, bc + ld [hl], $ff + ret + +Function4bed: ; 01:4bed + ld a, [wPlayerMovement] + jp Function4c37 + +Function4bf3: ; 01:4bf3 + ld a, [wMovementObject] + jp Function4c37 + +Function4bf9: ; 01:4bf9 + ld hl, $001c + add hl, bc + ld e, [hl] + inc [hl] + ld d, $00 + ld hl, wMovementObject + ld a, [hli] + ld h, [hl] + ld l, a + add hl, de + ld a, [hl] + jp Function4c37 + +Function4c0c: ; 01:4c0c + ld hl, $001c + add hl, bc + ld e, [hl] + inc [hl] + ld d, $00 + ld hl, $cb7c + ld a, [hli] + ld h, [hl] + ld l, a + add hl, de + ld a, [hl] + jp Function4c37 + +Function4c1f: ; 01:4c1f + ld hl, $001c + add hl, bc + ld e, [hl] + inc [hl] + ld d, $00 + ld hl, wMovementDataAddr + ld a, [hli] + ld h, [hl] + ld l, a + add hl, de + ld a, [wMovementDataBank] + call GetFarByte + jp Function4c37 + +Function4c37: ; 01:4c37 + push af + call Function4f86 + pop af + ld l, a + ld h, $00 + add hl, hl + ld de, Table4c48 + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp hl + +SECTION "engine/dumps/bank01.asm@Function4ed5", ROMX + +Function4ed5: ; 01:4ed5 + ld de, Table4edb + jp Function47ab + +SECTION "engine/dumps/bank01.asm@Function4f14", ROMX + +Function4f14: ; 01:4f14 + ld de, Table4f1a + jp Function47ab + +SECTION "engine/dumps/bank01.asm@Function4f86", ROMX + +Function4f86: ; 01:4f86 + ld e, a + ld a, [wObjectFollow_Follower] + and a + ret z + cp $ff + ret z + ld a, [wObjectFollow_Leader] + ld d, a + ldh a, [hConnectionStripLength] + cp d + ret nz + ld a, e + cp $2a + ret z + cp $00 + ret z + cp $01 + ret z + cp $02 + ret z + cp $03 + ret z + cp $32 + ret z + cp $35 + ret z + push af + ld hl, wFollowerMovementQueueLength + inc [hl] + ld e, [hl] + ld d, $00 + ld hl, wFollowMovementQueue + add hl, de + pop af + ld [hl], a + ret + +SECTION "engine/dumps/bank01.asm@Function4fbc", ROMX + +Function4fbc: ; 01:4fbc + call .sub_4fc5 + ld hl, Table4c48 + jp CallJumptable +.sub_4fc5 + ld hl, wFollowerMovementQueueLength + ld a, [hl] + and a + jr z, .sub_4fe2 + cp $ff + jr z, .sub_4fe2 + ld e, a + dec [hl] + ld d, $00 + ld hl, wFollowMovementQueue + add hl, de + inc e + ld a, $ff +.sub_4fdb + ld d, [hl] + ld [hld], a + ld a, d + dec e + jr nz, .sub_4fdb + ret +.sub_4fe2 + call .sub_4fe9 + ret c + ld a, $2a + ret +.sub_4fe9 + ld a, [wObjectFollow_Leader] + cp $ff + jr z, .sub_4fff + push bc + call GetObjectStruct + ld hl, $0000 + add hl, bc + ld a, [hl] + pop bc + and a + jr z, .sub_4fff + and a + ret +.sub_4fff + xor a + ld [wObjectFollow_Follower], a + ld a, $32 + scf + ret + SECTION "engine/dumps/bank01.asm@Function5007", ROMX Function5007: ; 01:5007 @@ -422,3 +1974,130 @@ Function50b9: ; 01:50b9 pop bc ret +SECTION "engine/dumps/bank01.asm@Function771e", ROMX + +Function771e: ; 01:771e + ld hl, $0004 + add hl, bc + bit 4, [hl] + jr z, .sub_772c + push hl + call _IsObjectCollisionTileSolid + pop hl + ret c +.sub_772c + bit 6, [hl] + jr z, .sub_7738 + push hl + push bc + call Function77a1 + pop bc + pop hl + ret c +.sub_7738 + bit 5, [hl] + jr z, .sub_7748 + push hl + call Function782c + pop hl + ret c + push hl + call Function786e + pop hl + ret c +.sub_7748 + and a + ret + +SECTION "engine/dumps/bank01.asm@Function77a1", ROMX + +Function77a1: ; 01:77a1 + ld hl, $0010 + add hl, bc + ld d, [hl] + ld hl, $0011 + add hl, bc + ld e, [hl] + jr _CheckObjectCollision + +SECTION "engine/dumps/bank01.asm@Function782c", ROMX + +Function782c: ; 01:782c + ld hl, $0016 + add hl, bc + ld a, [hl] + and a + jr z, .sub_784b + ld e, a + ld d, a + ld hl, $0014 + add hl, bc + ld a, [hl] + sub d + ld d, a + ld a, [hl] + add e + ld e, a + ld hl, $0010 + add hl, bc + ld a, [hl] + cp d + jr z, .sub_786c + cp e + jr z, .sub_786c +.sub_784b + ld hl, $0017 + add hl, bc + ld a, [hl] + and a + jr z, .sub_786a + ld e, a + ld d, a + ld hl, $0015 + add hl, bc + ld a, [hl] + sub d + ld d, a + ld a, [hl] + add e + ld e, a + ld hl, $0011 + add hl, bc + ld a, [hl] + cp d + jr z, .sub_786c + cp e + jr z, .sub_786c +.sub_786a + and a + ret +.sub_786c + scf + ret + +Function786e: ; 01:786e + ld hl, $0010 + add hl, bc + ld a, [wXCoord] + cp [hl] + jr z, .sub_787f + jr nc, .sub_7892 + add $09 + cp [hl] + jr c, .sub_7892 +.sub_787f + ld hl, $0011 + add hl, bc + ld a, [wYCoord] + cp [hl] + jr z, .sub_7890 + jr nc, .sub_7892 + add $08 + cp [hl] + jr c, .sub_7892 +.sub_7890 + and a + ret +.sub_7892 + scf + ret diff --git a/home/map_objects.asm b/home/map_objects.asm index 6c3c640..89b75e2 100644 --- a/home/map_objects.asm +++ b/home/map_objects.asm @@ -325,6 +325,8 @@ GetObjectStruct:: ; 00:17bf Function17cb:: add $10 + +Function17cd:: ld e, a ldh a, [hROMBank] push af diff --git a/pokegold-spaceworld.link b/pokegold-spaceworld.link index 28dab15..2062bbd 100644 --- a/pokegold-spaceworld.link +++ b/pokegold-spaceworld.link @@ -109,15 +109,21 @@ ROMX $01 "engine/menu/debug_menu.asm" "engine/dumps/bank01.asm@Function40fd" "home/oam_dma.asm" - ; $416b + "engine/dumps/bank01.asm@Table416b" org $42db "engine/dumps/bank01.asm@Function42db" - org $44f2 - "engine/dumps/bank01.asm@Function44f2" - org $453e - "engine/dumps/bank01.asm@Function453e" - org $486a - "engine/dumps/bank01.asm@Function486a" + org $4748 + "engine/dumps/bank01.asm@Function4748" + org $49fc + "engine/dumps/bank01.asm@Function49fc" + org $4ed5 + "engine/dumps/bank01.asm@Function4ed5" + org $4f14 + "engine/dumps/bank01.asm@Function4f14" + org $4f86 + "engine/dumps/bank01.asm@Function4f86" + org $4fbc + "engine/dumps/bank01.asm@Function4fbc" org $5007 "engine/dumps/bank01.asm@Function5007" org $52f9 @@ -134,12 +140,15 @@ ROMX $01 ; $6fe5 org $6fec "data/items/names.asm" - ; $771e + org $771e + "engine/dumps/bank01.asm@Function771e" org $774a "engine/overworld/object_collision.asm@GetSpritesNextTile" + org $77a1 + "engine/dumps/bank01.asm@Function77a1" org $77dd "engine/overworld/object_collision.asm@_CheckObjectCollision" - ; $782c + "engine/dumps/bank01.asm@Function782c" org $7894 "engine/overworld/object_collision.asm@_CheckPlayerObjectCollision" ROMX $02 @@ -12,30 +12,19 @@ 01:DA83 wUnknownListLengthda83 01:DA84 wUnknownListda84 -01:4333 Function4333 -01:4334 Function4334 -01:4374 Function4374 -01:439e Function439e -01:43c9 Function43c9 -01:4430 Function4430 -01:4452 Function4452 -01:4459 Function4459 -01:446c Function446c -01:4495 Function4495 -01:4545 Table4545 -01:4678 Function4678 -01:45d4 Function45d4 -01:47b8 Function47b8 -01:484d Function484d -01:4856 Function4856 -01:4859 Function4859 -01:485c Function485c -01:485f Function485f -01:4b65 Function4b65 -01:4b78 Function4b78 -01:4b88 Function4b88 -01:4baa Function4baa -01:4bc9 Function4bc9 +01:41eb Unknown41eb +01:41ef Unknown41ef +01:41f3 Unknown41f3 +01:41f7 Unknown41f7 +01:41fb Unknown41fb +01:41ff Unknown41ff +01:4203 Unknown4203 +01:420f Unknown420f +01:470b Table470b +01:4994 Table4994 +01:4c48 Table4c48 +01:4edb Table4edb +01:4f1a Table4f1a 01:5190 _UpdateSprites 01:5190 Function5190 01:52F9 Function52f9 |