Jump to content
IGNORED

Dig Dug 2 on Atari 7800


Jaden (JRH)

Recommended Posts

Looking good, and great progress!

52 minutes ago, Jaden (JRH) said:

Which color pump do you think looks better? Red or blue?

Definitely red.  It stands out better - all of the water around the island makes the blue one not as obvious.

 

If being arcade-accurate is the goal, then it should technically be white with blue stripes:

 

0004.png.cd5c1eb0442eb26d54e7857268cd5aac.png

 

But it's a port, and part of the charm of ports is seeing how close they can get to the original on the hardware that they're running on.  IMHO, it's not necessary to be 100% accurate in terms of audio or video provided that the gameplay is a really good representation of the original.

  • Like 3
Link to comment
Share on other sites

15 hours ago, Jaden (JRH) said:

Alright, the pump is now working just fine! Next step in enemy AI. However, I do have a question for you guys. Which color pump do you think looks better? Red or blue? Whichever one people like more is what I'll go with. I hope to have enemy AI and more done soon. I'm really excited to be making progress on this game!

381843772_screenshot1.thumb.png.ff16e1276448ab2e861318ecc90bc1e8.png1281309686_screenshot2.thumb.png.a8b349c378a2049b36f0d5970433c97f.png

digdug2.bas.a78 48.13 kB · 6 downloads 7800basic.zip 8.74 MB · 1 download

It's looking awesome Jaden! Congrats!

 

I think the red pump stands out more against the background.

Link to comment
Share on other sites

Thanks everyone! It seems like the red pump is the clear winner. So, that's what I'll use. As a little bonus, here are some more sprites that I've done for the game.

981610719_moresprites.png.ff41a834c97bf7bc5f5f4818795638c2.png

I might wait a little bit before doing another update. I don't want to keep spamming this thread with new builds that aren't much different from the previous ones. I'm hoping for the next build to have enemies moving around and to maybe have drilling implemented as well. But we'll see.

  • Like 7
Link to comment
Share on other sites

  • 2 weeks later...
  • 6 months later...

Sorry there hasn't been much posted here. I have recently resumed progress on the game, and I plan to work on it more during Christmas break. Right now, I'm just trying to find a way to get the Pookas to be popped (or simply deleted) whenever they touch the pump. Does 7800basic has anyway to delete sprites/objects? I feel like it has to, but I'm just not seeing it anywhere.

  • Like 3
Link to comment
Share on other sites

 

16 minutes ago, Jaden (JRH) said:

 Does 7800basic has anyway to delete sprites/objects? I feel like it has to, but I'm just not seeing it anywhere.

The easiest way would be once they are popped, flag them and no longer plot them. Will depend on how your engine / routines are structured, but that's probably the easiest way.

  • Like 1
Link to comment
Share on other sites

11 hours ago, Jaden (JRH) said:

I set up a flag for the Pookas, but I'm not entirely sure how to not plot them anymore. Would I have to draw the screen again but without the Pookas?

Without seeing your code it would be hard to say.

 

I'd approach it something like this :


 

/PSUEDOCODE

set_up_stuff
 like vars and palettes etc.

main_loop
 ... game engine and stuff goes here
 .. reading controls, restoring the screen etc.

 plot_stuff
    plot_badguys
       if badguy1 = dead then badguy1_x=200 : badguy1_y=200 : goto skip_plot_badguy
       plot badguy1  
    skip_plot_badguy 

 ... update more stuff and draw the screen

  goto main loop

This is very rough but illustrates what I was saying. If the sprite you want to plot is dead, flag it as inactive and have your code plot or not plot based on the status. Here if badguy_1 is dead, his co-ords are set off screen and the code to plot him is skipped. This is just to visualise that flow and could be written more efficiently depending on the structure you are working with and your exact requirements.

 

There are probably a bunch of ways that you can solve the situation, this is just one possibility. In EXO for example, I ran into a situation where if the player died and turned into a fireball, he could still be controlled while exploding (fun, but not what I wanted!). I set a flag to say if the player status is say "2" meaning he's just exploded then ignore controller inputs (status 1 could be "normal", status 3 could be "i've finished exploding and need to be reset"). Your task seems similar, if the Pooka dies, at the end of his death animation or whatever point you choose, reset his variables, increase the score and stop plotting him. 

 

