Jump to content
SmittyB

Plumb Luck DX (WIP)

Recommended Posts

1698905794_PlumbLuckDXTitle.thumb.PNG.f24e58ff0a0f5d995d6e6fffb05f45e6.PNG

2049357262_PlumbLuckDXInitialScreen.thumb.PNG.52407ac276e7bddd9b63690723ecc699.PNG

1068165644_PlumbLuckDXInGame.thumb.PNG.261d74c5af4a12e48d96e1716ab4392b.PNG

 

"This is it. You've landed the biggest contract
you've ever seen and you're going to need it if
your small plumbing business is to survive.

What you didn't know before you signed however
is that many others have been hired and fired
during the construction of this toxic waste
facility so you'll need to contend with their
leftover piping, and to make matters worse the
pumps will be turned on today whether the work
is finished or not. Delays are unacceptable!

 

If you're going to complete what was started,
claim your payment, and avoid an environmental
disaster, it's going to take all of your skills,
quick thinking, and sheer plumb luck!"

 

 

Plumb Luck DX is a follow-up to / remake of the second (first finished) of my 7800 projects Plumb Luck from 2017. In a way it's really the game I wanted to make back then but couldn't because I wasn't anywhere near as familiar with the system as I am now, and this is why in game it's only called Plumb Luck rather than Plumb Luck DX.

It exclusively uses the 320B mode for high-res graphics, and extra RAM on the cart to allow for far more frames of animation than would be possible without.

 

The aim of the game is to prevent the toxic slime from spilling by placing pipes to create a path from the pump to the drain. It's not as simple as it sounds though as you won't always get the pipes you want, the path the drain won't always be clear, and you'll want to build the longest path you can for the most points.

 

 

 

This 22nd August build is fairly bare bones, but I wanted to have something posted while I work on the rest of it. At present there is only a single empty level which repeats when winning or losing, the level counter just shows a debug value of the tile number, and the score counter does nothing. The title screen graphics will eventually be given a layer of polish, I should be able to fit some extra background graphics in (I'm already pushing the graphics limit of a 128K cartridge thanks to the 320B format), and I'll throw in a few AtariVox phrases where I can because you can never go wrong with more AtariVox support.

There's a bug I'm aware of where corner pieces won't work properly on the left or right walls as it will count the slime as having hit the wall rather than been redirected up or down.

 

Try on JS7800

 PlumbLuckDX_210822.a78 (NTSC colours only for the moment)

  • Like 14

Share this post


Link to post
Share on other sites

Talking about pushing the 7800 to its limits. Easily, hands down, the best looking 7800 game I have seen.

Share this post


Link to post
Share on other sites

So flipping beautiful, and that title screen is just crazy cool! Great job!

 

I really like the animation on the background characters, but I think it gets a bit distracting once the game starts... almost over-stimulating. Maybe it could be slowed down a bit at that point? If the change in speed looks jarring, then maybe it could be accelerated/decelerated over a second or two.

  • Like 1

Share this post


Link to post
Share on other sites

It looks great! It is working for me on js7800, but crashes after the title screen on a7800.

Share this post


Link to post
Share on other sites

Thanks all for the kind words.

 

On 8/23/2021 at 1:05 AM, 7800Knight said:

Looks like the NES game Pipe Dream.

I played a lot of the Windows 3 version of Pipe Dream back in the day which is why I have the grey and green colour scheme over the more colourful Amiga original Pipe Mania. I put my own spin on it by requiring you to reach a drain tile rather than just having a pipe of a given length, but unbeknownst to me at the time there was a Pipe Dream arcade game that did the same thing.

The NES Pipe Dream has 8 frames of animation per tile like my previous version of Plumb Luck so while I don't have special tiles it is a little smoother looking.

 

On 8/24/2021 at 6:26 PM, gambler172 said:

now we need SOTA

In due course. I'm going to finish that damned game if it's the last thing I do.

 

8 hours ago, RevEng said:

I really like the animation on the background characters, but I think it gets a bit distracting once the game starts... almost over-stimulating. Maybe it could be slowed down a bit at that point?

I have halved the animation speed which I think does make it look a little better and not too choppy.

 

7 hours ago, Muddyfunster said:

Great job on 320B as well, look really crisp.

Thanks, I'm especially pleased with how the cursor turned out given that transparency is disabled.

For those who haven't been following my ramblings on Discord - As the 320 modes don't have fully working transparency I'm building the cursor graphics in RAM like a software sprite in a ZX Spectrum game by taking a copy of the graphics the cursor is over, masking them out with a bitwise AND (lowest row of the image), then adding the cursor graphics with a bitwise OR (middle row), resulting in the graphics I want (top row). By swapping out the mask and graphic every few frames I can animate it without needing to do anything fancy.

image.png.a0c0d421dd6bc32d7ce471fc3c27b113.png

 

7 hours ago, Karl G said:

It is working for me on js7800, but crashes after the title screen on a7800.

I've noticed that and I'm not sure what's causing it. I'm mainly using BupSystem to test because it highlights bad timings more than A7800 and it works fine in that, plus it works in A7800 when running PAL, and it works on my PAL hardware. I suspect there's some timing issue, so if somebody can test on NTSC hardware then I'll know which emulator to believe.

  • Like 5

Share this post


Link to post
Share on other sites
3 hours ago, SmittyB said:

I suspect there's some timing issue, so if somebody can test on NTSC hardware then I'll know which emulator to believe.

Tested via Concerto under two NTSC consoles and the A7800 results are accurate.  At the title screen, press the fire button, and a solid yellow screen appears.

 

Under the MiSTer FPGA, if the controller button is held down during the title screen: The top third of the screen shows the same solid yellow mentioned above, the bottom third shows part of the gameplay field, and the middle portion is blank; that rapidly toggles, as long as the button is held down, with the title screen.  As soon as the controller button is released, it returns to just the title screen being seen.

  • Like 1

Share this post


Link to post
Share on other sites

Here's a trace of the last gasps of the program. The KIL command and yellow screen is 7800basic doing it's thing when BRK is unexpectedly encountered.

 

Quick guess is it's an unmatched bankswitch gosub and return with thisbank. Comparing the addresses in the trace with the .list file will let you figure out which 7800basic statements lead up to it.

 

 

plumb.trc

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites

I think this game was awesome and not finishing it up was unfortunate. I'm so stoked for this to get polished up. The library needs a game like this

  • Like 3

Share this post


Link to post
Share on other sites

Thanks @RevEng, that trace looks like the code to scroll the background so I'll start my troubleshooting around where it's first called. It's interesting that it doesn't appear to affect PAL hardware or 3 out of the 4 emulators I've tried it on which I'd expect something like this to do.

  • Like 2

Share this post


Link to post
Share on other sites
4 hours ago, SmittyB said:

Thanks @RevEng, that trace looks like the code to scroll the background

That was exactly what it was, but it turns out the current build doesn't seem to be affected by it anyway, at least on A7800, so there we go. That trace showed it jumping out of the middle of that routine unexpectedly so perhaps an interrupt was firing off at an inconvenient time or something.

 

As well as somehow fixing that bug, this build has slowed down background animations, an improved transition from the title screen, better sound in level transitions, fixed a minor issue where tiles would subtly flash when slime moves into them, and the level counter now works.

 

I'm working on the map format and I think I've come up with something flexible enough to get a good number in before potentially changing to random maps. The format I'm thinking of can place individual tiles at 3 bytes per 2 tiles and runs of up to 16 of the same tile using 2 bytes with a 255 value marking the ends of each list.

PlumbLuckDX_210826.a78

  • Like 6

Share this post


Link to post
Share on other sites

Playing beautifully now via Concerto under two NTSC consoles and MiSTer FPGA. :)

 

