Interface: Proprietary serial
Year: 1989

Designed by Hori Electric Co. for Nintendo Family Computer (aka "Famicom") video game console. In addition to the common buttons, it does have cross-shaped D-pad control. Device is obviously intended for two-hands operation.


Sensors are of unusual design. Shutter discs are in fact a 16mm rollers supporting the ball, with micro 3x8x4mm ball bearings inside. Each roller have just 8 holes, so calculated resolution is incredibly low: 25 PPR / 4 CPI. Probably it was enough for planned purpose back then. Support bearing is marked 625Z Nachi Japan, and have the same outer size as X and Y rollers: 5x16x5mm. Main bearings are unmarked, but dimensions correspond to 693-ZZ type. They're of serviceable kind (removable shields), seemingly stainless, and of very good quality: still rotating like new. Discrete photosensors and LEDs are assembled in plastic enclosures, used also as a bearing retainers.


Signals are rectified with Rohm BU4093B Schmitt triggers. Main 28-pin controller in cradle is marked Hori TRK-81-R01 BU3219, and probably is also made by Rohm Semiconductor.


PCB is supposed to be fixed in the case by single self-taping screw, but for some reasons it was never installed at the factory: the hole in the mounting post is intact. I've added that screw myself. Buttons and D-pad are made of conductive rubber pads, contacting PCB traces (like in TV-remotes), so there's no any clicks. Speed and orientation selection switches are located on the bottom of device.


Connector is compatible with standard DB-15 but is longer, and does not have retaining screws. Just 5 wires are actually used, marked on the PCB side as VCC, GND, CLK, P/S and DA.


This trackball originally is not a pointing device, but seems it's could be converted easily. In the right-hand operation mode, the "B" button is located directly under the thumb, so if used as a left mouse button, hand position is the same as with most trackballs. Quality of ball mechanics is very high: smooth movement, and the ability to spin.
Original package box and leaflet:
Communication protocol is described on NESdev Wiki page, mojo blog and Martin Korth (c) NO$NES page. I've also copied them here:
Spoiler
Show
Code: Select all
https://wiki.nesdev.com/w/index.php/Mouse
Hori Track
Hori produced a trackball compatible with Moero Pro Soccer, Moero Pro Soccer, Putt Putt Golf, and US Championship V'Ball. It was released in Japan, and what appears to be a prototype U.S. version was exhibited behind glass in Nintendo World, but the U.S. version never reached stores.
Report byte 1 is the embedded standard controller.
Byte 2, MSB first:
7654 3210
|||| ++++- Axis 2, signed 4 bit, XOR with $F
++++------ Axis 1, signed 4 bit, XOR with $F
Byte 3, MSB first:
7654 3210
|||| ++++- Unknown (read and unused by games)
||++------ ID byte (1 or 2 depending on version)
|+-------- Unknown (speculated by nocash to be the speed switch)
+--------- Rotation mode switch (0: R, 1: L)
In rotation mode L, Up on the Control Pad points up, axis 1 points down, and axis 2 points right. In rotation mode R, Up on the Control Pad points right, axis 1 points left, and axis 2 points down.
Code: Select all
https://blog.world3.net/2010/04/hori-famicom-trackball-protocol/
Hori Famicom trackball protocol
I just finished adding support for Famicom/NES trackballs to the Retro Adapter firmware. I can now use it as a mouse :-)
The protocol is quite simple. Data is read from the controller in the same way as a normal gamepad. The first 8 bits are the same, followed by 4 bits of y axis offset and 4 bits of x axis offset. Finally there is an ID nibble of 1000. The axis data is in two’s complement format, most likely just the output from some up/down counters.
I opened the trackball up for a look and it uses a custom Hori controller IC labelled “TRK-81-R01” and “BU3219 844 315”. The only other components are two optical encoders for the ball, two switches (high/low speed, left/right handed), a few resistors, a single power supply capacitor and a 4093 Schmitt trigger. The two ICs are both DIP format. The PCB is single sided and does not use any jumper wires; however there is a patch wire which corrects a off-by-one-pin wiring error. The whole thing could be done in pure logic ICs but Hori must have thought it was cheaper to use a custom IC. Considering the age and limited popularity of the device that’s somewhat surprising.
Unfortunately the deletionists destroyed the Wikipedia article on Hori.
Code: Select all
https://problemkaputt.de/everynes.htm
Hori Track
Moero Pro Soccer (J) 1988 Jaleco
Operation Wolf (J) (U) 1989 Taito (also supports Zapper lightgun)
Putt Putt Golf (FDS) 1989 Pack-In-Video
US Championship V'Ball (J) 1989 Technos Japan Corp
Hori seems to have planned both NES and Famicom versions of the controller; as far as known, the NES version wasn't released, but, most of the existing games (except Putt Putt Golf) do contain both NES and Famicom controller protocol versions:
Version Input Data from ID Bits Connector Released
Famicom [4016h/4017h].Bit1 0,1 15pin Yes
NES [4016h/4017h].Bit0 1,0 7pin No
Controller Bits:
(to be preceeded by normal joypad like 1-then-0 strobing on OUT-0)
1st..8th bit --> Same as normal joypad data
9th..12th bit --> Axis 1, signed 4bit (MSB first, inverted, 1=Low=Zero)
13th..16th bit --> Axis 2, signed 4bit (MSB first, inverted, 1=Low=Zero)
17th --> L/R mode switch (0=High=R-Mode, 1=Low=L-Mode)
18th --> Unknown/unused (probably SPEED LO/HI switch) (=?)
19th --> ID Bit1 (0=High=Famicom, 1=Low=NES)
20th --> ID Bit0 (0=High=NES, 1=Low=Famicom)
21th..24th --> Unknown/unused (read by software, but seems to be unused)
25th and up --> Unknown/unused (probably whatever padding bits)
Trackball Orientation:
When 17th Bit=1: (L-Mode) (supported by all games)
Axis 1 is to be treated as Y-axis (POSITIVE = DOWN = towards DPAD)
Axis 2 is to be treated as X-axis (POSITIVE = RIGHT = towards START/SELECT)
When 17th Bit=0: (R-Mode) (not supported by Operation Wolf)
Axis 1 is to be treated as X-axis (POSITIVE = LEFT = towards DPAD)
Axis 2 is to be treated as Y-axis (POSITIVE = DOWN = towards START/SELECT)
DPAD orientation is unknown (according to manual, it sounds like UP=Towards Ball, RIGHT=Towards B-Button) (in software, this should be probably always kept handled as so, regardless of the L/R switch).
___________ L-Mode R-Mode ___________
| ___ |\ __________ __________ /| ___ |
| .' '. | | |\ /| _ | | .' '. | HORI TRACK
| | BALL | | | STA | | | | _| |_ | | | BALL | |
| | | | | // SEL | | | | |_ _| | | | | | HORI ELECTRIC
| '.___.' | | // | | | | |_| | | '.___.' | CO.LTD.
|___________| | A | | | | | |___________| MODEL TRK-7
| \| .''. | | | | .''. |/ | MADE IN JAPAN
|_____________| | | | | | | | | |_____________|
| _ B '..' | | | | '..' B | Note:
| _| |_ .''. | | | | .''. STA | L/R switch and
| |_ _| | | | | | | | | SEL \\ | SPEED LO/HI
| |_| '..' | | | | '..' A \\ | switch are at
|________________________| | | |________________________| bottom-side
| H O R I T R A C K \ | | / |
|_________________________\| |/_________________________|