Hope this helps :)

 

 

  • Like 1
Link to comment
Share on other sites

Alright, I guess I'll share a new build. It's not great at the moment. I have it set up to where the pump does destroy the Pookas. And now I actually have more than one Pooka on screen. However, I'm having an issue where when I hit one Pooka, both of them are destroyed. I know why it happens. It's becauses it causes the game to skip over where both enemy sprites are plotted. I'm just not sure how to get around it yet. Again, once I'm on Christmas break, I'll have much more time to work on this. So, hopefully during then, I'll have a more complete build to show. But I guess this is fine for now.

 

Also

On 12/13/2021 at 8:47 AM, SlidellMan said:

Next time you upload the source files, only include the .bas/78b., the bin folder, the graphics folder, graphics, and Pokey Tracker files.

Yeah, I'm not doing that. It's much simpler for me to just zip up the entire 7800basic folder. Besides, it's not like it's that big of a file. It's only 8.7 mb. However, I can share the tracker files for the POKEY music. I'll include those with the 7800basic zip and the ROM.

7800basic.zip digdug2.bas.a78 BGM.rmt HurryUp.rmt LevelClear.rmt

  • Like 5
Link to comment
Share on other sites

8 hours ago, Jaden (JRH) said:

Alright, I guess I'll share a new build. It's not great at the moment. I have it set up to where the pump does destroy the Pookas. And now I actually have more than one Pooka on screen. However, I'm having an issue where when I hit one Pooka, both of them are destroyed. I know why it happens. It's becauses it causes the game to skip over where both enemy sprites are plotted. I'm just not sure how to get around it yet. Again, once I'm on Christmas break, I'll have much more time to work on this. So, hopefully during then, I'll have a more complete build to show. But I guess this is fine for now.

 

Also

Yeah, I'm not doing that. It's much simpler for me to just zip up the entire 7800basic folder. Besides, it's not like it's that big of a file. It's only 8.7 mb. However, I can share the tracker files for the POKEY music. I'll include those with the 7800basic zip and the ROM.

7800basic.zip 8.74 MB · 1 download digdug2.bas.a78 48.13 kB · 5 downloads BGM.rmt 524 B · 1 download HurryUp.rmt 252 B · 1 download LevelClear.rmt 385 B · 1 download

You could try giving each pooka a status flag. If pooka 1 is hit, flag him and use the same flag to test whether he should be drawn or not. That way the other pooka can still be drawn as his flag is fine.

 

So just like how each pooka now has their own X & Y vars now, give each one a status var and use that to keep track of whether the pooka is ok, hit, being pumped up or dead.

 

 

 

Link to comment
Share on other sites

You are off to a good start, Jaden. Don't know if you needed a hand including the RMT tracks, but hopefully this might be of use. I ran the RMT files through RMT2LZSS and they "compress" using LZ8 pretty well. Actually the resulting LZ8 files are slightly larger than the RMT files but they require a lot less RAM during playback. I took the LZ8 player by @dmsc and added a wrapper for inclusion in 7800basic.

 

I updated your code so that it plays the BGM all the time. The LZSS player code is in lzss_player.asm and exports two functions; lzss_init to be called at initialisation and lzss_process to be called every frame. To change tracks set the lzss_request variable with a value of 0 for silence, 1 for BGM, 2 for HurryUp and 3 for LevelClear. To add more tracks you'll need to create the LZ8 files, include them at the start of lzss_player.asm and update the track tables.

 

Music plays on Dragonfly (A7800, JS7800 & BupSystem) but not on Concerto which I don't think supports pokey@450 for 48K ROMs. You can pad it out to a super game ROM where pokey@450 is supported but even then it seems a bit hit and miss whether it will function correctly.

test.zip

  • Like 4
Link to comment
Share on other sites

I wanted to save music and sounds for later on in the project, but it's definitely something I needed help with. So, I really appreciate you doing this for me. I'll be sure to credit you in the game for helping with music.

 

My only issue is that the music is a little bit slow during gameplay. Probably some weird issue with PAL/NTSC conversion or something. But still, this is really nice. Thanks!

 

Here's the ROM on its own for people who want to try it out.

digdug2.bas.a78

  • Like 2
  • Thanks 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...