the cutting room mirror

Keyboard Pico: Kantan Waku Waku Keyboard

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

An educational game for teaching the player how to type, using the Keyboard Pico.

Test Mode#

A debug mode exists to read metadata and key presses from the keyboard.

This needs some investigation.
Discuss ideas and findings on the talk page.
Specifically: Needs to be verified in real hardware.

To activate this debug mode, the Storyware must be set to page 6, and the keyboard needs to be connected to it. Then, power on the game while holding down the red button in the pad.

The game checks the read page 6 value against 0x2a (bits 0b00101010) on the compare instruction at address 000006e4, instead of the usual value 0x3f (bits 0b00111111). The bits for 0x2a cannot be set by flipping pages, since those pages will only cover page sensors in a sequential manner. Presumably, this masked value is set by manually covering page sensors with other objects.

The following sets of 4 bits of data are read by this test mode:

Index

Data

Notes

0x0

M5ID

Always 0b0001.

0x1

M6ID

Always 0b0011.

0x2

Data size

Always 0b0100.

0x3

Pad 1 RLDU

This and the 2 sets below seem to be for a Mega Drive 6-button joypad. Although the Pico pad has a joystick and 2 buttons, these aren't mapped to this data.

0x4

Pad 2 SACB

See Pad 1 notes.

0x5

Pad 3 RXYZ

See Pad 1 notes.

0x6

L& Keyboard type

Unknown, there's logic to check for value 0b111 but without any observable effect.

0x7

Caps / Num / Scroll Lock

1 of 3 least significant bits is set when the corresponding lock is active.

0x8

Make / Break code

Either 0b1110 or 0b0111 is set to register key down or key up.

0x9

Data 7654

Most significant 4 bits of key code.

0xa

Data 3210

Least significant 4 bits of key code.

0xb

Unknown

0xc

Unknown

Alternatively, for emulators without support for the Keyboard Pico, the page check can be modified to instead test for the Storyware closed (page 0), using patch 000006e6 = 0000. Likewise, the red button needs to be held down during power on. However, this causes the test to fail after loading, since the fixed bits will not be matched.

(Source: QUFB)