Jump to content

Recommended Posts

As some of you may or may not know, Thomas Jentzsch and I have converted some 2600 games to use a Trak-Ball controller. Thomas originally converted Missile Command to use the trackball over a decade ago. More recently Thomas converted Centipede and Reactor. I joined the fun and did Millipede. The thread we posted the ROMs in wasn't really related... it all came about kind of spontaneously. icon_smile.gif That thread does contain a whole whack of routines if anyone is ever interested. It all starts on page 4 and goes for several pages.

 

Here in this thread are the latest ROMs, organized, for easy finding.

 

Note for CX80 Trak-Balls:

Atari CX80 Trak-Balls work the same as the CX22 Trak-Balls. However, some retailers modified the CX80's to be compatible with the ST Mouse (Atari Mouse). If you have a CX80 then you will have to try both the Trak-Ball and Atari Mouse ROMs to see which one works with your Trak-Ball, or try the detection ROM. It is believed only a small number of Trak-Balls were modified.

 

Note for CX22 Trak-Balls:

An early version of this controller only works in joystick emulation mode and cannot be used with these ROMs unless modified. Check for the presence of the "joystick/trakball" switch on the bottom left side to ensure that you have the later compatible version and set it in "trakball" mode.

 

Wico Command Controller Trackballs:

These trackballs don't work with these ROMs as is. However, the Wico Trackball can be converted to work. See modification guide below for details.

 

 

Bob Colbert's Homebrew which can use an Amiga Mouse, Atari Mouse, Driving Controller, or Joystick!

Link: Stell-A-Sketch (Bob Colbert)

 

Link: Trak-Ball/Amiga Mouse detection (TJ)

Roms: Trak-Ball Detect v1.0.zip

 

Link: Missile Command TB (TJ)

Roms: Missile_Command_TB_(TJ).zip

Roms: Missile_Command_CX_22_v1.3_(TJ).zip

 

Link: Centipede TB (TJ)

Roms: Centipede_TB_(TJ)_v1.4.zip

 

Link: Reactor TB (TJ)

Roms: Reactor_TB_(TJ)_v1.3.zip

 

Link: Millipede Amiga and ST Mouse Info (Omega)

Millipede(Trakball)v6.5.zip

 

Link: Challenge Of Nexar, The (TJ)

Roms: Challenge_of_Nexar_TB_(TJ)_NTSC_V1.1.zip

Roms: Challenge_of_Nexar_TB_(TJ)_PAL_V1.1.zip

Roms: Challenge_of_Nexar_CX22_(TJ)_v1.2.zip

 

Link: SW_Arcade (Omega)

Roms: SW_Arcade(Trackball)V4.zip

Roms: SW_Arcade(Trackball)V4__Inverted_Y_Axis.zip

 

Link: SpaceMasterX7_(Omega)

Roms: SpaceMasterX7_(Trackball).zip

 

Link: Missile Control (TJ)

Roms: Missile_Control_TB_(TJ)_NTSC_V1.15.zip

Roms: Missile_Control_TB_(TJ)_PAL_V1.15.zip

 

Link: Marble Craze (TJ)

NEW: Marble_Craze_TB_(TJ)_NTSC_V1.0.zip

NEW: Marble_Craze_TB_(TJ)_PAL_V1.0.zip

 

 

 

Trouble Shooting Guide:

1) Trakball only moves Down or Right - Fix

 

 

 

Modifications Guide:

1) Convert a CX-22 for ST Mouse (Atari Mouse) - Here

2) Wico Command Controller Trackball Conversion - Here

  • Like 42
  • Thanks 2
Link to comment
Share on other sites

As some of you may or may not know, Thomas Jentzsch and I have converted some 2600 games to use a Trak-Ball controller. Thomas originally converted Missile Command to use the trackball over a decade ago. More recently Thomas converted Centipede and Reactor. I joined the fun and did Millipede. The thread we posted the roms in wasn't really related... it all came about kind of spontaneously. :) That thread does contain a whole whack of routines if anyone is ever interested. It all starts on page 4 and goes for several pages.

 

Here in this thread are the latest roms, organized, for easy finding.

 

Link: Missile Command TB (TJ)

Rom: attachicon.gifMissile_Command_TB_(TJ).zip

 

