Jump to content
IGNORED

Boom! (Atari 2600)


cd-w

Recommended Posts

Boom! is a new homebrew game for the Atari 2600, and was featured recently on the ZeroPage Homebrew channel:

9

 

Some notes about the game:

  1. Boom! is a tribute to the classic NES Bomberman game by HudsonSoft, released in 1985.
  2. The objective of the game is to kill all the enemies, then find the hidden door under one of the walls.   Each level also contains a hidden power-up that changes the rules of the game, e.g. more bombs, increased bomb radius, detonator, etc.
  3. Boom! uses CDFJ bank-switching, which uses the ARM processor in the Harmony cart as a co-processor.  It has a few technical firsts for the 2600, e.g. multi-color grid kernel, single-pixel horizontal scrolling, 4-bit 8KHz digital music, and 112-pixel title screen logo.
  4. The beta is about 90% complete and there are a few missing features, e.g. bombing the doors does nothing, and the bonus items are not yet implemented.
  5. The game is best played with a Genesis controller - in later levels the second button is used to detonate the bombs.   Alternatively you can use the Select switch instead of the second button.
  6. The highscore table will be saved to a Savekey/AtariVox if one is inserted before starting the game.
  7. The beta is NTSC only at this point - I'll do a PAL60 version in the future.
  8. The beta can be played using the Stella emulator and on a Harmony cart - the Unocart and Pluscart are not currently supported.

 

I am posting the latest beta version here for everyone to test.   Please post any feedback and bug reports to this forum and I'll do my best to answer.

 

Thanks,
Chris

 

boom.thumb.png.d0a2fdf41fad1e5392571f1fea16ee58.png

 

 

 

 

 

 

 

boom_RC3_PAL60.bin boom_RC3_NTSC.bin

Edited by cd-w
New version
  • Like 27
  • Thanks 4
Link to comment
Share on other sites

16 minutes ago, alfredtdk said:

Very good. Is there a way to get through the door or is it just the first level?
Will the final version have a digital release or just a cart? Thanks

You can go through the door after destroying all the enemies on the level.  

I haven’t thought much about the release yet, but it would be good to have both options.

 

Chris

  • Like 2
Link to comment
Share on other sites

Got past level 1 and got stuck on level 2. Killed all the bad guys and no rocks/blocks left and the door would not let me through. Played a quick game on my phone, hadnt tried hardware yet. Amazing work my friend!

Sent from my SM-G996U using Tapatalk

Link to comment
Share on other sites

I noticed in the ZPH video that the title screen shows a positioning issue, with one gfx column of the letter "B" offset by one pixel.
Just tested here and it happens on my PAL light sixer console as well:

IMG_20220605_174443.thumb.jpg.61b5e7d70708999689a6420d47fabe92.jpg

It's the same issue described here.


