Jump to content


  • Content Count

  • Joined

  • Last visited

Community Reputation

35 Excellent

About DaveM

  • Rank
    Star Raider
  • Birthday 09/01/1971

Contact / Social Media

Profile Information

  • Gender
  • Location
    Gilbert, AZ

Recent Profile Visitors

2,578 profile views
  1. Thanks for having my game on your show again! Glad I was able to participate in the chat, that was fun. I think if it gets on the show again, I'll put together a strategy guide for you so you can get further in the game. 😄 In the meantime, I'm guessing you're not the only one who's having problems getting deep into the game, so I've hacked my own game and attached a new rom. This hack starts you at Level 3, with 9 lives in reserve. This gives you all the enemies right out of the gate, including the red snippers which didn't make it on the show. Anyway, great feedback from everyone once again, not only those on screen, but from the chat as well. Once I get the kernel rewritten, I'm going to have to try Andrew Davie's suggestion about getting the enemies to slide off the screen. Oh yeah, shoot the targets in the bonus round, don't collect them! 😂 mr_yo_yo_Lvl3.bin
  2. It's been a while, but I finally have a new update! Here's what's new: A new audio alert plays when the bonus gem shows up in the bonus cave. Previously, the two-tone notely alert played, but I felt the game needed something more distinctive when the gem showed up. Every now and then, the alert won't play, but I can't figure out why. I've added this to my "known issues" list. Audio has been added to the intermission. This completes the audio for the game. The lives remaining icon will now show a sad face when the Mr. Yo-Yo animation is showing a sad face (during the death sequence and while the player is stunned). Previously, it showed a sad face when the player had no lives in reserve. Not sure anyone noticed that, and I found it to be a bit misleading. That seemed to indicate the game was over, when it wasn't. So now the icon mimics the player animation. While playing the game, I noticed the Snipper is a real pain. He's the game's signature enemy, so I didn't want to remove him, but he seems to have too much of an advantage. Over the past few weeks, I tried numerous things to offset this advantage, and when I couldn't get those to work, I settled on what I call the "Snipper Sniper Bonus." It works like this - shoot 3 Snippers in any single cave, and the Snippers will no longer spawn in that cave. Once triggered, if the game tries to spawn a Snipper, it will spawn a coin or power-up instead. There is no visual or audio cue to signal when you accomplished this. You'll just notice there's no more Snippers, and you're seeing more coins. The bonus lasts for the duration of that single cave only, and resets upon entering a new cave. It also resets if you lose a life. If you die, you must shoot another 3 Snippers to get the bonus. This new bonus comes in very handy in the orange caves when you need to shoot 3 enemies to trigger a notely to appear, and then you have to make 8 rescues to clear the cave. Having no Snippers around is a big plus! As I've been working on the game, I came to the realization that the way I stored the audio data is about as inefficient as I could possibly do it. I had pretty much filled up my 2nd bank with audio data. So for this release, I changed much of that and freed up a good 300 bytes or so. I've combined the two control arrays into one, and did the same with the volume arrays, storing data for the two audio channels into one byte, rather than two. The trade off is that I had to add code to split these values into the values for the two channels, but that doesn't seem to cause any problems. I reorganized the data arrays in the 2nd bank and added a few aligns here and there, which seems to help with the scanline issues I was having. It's not completely cleared up, but it's so much better than what it was. I was just crossing too many pages reading those huge arrays, so cleaning that up helped a lot. I think once the kernel is rewritten, that will allow me to rewrite the collision detection, which in turn, will reduce cycles, and that should take care of the scanline issue. So at the moment, I'm not concerned about the occasional jumps to 263 scanlines. Next up is that kernel. I'm going to start looking through the code of the various games that Dennis suggested, and see what I can do. I'll reach out when I need help. I tried adding a few other things to the game, but they didn't work out so well, so I kept them out. I think I'm getting to the point where I'm overthinking some things a bit, and I need to stop tweaking the game and just go with what I got. Otherwise, I could be tweaking this thing for years and never get it done. It's time to start wrapping things up. For better or for worse, everything else I'm involved with outside of work has been cancelled, so I can turn my full attention back to Mr. Yo-Yo. It's a bit of a bummer, as I had a few weekend trips coming up I was really looking forward to, but it is what it is. I'm healthy, I still have my job, I'm now working from home, and I'm thankful for that. Time to plow ahead with this game, get it wrapped up, then hopefully start work on my next game. I've got it all planned out, and I'm excited to get started on it, but I want to finish this one first. Anyway, hope you enjoy the update! As always, any and all feedback is appreciated! Thanks! mr_yo_yo 0.20.a mr_yo_yo.0.20.bin
  3. Yes, I'm feeling much better, thanks for asking! I took some time off from working on the game in order to recover and take care of some other things, but I added a few things a couple weeks ago (just didn't release an update, since the changes were so minor), and started working again on it last night. I'm currently working on re-writing my audio player routine so that I'm not using so much space to store my audio data (I freed up some 250 bytes last night, and I'm not done yet), then I'll be adding in the rest of the audio (the music for the intermission, mostly). I'm also making a few other minor adjustments to the game. I should have my next update ready by end of next week, if all goes well. Once that's set, then I'll turn my attention to the kernel. I'm planning on taking time to go through the code of those other games and see what I figure out. I'll start by taking a crack at it myself, and when that doesn't work, I'm sure I'll be reaching out for some help. I have a busy month and a half or so coming up with some other things I'm involved with, so I won't quite have as much time as I've had to work on this, but I am continuing with it and would like to finish it off.
  4. Small update this week, but it'll probably be the last one for a little while. I've added a little tune for the Game Over sequence, and once that's done playing, you can now start a new game by pressing the joystick button. I've also added a small sound effect when you crash into one of the targets in the bonus cave. I think that's it for the audio, except for the cutscene music. For some reason, I seem to be having some scanline issues again. Every now and then, it'll jump to 263 scanlines, and I have no idea why. I've kinda hit a bit of a wall with this for now, and on top of that, I've caught one helluva nasty bug. Lately, I'm either coughing my head off, or the meds have kicked in and my head's in a complete fog. So I'm in no mood to start debugging that stuff right now. If anyone wants to have a look at the code and figure it out, or point me in the right direction, I'd appreciate it. If not, I'm sure I'll get to it eventually. Once I'm back to normal, the next thing I'll tackle will be that kernel. I'll start going over the code that Dennis suggested, and see if I can figure something out. I'd like to get that set before starting on game menus or anything. I finally started testing my game outside of Stella, mainly because the button on my game controller broke playing this damn thing so much. The game seems to work great on the Flashback portable. When I loaded it onto my Retron 77, I'm having issues with the system dropping some of the audio. I've downloaded the latest version of Stella for the Retron, but I've noticed a lot of games have a bit of a lag when it comes to the audio. Anyone know of a quick fix for that? Anyway, I've found the game is damn near impossible to play using an Atari joystick. Kinda made me question whether or not to continue with it. While playing it on Stella and on the Flashback Portable, I can usually break 100k quite easily (if you're curious, and I can't imagine anyone is, the score to beat is 365,280), but using the Atari joystick, I couldn't get past the first couple caves. The split second you lose trying to swing that big joystick back and forth makes shooting the enemies really quite difficult. On the bright side, when I switched to their new Ranger controller, it worked much better. The audio lag was still throwing me off, but at least it was playable. The one bright spot about testing it on the Retron is that it prompted me to go add the code to reset the game with the joystick button. 🤣 Enjoy! mr_yo_yo 0.19.3.a mr_yo_yo.0.19.3.bin
  5. Thanks! I'll definitely be checking those out when I get ready to re-write that part. I looked at the Turmoil code way back when I started, but I got lost in it and didn't comprehend what was going on. But that was a while back, and hopefully I've learned something since then, so I'll have another look at it.
  6. Another week, another update. What's new... Added pause functionality for the Color/B&W switch. You can now flip the switch to B&W to pause your game. There's an interesting bug if you start a new game or power up the system with the switch on B&W, but I'll leave that alone for now. It doesn't affect the game play, and I'll be adding a game options menu later, so I'll take care of it then. In the meantime, it's a strange little quirk. I've slowed down the enemies in levels 4 and up. So what was the speed of the enemies in the original demo is now the highest possible speed (without the difficulty switch added), and is used for levels 7-9. Levels 4-6 are halfway in between the starting speed and that faster speed. As I was testing the game, I found I could get to level 4 with all my lives intact, then they'd all be wiped out in a matter of seconds. So, I eased things up a bit. More sounds added. I added a little "charge" tune when Mr. Yo-Yo rolls on, and added sound effects for the Power-Up. I may have added a couple others in there, but I don't remember. What's left... I think the only sounds left are some effects I want to add for the bonus round, plus the little bit of music my fiancée will eventually get around to doing for the cutscene and for when the yo-yo rolls off the screen at the end of a round. Title screen Game menu and game variations. I'm thinking 1 or 2 players, and choice of starting level. Then there was this suggestion a while back... … which I'm thinking is a good idea, so I'll try to include it. So, open question to anyone who's read this far: If I implement such a game mode where one player controls movement, and the other fires the lasers, how often should I switch those responsibilities? Should I switch them up with every successful notely rescue, switch them at the end of the round, switch them when a life is lost, or just keep them the same throughout the game and let the players decide when to pass the joysticks back and forth? Once all of that is complete, then I think it'll be time to try to solve the flicker issue. So I'll be reaching back out to Debro and maybe some others to see if they're willing to assist. If a flicker-less solution is found, I'll then go back and re-write the collision detection to use the collision registers, rather than what I have in place now. And I think that's it. Anyone see anything else that needs to be done? So another open question to anyone who's read this far.... How are the sounds? I mentioned at the start of this thread that I had done games in VB, etc., but I never created any sound effects. Most of those games were done to kill time at work. I used to work a lot of temp jobs, and companies would bring me in for something they thought would take 90 days, then I'd go and write an Excel macro and have the whole job finished by lunch on day 1. Usually, they'd let me go and I'd end up cheating myself out of 89 days of work. So I started writing these games using the user forms in VBA for Excel and Access, just to kill time, but of course, I'd never add sound, since they were designed to be played at work. I'm hoping to port a couple of them to the 2600 some day. But anyway, first time doing audio. No musical ability whatsoever. Hope everything sounds ok. mr_yo_yo 0.19.1.a mr_yo_yo.0.19.1.bin
  7. Hi Daniel, I'm relatively new to Atari Programming too. I started working on my first game, Mr. Yo-Yo back in September, and it's still a work in progress. You can find a thread for it on this forum. Anyway, I had a similar issue, and I think this will solve it. Instead of doing a cmp, use an and. I'd also use 8 frames instead of 10, so you're only dealing with 1 bit. So your first part of code, the AreWeChanging section, would look like this: AreWeChanging: lda P0FrameCounter and #8 bne ChangeSpriteBack This isolates the #8 bit, so when it's set to 1, it branches. When it's a 0, it doesn't take the branch. Oh, and I should add that by doing it this way, there's no need to reset the P0FrameCounter to 0 in ChangeSprite. It can continue to count up, and since you're only checking one bit, you don't need a reset. Hope that helps! Dave
  8. I've added a cutscene/intermission following successful completion of the bonus cave. There will eventually be music to go with it, but that's at least a few weeks away. In the meantime, when it pops up, just hum a catchy tune while the cutscene plays. I've also added one more sound, a small little "boing" effect as the Notelies dance off screen. I was hoping to add more this week, but that cutscene was a lot more work than I thought it would be. mr_yo_yo 0.18.a mr_yo_yo.0.18.bin
  9. Sounds added! Well, some of them anyway. Probably about 2/3 of the audio has been added, plus I added a surprise or two. I also made a slight adjustment where the timer now pauses while you're dropping off the Notelies at the top of the screen. This was causing a problem when the player would drop off the last Notely to complete the round, but the timer would expire while the Notely was dancing off the screen. Technically, the player completed his task in time, but would get cheated out of a bonus round because the timer expired. The game is now 8k. I optimized the code as best I could to try to stick to 4k, but just couldn't squeeze anything else in there. So, 8k it is. I really was hoping to stick to 4k, but it just wasn't going to happen. This game has fermented in the back of my head for 20+ years, so I'd rather expand to 8k and get everything in there, than cut stuff out just to stick to a 4k limit. But I've decided come hell or high water, my next game will be no more than 4k. Gonna shut it down for the weekend. I got an idea for a new feature to add to the game, so I'm going to try to add that next week. Keep letting me know if there's any issues or errors, and I hope you enjoy this latest update! mr_yo_yo 0.17.3.a mr_yo_yo.0.17.3.bin
  10. Another bug fix, and power-up added. In fixing the last bug, a new bug was created. Sometimes the blue guys would slowly force their way through the string. It was actually kinda funny to watch. If you have the previous rom, get to the green cave (the first board where the Bouncers appear), extend to the bottom of the screen and stay there. Let the screen fill up with Bouncers. Eventually, one of them will start forcing his way through the string. Anyway, that bug has been fixed. I've also added a power-up, which I'm going to call the "Power Pod." It's a round, white object with a "P" on it. It appears very rarely, so don't miss it! It has two functions, but I think I'll let you figure out what those are. If you shoot it, you get 300 points, and it does one thing. If you collect it, you get 3,000 points and it does something else. I was going to add a couple other power-ups, but I'm running out of room again, and I didn't think those were good enough anyway. So I'll go with just the one power-up, and leave it at that. So, I got a couple questions... As I said, I'm running out of room again. Would someone mind looking at the code to see if I'm able to free up more space somewhere? I just don't see how I can add audio, a title screen, game select logic, a 2-player option, and a few other graphics to the game without going to 8k. I'm sure I could free up a few bytes here and there, but I just don't see where I can free up a big enough chunk to accomplish what I'd like to. I think some space could be freed up with a new kernel. If the flicker is removed, then I could re-write my collision detection to use the various registers, which I think would be much more efficient than the way I'm doing it now. With the gameplay pretty much done, I'm finally getting around to sound. My fiancée is going to compose a little bit of music for the game, as I'm completely inept when it comes to those things. She's an orchestra teacher, and it was her idea to use little musical note guys as the items you're trying to rescue (I was originally going to use fruit). Anyway, is there a good tool out there somewhere to help compose little musical pieces on the 2600? Or, would it be easier to have her just draw up some normal sheet music then translate that to the various values I'd use in my code? mr_yo_yo 0.15.1.a mr_yo_yo.0.15.1.bin
  11. Bouncer bug fixed! I've fixed the bug that James pointed out on his show a few weeks back, which caused the Bouncer to jump from the left edge of the screen to almost halfway over towards the middle of the screen each time it bounced off the left side. I was storing the enemy's new horizontal position in the accumulator, then calling the subroutine which reverses the bouncer; however, the accumulator was modified within the subroutine, so when the updated horizontal position was set after exiting the subroutine, it was using the wrong value. Strangely enough, it was doing the same thing when the Bouncer bounced off the right wall, but the value assigned to the accumulator within the subroutine was coincidentally very close to what the horizontal position should've been anyway, so the error wasn't noticed when bouncing off the right wall. So now, the correct value is stored to a temp variable prior to calling the routine, and restored after returning. Aside from fixing that bug, I've moved the left wall in a little bit. I've noticed that the enemies tended to jump a few pixels when they approached the left side of the screen. They'd seem to hit the left side, then jump a few pixels to the right, then continue to the left. I couldn't figure out why that was happening, so I pushed in the left wall a few pixels (from 6 to 14), and that seemed to fix it. Hoping to add some power-ups later this week, and to start getting some sounds in there. mr_yo_yo 0.14.2.a mr_yo_yo.0.14.2.bin
  12. Latest update... I've condensed the game back to 4K. I moved a number of my subroutines around, finding spaces in between my various arrays, thereby freeing up a lot of room. I'm not sure I freed up enough space to keep the game at 4K in the long run, but I'm good for now. Other changes I made: Reduced the number of frames between shots from 12 to 9. This reduces the space between shots, and of course, you can get off shots much quicker. I played around with various values, and tried less than 9 frames between shots, but I felt that made the game far too easy. I don't want the game to be where all a player has to do is hold the joystick in one direction, and he mows down every enemy in his path. Where's the challenge in that? But at 9 frames between shots instead of 12, it does make things a bit easier to hit if you use continuous fire. I still contend that the best way to play it though is to fire off one well-aimed shot at a time. Implemented some fractional positioning, which slows down all non-blobs in the lower levels. The enemies now move at a slower pace in levels 1-3 (or levels 0-2 if you're looking through the code). They return to their "normal" speed for levels 4-6, and they go faster starting with level 7. Even with the slower pace, no object will move slower than 1 pixel/frame. I tried it with the blob moving at a half pixel/frame, and it was just too dang slow. The right difficulty switch now controls the speed of the enemies. Setting it to the "A" position will speed things up. All these changes made the bonus round way too easy. So I made a number of changes there: You now have to shoot 15 targets instead of 12 in order to trigger the bonus gem. The bonus targets now move at different random speeds, some moving extremely fast. Starting with the level 2 bonus round, the targets will also move vertically; which, if nothing else, is sure to induce a seizure somewhere. I've got a ridiculously busy weekend ahead of me, so I'll start addressing some of the other issues later next week. Hopefully, I can get to adding some audio soon. mr_yo_yo 0.14.1.a mr_yo_yo.0.14.1.bin
  13. Thanks for the feedback. I can work on tweaking that. Currently, the game allows for 2 shots on the screen at once, with a reload time of 12 frames in between. The kernel, as it currently stands, only has time to draw one missile object, so I alternate frames between the two missiles. I could see allowing 3 or 4 shots on the screen at once, but I'd like to see if we stick with the current kernel first. In the meantime, I can reduce the reload time and see if that helps. The one advantage Turmoil has is that your ship jumps from lane to lane, so the shots are always perfectly lined up in the middle of each lane. I'm sure that sort of movement has its advantages in writing a kernel for the game, making it easier to reuse the missile objects. So of course with the yo-yo rolling up and down his string, aiming would be much more difficult. It's all about finding the right balance, where you're giving the player enough ammo, yet not so much to where the game gets too easy. I do still think the game is just a bit on the "too difficult" side of things, so I'll continue to tweak things. Thanks! It borrows some ideas from a lot of games, but I hoped I had thrown enough in there to make it unique. I was a bit worried that having only two bitmaps of animation for each of the enemies wouldn't be enough, but I'm happy with how it turned out. I actually had another enemy that I cut from the game early on. He was called the "Bull-it," and looked a bit like a bullet with bull horns. He just didn't look good, and performed the exact same function as the scissors guy, so I dropped him. Yeah, I was never a fan of those modes, but it is something I had considered. It would probably be very easy to implement, so it's still a possibility. Thanks again for the feedback!
  14. Not tied at all. If there's a flicker-less solution, I'd like to learn it. I'm planning on doing more games after this one, so the more ways I can learn how to do things, the better.
  15. I thought I ran out of room. As I was adding more code to one of my routines, it caused my arrays to be pushed back from $FB00 to $FC00, and I got an error message saying "No symbol table generated, maybe segment overflow?" So, my lack of experience told me that I ran out of room and had to expand to 8k. Now, as I'm typing this, I'm thinking I could take some of my subroutines and mix them in between some of my arrays, but I'm not sure where else I can open up more space.
  • Create New...