Link: Centipede TB (TJ)

Rom: attachicon.gifCentipede_TB_(TJ)_v1.1.zip

 

Link: Reactor TB (TJ)

Rom: attachicon.gifReactor_TB_(TJ)_v0.9.zip

 

Link: Millipede TB (Omega)

Rom: attachicon.gifMillipede_TB_(Omega)_v5.zip

 

 

I'm also working on a CX80 and Amiga rom of Millipede. I will update this post when it's ready, but it won't be real soon.

 

This is awesome!

 

Incidentally, you probably should call the CX-80 version the ST mouse version instead. The CX-80 is natively the same as the CX-22. Some were factory modified in the late 80s to be compatible with the ST mouse. ;)

 

Mitch

Link to comment
Share on other sites

 

This is awesome!

 

Incidentally, you probably should call the CX-80 version the ST mouse version instead. The CX-80 is natively the same as the CX-22. Some were factory modified in the late 80s to be compatible with the ST mouse. ;)

 

Mitch

I believe one of them used proper gray code. The other didn't. Is there a pinout to convert an arcade trackball (or a 5200 trackball) to Atari 2600? The arcade version use optical wheels for the encoder so you would need to tap VCC for the power source. And a bit of simple 74xx logic if the output does not match proper grey code.

Edited by stardust4ever
Link to comment
Share on other sites

They are lots of fun with a Trak-Ball!!

 

Agreed, I just gave them a quick test. Millipede is super smooth, but needs a bit of speed adjustment. The shooter moves way too fast, particularly in the vertical direction. That ought to be a super simple change with all of the hard stuff out of the way, I would imagine.

Link to comment
Share on other sites

 

Agreed, I just gave them a quick test. Millipede is super smooth, but needs a bit of speed adjustment. The shooter moves way too fast, particularly in the vertical direction. That ought to be a super simple change with all of the hard stuff out of the way, I would imagine.

I originally had the Y axis speed cut in half, and heard it was too sluggish. Maybe try playing Millipede (as it is now) for a while and see if you get use to it. I think after a while it will feel natural.

Link to comment
Share on other sites

I believe one of them used proper gray code. The other didn't. Is there a pinout to convert an arcade trackball (or a 5200 trackball) to Atari 2600? The arcade version use optical wheels for the encoder so you would need to tap VCC for the power source. And a bit of simple 74xx logic if the output does not match proper grey code.

It sounds like I could tap into the signals just downstream from the encoder optics on one of the joystick-emulating 3rd party trackballs I have and run those signals as the output and have a "real" trackball. I may try that with a Wico trackball that I have with a bad microcontroller, (or a Microsoft Easy Ball Mouse, or a Philips Roller Controller, or a 5200 Trak Ball).

Edited by BigO
Link to comment
Share on other sites

I was looking into arcade trackball controllers and while they are very expensive, the harness has a VCC and ground that power the controller, and outputs simple 5V logic on the XA, XB, YA, YB pins. This would be compatible with the Atari. Also since there are two standards, one of which has the outputs in the incorrect order, one could add a breadboard with some 74xx converter logic. I could hammer out a quick and dirty schematic if I had the truth table, and use either the genny chip, or dual ganged DPDT switches to select the output mode. Throw in a Dsub 15 pin and one could make it dual compatible with 2600/7800/8-bit and 5200. But the 5200 trackball is built up like a tank so no real reason to reinvent the wheel. Maybe it would be possible to add a 9-pin Dsub to the 5200 trackball to use with A2600/7800/8bit.

Link to comment
Share on other sites

I was looking into arcade trackball controllers and while they are very expensive, the harness has a VCC and ground that power the controller, and outputs simple 5V logic on the XA, XB, YA, YB pins. This would be compatible with the Atari. Also since there are two standards, one of which has the outputs in the incorrect order, one could add a breadboard with some 74xx converter logic. I could hammer out a quick and dirty schematic if I had the truth table, and use either the genny chip, or dual ganged DPDT switches to select the output mode. Throw in a Dsub 15 pin and one could make it dual compatible with 2600/7800/8-bit and 5200. But the 5200 trackball is built up like a tank so no real reason to reinvent the wheel. Maybe it would be possible to add a 9-pin Dsub to the 5200 trackball to use with A2600/7800/8bit.

