jep-hack/constants/16_bit_translation_constants.asm
Zeta_Null 2f8a41f833 First Commit
Upload literally everything from the pokecrystal16 expand-move-ID branch
2023-09-10 12:35:35 -04:00

27 lines
1.8 KiB
NASM

; constants for 16-bit conversion tables:
; _ENTRIES: number of entries in the table; 8-bit indexes $01, $02, ..., _ENTRIES will point to table entries
; _LOCKED_ENTRIES: number of entries in a reserved ID array; valid IDs stored in this table will be protected from
; eviction when the table is garbage collected to make room for new entries (useful to preserve
; IDs being used in the current screen, map script, etc.)
; _CACHE_SIZE: number of entries in a fast-retrieval cache table that attempts to make retrieving recently-used
; indexes faster; must be a power of two (or zero to disable the cache)
; _SAVED_RECENT_INDEXES: circular buffer of recently-allocated IDs, protecting them from eviction and thus simplifying
; code that allocates several IDs at once
; _MINIMUM_RESERVED_INDEX: minimum value that will be treated as a special value and not handled through the table;
; 8-bit IDs that are greater or equal to this value convert to $FF00 + index, and the reverse
; conversion is also valid without using the table. This guarantees that high values (such
; as $FF), often handled as negative indexes, retain their special meanings without requiring
; an allocation
DEF MON_TABLE_ENTRIES EQU 100
DEF MON_TABLE_LOCKED_ENTRIES EQU 30
DEF MON_TABLE_CACHE_SIZE EQU 16
DEF MON_TABLE_SAVED_RECENT_INDEXES EQU 8
DEF MON_TABLE_MINIMUM_RESERVED_INDEX EQU $FD ; ensures that the value for the egg will remain reserved
DEF MOVE_TABLE_ENTRIES EQU 230
DEF MOVE_TABLE_LOCKED_ENTRIES EQU 18
DEF MOVE_TABLE_CACHE_SIZE EQU 16
DEF MOVE_TABLE_SAVED_RECENT_INDEXES EQU 16
DEF MOVE_TABLE_MINIMUM_RESERVED_INDEX EQU $FF