The fade effect transition from the title screen is great!

  • Like 1

Share this post


Link to post
Share on other sites

Another small update because I'm not sure when I'll be free to work on this over the next couple of weeks.

I've found that I'm pushing the limits of frame timings a bit which is why I was getting the yellow screen of death in that earlier build and a few places while making changes to this one. I haven't started optimising the code yet so once I do that it should be more stable.

 

Changes in this build include:

Added a brief credit screen.

Added fade-ins for the title screen and game screen.

Slightly altered the slime graphics on the title screen.

There are now 7 levels to go through and they loop once you beat the 7th.

The select switch acts as a level skip for testing purposes.

The tile selection is no longer completely random, and replaced with a pseudo-random system where tiles will only appear 4 times until every other tile has appeared 4 times too. I might reduce this limit to 3 or 2 depending on testing.

 

 

 

PlumbLuckDX_210901.a78

  • Like 4
  • Thanks 1

Share this post


Link to post
Share on other sites

Anyone have a video of this game? I don't emulate and have a day 1 concerto so no way of playing and would love to see it. 

 

Share this post


Link to post
Share on other sites
7 hours ago, SmittyB said:

Another small update because I'm not sure when I'll be free to work on this over the next couple of weeks.

I've found that I'm pushing the limits of frame timings a bit which is why I was getting the yellow screen of death in that earlier build and a few places while making changes to this one. I haven't started optimising the code yet so once I do that it should be more stable.

Haven't tried it yet on my 7800 but the new build freezes on the JS7800 online emulator when the game is about to start.

 

- James

  • Thanks 1

Share this post


Link to post
Share on other sites

As long as it works on hardware I won't worry too much for now. That'll be down to those timing problems again and given each emulator is different in how they handle timing, whatever I do still probably cause it to crash on one at least one for now.

  • Like 3

Share this post


Link to post
Share on other sites
7 hours ago, SmittyB said:

As long as it works on hardware I won't worry too much for now. That'll be down to those timing problems again and given each emulator is different in how they handle timing, whatever I do still probably cause it to crash on one at least one for now.

 

It locks up for me on a7800 as well.

  • Thanks 1

Share this post


Link to post
Share on other sites

Can't wait to see it on real hardware!

😉           😉          😉           😉           😉

Share this post


Link to post
Share on other sites

The latest build, 20210901, freezes up under the Concerto on two of my NTSC systems, the same exact way it does under A7800. 

 

After the initial title screen, and then the in-game title screen, the board is wiped, it then fills out with the layout and the liquid meter on the left fills up. Right after, when the action is about to begin, it freezes up completely.

  • Thanks 1

Share this post


Link to post
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...