Would there be any particular benefit to implementing something other than the standard gray code? Referring specifically to the 2600, are there games that only support the non-standard version?

 

My Wico trackball actually has a PIC microcontroller in it now so could do pretty much whatever protocol was useful. I did one mode that scaled the relatively huge number of gray code transitions down to simulate a driving controller. Playing Indy 500 with a trackball was certainly not worth the effort. (Now if I can just find that controller... :ponder:)

Edited by BigO
Link to comment
Share on other sites

I originally had the Y axis speed cut in half, and heard it was too sluggish. Maybe try playing Millipede (as it is now) for a while and see if you get use to it. I think after a while it will feel natural.

 

I agree you have to adjust and get used to the trak-ball movement.

But before, in the first trak-ball version, it didn't feel like a trak-ball game when moving up was slower. I found myself spinning up very fast and it was lagging.

 

Also there is paddle-like jitter left/right/up/down, and probably no cycles left to add code to smooth it out.

Explanation: When playing with a stick, I start the game going to one spot left of center, just right of the DDT, sit there and take out most of 'pede #1. With a stick I can zoom over there and tap adjust to my spot, and start to fire, and only move when a spider hit is coming, or the 'pede #1 is nearing the bottom, so I need to go on the attack.

I play my same opening strategy with the trak-ball, but when I zoom there and get lined up and start firing, more often I'll end up hitting the DDT because the smallest movements slide the player all around.

Again, just explaining, not a complaint or request for a change.

 

If you have ever used trackball software on a computer, there is a curve adjustment in the Control Panel to set fast movement when moving fast (so you can get where you intend to click fast and without overshooting), and fine slow movement when you are moving slow (for detailed precise drawing, cursor placement, letter selection, etc.).

Understand that this is a primitive game console needing to read the trak-ball output "a lot of the time" and you wouldn't want to sacrifce quickly moving around for precision slight movements.

 

Correct me if I'm wrong, but there's only enough time to go with movement that is "a good balance" for the game play -- neither too fast nor too slow, right???

I'm amazed the impossible "add trak-ball to Millipede" was done, and that it involved much more than just finding ROM, RAM, re-coding kernels to run more efficiently, and finding cycles, but involved all that and the need to expand the ROM, move sections around, and it was all done in record time!

 

My already #1 favorite 2600 game in the "game play category", Millipede, just became a whole lot better!

Link to comment
Share on other sites

Someone needs to convert star wars arcade game to use the trackball or the ST mouse.

Star Wars The Arcade Game.

Good suggestion!

I hadn't thought of that game, but I loved that title so much seeing what Parker Bros. achieved on the 2600, I had to collect it CIB.

It currently is slightly frustrating with joystick control.

 

I'd like to second that suggestion, and add that I'd play Crossbow with trak-ball control.

Currently to me Crossbow, both 2600 and 7800 versions, seem both too slow and too imprecise with joystick control to be enjoyable.

Imprecise light gun shooting is tolerable because, well, it's like shooting!

 

I would like any "shooting gallery" game with trak-ball added, before Crystal Castles, the only other arcade trak-ball game i can think of that made it to the 2600.

Even Carnival, but Carnival is too crippled missing the bears stage, and could play better with Paddle added.

  • Like 2
Link to comment
Share on other sites

Star Wars The Arcade Game.

Good suggestion!

I hadn't thought of that game, but I loved that title so much seeing what Parker Bros. achieved on the 2600, I had to collect it CIB.

It currently is slightly frustrating with joystick control.

 

I'd like to second that suggestion, and add that I'd play Crossbow with trak-ball control.

Currently to me Crossbow, both 2600 and 7800 versions, seem both too slow and too imprecise with joystick control to be enjoyable.

Imprecise light gun shooting is tolerable because, well, it's like shooting!

 

I would like any "shooting gallery" game with trak-ball added, before Crystal Castles, the only other arcade trak-ball game i can think of that made it to the 2600.

Even Carnival, but Carnival is too crippled missing the bears stage, and could play better with Paddle added.

 

I made this separate thread prior to the creation of this one concerning suggestions for more 2600 games to add Trak-Ball support to:

 

http://atariage.com/forums/topic/243434-what-2600-titles-couldshould-have-trak-ball-support-added/

 

