Welcome to Data Crystal's new home! Data Crystal is now part of the TCRF family (sort of).
The wiki has recently moved; please report any issues in Discord. Pardon the dust.

Sherlock Holmes: Hakushaku Reijou Yuukai Jiken/Notes

From Data Crystal
Jump to navigation Jump to search

Chip tiny.png The following article is a Notes Page for Sherlock Holmes: Hakushaku Reijou Yuukai Jiken.

Hello intrepid ROM hacker


script starts at 10410h (8400h-C000h in RAM)

ROM address=RAM address+8010

text routine: loads from RAM at 1C2C0 in ROM (C2B0 in RAM)

pointers are all over the damn place
digits are separated (1234512345 lllllmmmmm)
e.g. you'll often see pointer tables like: 84 ab f1 23 5e 08 08 08 09 09
(not necessarily in groups of 5 though)


Some pointer tables I found!
----------------------------
392B-3934 ROM (5)
B91B-B924 RAM
points to (ROM) 13B98-13BDB(end of script!)

137CF-137DE (ROM) (8)
points to (ROM) 1061C-106C7

137DF-137EE (ROM) (8)
points to (ROM) 106C8-10770

399C-39AB ROM (8)
B98C-B994 RAM
points to (ROM) 13DCC-13ECB(train prices)

B884-BA73 ROM (248)
B874-BA63 RAM
points to (ROM) 1077D-118CA (876D-98BA RAM)

BA74-BC63 ROM (248)
BA64-BC53 RAM
points to (ROM) 118CD-12C2C *then* 117CA-118CA (these last 8 are the same as the last 8 above???)

B97C-B984? RAM (points to 13DC8 ROM-a number, then 0000 pointers - seems to be prices)
B966-B96D? RAM (not working?)
B870-B87A? RAM
B7BF-B7C7? RAM
B7CF-B7D7? RAM

Some hardcoded pointers I found!
(first number is the pointer location in ROM. then the address it points to in RAM, then the address in ROM)
--------------------------------
2CC8  - B987 - 13997
2D99  - B951 - 13961
2E6B  - B96B - 1397B
2EB5  - B887 - 13897
2ECD  - B8A4 - 138B4
2EF3  - B8B2 - 138C2
2FA1  - B8C2 - 138D2
308A  - B8CC - 138DC
30AB  - B8DD - 138ED
3107  - B8F2 - 13902
31EB  - B7FF - 1380F
321B  - B816 - 13826
3249  - B81F - 1382F
325D  - B830 - 13840
3275  - B85E - 1386E
3289  - B864 - 13874
329D  - B878 - 13888
335F  - BB1C - 13B2C
338A  - BB5A - 13B6A
33E6  - BB69 - 13B79
343F  - B904 - 13914
3458  - B942 - 13952
34A3  - BAF6 - 13B06
36F7  - B99C - 139AC
378C  - B9B9 - 139C9
3805  - BBCC - 13BDC
3818  - BC98 - 13CA8
1C39C - BCE0 - 13CF0
1C5D5 - C048 \
1C5E8 - C052  | yes/no window
1C5FB - C052  |
1C60E - C05C /
1C621 - C007 - yes
1C634 - C00B - no
1C689 - C066 \
1C69C - C066  | wiping the yes/no window
1C6AF - C066  |
1C6C2 - C066 /
1C71B - C00F
1C732 - C022
1C748 - C035
1CB54 - BABF - 13ACF
1CC31 - BAE3 - 13AF3
1CE9E - 8761 - 10771
1CEB1 - 8767 - 10777
1F0EE - 8400 - 10410


Parts of the script that still need their pointers located!
-----------------------------------------------------------
10424-1061B need pointers (21) starts at 1D246 ROM
118CB?
12C2D-137CE need pointers (100)
137CF-1380E is an inline pointer table (pointers+palettes?)
139E5-13ACE need pointers (7)
13D70-13DCB need pointers (23) (numbers)
13ECC-13F05 need pointers (16) (numbers)

hardcoded:
(I don't know what this means. More pointers? Figure it out)
----------
A9 (1) 8523A9 (2) 8524 search
A9 (1) 85C0A9 (2) 85C1 search

Some graphics in the ROM:
(only added here to better identify pointers that pointed to these places)
-------------------------
2679-2A78 (town names)
6010-700F (incl. title screen)
7810-800F
C010-FD0F
1015B-1039A (game over)
14010-1800F (incl. font)
19BC0-1BCBF