Gopher2600 emulates this if you select "Late RESPx" (hit F10 to open the preference window, then you'll find the option in the "VCS" tab, under "TIA Revision")

Senzanome.thumb.png.76a0465ee0de67d5cf41f073ddee4169.png
Stella doesn't yet emulate this effect, but there's an open issue on github to add it already.

  • Like 3
Link to comment
Share on other sites

4 hours ago, Bomberman94 said:

Lost life on level 2, killed all remaining baddies but can’t access door - it seems that game „forgets“ the first killed enemies? Plays wonderful and one of the best in-Game sound I heard on the 2600 btw?

Aha - this was caused by a buggy optimization and was not in the version that ZPH reviewed - a fixed binary is now attached above.

 

4 hours ago, alex_79 said:

I noticed in the ZPH video that the title screen shows a positioning issue, with one gfx column of the letter "B" offset by one pixel.  It's the same issue described here.

Thanks - I see this issue on one of my consoles also.   Do you know if there a fix that does not require moving the RESPx from cycle 0/76 (the thread is a little vague on what was done to fix the issue on pluscart)?

 

Chris

 

  • Like 2
Link to comment
Share on other sites

Anyway to map the remote trigger for the bomb besides select? Maybe direction plus button or vice versa to trigger?

Genesis controllers don't like my system but my paddle controller works fine. Don't remember if I tried it with and without the extension cable I use but if I didn't that may be the problem (hindsight).

Sent from my SM-G996U using Tapatalk

Link to comment
Share on other sites

5 minutes ago, Prizrak said:

Anyway to map the remote trigger for the bomb besides select? Maybe direction plus button or vice versa to trigger?

Genesis controllers don't like my system but my paddle controller works fine. Don't remember if I tried it with and without the extension cable I use but if I didn't that may be the problem (hindsight).

Sent from my SM-G996U using Tapatalk
 

Yes, this seems to be the only „weak point“ in controlling the game. What about a normal/short push on the button for setting a bomb and a long press to use the remote extra weapon? ?

Link to comment
Share on other sites

19 minutes ago, Prizrak said:

Anyway to map the remote trigger for the bomb besides select? Maybe direction plus button or vice versa to trigger?

Using fire+direction would prevent you from dropping bombs while running away from enemies.  

 

14 minutes ago, alfredtdk said:

I had noticed that sometimes the bombs didn't explode, I assume this was fixed in Beta01.

 

This happens when you have the "detonator" powerup - you need to use the second button to explode the bomb (normally mapped to the right "Shift" key in Stella).

 

10 minutes ago, Bomberman94 said:

Yes, this seems to be the only „weak point“ in controlling the game. What about a normal/short push on the button for setting a bomb and a long press to use the remote extra weapon? ?

I considered this also, but the "flamethrower effect" on the NES (not yet implemented on the VCS) requires you to hold down both buttons.  

 

Would it be better if I mapped the second joystick fire button as an alternative?   This would interfere with the savekey, but might be better than using a Genesis controller for some?


Chris

Edited by cd-w
  • Like 1
  • Thanks 1
Link to comment
Share on other sites

 

11 minutes ago, cd-w said:

Would it be better if I mapped the second joystick fire button as an alternative?   This would interfere with the savekey, but might be better than using a Genesis controller for some?

 

?

I added the fire button of the second joystick in 1942 for the looping too. So the user can choose between a Genesis controller, the Select button and the second joystick's fire button.

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

Big fan of Bomberman - have played most every version /every console 

& long wished someone would do a 2600. 

Love it! Better than the NES, I think.

Roller Skate power-up is a little hard to control but I'm not complaining. 

 

How do I map that Right Shift to a joystick button on X-Arcade?

 

Thanks!

Edited by knievel1
  • Like 1
Link to comment
Share on other sites

11 hours ago, cd-w said:

Using fire+direction would prevent you from dropping bombs while running away from enemies.  

 

 

This happens when you have the "detonator" powerup - you need to use the second button to explode the bomb (normally mapped to the right "Shift" key in Stella).

 

I considered this also, but the "flamethrower effect" on the NES (not yet implemented on the VCS) requires you to hold down both buttons.  

 

Would it be better if I mapped the second joystick fire button as an alternative?   This would interfere with the savekey, but might be better than using a Genesis controller for some?


Chris

Best would be only using one (normal) joystick but not at all costs. Maybe there is a clever solution for the „flamethrower effect“ - what will it be, can you describe please?

Link to comment
Share on other sites

13 hours ago, cd-w said:

Thanks - I see this issue on one of my consoles also.   Do you know if there a fix that does not require moving the RESPx from cycle 0/76 (the thread is a little vague on what was done to fix the issue on pluscart)?

Unfortunately, this race condition happens at specific CPU cycles (always multiples of 4) during the scanline, so to avoid it for good you must not hit RESxx on those cycles. (A solution could be to test the console behavior using sprite collisions and adjust the HMxx to keep the alignment, but as you can see in the video of the Pluscart menu, the result might change as the console warms up, and it's quite erratic at the threshold temperature, with positioning changing very fast on different scanlines. So t might still glitch occasionally)

 

To really avoid the race condition, with HMOVE at cycle 73, you must not hit RESxx at CPU cycles:

0 (if HMxx has any value other than $8x)
4 (if HMxx in the range $0x - $7x or $cx - $fx)
8 (if HMxx in the range $0x - $7x or equal to $fx)
12 (if HMxx in the range $2x - $7x)
16 (if HMxx in the range $5x - $7x)

 

Here I posted a table with the timing of the 15 possible motion clock pulses for HMOVE strobed at various cycles (from 73 to 3, which is the "safe" range where HMOVE can finish its operations inside Horzontal Blank for any HMxx value). The pulses happen every 4 color clocks, that is 1.33 CPU cycles (that's why the critical cycles are multiple of 4). The actual number of pulses depends on the HMxx value (it's the high nybble, after inverting bit 7).

 

After strobing RESxx, the object is moved 1 pixel to the left for each remaining HMOVE pulse (plus 8 pixels to the right if there are HMOVE bars).

You can find charts with the absolute positioning of the various graphic objects (Players, missiles and ball) for each HMOVE and RESxx cycle combination in the Stella issue tracker on github. These are generated by real consoles running the test roms posted there. Positions refer to the first copy of a sprite, at normal size.

 

 

 

-------------------------

Note that there's also different kind of race condition known, that depends on the previous position of an object when RESxx is triggered. I don't have a deep enough knowledge of the inner workings of the TIA to understand it in detail, but @JetSetIlly might help as he analyzed this case here, and was able to emulate it and match the results I got on real hardware.

 

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

22 hours ago, alex_79 said:

I noticed in the ZPH video that the title screen shows a positioning issue, with one gfx column of the letter "B" offset by one pixel.
Just tested here and it happens on my PAL light sixer console as well:

 

It's the same issue described here.


Gopher2600 emulates this if you select "Late RESPx" (hit F10 to open the preference window, then you'll find the option in the "VCS" tab, under "TIA Revision")


Stella doesn't yet emulate this effect, but there's an open issue on github to add it already.

Good to know, Have had a few surprises of HMOVE timing on ZPH's L6 console, when it works fine on my 4 switch models.

  • Like 1
Link to comment
Share on other sites

Hard to describe: if you set a bomb over a wall, you go under the wall and while the bomb explodes you go up. In the other versions (I checked Bomberman on the NES and Bomber Man on the Famicom) the bomb explodes, the wall gets destroyed and your man won‘t get hurt - even if you run against the wall (in the direction of the bomb). In this version your man dies after the bomb exploded and the wall gets destroyed. Maybe I can make a video if it helps?

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...