ARM9 menu string pool

DS game only ใจใ‚“ใŒใ‚Šใƒœใ‚ฆใ‚ทใจใŠใ—ใ‚ƒใ‚Œใชใพใปใ†ใคใ‹ใ„ The field guide documents the DS game's internals.

The 26 short action verbs / quantity labels embedded in the ARM9 binary's data section, plus the 20-string NPC interaction menu in ov096 and the equip/remake slots in ov170/171. All width-budgeted by fixed slot stride.

String pool location

"Plaintext-ARM9" trick

The original ROM ships ARM9 in BLZ-compressed form (564,488 bytes at ROM offset 0x4000). Editing the embedded string pool in place is awkward because the strings live after the BLZ-decompressed boundary. Patching the Nintendo SDK module-params field CompressedStaticEnd := StaticBSSStart (where StaticBSSStart = 0x020A87A0) makes the boot ROM skip BLZ decompression entirely โ€” the ARM9 is loaded as plaintext at boot. Decompressed size: 723,032 bytes (0xB0858). Validated in notes/arm9_passthrough_test_RESULTS.md. See BLZ & the plaintext-ARM9 trick for the full format breakdown.

Slot widths

The patcher fits each EN string into the slot's pre-allocated byte width. Slot column = byte budget. Strings that overflow even the canon shortened form are marked CO (canon-overflow) and will be restored if a pool relocator is added later.

ARM9 pool โ€” 26 strings

#file offslotENCO?sourceJP / G1 canon note
1 0xa6e44 8 Get CO canon-mine ใ‚‚ใค (G1: Hold)
2 0xa6e4c 8 Put CO canon-mine ใŠใ (G1: Place)
3 0xa6e54 8 Dig CO canon-mine ใ†ใ‚ใ‚‹ (G1: Bury)
4 0xa6e5c 8 Bin CO canon-mine ใ™ใฆใ‚‹ (G1: Discard)
5 0xa6e64 8 End CO canon-mine ใ‚„ใ‚ใ‚‹ (G1: Exit/Quit)
6 0xa6e6c 8 Hum fresh ใ†ใŸใ† (sing; Sing overflows by 1)
7 0xa6e74 8 Nxt CO canon-mine ใคใŽใธ (G1: Next)
8 0xa6e7c 8 <<< CO canon-mine ใ‚‚ใฉใ‚‹ (G1: Back)
9 0xa6e84 12 Save corpus ใจใ†ใ‚ใ (G1: Register/Save)
10 0xa6e90 12 1 R CO canon-mine ๏ผ‘ใƒชใƒƒใƒ
11 0xa6e9c 12 Call CO canon-mine ใใกใถใˆ (G1: Whistle)
12 0xa6ea8 12 Free CO canon-mine ใ‚€ใ—ใซใŒใ™ (G1: Release insect)
13 0xa6eb4 12 Equip canon-G1 ใฟใซใคใ‘ใ‚‹ โœ“
14 0xa6ec0 12 10 R CO canon-mine ๏ผ‘๏ผใƒชใƒƒใƒ
15 0xa6ecc 12 Walls CO canon-mine ใ‹ในใ‹ใˆใ‚‹ (G1: Change wallpaper)
16 0xa6ed8 12 Floor CO canon-mine ใ‚†ใ‹ใ‹ใˆใ‚‹ (G1: Change flooring)
17 0xa6ee4 16 Swap fresh ใŠใ/ใ‹ใˆใ‚‹
18 0xa6ef4 16 Unequip canon-G1 ใใ†ใณใฏใšใ™ โœ“
19 0xa6f04 16 Release CO canon-mine ใ•ใ‹ใชใซใŒใ™ (G1: Release fish)
20 0xa6f14 16 Hat off CO canon-mine ใผใ†ใ—ใฏใšใ™ (G1: Remove hat)
21 0xa6f24 16 No spex CO canon-mine ใ‚ใŒใญใฏใšใ™ (G1: Remove glasses)
22 0xa6f34 16 100 R CO canon-mine ๏ผ‘๏ผ๏ผใƒชใƒƒใƒ
23 0xa6f44 16 1000 R CO canon-mine ๏ผ‘๏ผ๏ผ๏ผใƒชใƒƒใƒ
24 0xa6f54 20 10000 R CO canon-mine ๏ผ‘๏ผ๏ผ๏ผ๏ผใƒชใƒƒใƒ
25 0xa6f68 20 Take off fresh ใƒใƒƒใ‚ฏใƒฌใ‚นใฏใšใ™ (G1: Remove [N])
26 0xa6f7c 28 100000 Ritch canon-G1 ๏ผ‘๏ผ๏ผ๏ผ๏ผ๏ผใƒชใƒƒใƒ โœ“

Overlay single-string slots (ov047 / ov059 / ov065)

Overlayfile offslotENsourceJP / canon notes
ov0470x1c7020Show BGMfreshใ‚ทใƒงใƒผใฎใŠใ‚“ใŒใ
ov0590x1b2c12Magicfreshใจใ‚“ใŒใ‚Š (G1 dropped "Pointy")
ov0650x337840Like this? (Y/N)freshใ“ใ‚Œใงใ„ใ„ใ‹ใ„๏ผŸ (confirm prompt)

Overlay 096 โ€” NPC interaction menu (20 strings)

The friend-chat / NPC interaction menu. All fresh translations except Mystery and Rumors which lean on Game 1 corpus parallels (ใตใ—ใŽ โ†’ mystery, ใ‚ฆใƒฏใ‚ต โ†’ rumor) and Berry's which is the shop name carried verbatim from friend-chat dialog. The first slot (<<<) is canon-overflow for "Back".

