mirror of
https://github.com/thornAvery/kep-hack.git
synced 2025-09-17 02:40:50 +12:00
* added EQU constants for mon header RAM area
* analyzed and commented sprite loading routines * experience calculation routine * couple more small routines and data structures
This commit is contained in:
parent
66aaa9a0cb
commit
7bdb3199ae
|
@ -200,6 +200,8 @@ W_PLAYERMOVETYPE EQU $CFD5
|
||||||
W_PLAYERMOVEACCURACY EQU $CFD6
|
W_PLAYERMOVEACCURACY EQU $CFD6
|
||||||
W_PLAYERMOVEMAXPP EQU $CFD7
|
W_PLAYERMOVEMAXPP EQU $CFD7
|
||||||
|
|
||||||
|
W_ENEMYMONNAME EQU $CFDA
|
||||||
|
|
||||||
W_ENEMYMONCURHP EQU $CFE6 ; active opponent's hp (16 bits)
|
W_ENEMYMONCURHP EQU $CFE6 ; active opponent's hp (16 bits)
|
||||||
W_ENEMYMONNUMBER EQU $CFE8 ; active opponent's position in team (0 to 5)
|
W_ENEMYMONNUMBER EQU $CFE8 ; active opponent's position in team (0 to 5)
|
||||||
W_ENEMYMONSTATUS EQU $CFE9 ; active opponent's status condition
|
W_ENEMYMONSTATUS EQU $CFE9 ; active opponent's status condition
|
||||||
|
@ -330,10 +332,48 @@ W_FBMODE EQU $D09E ; controls how the frame blocks are put together to form fram
|
||||||
; 03: delay, but don't clean OAM buffer
|
; 03: delay, but don't clean OAM buffer
|
||||||
; 04: delay, without cleaning OAM buffer, and do not advance [W_FBDESTADDR], so that the next frame block will overwrite this one
|
; 04: delay, without cleaning OAM buffer, and do not advance [W_FBDESTADDR], so that the next frame block will overwrite this one
|
||||||
|
|
||||||
W_DAMAGE EQU $D0D7
|
; sprite data is written column by column, each byte contains 8 columns (one for ech bit)
|
||||||
|
; for 2bpp sprites, pairs of two consecutive bytes (i.e. pairs of consecutive rows of sprite data)
|
||||||
|
; contain the upper and lower bit of each of the 8 pixels, respectively
|
||||||
|
SPRITEBUFFERSIZE EQU $188 ; 7 * 7 (tiles) * 8 (bytes per tile)
|
||||||
|
S_SPRITEBUFFER0 EQU $A000 + 0 * SPRITEBUFFERSIZE
|
||||||
|
S_SPRITEBUFFER1 EQU $A000 + 1 * SPRITEBUFFERSIZE
|
||||||
|
S_SPRITEBUFFER2 EQU $A000 + 2 * SPRITEBUFFERSIZE
|
||||||
|
|
||||||
|
W_SPRITECURPOSX EQU $D0A1
|
||||||
|
W_SPRITECURPOSY EQU $D0A2
|
||||||
|
W_SPRITEWITDH EQU $D0A3
|
||||||
|
W_SPRITEHEIGHT EQU $D0A4
|
||||||
|
W_SPRITEINPUTCURBYTE EQU $D0A5 ; current input byte
|
||||||
|
W_SPRITEINPUTBITCOUNTER EQU $D0A6 ; bit offset of last read input bit
|
||||||
|
|
||||||
|
; determines where in the output byte the two bits are placed. Each byte contains four columns (2bpp data)
|
||||||
|
; 3 -> XX000000 1st column
|
||||||
|
; 2 -> 00XX0000 2nd column
|
||||||
|
; 1 -> 0000XX00 3rd column
|
||||||
|
; 0 -> 000000XX 4th column
|
||||||
|
W_SPRITEOUTPUTBITOFFSET EQU $D0A7
|
||||||
|
|
||||||
|
; bit 0 determines used buffer (0 -> $a188, 1 -> $a310)
|
||||||
|
; bit 1 loading last sprite chunk? (there are at most 2 chunks per load operation)
|
||||||
|
W_SPRITELOADFLAGS EQU $D0A8
|
||||||
|
W_SPRITEUNPACKMODE EQU $D0A9
|
||||||
|
W_SPRITEFLIPPED EQU $D0AA
|
||||||
|
|
||||||
|
W_SPRITEINPUTPTR EQU $D0AB ; pointer to next input byte
|
||||||
|
W_SPRITEOUTPUTPTR EQU $D0AD ; pointer to current output byte
|
||||||
|
W_SPRITEOUTPUTPTRCACHED EQU $D0AF ; used to revert pointer for different bit offsets
|
||||||
|
W_SPRITEDECODETABLE0PTR EQU $D0B1 ; pointer to differential decoding table (assuming initial value 0)
|
||||||
|
W_SPRITEDECODETABLE1PTR EQU $D0B3 ; pointer to differential decoding table (assuming initial value 1)
|
||||||
|
|
||||||
|
H_SPRITEWIDTH EQU $FF8B ; in bytes
|
||||||
|
H_SPRITEINTERLACECOUNTER EQU $FF8B
|
||||||
|
H_SPRITEHEIGHT EQU $FF8C ; in bytes
|
||||||
|
H_SPRITEOFFSET EQU $FF8D
|
||||||
|
|
||||||
; List type
|
; List type
|
||||||
; used in $D0B6
|
; used in $D0B6
|
||||||
|
W_LISTTYPE EQU $D0B6
|
||||||
MONSTER_NAME EQU 1
|
MONSTER_NAME EQU 1
|
||||||
MOVE_NAME EQU 2
|
MOVE_NAME EQU 2
|
||||||
; ???_NAME EQU 3
|
; ???_NAME EQU 3
|
||||||
|
@ -342,6 +382,36 @@ PLAYEROT_NAME EQU 5
|
||||||
ENEMYOT_NAME EQU 6
|
ENEMYOT_NAME EQU 6
|
||||||
TRAINER_NAME EQU 7
|
TRAINER_NAME EQU 7
|
||||||
|
|
||||||
|
W_MONHEADER EQU $d0b8
|
||||||
|
W_MONHDEXNUM EQU $d0b8
|
||||||
|
W_MONHBASESTATS EQU $d0b9
|
||||||
|
;W_MONHBASEHP EQU $d0b9
|
||||||
|
;W_MONHBASEATTACK EQU $d0ba
|
||||||
|
;W_MONHBASEDEFENSE EQU $d0bb
|
||||||
|
W_MONHBASESPEED EQU $d0bc
|
||||||
|
;W_MONHBASESPECIAL EQU $d0bd
|
||||||
|
W_MONHTYPES EQU $d0be
|
||||||
|
W_MONHTYPE1 EQU $d0be
|
||||||
|
W_MONHTYPE2 EQU $d0bf
|
||||||
|
W_MONHCATCHRATE EQU $d0c0
|
||||||
|
;W_MONHBASEXP EQU $d0c1
|
||||||
|
W_MONHSPRITEDIM EQU $d0c2
|
||||||
|
W_MONHFRONTSPRITE EQU $d0c3
|
||||||
|
W_MONHBACKSPRITE EQU $d0c5
|
||||||
|
W_MONHMOVES EQU $d0c7
|
||||||
|
;W_MONHMOVE1 EQU $d0c7
|
||||||
|
;W_MONHMOVE2 EQU $d0c8
|
||||||
|
;W_MONHMOVE3 EQU $d0c9
|
||||||
|
;W_MONHMOVE4 EQU $d0ca
|
||||||
|
W_MONHGROWTHRATE EQU $d0cb
|
||||||
|
W_MONHLEARNSET EQU $d0cc ; bit field, 7 bytes
|
||||||
|
;W_MONHPADDING EQU $d0d7
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
W_DAMAGE EQU $D0D7
|
||||||
|
|
||||||
|
|
||||||
W_CURENEMYLVL EQU $D127
|
W_CURENEMYLVL EQU $D127
|
||||||
|
|
||||||
W_ISLINKBATTLE EQU $D12B
|
W_ISLINKBATTLE EQU $D12B
|
||||||
|
@ -833,6 +903,8 @@ H_NUMTOPRINT EQU $FF96 ; 3 bytes, big endian order
|
||||||
H_POWEROFTEN EQU $FF99 ; 3 bytes, big endian order
|
H_POWEROFTEN EQU $FF99 ; 3 bytes, big endian order
|
||||||
H_SAVEDNUMTOPRINT EQU $FF9C ; 3 bytes, big endian order (to back out of a subtraction)
|
H_SAVEDNUMTOPRINT EQU $FF9C ; 3 bytes, big endian order (to back out of a subtraction)
|
||||||
|
|
||||||
|
H_LOADEDROMBANK EQU $FFB8
|
||||||
|
|
||||||
; is automatic background transfer during V-blank enabled?
|
; is automatic background transfer during V-blank enabled?
|
||||||
; if nonzero, yes
|
; if nonzero, yes
|
||||||
; if zero, no
|
; if zero, no
|
||||||
|
@ -1078,6 +1150,7 @@ SQUIRTLE EQU $B1
|
||||||
CHARMELEON EQU $B2
|
CHARMELEON EQU $B2
|
||||||
WARTORTLE EQU $B3
|
WARTORTLE EQU $B3
|
||||||
CHARIZARD EQU $B4
|
CHARIZARD EQU $B4
|
||||||
|
MON_GHOST EQU $B8
|
||||||
ODDISH EQU $B9
|
ODDISH EQU $B9
|
||||||
GLOOM EQU $BA
|
GLOOM EQU $BA
|
||||||
VILEPLUME EQU $BB
|
VILEPLUME EQU $BB
|
||||||
|
|
Loading…
Reference in a new issue