2014-05-31 08:22:15 +00:00
|
|
|
Predef::
|
|
|
|
; Call predefined function a.
|
|
|
|
; To preserve other registers, have the
|
|
|
|
; destination call GetPredefRegisters.
|
|
|
|
|
|
|
|
; Save the predef id for GetPredefPointer.
|
|
|
|
ld [wPredefID], a
|
|
|
|
|
|
|
|
; A hack for LoadDestinationWarpPosition.
|
2014-09-13 07:50:56 +00:00
|
|
|
; See LoadTilesetHeader (predef $19).
|
2020-07-06 23:03:05 +00:00
|
|
|
ldh a, [hLoadedROMBank]
|
2014-05-31 08:22:15 +00:00
|
|
|
ld [wPredefParentBank], a
|
|
|
|
|
|
|
|
push af
|
|
|
|
ld a, BANK(GetPredefPointer)
|
2020-07-06 23:03:05 +00:00
|
|
|
ldh [hLoadedROMBank], a
|
2015-07-03 19:37:53 +00:00
|
|
|
ld [MBC1RomBank], a
|
2014-05-31 08:22:15 +00:00
|
|
|
|
|
|
|
call GetPredefPointer
|
|
|
|
|
|
|
|
ld a, [wPredefBank]
|
2020-07-06 23:03:05 +00:00
|
|
|
ldh [hLoadedROMBank], a
|
2015-07-03 19:37:53 +00:00
|
|
|
ld [MBC1RomBank], a
|
2014-05-31 08:22:15 +00:00
|
|
|
|
|
|
|
ld de, .done
|
|
|
|
push de
|
2017-06-09 21:54:09 +00:00
|
|
|
jp hl
|
2014-05-31 08:22:15 +00:00
|
|
|
.done
|
|
|
|
|
|
|
|
pop af
|
2020-07-06 23:03:05 +00:00
|
|
|
ldh [hLoadedROMBank], a
|
2015-07-03 19:37:53 +00:00
|
|
|
ld [MBC1RomBank], a
|
2014-05-31 08:22:15 +00:00
|
|
|
ret
|
|
|
|
|
|
|
|
GetPredefRegisters::
|
|
|
|
; Restore the contents of register pairs
|
|
|
|
; when GetPredefPointer was called.
|
2021-05-31 20:25:16 +00:00
|
|
|
ld a, [wPredefHL]
|
2014-05-31 08:22:15 +00:00
|
|
|
ld h, a
|
2021-05-31 20:25:16 +00:00
|
|
|
ld a, [wPredefHL + 1]
|
2014-05-31 08:22:15 +00:00
|
|
|
ld l, a
|
2021-05-31 20:25:16 +00:00
|
|
|
ld a, [wPredefDE]
|
2014-05-31 08:22:15 +00:00
|
|
|
ld d, a
|
2021-05-31 20:25:16 +00:00
|
|
|
ld a, [wPredefDE + 1]
|
2014-05-31 08:22:15 +00:00
|
|
|
ld e, a
|
2021-05-31 20:25:16 +00:00
|
|
|
ld a, [wPredefBC]
|
2014-05-31 08:22:15 +00:00
|
|
|
ld b, a
|
2021-05-31 20:25:16 +00:00
|
|
|
ld a, [wPredefBC + 1]
|
2014-05-31 08:22:15 +00:00
|
|
|
ld c, a
|
|
|
|
ret
|