LS_Dracon Posted February 15, 2008 Share Posted February 15, 2008 (edited) This is an update of one project I did in 2006 (Another Pong).My intention is see how far vcs can, graphically, display a simple Pong.Now the objective is complete, both players with scanline color changing, the middle line, and ball with small flicker effect, in one scanline resolution.And the sound is way better than I did in Another Pong.SuperPong is free for download. Load it on emulators or in your Harmony Cart and have fun!On emulators, you must set controller as "paddle" on game config and play with mouse. #################################################################################################### Update 29/07/2013 Game was finished #################################################################################################### Below is the last update of the game. Follow the Instructions :SuperPongRules :Avoid missing ball for high score. How to play :Use Paddle controllerLeft Paddle = Player 1Right Paddle = Player 2Console switches :Press Select Switch for change Game Mode and enable / disable computer AI.Game modes :Type A = Normal Pong (A1 = vs CPU, A2 = vs Human)Type B = Blind Pong (B1 = vs CPU, B2 = vs Human)Set Player 2 Difficult Switch for change Ai Level.A= Hard (Red logotype background), B = Normal (Black logotype background).Press Reset Switch to reset the game.Press left controller button to start.The first player to score 21 points wins the match.Thanks to everyone who contribute sharing ideas and suggestions.Special Thanks to Darrell "Spiceware" for his help in some codes, And Stephen Antony for Stella Emulator. SuperPong_NTSC.bin SuperPong_PAL.bin Edited September 8, 2013 by LS_Dracon 1 Quote Link to comment Share on other sites More sharing options...
Emehr Posted February 15, 2008 Share Posted February 15, 2008 Looks and sounds nice. Any possibility for paddle support? Quote Link to comment Share on other sites More sharing options...
LS_Dracon Posted February 15, 2008 Author Share Posted February 15, 2008 No, I don't know how to code for paddle... Quote Link to comment Share on other sites More sharing options...
Impaler_26 Posted February 17, 2008 Share Posted February 17, 2008 Nice game! The graphics are very good and i also like the sound. A few suggestions... IMO the players move too slow and how about letting the players also move to the left and right or use the fire button to hold the ball? It would also be nice if the game would support paddles and the joystick. If you want to try including paddle support maybe the SCSIcide development journal will be helpful, there's source code attached too... Quote Link to comment Share on other sites More sharing options...
LS_Dracon Posted February 17, 2008 Author Share Posted February 17, 2008 (edited) Thanks for the link Impaler, but the files was missing (error 404). Anyway I'm dig Stella mailing list and found some codes, I'm start to understand how the paddles works. Edited February 17, 2008 by LS_Dracon Quote Link to comment Share on other sites More sharing options...
+SpiceWare Posted February 17, 2008 Share Posted February 17, 2008 Paddle routines are in Medieval Mayhem. Source can be found in my blog. during vertical sync do the following: lda #$82 sta WSYNC sta VSYNC ; 3 start vertical sync, D1=1 sta VBLANK ; 3 6 start vertical blank and dump paddles to ground at the start of the kernel do the following: lda #0 sta VBLANK ; turn on video output & remove paddle dump to ground Macros for reading the paddles - call during the kernel, Y holds the current scan line. MAC READ_PADDLE_1 lda INPT0 ; 3 - always 9 bpl .save ; 2 3 .byte $2d ; 4 0 .save sty Paddle1 ; 0 3 ENDM MAC READ_PADDLE_2 lda INPT1 ; 3 - always 9 bpl .save ; 2 3 .byte $2d ; 4 0 .save sty Paddle2 ; 0 3 ENDM MAC READ_PADDLE_3 lda INPT2 ; 3 - always 9 bpl .save ; 2 3 .byte $2d ; 4 0 .save sty Paddle3 ; 0 3 ENDM MAC READ_PADDLE_4 lda INPT3 ; 3 - always 9 bpl .save ; 2 3 .byte $2d ; 4 0 .save sty Paddle4 ; 0 3 ENDM MAC READ_PADDLE_1_OR_2 ldx Paddles2Read ; 13-14 3 lda INPT0,x ; | 4 bpl .save ; | 2 3 .byte $2c ; | 4 0 .save sty Paddle1,x ; | 0 4 ; +-14 worse case scenerio ENDM MAC READ_PADDLE_3_OR_4 ldx Paddles2Read ; 13-14 3 lda INPT2,x ; | 4 bpl .save ; | 2 3 .byte $2c ; | 4 0 .save sty Paddle3,x ; | 0 4 ; +-14 worse case scenerio ENDM MAC READ_TWO_PADDLES ldx Paddles2Read ; 21-23 3 lda INPT0,x ; | 4 bpl .save1 ; | 2 3 .byte $2c ; | 4 0 .save1 sty Paddle1,x ; | 0 4 lda INPT2,x ; | 4 bpl .save2 ; | 2 3 .byte $2c ; | 4 0 .save2 sty Paddle3,x ; | 0 4 ; +-23 worse case scenerio ENDM Quote Link to comment Share on other sites More sharing options...
Impaler_26 Posted February 17, 2008 Share Posted February 17, 2008 (edited) Thanks for the link Impaler, but the files was missing (error 404). Oops! Sorry! I didn't check the files. EDIT: Here's the link for the Ultra SCSIcide source... http://www.pixelspast.com/games/scsicide/U...cide_Source.zip Edited February 17, 2008 by Impaler_26 Quote Link to comment Share on other sites More sharing options...
LS_Dracon Posted February 17, 2008 Author Share Posted February 17, 2008 Paddle routines are in Medieval Mayhem. Source can be found in my blog. Thank you very much SpiceWare. And I'll give a look in MM source. But I'll use if understand, I don't like to copy and paste codes. Oops! Sorry! I didn't check the files. Hehe nevermind, isn't your fault, probably these files is too old. Quote Link to comment Share on other sites More sharing options...
cosmosiss Posted February 18, 2008 Share Posted February 18, 2008 If paddle support is not added, maybe the button can make the players move a bit faster? I like how you can hit the ball with the side of the paddle. Moving right/left, as pointed by Impaler_26 would be super sweet. Quote Link to comment Share on other sites More sharing options...
+SpiceWare Posted February 19, 2008 Share Posted February 19, 2008 (edited) Here's a sample paddle reading program. it works by reading 2 paddles on each frame. it'll read either paddle 1 & 3 or paddle 2 & 4. The paddle values are shown by positioning 4 blocks at the bottom of the screen. The gist of how paddles work is you're timing how long it takes to charge up a capacitor in the Atari, turn the paddle left and it takes longer to charge(more scan lines), turn the paddle right and it charges up much quicker(fewer scan lines). In the attached example, the first part of the kernel, with the color strips, checks on each scan line to see if the capacitor is fully charged. If it's not then the current scan line # is saved as the paddle results. If the paddle is all the way left then the value for the paddle will be updated on each and every scan line that the paddle routine is called on. I suspect you only care about paddle 1 & 2 for your pong game. Change the line in the kernel that reads READ_TWO_PADDLES to be READ_PADDLE_1_OR_2 paddles.asm.zip paddles.bin Edited February 19, 2008 by SpiceWare Quote Link to comment Share on other sites More sharing options...
LS_Dracon Posted February 21, 2008 Author Share Posted February 21, 2008 (edited) SpiceWare, this is my paddle test demo, it's work in z26 emu (set in config: -m0) but doesn't work in stella, I'm using INPT0 only. In your demo, z26 move the white object (INPT0), stella move the green (INPT3), maybe is this, but ok, I'm understand how paddles work, thanks for help me. I thinks it's not doable for my pong, I have free scanlines only at the grey bars (at top and splited in score) 12 or less scanlines, I'll test with more attention, soon... This demo move vertically the object. Edit : Is possible use INPT4 and 5? That is, up to six players? PaddleTest.bin Edited February 21, 2008 by LS_Dracon Quote Link to comment Share on other sites More sharing options...
+SpiceWare Posted February 21, 2008 Share Posted February 21, 2008 (edited) It works in Stella, you just have to tell Stella to use paddles. Hit TAB->GAME PROPERTIES->CONTROLLER and set the controls to paddles. You have to restart the emulator for this to take effect. On the Mac I use APPLE-R so it's probably control-R or ALT-R under Windows or Linux. Hmm, INPT4 & 5 could probably be used to read 2 more paddles. They're normally wired to the joystick fire buttons, but I bet a custom control(with a pass-thru like the CBS Booster Grip) could wire a third paddle to each controller port and use either UP or DOWN as that paddle's fire button. Maybe MM needs a 6-player sequel You can do other things on the lines that you read paddles. In Medieval Mayhem I start reading the paddles midway thru the top castles and sample them every-other-scan-line until I'm midway thru the bottom castles. The READ_PADDLE_1_OR_2 routine uses up to 14 cycles. If that's too many you could have 2 kernels and use READ_PADDLE_1 in one kernel, READ_PADDLE_2 in the other. Those macros only take 9 cycles. Edited February 21, 2008 by SpiceWare Quote Link to comment Share on other sites More sharing options...
+Nathan Strum Posted February 21, 2008 Share Posted February 21, 2008 SpiceWare, this is my paddle test demo, it's work in z26 emu (set in config: -m0) but doesn't work in stella, I'm using INPT0 only. In your demo, z26 move the white object (INPT0), stella move the green (INPT3), maybe is this, but ok, I'm understand how paddles work, thanks for help me. For Stella, you have to change the properties of the game, so input is set to Paddle. Then re-load the ROM. You may also need to assign the mouse to Paddle 0. I thinks it's not doable for my pong, I have free scanlines only at the grey bars (at top and splited in score) 12 or less scanlines, I'll test with more attention, soon... Hope you can add paddle support... it's just not pong without paddle control. (Hmmm... I see SpiceWare beat me to it. But I included pictures. ) Quote Link to comment Share on other sites More sharing options...
LS_Dracon Posted February 21, 2008 Author Share Posted February 21, 2008 Yes, work now, The mouse was set to be paddle 3 instead paddle 0... Maybe MM needs a 6-player sequel Quote Link to comment Share on other sites More sharing options...
+SpiceWare Posted February 21, 2008 Share Posted February 21, 2008 Cute. Wouldn't be able to have the dragon in the middle with that arrangement though as it's drawn with the sprites that are used to draw the paddles. If you care to post, or even send me your source, I could take a look at it to see if paddle support could be added. Starting tomorrow I have company in town thru next weekend, so it might be a little over a week before I could check it. Quote Link to comment Share on other sites More sharing options...
vdub_bobby Posted February 21, 2008 Share Posted February 21, 2008 It works in Stella, you just have to tell Stella to use paddles. Hit TAB->GAME PROPERTIES->CONTROLLER and set the controls to paddles. You have to restart the emulator for this to take effect. On the Mac I use APPLE-R so it's probably control-R or ALT-R under Windows or Linux. Hmm, INPT4 & 5 could probably be used to read 2 more paddles. They're normally wired to the joystick fire buttons, but I bet a custom control(with a pass-thru like the CBS Booster Grip) could wire a third paddle to each controller port and use either UP or DOWN as that paddle's fire button. Maybe MM needs a 6-player sequel I doubt it, since the way the 2600 reads paddles is it measures how much charge is on a capacitor that's hooked up to the paddle lines, IIRC. There is no such cap wired to the trigger lines. Or...? Quote Link to comment Share on other sites More sharing options...
+SpiceWare Posted February 23, 2008 Share Posted February 23, 2008 Hope you can add paddle support... it's just not pong without paddle control. I just send back something to LS_Dracon Quote Link to comment Share on other sites More sharing options...
LS_Dracon Posted February 25, 2008 Author Share Posted February 25, 2008 (edited) And here's the new version! Paddles support added! All credits to SpiceWare And no graphic lost! Also, recoded score code, and now this game get a downgrade to 2k Is hard to test this version, I'll try to do some AI, soon. - Added Paddles support (both players), Tnx to SpiceWare. - Some codes changes - now it's 2k Have fun! SuperPong_NTSC_Paddle.bin Edited February 25, 2008 by LS_Dracon Quote Link to comment Share on other sites More sharing options...
mos6507 Posted February 25, 2008 Share Posted February 25, 2008 Yes, work now, The mouse was set to be paddle 3 instead paddle 0... Maybe MM needs a 6-player sequel That must be done! Quote Link to comment Share on other sites More sharing options...
Devin Posted February 25, 2008 Share Posted February 25, 2008 And here's the new version! Paddles support added! All credits to SpiceWare And no graphic lost! Also, recoded score code, and now this game get a downgrade to 2k Is hard to test this version, I'll try to do some AI, soon. - Added Paddles support (both players), Tnx to SpiceWare. - Some codes changes - now it's 2k Have fun! It looks good. You have to be a tad careful though. Atari is extremely aggressive to protect the trademark on Pong. There was an excellent game called "Plasma Pong" which was shutdown due to its use of "Pong". Perhaps it might be wise to rename it - "Ping"? Quote Link to comment Share on other sites More sharing options...
Impaler_26 Posted February 25, 2008 Share Posted February 25, 2008 It looks good. You have to be a tad careful though. Atari is extremely aggressive to protect the trademark on Pong. There was an excellent game called "Plasma Pong" which was shutdown due to its use of "Pong". Perhaps it might be wise to rename it - "Ping"? Yep, that's probably a good idea. "JoustPong" also had to be renamed to "FlapPing". Quote Link to comment Share on other sites More sharing options...
LS_Dracon Posted February 25, 2008 Author Share Posted February 25, 2008 (edited) Don't worry Devin, I'm made this game for fun only, no filthy lucre pourpose But, to avoid problems... Shoud I call it as "Super Tennis for Two"? hehehe Yep, that's probably a good idea. "JoustPong" also had to be renamed to "FlapPing". I remember, in last version the name was changed... Edited February 25, 2008 by LS_Dracon Quote Link to comment Share on other sites More sharing options...
supercat Posted February 25, 2008 Share Posted February 25, 2008 Maybe MM needs a 6-player sequel How about a two-team cooperative sequel? The two teams defend opposite edges of the screen (either left/right or top/bottom). Each defended edge has a multi-layer wall; any ball getting through the wall is a loss. There would be two paddles defending each edge, and three balls in play at all times. The paddle button would select between a faster and slower hit; the goal would be to have all three balls flying toward the opponent such that they arrive in three different places at about the same time. Not sure how best to configure the AI for those occasions when there aren't four human players available, but it could be interesting. Basic logic would probably be something to the effect of: I--STOP THE BALL -1- Which ball is arriving first? -2- If I try to hit it with paddle #1, will I have time to field it as well as the other two balls. -3- If instead I try to hit it with paddle #2, will I have time to field it as well as the other two balls. -4- If neither option is going to work, which ball will hit the thickest part of the wall? Disregard that one and focus on the other two. II--Attack the opponent -1- Can I hit a ball fast that will reach the opponent at the same time as another that's already en route? If so, do it. -2- Otherwise, if I'll be hitting another ball after the current one, hit it slowly. -3- Otherwise, hit the ball at a random speed and direction. The strategy here wouldn't be optimal, but it might be implementable and it should offer some level of challenge. What do others think? Quote Link to comment Share on other sites More sharing options...
Devin Posted February 25, 2008 Share Posted February 25, 2008 (edited) Actually, what might make this game quite different from Po-- ... er... Tennis for Two would be an extra twist. Why not allow the players to fire a missile at each other during play? The missile would be rather slow-moving and would score a point if they hit the opponent. This way, you have to *hit* the ball and *dodge* the opponent's missile. Clever players would shoot the missile to strike near where their opponent needs to hit the ball. Just a thought... perhaps a bad one. Edited February 25, 2008 by Devin Quote Link to comment Share on other sites More sharing options...
LS_Dracon Posted February 25, 2008 Author Share Posted February 25, 2008 (edited) Maybe MM needs a 6-player sequel Would be nice 6 players game, if possible to read INPT4 and 5 as paddles... At Stella Guide, they said only INPT0 to 3 can be read... Anyway, for six player game, the best position for castles is in hexagon form (see mockup) Actually, what might make this game quite different from Po-- ... er... Tennis for Two would be an extra twist. Why not allow the players to fire a missile at each other during play? The missile would be rather slow-moving and would score a point if they hit the opponent. This way, you have to *hit* the ball and *dodge* the opponent's missile. Clever players would shoot the missile to strike near where their opponent needs to hit the ball. Just a thought... perhaps a bad one. Ping for Two! About ideas, The missile was used for middle line, ok, can be removed, but kernal had now 4 cicles left... I have others ideas, "Super" means new things, for exemple the "Blind Mode"! When ball cross the middle, it vanish, and you need figure where the ball is, you can see more or less if take attention in middle line, this is the reason of that bright, what you think? Edited February 25, 2008 by LS_Dracon 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.