Here is a Google traduction of the page :
Ever since I made the control box for the paddle, I wanted to challenge myself to make a sub-board so that I could play Namco's Block Breaker "Quester".
This time, I created a harness with a function equivalent to a sub-board, so I will introduce it.
Quester is a game for Namco SYSTEM1, and it is a block breaker that you play by operating a paddle. Unlike other companies' block breakers, the paddle controller does not connect directly to the board's JAMMA connector, but connects via a sub-board.
Although I don't own a sub-board, I can mostly know how it works from the MAME source code. If you look at quester_paddle_r in MAME's src/mame/machine/namcos1.cpp you can see what information it gets from the subboard.
This method uses the SYSTEM1 I/O controller custom IC 64 (its true identity is Hitachi's 6800-series single-chip microcomputer 63701 with built-in ROM) to read the state of the joysticks and buttons of players 1 and 2 on the JAMMA connector. process to replace with the signal of
offset == 0 is player 1's button and joystick, offset == 1 is player 2. Button and joystick states are represented by bits, where 0 is ON and 1 is OFF. A total of 8 bits (1 byte), 4 bits for the 4 directions of the joystick and 4 bits for the start button and 3 operation buttons, are read at once. The meaning of the bit is as follows (common to each player).
x--- ---- START
-x-- ---- BUTTON3
--x- ---- BUTTON2
---x ---- BUTTON1
---- x--- UP
---- -x-- DOWN
---- --x- LEFT
---- ---x RIGHT
The paddle state is represented by a 1-byte integer value that is added or subtracted depending on the direction the paddle is turned. There are two paddles for two players, and the sub-board is designed to send the state of each paddle to the JAMMA connector in time division. The meaning of each pin of JAMMA on the sub board is shown below.
x--- ---- ---- ---- 1P START
-x-- ---- ---- ---- 1: Enabled / 0: Disabled *
--x- ---- ---- ---- Always 0 (ON)
---x ---- ---- ---- 1P BUTTON1
---- xxxx ---- ---- PADDLE & 0x0f
---- ---- x--- ---- 2P START
---- ---- -x-- ---- Always 0 (ON)
---- ---- --x- ---- 1P:0 / 2P:1
---- ---- ---x ---- 2P BUTTON1
---- ---- ---- xxxx PADDLE >> 4
* As a result of the experiment, it was found that the value when the paddle state is 1: Enabled is used.
0: It is good to set each bit in the disabled state and confirm everything, then switch to 1: enabled.
Summarizing the results of the survey, it can be said that the functions required for the sub-board are as follows.
Hold paddle state
Monitor paddle movement and update state accordingly
Reflect the paddle state to JAMMA at appropriate timing
A PIC microcomputer was used for this realization. The firmware is also simple, just repeating the above.
It shows the board and the harness I made. Store in this state.
Enlargement of the sub-board. A single PIC microcomputer (PIC18F13K22) handles paddle processing, and three 74LS244s are installed to switch between paddles and joysticks.
The target this time is a paddle compatible control box, and since it is compatible with ham elephants and the paddle signal is digitized, no additional parts are required. Additional pull-down resistors may be required.
screen during play. You can see that the paddle is off center (moving).
SPECIAL EDITION can also be operated by ROM exchange.
Furthermore, it supports other games with the paddle/joystick switch. I tried running Splatterhouse on the same board.
In addition to Quester, Namco SYSTEM1 sub-board games include Bella Bowman, Face Off, and Overseas Tank Force (4-player simultaneous play version). Each requires its own sub-board.
I think it's possible to make these because I can understand the movement from the MAME source, but I have Bella Bowman and I don't want to play the others that much, so I don't have any plans to make them at the moment. I might make it if my desire to challenge production becomes bigger than playfulness.