+SmittyB Posted November 15, 2020 Share Posted November 15, 2020 Introducing Plink, a new 1 or 2 player paddle game for the 7800. This is a small project I started with the intention to have something completed by the end of the year so isn't something too complicated. The goal is simply to rack up your score by hitting blocks or bouncing the ball off the right side of the screen. The 2 player mode is choppy at the moment where things aren't optimised but it's playable enough. It currently all fits in 32K, but I'm using a 128K+RAM format as I'm using the cart RAM for the background effects. I'm quite pleased that I've been able to get it looking this good using just 320A, and it's useful as a proof of concept / template for a bitmapped display. Plink_20201115.a78 Plink_20201115.bin 17 Quote Link to comment Share on other sites More sharing options...
gambler172 Posted November 15, 2020 Share Posted November 15, 2020 Hi Smitty nice little game.Works well on my Concerto ? 1 1 Quote Link to comment Share on other sites More sharing options...
Jinks Posted November 15, 2020 Share Posted November 15, 2020 3 hours ago, gambler172 said: Hi Smitty nice little game.Works well on my Concerto ? If I could find my damn sd card adapter I would try this too it looks great. Someone should do a video! 1 Quote Link to comment Share on other sites More sharing options...
TrekMD Posted November 15, 2020 Share Posted November 15, 2020 This looks nice! And good to see a new paddle game for the 7800! 1 Quote Link to comment Share on other sites More sharing options...
+Karl G Posted November 15, 2020 Share Posted November 15, 2020 Looks great! I love paddle games, and the 7800 doesn't have a lot of them. I did a video capture from a7800 and uploaded it to YouTube. No audio though, unfortunately, but that sounds great, too. I hope I get a chance to try this on real hardware with paddles eventually. 3 3 Quote Link to comment Share on other sites More sharing options...
+Muddyfunster Posted November 15, 2020 Share Posted November 15, 2020 This looks and plays great @SmittyB, really nice use of the 320 mode. Looking forward to seeing this develop. I really love the scrolling background, the geometric patterns are simple yet so effective. More please! 1 Quote Link to comment Share on other sites More sharing options...
+ZeroPage Homebrew Posted November 15, 2020 Share Posted November 15, 2020 4 hours ago, Karl G said: Looks great! I love paddle games, and the 7800 doesn't have a lot of them. I did a video capture from a7800 and uploaded it to YouTube. No audio though, unfortunately, but that sounds great, too. I hope I get a chance to try this on real hardware with paddles eventually. Hey Karl, I'm trying to get controls to work with a7800, are you using the mouse to control the paddle in the emulator? No matter what I do I can't get it any response from the mouse to control the game. What are your settings? - James Quote Link to comment Share on other sites More sharing options...
+Karl G Posted November 15, 2020 Share Posted November 15, 2020 1 minute ago, ZeroPage Homebrew said: Hey Karl, I'm trying to get controls to work with a7800, are you using the mouse to control the paddle in the emulator? No matter what I do I can't get it any response from the mouse to control the game. What are your settings? - James Hit tab to change controller settings after launching the game, change the first controller to mouse, then choose the reset option to restart the emulation with that option active. After that, mouse left and right motion will be paddle motion. 1 Quote Link to comment Share on other sites More sharing options...
+ZeroPage Homebrew Posted November 15, 2020 Share Posted November 15, 2020 12 minutes ago, Karl G said: Hit tab to change controller settings after launching the game, change the first controller to mouse, then choose the reset option to restart the emulation with that option active. After that, mouse left and right motion will be paddle motion. Ah, I was definitely missing the 'Reset' option. So, the mouse DEFINITELY does some thing now, unfortunately the thing it does is rapidly reset/pause/unpause the game when I move the mouse. Same behaviour whether I set it to Amiga Mouse or ST Mouse. ? The same weird reset/pause/unpause happens pressing up and down on the keyboard too. Using A7800 Ver 4.0... super strange behaviour. - James Quote Link to comment Share on other sites More sharing options...
+Karl G Posted November 15, 2020 Share Posted November 15, 2020 3 minutes ago, ZeroPage Homebrew said: Ah, I was definitely missing the 'Reset' option. So, the mouse DEFINITELY does some thing now, unfortunately the thing it does is rapidly reset/pause/unpause the game when I move the mouse. Same behaviour whether I set it to Amiga Mouse or ST Mouse. ? The same weird reset/pause/unpause happens pressing up and down on the keyboard too. Using A7800 Ver 4.0... super strange behaviour. - James My bad. I meant the first controller should be set to paddles! Then the mouse can emulate them. Quote Link to comment Share on other sites More sharing options...
+ZeroPage Homebrew Posted November 16, 2020 Share Posted November 16, 2020 3 hours ago, Karl G said: My bad. I meant the first controller should be set to paddles! Then the mouse can emulate them. That's got it, thanks so much Karl! I had tried to set it to paddles before but didn't do the reset. I guess the emulator (or console?) needs to have the correct controls "plugged in" on boot or they won't work? - James Quote Link to comment Share on other sites More sharing options...
SlidellMan Posted November 16, 2020 Share Posted November 16, 2020 I really like the particle effects that were used in the title screen. 1 Quote Link to comment Share on other sites More sharing options...
RevEng Posted November 16, 2020 Share Posted November 16, 2020 12 hours ago, ZeroPage Homebrew said: [...] I had tried to set it to paddles before but didn't do the reset. I guess the emulator (or console?) needs to have the correct controls "plugged in" on boot or they won't work? Correct. a7800 is a fork from the mame a7800 driver, so it inherits some mame clunky UI... needing to reset after plugging in new controllers is part of that. 1 Quote Link to comment Share on other sites More sharing options...
+SmittyB Posted November 16, 2020 Author Share Posted November 16, 2020 Thanks everyone. Of course I'm still working on improvements and I've just added block formations so rather than each block having a random Y position they'll go through randomly selected patterns. Next on my to-do list is improve the sounds, and optimise the two player mode. As for the particle effects I'm definitely pleased with them. The code to draw each particle is able to place it on any pixel, but I'm drawing them on every other pixel instead so I don't have to worry about 16-bit coordinates for drawing on the right side of the screen past 256 pixels. The lines at the top and bottom of the title screen also help keep the framerate up as clearing the entire bitmap each frame is a bit much. From this I've learned that if I wanted to do something that makes full use of a bitmapped 320A screen it would be best to stick to a 256 pixel wide image centred on the screen and then double buffer it. That also has the advantage of needing only 1 DL entry per zone and the buffer can flipped by updating the high bytes of each. For the curious, this is actually the second iteration of Plink. The original idea was for it to be more of a traditional Pong clone but with a number of freely moveable blocks in the screen. I scrapped this idea because the physics were a pain to get working well enough (and I didn't get as far as having blocks bounce off each other), and no constraints on the Y axis for anything meant that the number of things to plot and render in a given zone would vary between 0 and 20+ frame by frame so it runs terribly. Prototype Plink.a78 7 Quote Link to comment Share on other sites More sharing options...
+SmittyB Posted November 17, 2020 Author Share Posted November 17, 2020 Current working build. Improved sound. Blocks play different notes based on where they are vertically Improved paddle trails. Trails now represent the previous 6 frames of movement instead of the last 2 Improved the background. Added a couple of additional shapes that can be drawn Added block formations. Currently 8 exist Lengthened the paddles by 16 pixels Paddles can influence the ball's Y velocity by slicing the ball with the paddle The points gained for hitting a block increase for each block hit before the ball touches a paddle or is missed The ball starts uncontrolled. Neither player will gain score or lose extra balls for an uncontrolled ball. If the ball is missed it becomes uncontrolled and its Y velocity is reset. Extra balls are earned for every 100 points scored. Plink_20201117.a78 Plink_20201117.bin 5 Quote Link to comment Share on other sites More sharing options...
+ZeroPage Homebrew Posted November 17, 2020 Share Posted November 17, 2020 Good updates! While testing it out, I found that if it starts bouncing perfectly straight horizontally (y velocity at 0) it's quite hard to get it to stop doing that, especially at the top of the screen. And actually if you get it bouncing horizontally, you can just leave it there for infinite points. - James 1 1 Quote Link to comment Share on other sites More sharing options...
+SmittyB Posted November 17, 2020 Author Share Posted November 17, 2020 Sure you can leave it for infinite points but at about a point a second you'd just be wasting your own time and in a two player game only one person would be able to score anything. When it's bouncing near the edges you need to use larger movements to nudge it. I'll probably make it so that when the ball is controlled it always has a slight offset 1 Quote Link to comment Share on other sites More sharing options...
+SmittyB Posted November 27, 2020 Author Share Posted November 27, 2020 A new build. This is essentially complete apart from a a couple of bugs and tweaks discovered playtesting on hardware. Added credits and intro Added title music (somewhat knocked off from a classic tune) Added a high score counter for the 1 player mode. Scores from a 2 player game will not count towards the shown high score. A controlled ball will always have a slight movement on the Y axis preventing infinite bouncing Adjusted how the ball is influenced by moving paddles. The speed changes are much finer requiring multiple hits to get more extreme angles. Fixed slowness on NTSC. As a compromise the trails are slightly simplified when playing a 2 player game on NTSC. Single player games and 2 player on a PAL console will have the full effect. Added additional block formations Adjusted the background graphics slightly If a player runs out of lives or presses reset the game will end and pause showing the current state of the lives, scores, paddles, and ball. Added debounce to the button presses for starting a new game and returning to the menu. To do: Fix extra balls being added twice sometimes to player 1 Fix '+' graphic not appearing on lives counter Increase limits on ball's Y speed effectively increasing the difficulty cap. I found that a 2 player game can end up going on forever because the ball is too predictable. Notes: I decided to not declare a winner when the 2 player game ends as players may wish to play for score or lives and should discuss the manner of their competition beforehand in a friendly fashion. The fixed point maths of the ball will sometimes cause it to bounce in an unexpected way when it's moving slowly on the Y axis. Not something I'm going to be able to change, but doesn't really effect the gameplay. Plink_20201127.a78 Plink_20201127.bin 4 Quote Link to comment Share on other sites More sharing options...
+sramirez2008 Posted November 27, 2020 Share Posted November 27, 2020 Wow! I don’t know how I missed this thread before just now. The title screen and game look great. Can’t wait to try it out on my Mateos. You can never have too many Paddle games! Thanks. 1 1 Quote Link to comment Share on other sites More sharing options...
+sramirez2008 Posted November 27, 2020 Share Posted November 27, 2020 (edited) Just played the latest ROM and it looks and plays well. Paddle moves very smoothly, however there is less of the field available vertically, vs. horizontally, and when things speed up, you can easily lose a life while trying to get your paddle repositioned to it’s sweet spot. Not sure that you can do anything about this, but hopefully it makes sense. The scrolling background is very cool. I find myself trying to watch it, while playing the game. Hell of a game? Thanks for sharing? Edited November 27, 2020 by sramirez2008 grammer 1 1 Quote Link to comment Share on other sites More sharing options...
+SmittyB Posted November 27, 2020 Author Share Posted November 27, 2020 Thanks very much. While playing on hardware, do you have any problems with the paddle twitching when spun all the way clockwise? I want to double check if it's something in the game or if maybe my paddles just have a dirty spot on the far edge. Seems to be something in this recent build. I'm not sure what you mean about vertical vs horizontal. If it helps, the skill is in controlling the ball with your paddle movements so if the ball is moving down too fast hit the ball while the paddle is moving up and it will bounce with a shallower angle. This creates a risk / reward situation where you can rack up points quicker by making it harder for yourself. The effect is based on the distance the paddle moves over 6 frames so you make move the paddle to where the ball will be, stop, and still have an effect on the ball providing it hits soon enough. Quote Link to comment Share on other sites More sharing options...
RevEng Posted November 27, 2020 Share Posted November 27, 2020 24 minutes ago, SmittyB said: Seems to be something in this recent build. It may just be that you're loading the DLs more heavily or unevenly in the recent build. The paddle read happens during the visible screen, and while the driver is quite good at coping with moderate DMA, heavy DMA in certain zones can cause a bit of jitter in certain paddle positions. To mitigate, you can alot more time to the paddle read. i.e. don't use paddlescalex2 if you are, or increase thepaddlerange value to give more time to the paddle reads and scale down the result as needed. 1 Quote Link to comment Share on other sites More sharing options...
+SmittyB Posted November 27, 2020 Author Share Posted November 27, 2020 Thanks, I recompiled without making any major changes and it seems to have stopped in emulation at least. I'm using range 64 and scale2x because I don't want to spend too much time reading the paddles. The background eats up a lot of a lot of CPU time and it's been difficult avoiding framedrops. 1 Quote Link to comment Share on other sites More sharing options...
+SmittyB Posted November 27, 2020 Author Share Posted November 27, 2020 Update with a few tweaks. I'm not getting the paddle jitter in emulation but I am getting it on hardware so if everyone running on hardware can let me know how it behaves for them I'd appreciate it. Fixed (and improved) the code handling lives The '+' graphic displays properly when you have more than 4 extra balls available The ball's Y velocity limits have been increased from +-4 to +-8 pixels per frame Corrected some RAM not being initialised to zero Plink_20201127_2.a78 Plink_20201127_2.bin 1 Quote Link to comment Share on other sites More sharing options...
+sramirez2008 Posted November 28, 2020 Share Posted November 28, 2020 (edited) 1 hour ago, SmittyB said: Update with a few tweaks. I'm not getting the paddle jitter in emulation but I am getting it on hardware so if everyone running on hardware can let me know how it behaves for them I'd appreciate it. Just tested the 20201127_2 ROM and it works well on my hardware. Tested with three different sets of paddle controllers Tested with two 7800 consoles: A1 885456395 un-modded A3 9B1 5287637 S-Video/Composite mod IMO, this ROM runs smother than the previous with actual hardware.? <Edit> Any chance of adding SaveKey support? Edited November 28, 2020 by sramirez2008 SaveKey 1 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.