Jump to content
IGNORED

Frantic (2600)


SpiceWare

Recommended Posts

Thanks!

 

Yes, it'll be available in the AtariAge Store when it's done. A couple of my other games are already there, Medieval Mayhem and Stay Frosty, one of the mini games found in Stella's Stocking.

 

Cant wait for it. I will be buying it right away!

 

I got to say, the walking/running sprite of the "hero" is just fantastic. Has got to be the best I've seen on the system. First time I had him move I was just delighted! It looks great. I smile everytime I see it. It kinda reminds me of the way the guy moved in the original Prince of Perisa games. Very realistic. Excellent job!

Link to comment
Share on other sites

You must be playing an older build, the current build doesn't have any animation. I "rebooted" the project a couple weeks ago when I realized I could enable the ball object, and thus have 6 concurrent shots in the air instead of just 4. It's a lot of extra work, but will make the game just that much better when its done.

 

I don't know if we'll still have that much detail when I add the animation back in. I'd dropped the speech due to performance issues, but found a way that might make it work so I'm going to see if I can't bring the speech back. If so I'll have to cut back on the amount of animation and digitized speech samples take up quite a bit of space.

Link to comment
Share on other sites

Thanks!

 

Yes, it'll be available in the AtariAge Store when it's done. A couple of my other games are already there, Medieval Mayhem and Stay Frosty, one of the mini games found in Stella's Stocking.

 

If you feel like Stella has helped you in development of this game, could you please consider donating a cart as appreciation? And if it's helped you with past carts, I wouldn't turn down a donation of those either :)

  • Like 1
Link to comment
Share on other sites

You must be playing an older build, the current build doesn't have any animation. I "rebooted" the project a couple weeks ago when I realized I could enable the ball object, and thus have 6 concurrent shots in the air instead of just 4. It's a lot of extra work, but will make the game just that much better when its done.

 

I don't know if we'll still have that much detail when I add the animation back in. I'd dropped the speech due to performance issues, but found a way that might make it work so I'm going to see if I can't bring the speech back. If so I'll have to cut back on the amount of animation and digitized speech samples take up quite a bit of space.

 

Yes I do have an older build.

 

I hope you can keep all 3. Speech, animation and extra shots. I never realized that the 2600 could even do speech! I can't decide which I would like to see given up...

Link to comment
Share on other sites

If you feel like Stella has helped you in development of this game, could you please consider donating a cart as appreciation? And if it's helped you with past carts, I wouldn't turn down a donation of those either :)

Was planning to :) I gather you don't have Medieval Mayhem - has anybody provided you with a copy of Stella's Stocking? If not I'll take care of that as well.

Link to comment
Share on other sites

I hope you can keep all 3. Speech, animation and extra shots. I never realized that the 2600 could even do speech! I can't decide which I would like to see given up...

Extra shots are a given as that was the reason I did the reboot.

 

Animation will be there, though the amount of detail will most likely be reduced to add back the digitized sound samples (they take a lot of room). This is from a test of the speech last year:

http://www.youtube.com/watch?v=NEDP0Ch0j8M

 

Quadrun, a rare game released in 83, repeats the word Quadrun a few times before each round.

http://www.youtube.com/watch?v=5Mbrolb4fpg

 

I did have an issue last year that needs to be resolved for speech to come back though

digitized sound disabled. I tried to make it work, but had garbled screens and other odd results. I suspect the IRQ routine to update the audio when the ARM code was running didn't like being in MAM1 mode.
Link to comment
Share on other sites

If you feel like Stella has helped you in development of this game, could you please consider donating a cart as appreciation? And if it's helped you with past carts, I wouldn't turn down a donation of those either :)

Was planning to :) I gather you don't have Medieval Mayhem - has anybody provided you with a copy of Stella's Stocking? If not I'll take care of that as well.

 

I don't have either of those. In fact, except for a Harmony cart (donated by Batari), I don't have any 'new release' games in cart form at all.

