Jissen Mahjong controller

From NESdev Wiki
Revision as of 07:40, 15 October 2017 by Lidnariq (talk | contribs) (found someone's reverse-engineered schematic)
Jump to navigationJump to search

This is a 21-button controller used by the following Capcom games:

  • Ide Yousuke Meijin no Jissen Mahjong
  • Ide Yousuke Meijin no Jissen Mahjong 2

Button layout

A B C D E F G H I J K L M
SEL ST カン ポン チー リーチ ロン

The カン (kan), ポン (pon), チー (chii), リーチ (riichi) and ロン (ron) buttons appear to be Mahjong-related.[1]

Hardware interface

Input ($4016 write)

7  bit  0
---- ----
xxxx xRRS
      |||
      ||+- Strobe
      |+-- Row selection (bit 0)
      +--- Row selection (bit 1)

Output ($4017 read)

7  bit  0
---- ----
xxxx xxDx
       |
       +- Serial data

Note: The following is my assumption on how the hardware works based on nocash's documentation and could be partially incorrect.[2]

After toggling the strobe bit from 1 to 0, the controller will return 8 bits worth of data (1 bit per read) based on the "row selection" bits.

Row 0 returns no data (?).
Row 1 returns: <empty>, <empty>, N, M, L, K, J, I
Row 2 returns: H, G, F, E, D, C, B, A
Row 3 returns: <empty>, ロン, リーチ, チー, ポン, カン, Start, Select

Buttons return 0 when held down, 1 otherwise.

The buttons are arranged as a 3x8 keyboard matrix similar to the Famicom keyboard. A variety of diodes, resistors, and an NPN BJT pull one of the rows low; the eight columns are then loaded into the same 4021 shift register as used on the standard controller. It tentatively looks selecting row 0 should effectively scan both rows 1 and 2 simultaneously (i.e. 0 if either button is pressed) [3] The Serial Input to the 4021 is tied to ground; all subsequent reads beyond the first eight should return 0V (logic 1 due to the 74368 inside the Famicom).

Notes:

  • The exact order of the first 5 buttons on row 3 is unconfirmed(?) (the order written here makes sense considering the button order used in rows 1 & 2).
  • The output for <empty> bits or any reads beyond the first 8 bits is unconfirmed. (?)

References