Jump to content
IGNORED

Plumb Luck DX


SmittyB

Recommended Posts

Third time's the charm.

I've maybe fixed what I think was a bug in the code for resetting the pseudo-random tile limits that under the right circumstances would be put in an infinite loop, but I think the exact behaviour was dependent on whether RAM was zeroed by the emulator / cartridge or not.

PlumbLuckDX_210902_02.a78

  • Like 2
Link to comment
Share on other sites

1 hour ago, SmittyB said:

Third time's the charm.

Indeed, the third try with '210902_02' release is the charm.

 

Since we're on threes - it is playing perfectly under:

 

1.  Concerto with two different NTSC consoles

2.  MiSTer FPGA

3.  A7800 Emulator

 

Thank you for the update!

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

  ZeroPage Homebrew is playing Plumb Luck DX on tomorrow's (Fri Sep 3, 2021) stream LIVE on Twitch at 12PM PT | 3PM ET | 7PM GMT!

 

Games:

 (SET TO 1080P60 FOR FULL QUALITY)

 

 

  • Like 5
Link to comment
Share on other sites

19 hours ago, Trebor said:

Indeed, the third try with '210902_02' release is the charm.

 

Since we're on threes - it is playing perfectly under:

 

1.  Concerto with two different NTSC consoles

2.  MiSTer FPGA

3.  A7800 Emulator

 

Thank you for the update!

Plays well via Dragon Fly.  Are there only 4 levels?  When I reached level 5, I didn't have a "target" pipe to connect to.  Love that title screen.

 

PL Level 5.jpg

  • Like 3
Link to comment
Share on other sites

2 hours ago, sramirez2008 said:

Plays well via Dragon Fly.  Are there only 4 levels?  When I reached level 5, I didn't have a "target" pipe to connect to.  Love that title screen.

Eurgh... Another bug that doesn't appear on BupSystem. Using the select switch to skip levels it seems 4, 5, and 6 don't load properly, and level 7 loads except for one set of tiles.

I'll work on figuring that one out while I watch the stream I sadly missed.

 

I'm glad you like the title screen; it's one of the things I wished I could have done in the old version, but had to leave it because I just didn't have the time or cartridge space.

  • Like 6
Link to comment
Share on other sites

To nobody's surprise that level bug was another timing issue.

I've also made 2 changes based on the stream; firstly you have to press the left button to load the next level after a short delay though I'll be changing how this works later on, and secondly you can hold the right button to speed up the timer or slime at any point.

PlumbLuckDX_210905.a78

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

27 minutes ago, SmittyB said:

To nobody's surprise that level bug was another timing issue.

I've also made 2 changes based on the stream; firstly you have to press the left button to load the next level after a short delay though I'll be changing how this works later on, and secondly you can hold the right button to speed up the timer or slime at any point.

PlumbLuckDX_210905.a78 128.13 kB · 1 download

I’ll test it tomorrow. Thanks for sharing.

Link to comment
Share on other sites

  • 3 months later...

Happy new year to everyone!

I'm finishing this year with a new build of Plumb Luck DX.

 

This build should be more stable, or at least I haven't run into any more problems with it. Press a button to get past the title screen, then when the map and timer finish their animations you can either press a button to start the level or use left and right to select one of the twenty currently available levels. As before, the left button places tiles and the right button speeds up the timer. The reset switch will immediately end the level as if you had lost so it's a convenient way to select a new level. The most noticeable addition are the randomised background colours and patterns for variety, and while there currently isn't an option to disable the scrolling I might add it as a toggle via a console switch.

 

There's still plenty to do but that can wait for another day.

 

0160.png.f5e4a33453a304d4a8b8f12ea63d5402.png0161.png.5f909b78a3edc110814e8317411e5a4b.png

PlumbLuckDX_211231.a78

  • Like 8
Link to comment
Share on other sites

  • 3 weeks later...

Hello there!

 

I got to try out your game recently, and it's a great port.  I'm not sure if you're open to feedback (since it's a port), but I have a few small suggestions:

 

1) Playing it as a novice, I had a really hard time determining which end of the right "pipe queue" was where new pieces come from.  It took me two play-throughs to realize the top is the "latest" and that everything shifts up.  I could think of a couple of ways to solve this: perhaps pug a "next" pointing to the top square or highlight it differently from the others.  Or, put an arrow on the right of the queue pointing up so we know that's the direction things are going.  Finally, if you felt fancy, you could have the queue on the right animate and "slide up" whenever a new tile is placed.

 

2) I have trouble seeing what's under the cursor, especially when the cursor "flexes large"-- maybe the pipe edges need to be a bit thicker so that the cursor doesn't obscure them?  Or, maybe they need to be a bit of a different color.  I like how things look, but I have to admit that I really have to squint and think / wait to see if what I placed was what I thought it was.  If possible, it'd be nice if it was just instantly apparent.

 

3) I'd love an explosion graphic / sound when overwriting a pipe piece.

 

Overall, I love the animation at the beginning, and the gameplay is fun and certainly takes me back to playing Pipe Dream on my gameboy.  Thanks for making this port!

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

Glad you like it.

What you mentioned are all things I've thought about and do intend to do more work on, but there are limitations that make it tricky. I'm using 320B mode so I only have 2 palettes of 3 colours + background and no transparency (without mid-screen changes).

 