Link to comment
Share on other sites

  • limited sprite animation
  • sprite clipping at top/bottom of screen - Otto no longer disappears when bouncing at the top of the room
    post-3056-0-69740300-1332615016_thumb.png
  • Right Difficulty now only checked when RESET is hit.
  • Right Difficulty A now also gives you unlimited lives (I'm using it for performance testing)

Left Difficulty A = Frenzy

Left Difficulty B = Berzerk

 

Right Difficulty A = max robots, unlimited lives, score red

Right Difficulty B = normal robots, normal lives, score white

post-3056-0-38714500-1332614973_thumb.png

 

ROM

frantic_20120324.bin

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

I just tried this since it seems to be playable now. Very good so far! Actually, the sound that the enemies make when shooting reminded me of another game that could be pretty easily made using the same engine... Shamus. Shamus uses the same 3x5 room layout, only that the rooms are not randomized, but fixed and laid out on a big map, containing things you have to collect like keys and bottles. Since there are lots of enemies in Shamus, the number of enemies could be increased by using the "multiple copies" method. On the other hand, the player character in Shamus is only one color, so it doesn't need to be color-striped on the Atari 2600 as well. In the VIC-20 version of Shamus, the sound of the exploding enemies is roughly the same as the sound of shooting enemies here.

Link to comment
Share on other sites

Thanks!

 

I've played the Vic version, I recall that the rooms were in a variety of layouts. My kernel can draw arbitrary room shapes though, you can see that here where I have a diagonal line going thru the room, it just needs the playfield data to be initialized at the start of each room.

 

My kernel already supports setting of both NUSIZ0 and NUSIZ1, so multiple copies could be done w/out giving up line-by-line coloring of the sprites. The sprite driver would need to be updated to detect the collisions. Because of the use of flicker I do all collision detections via software, rather than hardware, as objects that collide are often never drawn on the same frame. I currently just use 2x feature of NUSIZx for showing explosions and special room objects (for the Frenzy variation).

 

The 64 version uses multicolor sprites.

Shamus.gif

Link to comment
Share on other sites

Hmmm... that's true, and in fact that multicolor version can be easily converted to a color-striped version when leaving out the hands, like this:post-8393-0-47950100-1332704419_thumb.png

 

But actually, I've played the C-64 version as well, and aside of some serious bugs, the playability suffers from the bigger player sprite, which in the Atari 800 original is only 11 or 12 pixels high.

Edited by Kurt_Woloch
Link to comment
Share on other sites

Hmm, did get to thinking that using NUSIZx for multiple copies of sprites is not without issues - the missiles also become multiple copies.

 

Is there a way to stop and start drawing the missile to hide the duplicates? Also, what about multiplexing the ball? I wonder how many could be made without flicker making it too faint..

Link to comment
Share on other sites

I don't know if you've ever looked at the code(you can see the main kernel loop in this blog entry), but there's only a single cycle free(it's wasted via the sta.w PF1 instruction, which takes 1 cycle longer than sta PF1). The shortest 650x instruction takes 2 cycles, so that single cycle isn't of any use. Even if there happened to be time for addition instructions (say in a game that didn't draw anything for the playfield), you'd need to have a multitude of kernels to deal with the various X locations the missile could be shown at. It'd be way to complex to achieve.

 

In Frantic I'm using 30 Hz to double the count of shots to 6. If you're just using the ball, 30 Hz would give you 2 shots. You could get 3 or 4 shots by using 20 Hz and 15 Hz(same as the ghosts in Pac Man) flicker. However, since the shots are small and rapid moving, too much flicker would make them nearly impossible to see. If the player can't see them, they're going to get killed a lot and not enjoy playing your game.

Link to comment
Share on other sites

but there's only a single cycle free...

Without looking further into details, I think there might(!) be some potential for optimization:

 

1. There is WSYNC, which could be removed. (3 cycles gained)

2. There might be a chance to merge the two repositioning branches and check outside the main loop which is relevant. (2 cycles)

3. Alternatively to 2. one repositioning branch could be merged with the kernel loop branch (2 cycles), or maybe even both so that there is only one branch left. (4 cycles)

4. The kernel could be unrolled once to save the loop branch (1.5 cycles). Or more often for more cycles.

5. Maybe the lower bits of AUDV0 could be shared with one PF0 write. Though you need one bit for ENAMx there. Not sure if one could cheat here.

 

I know not all ideas can be combined. But enough cycles to allow at least one extra load/write seem doable.

Link to comment
Share on other sites

1, 2 & 3 were done with the reboot of Frantic(the blog entry shows the original loop and new loop). The WSYNC was dropped and three conditional branches were merged into one with the test for why the branch was taken done outside the main loop.

 

4 - this could probably be done and would give us 5 free cycles over 2 scan lines. That'd be enough for a single data stream read/TIA write, but that wouldn't be enough to hide duplicated missiles.

 

5 - lower bits of the two PF0s are used for ENAM0 and ENAM1. ENABL is in the datastream that controls the conditional branch(bit 7 on triggers the branch, bits 6 and 5 control why the branch was triggered).

  • Like 1
Link to comment
Share on other sites

1, 2 & 3 were done with the reboot of Frantic(the blog entry shows the original loop and new loop). The WSYNC was dropped and three conditional branches were merged into one with the test for why the branch was taken done outside the main loop.

I better scroll down next time. :)

Link to comment
Share on other sites

  • 2 weeks later...

Thanks!

 

Didn't get anything done for the past couple weeks, details in the blog if y'all are interested.

 

I'm finally recouped enough from that incident that I put in a couple hours on the speech routines yesterday. My notes from the prior speech experiments weren't quite right, so I'm having to refigure out what I was doing and why. Yesterday I figured out enough to recreate the speech samples, though they sound slightly different than before. Possibly the Alex voice was updated in Lion, which was released a month and a half after my last speech experiment.

Edited by SpiceWare
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...