KevKelley Posted December 29, 2021 Share Posted December 29, 2021 (edited) Here is a new game that I had made that is 99% complete. All that is left is perhaps adding more patterns and a couple more sounds. This game started as an exercise in data tables and in using my new portable programming setup. I got a small Windows tablet to use Visual batari Basic and Atari Dev Studio to use while at work or on the go. I tried to make some concise code and as it is this game uses less than 4k bytes (approximately 80 bytes free to use). Title: Pinfinger! Couch Compliant? Yes! Gameplay: The name of the game is Pinfinger. It goes by other names but Pinfinger sounded so much cooler! The main rule of the game is to avoid stabbing the hand during each pass. The title screen has two options - single player or two player. If you select the single player option then you are presented with a second menu where you select the Mode by pressing up. This determines the pattern in which the knife will travel. There are 9 patterns (the first 3 being the most popular and widely known patterns): MODE 1 Pattern 1: 1, 2, 3, 4, 5, 6, 5, 4, 3, 2 Pattern 2: 1, 2, 1, 3, 1, 4, 1, 5, 1, 6, 1, 5, 1, 4, 1, 3, 1, 2 Pattern 3: 1, 2, 1, 3, 1, 4, 1, 5, 1, 6, 2, 6, 3, 6, 4, 6, 5, 6, 4, 6, 3, 6, 2, 6 MODE 2 Pattern 4: 1, 6, 2, 5, 3, 4, 2, 5 Pattern 5: 1, 3, 2, 4, 3, 5, 4, 6, 3, 5, 2, 4, 3 Pattern 6: 1, 2, 1, 2, 3, 4, 3, 4, 5, 6, 5, 6, 5, 4, 5, 4, 3, 2, 3, 2 MODE 3 Pattern 7: 1, 4, 2, 5, 3, 6, 3, 5, 2 Pattern 8: 1, 4, 3, 2, 6, 3, 4, 5, 2, 6, 5, 4, 5, 3, 4, 2 Pattern 9: Random Pressing left while on the Mode screen will enable the Easy mode, which will allow multiple hits with the knife. This is indicated by a pixel on the top left of the screen. To turn Easy mode off, simply move to the right of the menu. When in Easy mode, the right status bar is the timer while the left status bar is your "health." Once this runs out the game is over. Pressing down while on the Mode screen will change the speed of the knife. There are 3 speeds, with the default being the slowest. This is indicated by one or two pixels on the top right of the screen. Once you select your pattern by pressing the fire button the game will start. The game screen features a knife, a hand, and a number. The number indicates which space the knife will be traveling to, with 1 being furthest left of the thumb and 6 being furthest right of the pinky. You get 1 point for each successful stab and a 10 point bonus for each completed pattern (except in 2-player mode and random). If you select the two player mode there will be no mode select. Instead there is one "Mode 1" but you can select speed and stabbing just as you could in the main game. When you start you will notice there is now an indicator on the top left. The second player can now choose the next destination by pressing the fire button, with each pixel indicating the position. There are no bonuses in the two player mode. If you stab the hand you lose and are met with a Continue screen. Pressing left, or "Y," on the first player joystick will continue with the current settings while pressing right, or "N," will return you to the titlescreen. There is also a timer, indicated by the two colored bars on the side of the score. If you do not successfully make a stab or hesitate too long the time will run out and you will lose. Also added soft reboot for Plus Cart! KNIFE_2022_01_01.bas.bin Edited January 7, 2022 by KevKelley 7 Quote Link to comment Share on other sites More sharing options...
+Al_Nafuur Posted December 30, 2021 Share Posted December 30, 2021 Nice game! The colors are OK on PAL too. The hands on the menu screen look like broken forks, you might want to add a thumb to it. The arrows on the continue screen are difficult to identify. Maybe they would be better like this: # # # # ######### ######### # # # # The exit function does not work on the PlusCart, because the console switches are not used. 2 Quote Link to comment Share on other sites More sharing options...
KevKelley Posted December 30, 2021 Author Share Posted December 30, 2021 26 minutes ago, Al_Nafuur said: Nice game! The colors are OK on PAL too. The hands on the menu screen look like broken forks, you might want to add a thumb to it. The arrows on the continue screen are difficult to identify. Maybe they would be better like this: # # # # ######### ######### # # # # The exit function does not work on the PlusCart, because the console switches are not used. What is the exit function on the PlusCart? As for the other things, I originally had thumbs but thought it looked a bit weird but I can play around with it. I think even in SECAM the colors aren't that bad (I think the hand turns white?. I only did a little test with other colors. The arrows may be difficult, as they are currently 3 pixels high and to keep them in line with the "Y" and "N" I didn't go larger. I did notice I forgot the dot on the question mark so when I go back in and add that I did have some ideas for making lines. Thanks for the feedback! I had been playing around with this for about 2 weeks. Was happy seeing how quick I got it to come together. Quote Link to comment Share on other sites More sharing options...
+Al_Nafuur Posted December 30, 2021 Share Posted December 30, 2021 10 hours ago, KevKelley said: What is the exit function on the PlusCart? https://pluscart.firmaplus.de/pico/?Manual#exitFunction Cartridges on the VCS cannot read the console switches and the joystick ports directly, so we have to monitor the address and data-bus and wait until the 6507 reads theses ports. As far as I know @batari is working on a similar solution for the Harmony cart. There is a discussion in the PlusCart Club about injecting code to read the ports: Quote Link to comment Share on other sites More sharing options...
KevKelley Posted December 30, 2021 Author Share Posted December 30, 2021 14 hours ago, Al_Nafuur said: Nice game! The colors are OK on PAL too. The hands on the menu screen look like broken forks, you might want to add a thumb to it. The arrows on the continue screen are difficult to identify. Maybe they would be better like this: # # # # ######### ######### # # # # The exit function does not work on the PlusCart, because the console switches are not used. I changed the Continue screen a bit to make a less ambiguous arrow and added a little thumb on the side of the hands to make them less forky. I'll probably work on adding the couple extra features later on, like speed and patterns, and timer function. I am just trying to figure out how to select these options. I don't want to add another menu screen but I think that I will do something similar to how the Player 2 selects the stab destination or maybe do something like change the knife a bit. All depends on how much space I need for more patterns. 1 Quote Link to comment Share on other sites More sharing options...
KevKelley Posted December 30, 2021 Author Share Posted December 30, 2021 11 minutes ago, Al_Nafuur said: https://pluscart.firmaplus.de/pico/?Manual#exitFunction Cartridges on the VCS cannot read the console switches and the joystick ports directly, so we have to monitor the address and data-bus and wait until the 6507 reads theses ports. As far as I know @batari is working on a similar solution for the Harmony cart. There is a discussion in the PlusCart Club about injecting code to read the ports: So if I put a joystick-right+reset into the code that would give for a soft exit for the Plus Cart? I can do that! Quote Link to comment Share on other sites More sharing options...
+Al_Nafuur Posted December 30, 2021 Share Posted December 30, 2021 24 minutes ago, KevKelley said: So if I put a joystick-right+reset into the code that would give for a soft exit for the Plus Cart? I can do that! You are already reading the joystick in your menu and game loop, so you just have to read the console switches too. In bB you could add: if switchreset then goto menu to your game loop and something similar to your menu screen loop. If you don't want to use the state of the switches in your (menu) loop you can just add a short assembler snippet to your loop: asm lda SWCHB end 1 Quote Link to comment Share on other sites More sharing options...
ComputerSpaceFan Posted December 30, 2021 Share Posted December 30, 2021 This game's not funny, man! (movie misquote) 1 Quote Link to comment Share on other sites More sharing options...
KevKelley Posted December 30, 2021 Author Share Posted December 30, 2021 1 hour ago, ComputerSpaceFan said: This game's not funny, man! (movie misquote) My son didn't get the point of the game at first so I showed him this clip. Quote Link to comment Share on other sites More sharing options...
KevKelley Posted January 2, 2022 Author Share Posted January 2, 2022 Updated first post with addition information regarding more patterns, speed options, and easy mode. Also added that soft exit for the Plus Cart. I will test this out to see if any bugs, errors, or tweaking is needed a bit but this is essentially finished. 3 Quote Link to comment Share on other sites More sharing options...
+Al_Nafuur Posted January 2, 2022 Share Posted January 2, 2022 14 minutes ago, KevKelley said: Also added that soft exit for the Plus Cart. exit function works now on the menu screen? In game mode it is not working, most probably because only the joystick button (INPT4) is read and not the directions (SWCHA). I overlooked this in my last post. So beside reading the console switches a asm lda SWCHA end is also needed in the game mode. 1 Quote Link to comment Share on other sites More sharing options...
KevKelley Posted January 2, 2022 Author Share Posted January 2, 2022 34 minutes ago, Al_Nafuur said: exit function works now on the menu screen? In game mode it is not working, most probably because only the joystick button (INPT4) is read and not the directions (SWCHA). I overlooked this in my last post. So beside reading the console switches a asm lda SWCHA end is also needed in the game mode. I had only put that code you mentioned before in the menu but I could add both in the main game as well. Quote Link to comment Share on other sites More sharing options...
+Karl G Posted January 2, 2022 Share Posted January 2, 2022 Alternately without using an assembly block: temp1=SWCHA 1 Quote Link to comment Share on other sites More sharing options...
KevKelley Posted January 2, 2022 Author Share Posted January 2, 2022 10 hours ago, Karl G said: Alternately without using an assembly block: temp1=SWCHA I don't use any of the temp variables so I can slip these in all the loops that need it. Thanks. Quote Link to comment Share on other sites More sharing options...
KevKelley Posted January 2, 2022 Author Share Posted January 2, 2022 I haven't updated the .bin yet but I just added those temp variables in each of my loops. I also fixed a little bug with the bonus sprite. Hopefully not much more in the way of fixes left. Quote Link to comment Share on other sites More sharing options...
+ZeroPage Homebrew Posted January 3, 2022 Share Posted January 3, 2022 ZeroPage Homebrew is playing Pinfinger on tomorrow's stream LIVE on Twitch, hope you can join us! Tue Jan 4 @ 6PM PT | 9PM ET | 2AM GMT+1Day WATCH: https://www.twitch.tv/zeropagehomebrew/ Games: Escape from the Castle (2021 Exclusive World Premiere | 2600) by Eduardo Vilarinho Pinfinger! (2022 WIP | 2600) by Kevin Kelley @KevKelley Immunity (2021 WIP Update | 2600) by Mike Losh @Sohl (WATCH AT 1080P60 FOR FULL QUALITY) 2 Quote Link to comment Share on other sites More sharing options...
KevKelley Posted January 4, 2022 Author Share Posted January 4, 2022 Can't wait to watch! I am more excited about the other two titles. Right now I am just testing and tweaking. My wife and son are my two playtesters and so far the main feedback I got was that it is frustrating and addictive like how Flappybird is. While the gameplay is simple it all comes down to just timing. While I only have about 50 bytes free, I am just looking things over and seeing if I can tighten things up a bit. This game had been a fun little learning experiment and I think I learned what I set out to learn. The way I made it work was I have the menu select a variable. That variable determines which data table will be read. The data table contains the position number and each position number determines the coordinates the knife will travel to. Once the knife reaches those coordinates the variable that retrieves the number from the data table changes. The knife will be able to stab at any time but be scored in a range around those coordinates. I had thought of several other ways of doing this, like having one very large data table and then have the mode select just determine where the code gets on and off but I eventually went with separate data tables and only reused a couple of them for various purposes. I wanted to try and make it a simple game with a good amount of easily selectable options. I think the only other thing I want to try and do is randomize the y-coordinate of the knife's destination a bit just to add a little bit of unpredictability. 2 Quote Link to comment Share on other sites More sharing options...
KevKelley Posted January 7, 2022 Author Share Posted January 7, 2022 Just finished this up today. I took the comments from ZeroPage Homebrew and added speed and stabbing options for multiplayer. I also added a bit of randomization to the y-coordinate of the knife to make things a little less consistent (only by a range of 7 pixels). I also changed Pattern 7, as I had realized it was too similar to one of the other patterns. I may look into making this a cart. I just bought an EEPROM burner and some test carts to try a DIY route first since I am crafty. Figured a 4k game would be perfect to learn. And if not I may order some, which will more than likely be the case. 4 Quote Link to comment Share on other sites More sharing options...
KevKelley Posted January 20, 2022 Author Share Posted January 20, 2022 Testing some printers. Just got some labels for a cartridge/sticker/packaging. The label is just resting on this cartridge since I haven't gotten the PCBs or chips yet. 3 Quote Link to comment Share on other sites More sharing options...
KevKelley Posted July 13 Author Share Posted July 13 Since I have been busy working on several projects and trying to tighten up loose ends, I had a few minutes to do... something. So I decided to look at the Pinfinger code and see if I can squeeze out anything else in the 5 bytes remaining. One nagging little thing in my head was that when I made this game I didn't know what color to make the hand so I settled on Simpsons Yellow (a point my son pointed out to me). I tried adding a color select in the menu but it just ate up too much space but after a couple minutes I came up with a solution. Now on the first menu, if you press left you will start to cycle through the colors. I did this and have I think 1 byte to spare. I did this by just piggybacking on some other code in the menu select screen as well as using the same line for a coordinate value to define the starting color. I will play around with this a little more but I am happy that my original 4k experiment to pack in a game with a good amount of variations has worked out nicely. Here is a video of the color changing! Now back to finishing up a couple other issues! 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.