Arenafoot Posted January 3, 2015 Share Posted January 3, 2015 Has anyone ever attempted to do the above title? I was looking at "Missle Command TB" in the hacks department of AA......and thinking about getting a trak-ball for my 2600 to play Centipede with and got wondering if there was a better version of Centipede (aka Centipede Arcade) and trak-ball compatible. If not I wonder if Thomas would start writing "Centipede Arcade TB"????? Quote Link to comment Share on other sites More sharing options...
Arenafoot Posted January 3, 2015 Author Share Posted January 3, 2015 meant to post this in the "Hacks" forum....sorry Quote Link to comment Share on other sites More sharing options...
+Nathan Strum Posted January 4, 2015 Share Posted January 4, 2015 It's been discussed before - there aren't enough cycles available in Centipede to add Trak-Ball support. Quote Link to comment Share on other sites More sharing options...
Nukey Shay Posted January 11, 2015 Share Posted January 11, 2015 ...As it currently exists. What is required is a more-extensive hack to the display portion in order to free cycles for reading the controllers on at least half of the scanlines. Should be possible by utilizing Superchip ram for game variables so you have native ram to use for a self-modifying kernel section. 2 Quote Link to comment Share on other sites More sharing options...
Nukey Shay Posted January 18, 2015 Share Posted January 18, 2015 Looking deeper into this...it looks like most busy scanlines can be cut down to 54-60 cycles. There's a lot of code intentionally wasting cycles to set/clear gfx registers right at the end of lines...but this can be fixed by shuffling the order around a little. Rom saved in the process, so all that would need to be done is to find a couple of bytes of temp ram. 5 Quote Link to comment Share on other sites More sharing options...
WildBillTX Posted January 20, 2015 Share Posted January 20, 2015 Is there any way to change the shape of the Mushrooms from blocks? 1 Quote Link to comment Share on other sites More sharing options...
roryjr Posted January 20, 2015 Share Posted January 20, 2015 I am guessing here, but I believe they are playfield pixels and are set at that width. Adding a top would make them triple wide. To make them look like mushrooms would take a major rewrite or staring over. Quote Link to comment Share on other sites More sharing options...
WildBillTX Posted January 21, 2015 Share Posted January 21, 2015 (edited) I am guessing here, but I believe they are playfield pixels and are set at that width. Adding a top would make them triple wide. To make them look like mushrooms would take a major rewrite or staring over. That's what I thought. With all the 80's arcade revivals going on here at Atariage a new 2600 version of Centipede or Millepede with mushrooms and trackball support would be great. Edited January 21, 2015 by WildBillTX 2 Quote Link to comment Share on other sites More sharing options...
+SpiceWare Posted January 21, 2015 Share Posted January 21, 2015 Is there any way to change the shape of the Mushrooms from blocks? Not without excessive flicker. The only way to draw mushrooms that look like mushrooms would be to use the player objects, but those are already flickered a lot to draw all the enemy insects. As an example of what you'd be in for, I built a couple Robotron tests with an early build of Space Rocks to see how bad the flicker would be when the robots converged on you - it was worse than the ghosts in Pacman. You can find those tests at the bottom of this blog entry, they're called spacerocks75.bin and spacerocks100.bin. Read in the comments of that blog entry for more info about those tests. 1 Quote Link to comment Share on other sites More sharing options...
Thomas Jentzsch Posted January 22, 2015 Share Posted January 22, 2015 Looking deeper into this...it looks like most busy scanlines can be cut down to 54-60 cycles. After looking at my old code here, I suppose you need about 27 cycles (per axis) for determining the direction and updating the X- or Y-position variable accordingly. Using this code: .left dec axis ; 5 jmp .exit ; 3 = 27 ... ldy last ; 3 lda SWCHA ; 4 and #%11 ; 2 sta last ; 3 eor NextLeftTab,y ; 4 works like cmp for beq beq .left ; 2/3 eor #%11 ; 2 bne .exit ; 2/3 inc axis ; 5 = 27 .exit It would be nice to be able to read one axis in one line, but for that you would have to cut down the existing code to 49 cycles, not sure if that is possible. So it looks like you have to read one axis in two lines. Then the responsiveness would be identical to my MCTB hacks. BTW: IIRC I alternated axis between frames. Quote Link to comment Share on other sites More sharing options...
Crimefighter Posted January 24, 2015 Share Posted January 24, 2015 Note, neither one of the two Millipedes produced for the 2600 had mushrooms that looked like mushrooms... Quote Link to comment Share on other sites More sharing options...
+Random Terrain Posted January 24, 2015 Share Posted January 24, 2015 Back when I knew nothing about the guts of the VCS, I assumed that the mushrooms would be able to have the same kind of damage as the shields in Space Invaders. Since the shields in Space Invaders were all player0 without flicker, I'm guessing they were 3 medium-spaced copies of player0. How was the individual pinpoint damage to them done? I don't even know how pinpoint damage would be done to one sprite with no copies. Quote Link to comment Share on other sites More sharing options...
Nukey Shay Posted January 24, 2015 Share Posted January 24, 2015 The bitmaps are held in ram. The initial pattern for a shield is copied from rom to 3 arrays. Hardware collision detection and a formula to pinpoint location does the rest to update the arrays. 1 Quote Link to comment Share on other sites More sharing options...
+Random Terrain Posted January 24, 2015 Share Posted January 24, 2015 The bitmaps are held in ram. The initial pattern for a shield is copied from rom to 3 arrays. Hardware collision detection and a formula to pinpoint location does the rest to update the arrays. Thanks. I wonder if that can be done using batari Basic? I'd like to play around with that kind of pinpoint damage. Speaking of Space Invaders, here is an old unfinished bB version by batari: atariage.com/forums/topic/76213-space-invaders/page-2#entry1516782 Quote Link to comment Share on other sites More sharing options...
Nukey Shay Posted January 24, 2015 Share Posted January 24, 2015 You ought to be able to just by declaring the player tag as a ram address (instead of a bitmap residing in the rom code). Of course, ram is more valuable in bB, tho. 1 Quote Link to comment Share on other sites More sharing options...
Nukey Shay Posted January 24, 2015 Share Posted January 24, 2015 (edited) BTW: IIRC I alternated axis between frames. If reading the controller on every other frame is passable, a simpler method would be to flicker the playfield, and use a 3rd bank to deal with the controller instead of using all that cycle time for PF updates (and have some usable scratch ram too). A quick hack shows that a flickered playfield does not pose a gameplay problem. Set controller to CX-80 Mouse in Stella. Cent.asm Cent.bin Edited January 25, 2015 by Nukey Shay 1 Quote Link to comment Share on other sites More sharing options...
Nukey Shay Posted January 25, 2015 Share Posted January 25, 2015 (edited) By using PF flicker, I've found enough time for 80 consistent TB updates (60 of those being enough time to handle both axis). This does not even include scanlines outside of the mushroom kernel loop. Passable? Edited January 25, 2015 by Nukey Shay 1 Quote Link to comment Share on other sites More sharing options...
iesposta Posted January 25, 2015 Share Posted January 25, 2015 By using PF flicker, I've found enough time for 80 consistent TB updates (60 of those being enough time to handle both axis). This does not even include scanlines outside of the mushroom kernel loop. Passable?To have a trackball option? Extremely acceptable to me. Great idea to get another whole entire frame! The big question, "Will the same technique for my most-favorite of all time on the 2600 Millipede?" Quote Link to comment Share on other sites More sharing options...
Nukey Shay Posted January 25, 2015 Share Posted January 25, 2015 Yes...same method could possibly be used there (Millipede uses Superchip ram tho, and the kernel lines are much more specialized). But I meant would that be a sufficient number of readings for movement not to become choppy? Quote Link to comment Share on other sites More sharing options...
Thomas Jentzsch Posted January 25, 2015 Share Posted January 25, 2015 By using PF flicker, I've found enough time for 80 consistent TB updates (60 of those being enough time to handle both axis). This does not even include scanlines outside of the mushroom kernel loop. Passable?Worth a try. MCTB only scans during the main kernel display (lines 56..220, every 2nd line) and that works very well. So I have 83 reads per axis every 2 lines. Quote Link to comment Share on other sites More sharing options...
Nukey Shay Posted January 25, 2015 Share Posted January 25, 2015 Movement test assembly and binary above. I borrowed the score variables for temps until I can isolate some ram. X-axis seems to function alright (tho border wrapping needs to be fixed), but Y is a no-go. This variable seems to be shared. The branch to use the alternate bank also needs a branch to skip over it when dying (so you can't move the explosion around). Quote Link to comment Share on other sites More sharing options...
Nukey Shay Posted January 28, 2015 Share Posted January 28, 2015 60 samples per frame...no PF flicker Now I just need to figure out ram to see if I can do both axis on a frame or split them between 2 frames. 2 Quote Link to comment Share on other sites More sharing options...
Thomas Jentzsch Posted January 28, 2015 Share Posted January 28, 2015 60 samples every other frame means 30 pixel movement per frame (assuming single pixel resolution). So you would need ~5 frames to move from one side to the other one. Seems fast enough for me. Though: More is always better. Quote Link to comment Share on other sites More sharing options...
iesposta Posted January 28, 2015 Share Posted January 28, 2015 Are you going for mouse pointer like movement where fast moves jump lots of pixels and small slow moves jump single pixels? If it is just like "holding the joystick left speed" then there is no advantage of using a trackball because it would play like a trackball in digital "joystick mode" instead of dynamic analog movement. I never got Missile Command Track Ball working so I don't know how the trackball movement works. Quote Link to comment Share on other sites More sharing options...
Nukey Shay Posted January 28, 2015 Share Posted January 28, 2015 Trackball = the faster you move the ball in a direction, the faster the screen object moves in that direction. As Thomas pointed out - the more samples taken during the kernel, the faster the object's "top speed" will be. BTW MCTB can be set to CX-80 Mouse in Stella so you can use your computer's mouse & button as the trackball controller. 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.