+Omegamatrix Posted October 6, 2015 Share Posted October 6, 2015 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. 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 42 2 Quote Link to comment Share on other sites More sharing options...
Albert Posted October 6, 2015 Share Posted October 6, 2015 Thanks for starting this thread! More people will probably see these as a result, and it'll be easier to keep tabs of the latest versions in the first post. ..Al 1 Quote Link to comment Share on other sites More sharing options...
OldSchoolRetroGamer Posted October 6, 2015 Share Posted October 6, 2015 Man I gotta get around to getting a Trak-Ball controller. 1 Quote Link to comment Share on other sites More sharing options...
+Mitch Posted October 7, 2015 Share Posted October 7, 2015 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: Missile_Command_TB_(TJ).zip Link: Centipede TB (TJ) Rom: Centipede_TB_(TJ)_v1.1.zip Link: Reactor TB (TJ) Rom: Reactor_TB_(TJ)_v0.9.zip Link: Millipede TB (Omega) Rom: Millipede_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 Quote Link to comment Share on other sites More sharing options...
Andromeda Stardust Posted October 7, 2015 Share Posted October 7, 2015 (edited) 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 October 7, 2015 by stardust4ever Quote Link to comment Share on other sites More sharing options...
Bodyshots Posted October 7, 2015 Share Posted October 7, 2015 Thanks! A new folder for my Harmony Cart 3 Quote Link to comment Share on other sites More sharing options...
Albert Posted October 7, 2015 Share Posted October 7, 2015 Thanks! A new folder for my Harmony Cart This makes me wonder what other 2600 games would be suitable for this treatment. Probably this was discussed in the other thread... ..Al Quote Link to comment Share on other sites More sharing options...
davidbrit2 Posted October 9, 2015 Share Posted October 9, 2015 Holy damn, Millipede and Reactor already? Guess I'll be firing up the Harmony tonight. Quote Link to comment Share on other sites More sharing options...
Albert Posted October 9, 2015 Share Posted October 9, 2015 Holy damn, Millipede and Reactor already? Guess I'll be firing up the Harmony tonight. They are lots of fun with a Trak-Ball!! 2 Quote Link to comment Share on other sites More sharing options...
davidbrit2 Posted October 9, 2015 Share Posted October 9, 2015 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. Quote Link to comment Share on other sites More sharing options...
+Omegamatrix Posted October 10, 2015 Author Share Posted October 10, 2015 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. Quote Link to comment Share on other sites More sharing options...
BigO Posted October 10, 2015 Share Posted October 10, 2015 (edited) 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 October 10, 2015 by BigO Quote Link to comment Share on other sites More sharing options...
Andromeda Stardust Posted October 10, 2015 Share Posted October 10, 2015 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. Quote Link to comment Share on other sites More sharing options...
BigO Posted October 10, 2015 Share Posted October 10, 2015 (edited) 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... ) Edited October 10, 2015 by BigO Quote Link to comment Share on other sites More sharing options...
+sramirez2008 Posted October 11, 2015 Share Posted October 11, 2015 These games are amazing with TB capability. Been playing them for a few hours now. Thanks for making them available gents! :thumbsup: :thumbsup: 1 Quote Link to comment Share on other sites More sharing options...
Master Phruby Posted October 11, 2015 Share Posted October 11, 2015 Someone needs to convert star wars arcade game to use the trackball or the ST mouse. Quote Link to comment Share on other sites More sharing options...
iesposta Posted October 11, 2015 Share Posted October 11, 2015 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! Quote Link to comment Share on other sites More sharing options...
iesposta Posted October 11, 2015 Share Posted October 11, 2015 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. 2 Quote Link to comment Share on other sites More sharing options...
Lynxpro Posted October 11, 2015 Share Posted October 11, 2015 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. Quote Link to comment Share on other sites More sharing options...
+Omegamatrix Posted October 12, 2015 Author Share Posted October 12, 2015 I now have working versions of Millipede for CX80 Trak-Balls that were modded to be like the ST Mouse, and an Amiga Mouse version. I'm just working on reducing the cycles I use in overscan. Expect some trial roms soon. 3 Quote Link to comment Share on other sites More sharing options...
+Omegamatrix Posted October 12, 2015 Author Share Posted October 12, 2015 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. 1 Quote Link to comment Share on other sites More sharing options...
+Omegamatrix Posted October 12, 2015 Author Share Posted October 12, 2015 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. 1 Quote Link to comment Share on other sites More sharing options...
+Omegamatrix Posted October 12, 2015 Author Share Posted October 12, 2015 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 ;------------------------------------------------------------------------------ 2 Quote Link to comment Share on other sites More sharing options...
iesposta Posted October 21, 2015 Share Posted October 21, 2015 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. 1 Quote Link to comment Share on other sites More sharing options...
Thomas Jentzsch Posted October 21, 2015 Share Posted October 21, 2015 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?I feel more or less neutral. It took him 12 years to notice. 2 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.