Sega Master System / Mark III / Game Gear
Sega8bit & SMS Power! 2013 Event - 10th August 7 weeks and 2 days from now
|Paddle Control (code HPD-200)|
The Paddle Control was only released in Japan. It consists of a knob which rotates within a fixed range (not freely as in a "spinner") and two buttons, connected in parallel to give a single software button.
The button is connected identically to button 1 in a regular Control Pad.
The knob position is measured with 8 bits of accuracy, from 0 (fully anti-clockwise) to 255 (fully clockwise). Thus, 128 is the centre position.
This position is broken into two 4-bit "nibbles" and returned over the input lines normally used for the up, down, left and right directions. A clock crystal inside the controller toggles between which nibble is output, and it sets the TR (button 2) line accordingly:
0 for the low 4 bits,
1 for the high 4 bits. Here is a table of the bits output:
|TR value||Paddle position bits|
Games can thus input from the controller port in the normal way, waiting for both nibbles to be returned, to determine the paddle position.
Some games use a "weighted history" to smooth out any noise or abrupt changes; this is achieved by adding the latest "raw" position to the last smoothed position and dividing by two. This will however introduce a small control lag.
Because TR toggles between 0 and 1 constantly, with a 50% duty cycle, the paddle may be detected by sampling the value of TR a large number of times (eg. 256) and detecting a paddle if it is found to have a value of
1 approximately 50% of the time.
Since the paddle was not released outside Japan, this is really a non-existent controller. However, some games have code to support a paddle on export systems. To complicate matters, they detect the system region and manage the paddle differently for export systems.
The "export paddle" would appear (based on examining code in Out Run 3D) to not have an internal clock to toggle which nibble is returned; instead, the TH line is configured as an output from the console and is used to select which nibble is read. The code must then include a delay to allow the paddle hardware to respond, and check that the TR value has changed. This operation seems to be similar to how the Sports Pad works.
It has been reported that plugging a Japanese paddle into an Export system works. If so, this confuses matters since it would seem that it shouldn't except by chance 33% of the time. This issue has yet to be resolved. See this forum discussion for more information.