Crossbow definitely needs it. As I've mentioned in the 7800 - relevant here since the 7800 has a lot more light gun games than the 2600 obviously does - threads before, any light gun game would be ideal candidates for adding Trak-Ball support to considering the whole modern LCD TV issue.

 

Star Wars the Arcade Game would be an interesting choice. It's also an amusing choice because on the 5200 side back in the day, Dan Kramer, the Atari Inc engineer who created Atari's consumer Trak-Balls, was working on a 5200 Yoke Controller [using Atari's arcade Star Wars yoke controller] for such games. That and a 5200 Driving Controller [using the Steering Wheel and Shifter from Atari arcade Pole Position] but the industry crash put the kibosh on those projects of his. Essentially, management killed those projects as they had already committed to the 7800 as their future.

Link to comment
Share on other sites

Here is the basic code for the Amiga and ST mouse versions for those who are interested:

    LDX    SWCHA                 ;4  @4
    LDA    lastTrack             ;3  @7
    ORA    SwchaTab,X            ;4  @11    shift 4 and ORA quickly...   lastTrack | (newTrack >> 4)
    STX    lastTrack             ;3  @14
    TAX                          ;2  @16
    LDA    MovementTab,X         ;4  @20    indexes diffA to diffD, or a trash register
    TAX                          ;2  @22
    BMI    .dec                  ;2³ @24/25
    INC    diff,X                ;6  @30
    JMP    .rejoin               ;3  @33

.dec:
    NOP                          ;2  @27
    DEC    diff-$80,X            ;6  @33
.rejoin:

SWACNT has been set to output on bits 3-0, and a zero is outputted on them so that when SWCHA is read it is always xxxx0000. The code essentially joins the old state of SWCHA with the new, and uses it to reference a one page look up table to find a state to increment or decrement. The states I chose are as follows:

diff   = $7F      ; undefined register for read/write, used when no change for X and Y
diffA  = diff+1   ; [inc] Y = no change, X = right 1    [dec] Y = no change, X = left 1
diffB  = diff+2   ; [inc] Y = up 1, X = no change       [dec] Y = down 1, X = no change
diffC  = diff+3   ; [inc] Y = down 1, X = right 1       [dec] Y = up 1, X = left 1
diffD  = diff+4   ; [inc] Y = up 1, X = right 1         [dec] Y = down 1, X = left 1

I aligned diffA to be zp location $80, and made use of zp $7F as a trash register (to save a byte of ram). These states get summed together in overscan to give a signed differential direction change:

  MAC FIND_Y_DIFF
    CLC                          ;2  @2
    LDA    diffB                 ;3  @5
    ADC    diffD                 ;3  @8
    SEC                          ;2  @10
    SBC    diffC                 ;3  @13
    STA    diffY                 ;3  @16  +/- value to change Vpos
  ENDM

  MAC FIND_X_DIFF
    CLC                          ;2  @2
    LDA    diffA                 ;3  @5
    ADC    diffC                 ;3  @8
    CLC                          ;2  @10
    ADC    diffD                 ;3  @13
    STA    diffX                 ;3  @16  +/- value to change Hpos
  ENDM

That's pretty much it. I only count one step changes. Two steps changes are ignored.

  • Like 1
Link to comment
Share on other sites

Millipede Amiga and ST Mouse versions added to the first post. If you have a CX80 Trak-Ball then you'll have to try it with the CX22 version of Millipede and the ST Mouse version of Millipede to see which one is compatible. Atari at some point started modifying the CX80 to be compatible with the ST Mouse, but it seems like most of the CX80's are the same as the CX22.

 

Please report any bugs. For example the bugged version of Millipede CX22 played all the way to 160,000 points before it started freezing.

 

 

Otherwise enjoy. :)

  • Like 1
Link to comment
Share on other sites

These are the bit patterns for each Trak-Ball, or Mouse. This is for using the left "P0" controller port for the Trak-Ball or Mouse.

