Hori Track trackball controller

Discuss hardware-related topics, such as development cartridges, CopyNES, PowerPak, EPROMs, or whatever.
Fiskbit
Site Admin
Posts: 1404
Joined: Sat Nov 18, 2017 9:15 pm

Hori Track trackball controller

Post by Fiskbit »

I did some research on the Hori Track a while back, but haven't gone further with it or cleaned it up for the wiki. Since there was interest about it here in the NES to USB Keyboard interface? thread, I'm posting my notes here for now.

The serial report is as follows:

Code: Select all

 0-7   - Standard controller
 8-11  - Y axis, inverted (high bits first; real positive is down)
12-15  - X axis, inverted (high bits first; real positive is right)
   16  - L/R switch (1 = left)
   17  - Lo/Hi switch (1 = lo)
   18  - (Always 0)
   19  - (Always 1)
20-23  - (Always 0)

   24+ - (Always 1)
'Real positive' means positive values for the uninverted value that the controller is outputting; controller signals go through an inverter on the way to the CPU. I also noted:
Stationary is 0. Slow positive movement is 1, slow negative movement is F, etc.
Lo/Hi switch in Hi mode appears to produce larger values from the same amount of movement.
Supposedly an unreleased NES version of this controller inverts bits 18 and 19 (signature).
Note that the speed switch does, in fact, cause the controller to report faster values. The handedness switch, however, appears to merely control a single bit of the report, signaling to the game that it should interpret the inputs differently. That is, handedness is entirely software-driven.

I did not note whether the report was on $4016.1 or $4017.1, which tells me almost certainly that it's the more obvious $4016.1; It is supposed to be able to work as a standard controller, after all.

The controller uses a custom 28-pin BU3219 chip. lidnariq identified a pinout from the photos, which I've illustrated below:

Code: Select all

               _____ _____
               |    V    |
          A -> |  1   28 | -- 5v
          B -> |  2   27 | ?? nc
     Select -> |  3   26 | ?? GND
      Start -> |  4   25 | ?? nc
         Up -> |  5   24 | ?? nc
       Down -> |  6   23 | ?? nc
       Left -> |  7   22 | ?? nc
      Right -> |  8   21 | ?? GND
   UpdownQ1 -> |  9   20 | <- handedness
   UpdownQ2 -> | 10   19 | ?? nc
LeftrightQ1 -> | 11   18 | <- speedswitch
LeftrightQ2 -> | 12   17 | -> data
         nc ?? | 13   16 | <- delayedLOAD
        GND -- | 14   15 | <- delayedClock
               |_________|
It is presumed that pins 21-27 are likely the fixed bits at the end of the report, with pins 27-21 being bits 18-24, but this hasn't yet been tested. Perhaps, though, that last ground isn't actually a serial in for bit 24.

One note about the attached photos: there is a difficult-to-see hole punched through a trace underneath the BU3219 that is partially obscured by the bodge wire. The hole punch and wire reroute the handedness signal from pin 19 to pin 20.
You do not have the required permissions to view the files attached to this post.
User avatar
bitcores
Posts: 66
Joined: Thu Apr 20, 2023 3:09 am
Location: Japan

Re: Hori Track trackball controller

Post by bitcores »

Looking around at some subor information I stumbled across this.
http://problemkaputt.de/everynes.htm#co ... llandmouse

Code: Select all

Version   Input Data from      ID Bits   Connector   Released
  Famicom   [4016h/4017h].Bit1   0,1       15pin       Yes
  NES       [4016h/4017h].Bit0   1,0       7pin        No
There's some more information about the L/R orientation, too.
lidnariq
Site Admin
Posts: 11814
Joined: Sun Apr 13, 2008 11:12 am

Re: Hori Track trackball controller

Post by lidnariq »

That's the switch on the side, marked "handedness"