Jump to content
IGNORED

Tap-A-Mole (BETA) - IS IT DONE?


quohog

Recommended Posts

Wow!!! 921928063_3rdAnnualAtariHomebrewAwards(2020)-NominatedLaurels-Atari2600BestWIP(Original).jpg.e9e10f8cbc43b9e4bbaadb6f76813e26.jpg

This is incredible! Tap-A-Mole has been nominated for the Atari Homebrew Awards, Best WIP (Original) category! So incredible.

 

Thank you @ZeroPage Homebrew and to the whole nominating committee! And thanks to everyone who played the game, especially those who went to the trouble to dig up or purchase keyboard controllers for it! I feel very inspired now to finish this game!

 

I just need to dig up a few extra bytes of rom... :D

  • Like 2
Link to comment
Share on other sites

14 hours ago, quohog said:

Wow!!!

This is incredible! Tap-A-Mole has been nominated for the Atari Homebrew Awards, Best WIP (Original) category! So incredible.

 

Thank you @ZeroPage Homebrew and to the whole nominating committee! And thanks to everyone who played the game, especially those who went to the trouble to dig up or purchase keyboard controllers for it! I feel very inspired now to finish this game!

 

I just need to dig up a few extra bytes of rom... :D

 

You're very welcome, it's been a lot of fun playing Tap-A-Mole on the show! It's great when developers think outside the box and put to work the less common control mechanisms such as the keyboard controllers (24 buttons!!!).

 

- James

  • Thanks 1
Link to comment
Share on other sites

  • 1 year later...

Hi! Remember Tap-A-Mole? Well, it got kind of back burnered in 2021. I got really busy and also I was kind of stuck. With only two bytes left in 4k, it was really hard to fix the last couple of bugs. 

But it's back! And I *THINK* all or most or at least some of the bugs are fixed. The lost snowball on the field? Gone. The occasional crash if the rng ever returned a zero? Gone! (???