1. I've considered having a gradient effect to emphasise the top of the screen and / or have the tiles slide up (mock up below), but as I don't have transparency I can't just draw the tiles as separate objects and move them around, nor can I overlay the gradient on top of the existing graphics. It's doable, but in order to do so I need to build up those graphics in RAM like I do for the cursor, background, and slime. It takes a fair amount of time to process that and I don't want slowdown for the frames on which it's updating. I'll need to see what I have space for towards the end as I'm also going to look at adding crossover pieces like Pipe Mania, but the way they work would be an exception to just about every bit of logic in place at the moment.

 

image.png.9019d937c7a7351ab83aac35aeefc2f3.png

 

2. It's not something I have any trouble with personally, but a couple of people have mentioned the cursor being too chunky so I'll look into it. With the lack of transparency the cursor has to be the same colour as the tiles under it, and making it larger than 16*16 would add to the complexity of building the graphics as I'd need to read the surrounding tiles and copy their graphics as well. I could maybe make the cursor thinner or make it an X, but let me know if you have any ideas.

 

3. This is on the to-do list. Rather than a grey and green explosion I'll be doing a dissolve effect like the blocks in Plink.

  • Like 2
Link to comment
Share on other sites

17 hours ago, SmittyB said:

What you mentioned are all things I've thought about and do intend to do more work on, but there are limitations that make it tricky. I'm using 320B mode so I only have 2 palettes of 3 colours + background and no transparency (without mid-screen changes).

Not sure this matters, but all of the 320 modes can have transparency. The limitation is that transparency only works at 160 resolution. A pixel with C=0 will be background if the paired pixel has C<>0, but if both have C=0 then both will be transparent.

 

For the purposes of your gradient, I think you could make that work with an overlay, but it would look like 160. I don't know if that would look good. For the background, and maybe the cursor and slime, I'd think it would work well. Just don't draw the background all the way across, that would waste many cycles.

  • Like 1
Link to comment
Share on other sites

While the 320 modes can have transparency which I made use of that in Plink to mix colours in 320A, with 320B you then run into the problem of certain pixel combinations being drawn as background colour (in this case black) so if I disable kangaroo mode it just looks like the below screenshot. Maybe I can rearrange the palette and adjust the graphics to make it work, but I don't know, and having that restriction would be annoying if I wanted to change something.

 

0180.png.35a4723ae43bf5fea575477b741de644.png

  • Like 1
Link to comment
Share on other sites

Hey there!

 

I'm REALLY rusty on 7800 stuff, so please forgive me if I say something technically inaccurate.

 

For the "next" column in the right side of the screen, I assume you are keeping the tiles lined up with DLL zones?  If so, maybe this would be an option:

 

Instead of pointing to ONE indirect character map in each zone for the "next tile +n" (I assume you are doing this), you could point to TWO character maps and use holey DMA. Then, define one byte in RAM, let's call this the yOffset, and set it to zero.  The initial topmost zone would point to the topmost sprite+offset AND the second tile-offset. With holey DMA, only the first sprite would show. Then, to slide things up, increase the offset by 1 gradually. The top sprite will show the bottom part of sprite1 AND the top part of sprite 2. Continue until yOffset hits the Zone height and then reset it to zero and move all the RAM locations up a zone (which you already have logic for). This is how I got my main character to move up and down through Zones in Get Lost. No transparency needed, no fancy RAM copies-- just another DL per DLL.  Could something like that work?

 

If I explained it poorly, please let me know and I can try again.  As I said, I am rusty.

  • Thanks 1
Link to comment
Share on other sites

8 hours ago, SmittyB said:

While the 320 modes can have transparency which I made use of that in Plink to mix colours in 320A, with 320B you then run into the problem of certain pixel combinations being drawn as background colour (in this case black) so if I disable kangaroo mode it just looks like the below screenshot. Maybe I can rearrange the palette and adjust the graphics to make it work, but I don't know, and having that restriction would be annoying if I wanted to change something.

Oh yeah. I should have remembered that, since it's the reason I don't use 320B in my project. IIRC it's pairs of C=1, it is never mentioned in any of the original documentation (i.e. a silicon bug), and I did not believe it until I tried it myself.

 

Looking at your graphics, I see all 4 colors in horizontal spans of >2 pixels, so your graphics are not possible in a single 320B object, no matter how you allocate the colors.

 

Sorry for the distraction!

  • Thanks 1
Link to comment
Share on other sites

@Propane13

I think I get what you're suggesting, but if I am then it wouldn't work with kangaroo mode on as holey DMA makes MARIA see zeroes in certain ranges, but those zeroes would be interpreted as solid black and so only the last object drawn would be visible in the zone. You have given me an idea though so thanks.

Link to comment
Share on other sites

5 hours ago, SmittyB said:

@Propane13

I think I get what you're suggesting, but if I am then it wouldn't work with kangaroo mode on as holey DMA makes MARIA see zeroes in certain ranges, but those zeroes would be interpreted as solid black and so only the last object drawn would be visible in the zone. You have given me an idea though so thanks.

 

Thanks for clarifying-- there's definitely a lot I've forgotten here.  I had thought kangaroo mode = transparency, but rechecking my manual, it's the EXACT opposite.  So, yeah, that's a problem.  Kangaroo mode = no transparency = all zeros turn black, so holey DMA is a no-go.  Definitely an issue.  And, since kangaroo mode is set at the CTRL byte level, it can't be flipped on/off on the fly per scanline or zone, or at the DL level.  So, yeah, that's tricky...

 

Awesome that you have an idea.  I'll keep an eye out and would be glad to help test.

 

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