Skip to content

Latest commit

 

History

History
88 lines (81 loc) · 3.74 KB

NOTES.md

File metadata and controls

88 lines (81 loc) · 3.74 KB

ROM differences

There are two common dumps of this game that are recognized by most MSX emulators.

Name GoodMSX Kanji
CRC-32 25FC11FA 367D385E
Bank 1 $68 $60
Bank 2 $70 $80
Bank 3 $78 $A0
Original True False
Mapper ASCII8 Konami

The only difference between the ROMs is that they use different mappers. So the only different hex values in the ROMs are related to the address of banks used. This translation uses the original, ASCII8 ROM for patching.

Useful RAM Values

$D000 is the current position of the password cursor
$D001 is the current Y position of the password arrow
$D002 is the current X position of the password arrow

$D265 is the moon state
$D266 is the moon state timer

$D271 is Nakajima's current HP
$D272 is Nakajima's current level

$D27E is the number of Lapis
$D27F is the number of Bones
$D280 is the number of Batteries
$D281 is the number of Izanami Potions
$D282 is the number of Yumiko Potions
$D283 is the number of Small Potions
$D284 is the number of Cerberus
$D285 is the number of Mercury Sulfides
$D286 is the number of Omamoris
$D287 is the number of Cat's Eyes
$D288 is the number of Remola Staffs
$D289 is the number of Salamanders
$D28A is the number of HHC
$D28B is the number of Red Gem
$D28C is the number of Macca
$D28D is the number of Keys
$D28E is the number of Hourglasses
$D28F is the number of Spiked Boots
$D290 is the number of Horus Keys
$D291 is the number of Maps
$D292 is the number of Purses
$D293 is the number of Opoponacs
$D294 is the number of Bells
$D295 is the number of Lanterns
$D296 is the number of Enocian Tablets
$D297 is the number of Silver Talismans
$D298 is the number of Yumikos

$D6AE is the current area number
$D6AF is the current floor number

$D6BB is the amount of Macca

$D71C is Nakajima's INT stat

$D7A4 is the current amount of HHC Battery (Max is $10, decreases by 1 each time it is used)

$D7A8 through $D7B7 are the character values (According to DDSMT.tbl) of the inputted characters

Text Printing Routine

Label $5080 is the text printing routine
It loads text data from address stored in hl
Prints text location based on what's stored in de (YYXX Where XX is X position in pixels and YY is line number)
Text colour (X) and highlight (Y) based on what's loaded in b based on the MSX colour palette In cutscenes, one line can print 32 characters Automatically wraps but no line break
Characters for the text are loaded from the BIOS based on their hex value
Stops printing text until it sees the $FF character

Pointer Table Text

Some text will use a pointer table to load its text into hl
It will also used the fixed value of de = $10F0 but will call $59CC
The routine at $59CC uses the character value $FE as a newline and also centers the text Text loaded with this routine can only print 20 characters per line

Izanami Text

Visiting a new Izanami shrine displays a text message. After exiting Nakajima's INT stat increases by 1
Izanami has a new message for each level of INT
The pointer table for Izanami's messages are at $1B51B and are indexed by the value of $D71C (Nakajima's current INT)

Yumiko Doll Text

The pointer table for the Yumiko Dolls' messages are at $1B727 and are indexed by the value of $D71D