Jissen Mahjong controller: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
(found someone's reverse-engineered schematic)
Line 10: Line 10:
|}
|}


The カン (kan), ポン (pon), チー (chii), リーチ (riichi) and ロン (ron) buttons appear to be Mahjong-related.<ref name="Mahjong">[http://www.appbank.net/2016/05/25/iphone-application/1208030.php Japanese website with mentions to カン, ポン and チー]</ref>
The カン (kan), ポン (pon), チー (chii), リーチ (riichi) and ロン (ron) buttons appear to be Mahjong-related.<ref name="Mahjong">[http://www.appbank.net/2016/05/25/iphone-application/1208030.php Japanese website with mentions to カン, ポン and チー]</ref><ref name="wikipedia">[[wikipedia:Japanese Mahjong]]</ref>


== Hardware interface ==
== Hardware interface ==

Revision as of 08:27, 15 October 2017

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][2]

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.[3]

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) [4] 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