;------------------------------------------------------------------------------
; CX22 TRAK-BALL
;
;       SWCHA
;      76543210
;      ||||||||
;      ||||not used
;      ||||
;      |||X direction (1=Right,0=Left)
;      ||X state (one bit)
;      |Y direction (1=Down,0=Up)
;      Y state (one bit)
;
;                  SWCHA     SWCHA
; LEFT   (00,10)  xx00xxxx  xx10xxxx
; RIGHT  (01,11)  xx01xxxx  xx11xxxx
; UP     (00,10)  00xxxxxx  10xxxxxx
; DOWN   (01,11)  01xxxxxx  11xxxxxx
;
; Example: Moving DOWN
;   1st sample (01) 01xxxxxx    (initial state can be any DOWN state)
;   2nd sample (11) 11xxxxxx
;   3rd sample (01) 01xxxxxx    (sequence starts to repeat)
;   4th sample (11) 11xxxxxx
;   5th sample (01) 01xxxxxx    (sequence repeats, again...)
;   6th sample (11) 11xxxxxx
;------------------------------------------------------------------------------
; ST MOUSE (Some CX80s are wired like this too)
;
;       SWCHA
;      76543210
;      ||||||||
;      ||||not used
;      ||||
;      ||X state (two bits)
;      ||
;      Y state (two bits)
;
;
;                        SWCHA     SWCHA     SWCHA     SWCHA
; LEFT   (00,01,11,10)  xx00xxxx  xx01xxxx  xx11xxxx  xx10xxxx
; RIGHT  (00,10,11,01)  xx00xxxx  xx10xxxx  xx11xxxx  xx01xxxx
; UP     (00,01,11,10)  00xxxxxx  01xxxxxx  11xxxxxx  10xxxxxx
; DOWN   (00,10,11,01)  00xxxxxx  10xxxxxx  11xxxxxx  01xxxxxx
;
; Example: Moving RIGHT
;   1st sample (11) xx11xxxx    (initial state can be any RIGHT state)
;   2nd sample (01) xx01xxxx
;   3rd sample (00) xx00xxxx
;   4th sample (10) xx10xxxx
;   5th sample (11) xx11xxxx    (sequence starts to repeat)
;   6th sample (01) xx01xxxx
;------------------------------------------------------------------------------
; AMIGA MOUSE
;
;       SWCHA
;      76543210
;      ||||||||
;      ||||not used
;      ||||
;      |||Y state (1 of 2 bits)
;      ||X state (1 of 2 bits)
;      |Y state (2 of 2 bits)
;      X state (2 of 2 bits)
;
;
;                        SWCHA     SWCHA     SWCHA     SWCHA
; LEFT   (00,10,11,01)  0x0xxxxx  1x0xxxxx  1x1xxxxx  0x1xxxxx
; RIGHT  (00,01,11,10)  0x0xxxxx  0x1xxxxx  1x1xxxxx  1x0xxxxx
; UP     (00,10,11,01)  x0x0xxxx  x1x0xxxx  x1x1xxxx  x0x1xxxx
; DOWN   (00,01,11,10)  x0x0xxxx  x0x1xxxx  x1x1xxxx  x1x0xxxx
;
; Example: Moving UP
;   1st sample (10) x1x0xxxx    (initial state can be any UP state)
;   2nd sample (11) x1x1xxxx
;   3rd sample (01) x0x1xxxx
;   4th sample (00) x0x0xxxx
;   5th sample (10) x1x0xxxx    (sequence starts to repeat)
;   6th sample (11) x1x1xxxx
;------------------------------------------------------------------------------
  • Like 2
Link to comment
Share on other sites

  • 2 weeks later...

So Thomas and Omegamatrix, what does it feel like to hear that the creator the the Atari Trak-Ball is amazed and overjoyed that these hacks were made?

 

It must have been a letdown designing a true trackball mode, and then have no 2600 or 7800 games use that mode (just the less accurate joystick compatible mode).

 

I never owned ColecoVision Roller Controller or Atari 5200 trackball controllers, so I can't comment on those.

 

Millipede Amiga and ST Mouse versions added to the first post. If you have a CX80 Trak-Ball then you'll have to try it with the CX22 version of Millipede and the ST Mouse version of Millipede to see which one is compatible. Atari at some point started modifying the CX80 to be compatible with the ST Mouse, but it seems like most of the CX80's are the same as the CX22.

 

Please report any bugs. For example the bugged version of Millipede CX22 played all the way to 160,000 points before it started freezing.

 

 

Otherwise enjoy. :)

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...