mirror of
https://github.com/thornAvery/jep-hack.git
synced 2026-02-21 15:08:53 +13:00
First Commit
Upload literally everything from the pokecrystal16 expand-move-ID branch
This commit is contained in:
commit
2f8a41f833
4618 changed files with 480386 additions and 0 deletions
92
home/16bit.asm
Normal file
92
home/16bit.asm
Normal file
|
|
@ -0,0 +1,92 @@
|
|||
MACRO ___conversion_table_homecall
|
||||
; macro arguments: homecall type, function label
|
||||
; all functions clobber af and hl (except for outputs) and preserve bc and de
|
||||
; homecall types:
|
||||
; - read: index to ID conversion (in: a = 8-bit ID; out: hl = 16-bit index)
|
||||
; - write: ID to index conversion (in: hl = 16-bit index; out: a = 8-bit ID)
|
||||
; - lock: ID locking (in: a = ID (or zero to unlock), l = position; out: a = preserved)
|
||||
if strcmp("\1", "read") && strcmp("\1", "write") && strcmp("\1", "lock")
|
||||
fail "16-bit homecall: invalid call type"
|
||||
endc
|
||||
|
||||
if (strcmp("\1", "write") != 0)
|
||||
ld h, a
|
||||
endc
|
||||
ldh a, [hROMBank]
|
||||
push af
|
||||
ld a, BANK(\2)
|
||||
rst Bankswitch
|
||||
if (strcmp("\1", "read") == 0)
|
||||
ld a, h
|
||||
endc
|
||||
call \2
|
||||
if (strcmp("\1", "read") != 0)
|
||||
ld l, a
|
||||
endc
|
||||
pop af
|
||||
rst Bankswitch
|
||||
if (strcmp("\1", "read") != 0)
|
||||
ld a, l
|
||||
endc
|
||||
ret
|
||||
ENDM
|
||||
|
||||
MACRO ___conversion_table_homecall_readlocked
|
||||
; macro argument: table name
|
||||
; in: a = position
|
||||
; out: a = 8-bit index; everything else preserved
|
||||
push hl
|
||||
add a, LOW(\1LockedEntries)
|
||||
ld l, a
|
||||
ldh a, [rSVBK]
|
||||
ld h, a
|
||||
ld a, BANK(\1LockedEntries)
|
||||
ldh [rSVBK], a
|
||||
ld a, h
|
||||
ld h, HIGH(\1LockedEntries)
|
||||
ld l, [hl]
|
||||
ldh [rSVBK], a
|
||||
ld a, l
|
||||
pop hl
|
||||
ret
|
||||
ENDM
|
||||
|
||||
; in: a = 8-bit index
|
||||
; out: hl = 16-bit index; a clobbered
|
||||
GetPokemonIndexFromID::
|
||||
___conversion_table_homecall read, _GetPokemonIndexFromID
|
||||
|
||||
; in: hl = 16-bit index
|
||||
; out: a = 8-bit index, hl clobbered
|
||||
GetPokemonIDFromIndex::
|
||||
___conversion_table_homecall write, _GetPokemonIDFromIndex
|
||||
|
||||
; in: a = 8-bit index or zero (to clear), l = position
|
||||
; out: a = unchanged, hl = clobbered
|
||||
LockPokemonID::
|
||||
___conversion_table_homecall lock, _LockPokemonID
|
||||
|
||||
; in: a = position
|
||||
; out: a = 8-bit index; everything else preserved
|
||||
GetLockedPokemonID::
|
||||
___conversion_table_homecall_readlocked wPokemonIndexTable
|
||||
|
||||
; in: a = 8-bit index
|
||||
; out: hl = 16-bit index; a clobbered
|
||||
GetMoveIndexFromID::
|
||||
___conversion_table_homecall read, _GetMoveIndexFromID
|
||||
|
||||
; in: hl = 16-bit index
|
||||
; out: a = 8-bit index, hl clobbered
|
||||
GetMoveIDFromIndex::
|
||||
___conversion_table_homecall write, _GetMoveIDFromIndex
|
||||
|
||||
; in: a = 8-bit index or zero (to clear), l = position
|
||||
; out: a = unchanged, hl = clobbered
|
||||
LockMoveID::
|
||||
___conversion_table_homecall lock, _LockMoveID
|
||||
|
||||
; in: a = position
|
||||
; out: a = 8-bit index; everything else preserved
|
||||
GetLockedMoveID::
|
||||
___conversion_table_homecall_readlocked wMoveIndexTable
|
||||
Loading…
Add table
Add a link
Reference in a new issue