Then just a few cosmetic changes:

  • Hammers are now color coded to their scores (helpful in 2p)
  • Hammers swing in opposite directions that make more sense (I think @ZeroPage Homebrew's James asked for this)
  • Probably a bunch of other amazing features and fixes that I'm forgetting because it was a weird year

But I think this is done! I'm going to call this build BETA, and if I don't hear about any bad bugs I'll call it DONE next week. So I'd love to hear from anyone who plays it. Testing greatly appreciated. Special questions:

  • Did you ever see a mysterious snowball sitting around for no reason? (It's really the highlights of the bell, offset by the memory of a ghost mole)
  • Did the independent difficulty levels help even out skill levels in 2p?
  • Can you see what appears over the hole if you miss a mole?
  • Did the game ever crash with a black screen?
  • Any other bugs?
  • What's your high score? My current is 5416! It sounds like a lot but later rounds score higher and lead to bonus carrots.

Thanks for playing!

 

(I'll put the new .bin in the top post)

  • Like 3
Link to comment
Share on other sites

Let me know if you have any trouble getting the controls to work in Stella. I've had some troubles. Here's a blow-by-blow:

 

  • New computer, reinstalled Stella. Game won't take pc keyboard input. Under options it says "auto detect: Genesis." What?
  • @Thomas Jentzsch suggested defaulting all the controls and this worked! I could now play with PC keyboard. Yay!
  • Plugged in two actual keyboard controllers with daptor IIs. This also worked great.
  • Unplugged controllers and moved them and the game to real hardware on a harmony cart. Controllers worked fine!*
  • Back on PC, pc keyboard no longer works. Back to "Autodetect: Genesis." Forced to "keyboard" controllers. Nothing. Did Thomas's "default" suggestion that had worked before, nothing. Exited and restarted Stella, nothing. Restarted computer, nothing.
  • BUT if I go back into Atari Dev Studio in Visual Code, and compile-run from there with the arguments "-bc keyboard" it works fine

So why doesn't it work when I just open the compiled rom in Stella? 

Anyway hope it works for you! 

 

*Asterix here to say that I wish you could navigate the Harmony menus with keyboard controllers. Buttons for up, down, and select is all we need! That leaves 21 spare buttons! :)

Link to comment
Share on other sites

59 minutes ago, quohog said:

Let me know if you have any trouble getting the controls to work in Stella. I've had some troubles. Here's a blow-by-blow:

 

  • New computer, reinstalled Stella. Game won't take pc keyboard input. Under options it says "auto detect: Genesis." What?
  • @Thomas Jentzsch suggested defaulting all the controls and this worked! I could now play with PC keyboard. Yay!
  • Plugged in two actual keyboard controllers with daptor IIs. This also worked great.
  • Unplugged controllers and moved them and the game to real hardware on a harmony cart. Controllers worked fine!*
  • Back on PC, pc keyboard no longer works. Back to "Autodetect: Genesis." Forced to "keyboard" controllers. Nothing. Did Thomas's "default" suggestion that had worked before, nothing. Exited and restarted Stella, nothing. Restarted computer, nothing.
  • BUT if I go back into Atari Dev Studio in Visual Code, and compile-run from there with the arguments "-bc keyboard" it works fine

So why doesn't it work when I just open the compiled rom in Stella? 

Anyway hope it works for you! 

 

*Asterix here to say that I wish you could navigate the Harmony menus with keyboard controllers. Buttons for up, down, and select is all we need! That leaves 21 spare buttons! :)

 

Your code isn't triggering the controller detector in Stella correctly.

 

Stella looks for certain patterns in the binary and when it finds them will conclude that this is a ROM that uses a keypad or paddle or whatever.

 

Looking at the latest ROM you read the keypad at the marked locations in the image. Addresses $fe6e and $fe74

 

image.png.767cbdab1d161e9a57430b77b8b3427a.png

 

It'll require you to juggle your code around a bit but instead of BPL try BMI.

 

That will produce the byte sequence $24 $09 $30 and $24 $08 $30, which should work with Stella.

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

2 hours ago, JetSetIlly said:

It'll require you to juggle your code around a bit but instead of BPL try BMI.

 

That will produce the byte sequence $24 $09 $30 and $24 $08 $30, which should work with Stella.

Wow, I had no idea. That's really interesting how that works. Thanks for checking out the binary for me!

All my keyboard reading code was just ripped from samples on the forums. I'll have to dig into it more. 

 

But, even if it's not autodetecting it, shouldn't switching it from "autodetect" to just "keyboard" fix it by force?

Link to comment
Share on other sites

16 hours ago, quohog said:

Wow, I had no idea. That's really interesting how that works. Thanks for checking out the binary for me!

All my keyboard reading code was just ripped from samples on the forums. I'll have to dig into it more. 

 

Looking again at the byte sequences currently defined in Stella, there is another solution that would be less disruptive for your code.

 

Instead of

 

BIT INPT1

BPL ....

 

Try

 

LDA INPT1|$30

BPL ...

 

Similarly for INPT4 and INPT0. The disadvantage of this is that you're clobbering the A register.

 

on edit: what we're doing here is using one of the INPT1 "mirrors". So instead of memory address $09 we're reading address $39. For the Atari VCS itself this makes absolutely no difference, but it does produce a different sequence of bytes in the machine code. An emulator can take advantage of these variations in byte sequences for convenient features like controller auto-detection.

 

Quote

But, even if it's not autodetecting it, shouldn't switching it from "autodetect" to just "keyboard" fix it by force?

 

It should. The only reason why it wouldn't is if the binary has been rebuilt and the resulting MD5 hash of the binary is different. That might have happened during development and caused the confusion.

 

Edited by JetSetIlly
  • Thanks 1
Link to comment
Share on other sites

21 hours ago, JetSetIlly said:

Try

 

LDA INPT1|$30

BPL ...

 

Similarly for INPT4 and INPT0. The disadvantage of this is that you're clobbering the A register.

 

on edit: what we're doing here is using one of the INPT1 "mirrors". So instead of memory address $09 we're reading address $39. For the Atari VCS itself this makes absolutely no difference, but it does produce a different sequence of bytes in the machine code. An emulator can take advantage of these variations in byte sequences for convenient features like controller auto-detection.

I saw something like this in the source for Codebreaker and was so confused. If you OR a value with INPT0 at compile time you'll read the wrong address, I thought. I never heard of mirrors before. Very interesting! I'll try it! 

Thanks! :D

 

edit:

 

Hey, it worked! Now I just have to solve the problem of clobbering the A register. :)

image.png.1bf05f408625286b809ffe4634790cfb.png

  • Like 1
Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...