This is the RAM map for Boktai 2 (U).
EWRAM
Address |
Type |
Description
|
0x0200184c |
|
Is full moon (*0x030047f6 == 4)
|
0x02001469 |
i8 |
High-level solar sensor state: 0=disabled, 1=waiting for enable, 2=enabled. When going through a screen transition, this will change from 2 -> 0 -> 1 -> 2.
|
0x0200146c |
i16 |
High-level solar sensor: Calibrated level (0=dark, 140=max brightness. Calibrated level = calibration - raw level, then clamp to 0-140)
|
0x02001470 |
i16 |
High-level solar sensor delay: Used for delaying the state 0 -> 1 and 1 -> 2 transitions
|
0x02002464 |
i32 |
Total EXP until next level
|
Stat struct
Access this struct via 0x03004690. See also: Inventory (Boktai 2).
Offset |
Type |
Description
|
0x28 |
i16[6] |
Stats (HP/ENE/VIT/SPR/STR/AGI) - updated from *0x03002be0 + 0x364 on screen transitions
|
0x30 |
i16[3] |
Django(& Sabata?) position
|
0x40 |
i16 |
Current level
|
0x42 |
i16 |
Allocatable stat points
|
0x46 |
i16[5] |
Weapon skill EXP (Sword/Spear/Hammer/Fists/Gun; 100 exp = 1 skil level)
|
0x50 |
i32 |
Total EXP
|
0x54 |
i32 |
Magic inventory (bitmask)
|
0x70 |
i16[48] |
Item inventory slots
|
0xd0 |
i16[48] |
Item inventory durability
|
0x130 |
i16[16] |
Key item inventory
|
0x150 |
i16[32] |
Protector inventory
|
0x23a |
i16 |
Solar bank interest rate (stored as (1+r)*64, e.g. 14.0625% = 73)
|
0x242 |
i16 |
Current map ID
|
0x250 |
i16 |
Current player form (Red Django/Black Django/Bat/Mouse/Unused/Sabata)
|
0x254 |
i16 |
Current area ID
|
0x24c |
i32 |
Current map's init script ID
|
0x2c0 |
|
Django: Kaamos progress
|
0x2c4 |
|
Sabata: Kaamos progress
|
0x2c8 |
|
Django: Kaamos status
|
0x2ce |
|
Sabata: Kaamos status
|
0x3d0 |
struct[16] |
Weapon inventory
|
World struct
Access this struct via 0x030046a0. Note: In the Japanese version, this struct is laid out slightly differently.
Offset |
Type |
Description
|
0x1e8 |
i16 |
Current door ID
|
Scratch struct
Access this struct via 0x03004698.
IWRAM
Address |
Type |
Description
|
0x030026b4 |
i32 |
Solar sensor interface: State (0=measuring, 1=resetting, 2=idle)
|
0x030026b8 |
i32 |
Solar sensor interface: Counter (0-511, counts half-cycles of the 74LV4040 counter chip)
|
0x030026c0 |
i32 |
Solar sensor interface: shift out (next value to be written to GPIO_DATA)
|
0x03002be0 |
struct* |
Pointer to Django's actor data?
|
+ 0x35c |
i16[4] |
Current VIT/SPR/STR/AGI
|
+ 0x364 |
i32[2] |
Current HP/ENE
|
0x03002cb8 |
code* |
Pointer to TM3 interrupt handler
|
0x03002cf0 |
i32 |
Frames since reset
|
0x030045a0 |
void* |
Bytecode: Program counter
|
0x03004690 |
void* |
Pointer to #Scratch struct, defaults to 0x0203e200 on hard reset (but moves on soft resets)
|
0x03004698 |
void* |
Pointer to #World struct, defaults to 0x0203e200 on hard reset (but moves on soft resets)
|
0x030046a0 |
void* |
Pointer to #Stat struct, defaults to 0x0203c400 on hard reset (but moves on soft resets)
|
0x030047a8 |
struct* |
Pointer to #Global save data (always 0x030016c0)
|
0x030046b8 |
i32 |
RNG index
|
0x030047e0 |
u32 |
RTC date (BCD, yyyymmdd)
|
0x030047e4 |
u8 |
RTC hours
|
0x030047e5 |
u8 |
RTC minutes
|
0x030047e6 |
u8 |
RTC seconds
|
0x030047cc |
i32 |
Solar sensor interface: Timer interval (TM3CNT_LO will be set to -this value)
|
0x030047f6 |
i32 |
Current moon phase
|
0x030057b8 |
i32 |
Solar sensor interface: Is enabled (true/false)
|
0x030057bc |
i32 |
Solar sensor interface: Last result (GPIO_DATA & 8)
|
0x030057c8 |
i32 |
Solar sensor interface: Raw level (counter / 2 when GPIO_DATA & 8 becomes nonzero. 0=max brightness, 255=dark)
|
Global save data
EEPROM
TODO
Save data checksums