the cutting room mirror

ECC Junior no Hajimete Eigo Vol. 3: Patty-chan no o-Tanjoubi

This article has a talk page!This article has a talk page!
view on tcrf.net

An educational game for teaching English.

Debug Menu#

When reading the current page number, there's code to jump to an entry of an address table to setup the corresponding page. Right after that address table, there's an unreferenced setup subroutine for a debug menu:

00014e3e 30 39 00        move.w     (DAT_00ff06b8).l,D0w ; read current page
         ff 06 b8
00014e44 e5 40           asl.w      #0x2,D0w
00014e46 20 7b 00 04     movea.l    (PTR_LAB_00014e4c,PC,D0w*0x1),A0
00014e4a 4e d0           jmp        (A0)
                     PTR_LAB_00014e4c
                     XREF[1]:     FUN_00004286:00014e46(R)
; table of setup handlers for each page
00014e4c 00 01 f1 ce     addr       LAB_0001f1ce
00014e50 00 02 cf 30     addr       LAB_0002cf30
00014e54 00 03 bb 10     addr       LAB_0003bb10
00014e58 00 04 74 5a     addr       LAB_0004745a
00014e5c 00 05 83 d6     addr       LAB_000583d6
00014e60 00 05 83 d6     addr       LAB_000583d6
00014e64 00 05 83 d6     addr       LAB_000583d6
00014e68 4e b9 00        jsr        FUN_000046a6.l ; debug menu setup
         00 46 a6

We can replace the address in the last table entry (corresponding to page 6) with address 00014e68, by applying the following patch: 00014e64 = 00 01 4e 68

(Source: Original TCRF research)

Debugger#

ECCJuniorNoHajimeteEigoVol3-DebuggerROM.png ECCJuniorNoHajimeteEigoVol3-DebuggerRAM.png ECCJuniorNoHajimeteEigoVol3-DebuggerVRAM.png

Controls:

Down/Up

Increment / Decrement offset by 0x8

Down/Up + Red Button

Increment / Decrement offset by 0x40

Pen Button

Open tab

Sprite Debugger#

Sprite entries are initialized based on the last open page. In this example, it was page 1.

Controls:

Down/Up

Increment / Decrement ID

Right

Flip sprite

Left

Cycle palette

Sound Test#

Controls:

Down/Up

Increment / Decrement ID

Right

Play

Locate Utility#

Tracks the pen position, either on pad or StoryWare.

Controls:

Down/Up

Select NUM entry

Left

Clears stored position data

Right

View stored position data for all NUM entries

Pen Button

Stores current position in selected NUM entry