#file offslotENsourceJP
1 0x540 8 <<< canon-mine (CO) ใ‚‚ใฉใ‚‹ (G1: Back)
2 0x548 12 Picks fresh ใ‚ชใ‚นใ‚นใƒก
3 0x554 12 Any fresh ใชใ‚“ใงใ‚‚
4 0x560 16 Shops fresh ใŠใฟใ›ใฎใ“ใจ
5 0x570 16 Stories fresh ใฏใชใ—ใ‚’ใใ
6 0x580 16 Hangout fresh ใชใ‹ใ‚ˆใใ™ใ‚‹
7 0x590 16 Nothing fresh ใชใ‚“ใงใ‚‚ใชใ„
8 0x5a0 16 Fashion fresh ใŠใ—ใ‚ƒใ‚Œใฎใ“ใจ
9 0x5b0 16 Fairs fresh ใƒ•ใ‚งใ‚ขใซใคใ„ใฆ
10 0x5c0 16 Go play fresh ใ‚ใใณใซใ„ใ“ใ†
11 0x5d0 16 Mystery corpus ใตใ—ใŽใซใคใ„ใฆ (G1: ใตใ—ใŽโ†’mystery)
12 0x5e0 16 Rumors corpus ใ‚ฆใƒฏใ‚ตใซใคใ„ใฆ (G1: ใ‚ฆใƒฏใ‚ตโ†’rumor)
13 0x5f0 16 Gift fresh ใ„ใ„ใƒขใƒŽใ‚ใ’ใ‚‹
14 0x600 20 Berry's canon ใƒ™ใƒชใƒผใ‚บใซใคใ„ใฆ (shop name; possessive matches friend-chat dialog)
15 0x614 20 Errand? fresh ใ‚ˆใ†ใ˜ใฏใชใใซ๏ผŸ
16 0x628 20 To school fresh ใŒใฃใ“ใ†ใซใ„ใ“ใ† (G1: ใŒใฃใ“ใ†โ†’school)
17 0x63c 20 Trends fresh ใ‚Šใ‚…ใ†ใ“ใ†ใซใคใ„ใฆ
18 0x650 20 Reviews fresh ใฒใ‚‡ใ†ใฐใ‚“ใซใคใ„ใฆ
19 0x664 24 Go shopping fresh ใ‚ทใƒงใƒƒใƒ”ใƒณใ‚ฐใซใ„ใ“ใ†
20 0x67c 32 Style check fresh ใƒ•ใ‚กใƒƒใ‚ทใƒงใƒณใƒใ‚งใƒƒใ‚ฏ

Overlay 170 / 171 โ€” equip + remake slots

Two late-game / extra-event overlays. The equip slots align with Game 1 canon (ใฟใซใคใ‘ใ‚‹ โ†’ Equip); the remake slots ship as a fresh translation of ใคใใ‚ŠใชใŠใ™, choosing "Remake" over the more literal "Redo" to preserve the dress-up meaning.

Overlayfile offslotENsource
ov1700x1d5016Equipcanon-G1 โœ“
ov1710x74012Equipcanon-G1 โœ“
ov1710x74c12Equipcanon-G1 โœ“
ov1710x75816Remakefresh
ov1710x76816Remakefresh
ov1710x77816Remakefresh

Currency canon

Game 1's official Konami currency name is Ritch (not "Mira"). Evidence: 66 corpus hits, including the standalone slot-form ใƒชใƒƒใƒ โ†’ Ritch. The 6 currency tier strings: 1ใƒชใƒƒใƒ โ†’ 1 R, 10ใƒชใƒƒใƒ โ†’ 10 R, โ€ฆ, 100000ใƒชใƒƒใƒ โ†’ 100000 Ritch.

Slot budgets vs canonical EN length

20 slots cannot fit the full Konami EN canon within their fixed slot stride. The constraint is structural: each slot is allocated a pre-computed byte width in the pool, and any string longer than that byte width would overrun into the next slot. A pool relocator that rewrote the pointer table and grew the pool would relax these per-slot byte budgets; that is not currently in scope. The table below records the gap between the byte-budget-fitting EN and the longer canonical Konami EN so the cost is visible. The currency tiers and "Change wallpaper" / "Change flooring" are the highest-information-loss cases; Hat off, No spex, and Release are close-enough-to-canon semantically.

SlotFits in slotFull Konami canon
arm9 0xa6e44 Get Hold
arm9 0xa6e4c Put Place
arm9 0xa6e54 Dig Bury
arm9 0xa6e5c Bin Discard
arm9 0xa6e64 End Exit
arm9 0xa6e74 Nxt Next
arm9 0xa6e7c <<< Back
arm9 0xa6e90 1 R 1 Ritch
arm9 0xa6e9c Call Whistle
arm9 0xa6ea8 Free Release insect
arm9 0xa6ec0 10 R 10 Ritch
arm9 0xa6ecc Walls Change wallpaper
arm9 0xa6ed8 Floor Change flooring
arm9 0xa6f04 Release Release fish
arm9 0xa6f14 Hat off Remove hat
arm9 0xa6f24 No spex Remove glasses
arm9 0xa6f34 100 R 100 Ritch
arm9 0xa6f44 1000 R 1000 Ritch
arm9 0xa6f54 10000 R 10000 Ritch
ov96 0x540 <<< Back

Slot accounting

SourceCount
canon-G1 (full canon, fits)5 (Equip ร—4, Unequip ร—1, 100000 Ritch)
canon-mine (canon overflow, shortened)20
canon (shop name, fits)1 (Berry's at ov96 0x600)
corpus (G1 dialog inference)3 (Save / Mystery / Rumors)
fresh23
Total slots filled52
Total unique strings49 (Equip ร—3 + Remake ร—3 = 6 duplicate slots)

Source