Jump to content
IGNORED

Frazzled - WIP Homebrew


DaveM

Recommended Posts

Here's my newest WIP homebrew, Frazzled!  As you may or may not know, a while back, I suspended my work on Kick Ice.  I began almost immediately developing Frazzled, a game based on something I did a long time ago in VBA.  Before I posted anything here, I wanted to make sure I had something playable, something I never had with Kick Ice.  Well, I finally have something playable, so it's time I start a development thread and share the results!

image.thumb.jpeg.c02a28f1ecfde129abf893ac99c9f348.jpeg

Frazzled is a bit like Q*bert meets the old Lights Out puzzle game.  You control Snugford the Unicorn (aka "Snuggy"), hopping around the grid in the lower part of the screen.  The grid up top shows a pattern that you must match on your grid below.  Each time you push the button, the square you're on changes, but so do all the squares attached to the square you're sitting on.  The object is to come up with a match - or come as close as possible - before time expires.  There will be enemies to mess you up, power ups to help you, and bonus objects to add to your score.  

 

There will be three game modes - The regular game, with selectable difficulty levels, a practice mode, and a time rush mode.  The attached ROM has what is basically the practice mode.  No enemies, no power ups, no bonuses, no timer.  Just you and the puzzle.  Solve the puzzle, and a new randomly generated puzzle will appear a few seconds later.  That's it for now.  I'll be adding the Time Rush mode next, which will basically be the same thing, but there will be a timer, so you try to solve the puzzles as quickly as possible.

 

So what happened with Kick Ice?  Well, I made the mistake of trying to do too much without first coming up with a working kernel.  It got to the point where I lost all enthusiasm for the game, and when I got to a problem I couldn't solve, I just gave up.  I had planned on doing Frazzled for a while, and I found I was more excited about Frazzled than Kick Ice.  So I set Kick Ice aside, and started on Frazzled.

 

I'm happy to say that the Frazzled kernel is complete and tested.  Special thanks to Dennis Debro who helped me out with a problem I had along the way.  With the kernel all done, now I all I have to do is take care of the game mechanics.

 

So a few things to start you out...  Keep in mind the pseudo-3D perspective.  The top row on the upper grid is the row closest to you, and that must match the row closest to you on the bottom grid, i.e., the bottom row.  The rows farthest away from you - the bottom row on the upper grid, and the top row on the lower grid must match; and of course, the middle rows must match.

 

When you fire up the ROM, you'll get a simple puzzle.  To solve this first puzzle, you must switch the center box, and the four corner boxes, in any order.  Once you switch those five boxes, you'll have a match, and a new, randomly generated puzzle will appear.  If you can't solve a puzzle, for now, just hit reset.  You'll start with that first puzzle again, but get a new one after that.  At the start of a new puzzle, the grids are guaranteed not to match.  You'll always have to switch at least one box. 

 

Once the full game is complete, there will be multiple power ups at your disposal to make matching the grids easier.  Rather than give the player a set number of lives, the plan is to work on a demerit system - similar to that in Pressure Cooker.  So, if you don't solve the puzzle before time expires, you'll pick up a few demerits, but the game will continue. 

 

A lot more to come!  Hope you enjoy the game!

MOST CURRENT ROM:

Frazzled_20240519.bin

 

 

ORIGINAL DOWNLOAD:

Frazzled_20230508a.bin

Edited by DaveM
Updated ROM
  • Like 20
Link to comment
Share on other sites

7 hours ago, Phobos867 said:

Very cool concept for a game! I tried the demo but unfortunately I'm not very good with hard puzzles, but that's just an issue I have. I'm very curious to see it complete nonetheless, with enemies and stuff!

Thanks!  I realize the puzzle aspect of it might not be everyone's cup of tea, so hopefully the extras I'll be throwing in there will make up for it.  When I created the original game in VBA, it spread around my office, and some people had trouble with it because they didn't understand how the puzzles worked.  I'm hoping now to give the player enough tools to help complete the puzzles, even if they're not a puzzle game player.

 

In the meantime, I'll give you a few hints - It's really a pattern game.  If you can learn a few patterns that will switch certain boxes, it makes things much easier.  So here's a few to get you started...

 

If we number the boxes like this...

image.jpeg.70b734a06ae6f9a550815b15c98ea987.jpeg

...and we only want to switch box #5, that can be done by switching boxes 2, 4, 6, 8, and 5, in any order.  At the end of that sequence, you'll be back where you started, but box #5 will be flipped.

 

If you want to switch any of the middle boxes along the sides, just switch the three boxes against the opposite wall and box #5.  For example, say you want to change only box #8.  To do that, switch boxes 1, 2, 3, and 5, in any order.  The end result is that only box #8 will end up switched.  So with these patterns, all you have to do is set the four corner boxes, then run these two patterns as needed to take care of the rest of the boxes.

 

And lastly, as in the example in my original post, if all the boxes are wrong, switch the four corner boxes - 1, 3, 7, 9, and the middle box, 5.  That pattern gives you the exact opposite of what you started with.

 

6 hours ago, DeafAtariFromKansas said:

Just give some TIPS for both (Startup and Reset), it seems same pattern over and over without randomized at startup, when you reset the game, it comes back to same pattern.. it needs some fixes for patterns... During play, it does randomizes the pattern after you completed the puzzle...

Yes, I guess I didn't make that clear in my original post.  For now, it will start up with the same pattern each time.  That's because the random number generator would have the same seed value (zero) on startup every time.  Even if I tried to have a random pattern at startup, it would just be the same one.  So I gave it a set pattern to start, and gave the solution above as well, so that everyone can see what the game does when you make a match.  Going through that process changes the seed for the random number generator, so each puzzle after the first is random.  This will change as the game is developed.  As soon as I put a menu or title screen in, I can then start the game with a random puzzle.

  • Like 1
Link to comment
Share on other sites

3 hours ago, DaveM said:

Yes, I guess I didn't make that clear in my original post.  For now, it will start up with the same pattern each time.  That's because the random number generator would have the same seed value (zero) on startup every time.  Even if I tried to have a random pattern at startup, it would just be the same one.  So I gave it a set pattern to start, and gave the solution above as well, so that everyone can see what the game does when you make a match.  Going through that process changes the seed for the random number generator, so each puzzle after the first is random.  This will change as the game is developed.  As soon as I put a menu or title screen in, I can then start the game with a random puzzle.

Thank for clarification about Startup.. Anyway, My option on this randomize is not set up at power up aka Startup, it will lead them to lose their interest playing this game.... That's what I did notice @Karl G game called 2600 Words. he figured out and fixed randomize at Startup and Reset, it works perfectly without repeat same one.. Again keep it up and I still enjoy playing this game... 👍

Link to comment
Share on other sites

ZeroPage Homebrew is playing Frazzled on tomorrow's ZPH stream LIVE on Twitch, hope you can join us!

 

Games:

 (WATCH AT 1080P60 FOR BEST QUALITY)

  • Thanks 1
Link to comment
Share on other sites

9 minutes ago, DaveM said:

Thanks James!  I'll be visiting my fiancée at the rehab center about that time, so hopefully we can catch the show from there!

 

Looking forward to playing it with Tanya tomorrow on the show, she loves puzzle games. Thank you for the tips above, they're extremely helpful. See you and your fiancee in the chat!

 

- James

Link to comment
Share on other sites

21 hours ago, ZeroPage Homebrew said:

 

Looking forward to playing it with Tanya tomorrow on the show, she loves puzzle games. Thank you for the tips above, they're extremely helpful. See you and your fiancee in the chat!

 

- James

Fiancée taken to hospital. Will have to catch show later on YT.

  • Sad 1
Link to comment
Share on other sites

22 hours ago, ZeroPage Homebrew said:

Oh no, so sorry to hear that! I hope she will be okay! Please send my well wishes to her.

Done.  She's doing a bit better today.  I watched the show after I got home last night.  Hope your foot heals up!

 

So, question....  Watching the game on the show last night, there was a graphics bug that popped up that I thought I had fixed:

image.thumb.jpeg.c0e102861da2ed7b9e7a287a245b7d92.jpeg

 

I don't see that bug at all on anything I've tested the game on.  I code on 8bitworkshop, and it works fine there.  Tested it on Stella, no issues.  Tested it on Flashback Portable, no issues.  So I was very surprised to see this bug pop up last night on the show.  It's caused by not writing to the PF2 register in time.  Is this something that you see often with your setup?  Could this be a HarmonyCart thing?  Can anyone else test the game on an actual system and confirm that this graphics bug does/doesn't appear?  It's gonna be tough to fix a bug that I can't duplicate on my end, but I suppose I could work on writing to the PF2 register a couple cycles earlier on those lines and see if that fixes things.

 

Onto responding to other comments...

 

Merlin - Yes, you nailed it!  Had one as a kid, loved it.  My original VBA game was an attempt to add a clock and power ups to the Merlin game.  Just figured more people were familiar with Lights Out.  

 

Patterns for corner boxes - I haven't yet figured out any patterns to flip a single corner box.  Honestly, if you know the patterns from my earlier post (and they're pretty simple to remember, a plus sign and a short "T"), you don't need patterns for the corners.  I just start by setting the four corners, look at where that gets me, and then work the other boxes.

 

Setting up your own patterns - Yes, 512 combinations per grid.  The first 8 boxes of each grid are stored as one byte, with an additional byte used to store the one bit needed for the 9th box.  I am considering adding an option where you can set up your own grid patterns and then try to work them out.  I was thinking of using the difficulty switches in the practice mode.  Flip the left switch to A to set up the top grid, right switch to A to set up the bottom grid, then flip them back to B to play it out.  But then it wouldn't be couch compliant, so perhaps I should just make it a separate option.  Anyway, if I add that, it will be something I tack on at the end if I have the room.

 

So thanks for featuring it on the show!  I'm hoping for another update in the next couple weeks.

  • Like 1
Link to comment
Share on other sites

15 hours ago, DaveM said:

Done.  She's doing a bit better today.  I watched the show after I got home last night.  Hope your foot heals up!

That's so good to hear! My foot is healing quickly but it was quite a injury so it'll be a bit before I can even put on a proper shoe again. It's sandal weather here anyway so it's all good. 🙂

 

15 hours ago, DaveM said:

So, question....  Watching the game on the show last night, there was a graphics bug that popped up that I thought I had fixed:

image.thumb.jpeg.c0e102861da2ed7b9e7a287a245b7d92.jpeg

 

I don't see that bug at all on anything I've tested the game on.  I code on 8bitworkshop, and it works fine there.  Tested it on Stella, no issues.  Tested it on Flashback Portable, no issues.  So I was very surprised to see this bug pop up last night on the show.  It's caused by not writing to the PF2 register in time.  Is this something that you see often with your setup?

 

My system has a timing bug that sometimes results in effects like this, so my system is definitely an edge case. I thought there was an option in Stella to test for that but I can't seem to find it any more. You could adjust your timing to compensate for specifically my system, but in general I wouldn't work too hard on it unless it pops up on someone else's console at well. I will probably try to replace my TIA (or whatever is causing it) at some point so I don't have to deal with it any more.

 

- James

 

  • Like 1
Link to comment
Share on other sites

16 hours ago, DaveM said:

So, question....  Watching the game on the show last night, there was a graphics bug that popped up that I thought I had fixed:

image.thumb.jpeg.c0e102861da2ed7b9e7a287a245b7d92.jpeg

Tested it on Stella, no issues. 

You should try the TIA variations in Developer options. Here the "glitched Pesco" setting reproduces the problem.

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

16 hours ago, DaveM said:

Done.  She's doing a bit better today.  I watched the show after I got home last night.  Hope your foot heals up!

 

So, question....  Watching the game on the show last night, there was a graphics bug that popped up that I thought I had fixed:

image.thumb.jpeg.c0e102861da2ed7b9e7a287a245b7d92.jpeg

 

I don't see that bug at all on anything I've tested the game on.  I code on 8bitworkshop, and it works fine there.  Tested it on Stella, no issues.  Tested it on Flashback Portable, no issues.  So I was very surprised to see this bug pop up last night on the show.  It's caused by not writing to the PF2 register in time.  Is this something that you see often with your setup?  Could this be a HarmonyCart thing?  Can anyone else test the game on an actual system and confirm that this graphics bug does/doesn't appear?  It's gonna be tough to fix a bug that I can't duplicate on my end, but I suppose I could work on writing to the PF2 register a couple cycles earlier on those lines and see if that fixes things.

 

Onto responding to other comments...

 

Merlin - Yes, you nailed it!  Had one as a kid, loved it.  My original VBA game was an attempt to add a clock and power ups to the Merlin game.  Just figured more people were familiar with Lights Out.  

 

Patterns for corner boxes - I haven't yet figured out any patterns to flip a single corner box.  Honestly, if you know the patterns from my earlier post (and they're pretty simple to remember, a plus sign and a short "T"), you don't need patterns for the corners.  I just start by setting the four corners, look at where that gets me, and then work the other boxes.

 

Setting up your own patterns - Yes, 512 combinations per grid.  The first 8 boxes of each grid are stored as one byte, with an additional byte used to store the one bit needed for the 9th box.  I am considering adding an option where you can set up your own grid patterns and then try to work them out.  I was thinking of using the difficulty switches in the practice mode.  Flip the left switch to A to set up the top grid, right switch to A to set up the bottom grid, then flip them back to B to play it out.  But then it wouldn't be couch compliant, so perhaps I should just make it a separate option.  Anyway, if I add that, it will be something I tack on at the end if I have the room.

 

So thanks for featuring it on the show!  I'm hoping for another update in the next couple weeks.

I tried the game the other day on Stella and there was this bug. If I remember well

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

Got a bug I can't figure out.  Thought this was pretty darn straightforward, but it's not working like I'm expecting.  I'm implementing a round select menu.  Pretty simple: Push up or right, and you increment RoundNum.  Push down or left, and you decrement RoundNum.  RoundNum can range from 1 to 9.  So I'm checking here to see if RoundNum = 9, and if so, I want to branch so it doesn't increment.  For some reason, it's always taking the branch, and I can't figure out why.  This starts at line 2415.  It's the first beq that it seems to always take.  I tried changing it to a bcs and a bpl, and it doesn't work for those either.  I even tried a completely different type of logic, but any check for RoundNum = 9 doesn't seem to work.  What the heck am I doing wrong here?

 

Quote

 

    lda RoundNum            ; Check Round #
    cmp #9                ; Max Round #
    beq .RoundSelectButtonCheck    ; Can't increment, branch

    inc RoundNum            ; Increment
    bcs .EndRoundSelect        ; Branch always taken
        
.RoundSelectDecrement    
    ; Joystick has been pushed left or down
        
    lda RoundNum            ; Check Round #
    cmp #1                ; Min Round #
    beq .RoundSelectButtonCheck    ; Can't decrement, branch
        
    dec RoundNum            ; Decrement
    bcs .EndRoundSelect        ; Branch always taken

.RoundSelectButtonCheck

; No code here yet

. EndRoundSelect

 

Frazzled_RoundSelectError.a

Link to comment
Share on other sites

39 minutes ago, Thomas Jentzsch said:

The 1st BCS should be a BCC.

Thanks!  I knew it would be something unbelievably simple that I was missing.  I was focused on the wrong branch and trying to rush things a bit.

Link to comment
Share on other sites

Update!  Time Rush Mode complete!  Well, except audio.

The attached ROM is Time Rush Mode ONLY.  Continue to use the previous ROM to play the Practice Mode.  Both modes will be available in the final product.

 

I haven't yet addressed the kernel issue discussed earlier.  I'll be doing that next.

 

The "first puzzle is the same all the time" problem is fixed here.  You should get a different first puzzle each time you play.

 

To start, select the number of rounds you'd like to play, from 1-9.  Complete those rounds as quickly as possible to get your final time.  When you're done, push the button to start a new game and return to the round select screen.

 

The clock can count up to 999.9.  If you max out the clock, it's automatically game over, regardless of the number of rounds you have left to complete.

 

FOR NOW...

  • The round select screen will always start at 1 round, regardless of the number of rounds you just played.  I'll probably change that later, as I'll also have to implement an option to return to the main menu. 
  • You'll get a different set of puzzles each time you play.  If I have the room/time at the end, I may add an option to replay the same puzzles.  But, since this really a secondary mode to what will be the final game, I may just decide to leave it as-is.

UP NEXT...

  • Addressing that kernel bug that popped up on ZPH.
  • Implementing the main menu.  
  • A much-needed vacation.  I may get the kernel bug done before I leave, but the main menu will have to wait until I get back from vacation.  I'll be leaving June 7.  I'll fill everyone in on the details of that probably next week, as I'm quite excited about what I'll be doing.  :)

My latest 9 round time:

image.thumb.jpeg.8bb2344c190fe62f7718ea1b5098e4ca.jpeg

Frazzled_20230524.bin

  • Like 4
Link to comment
Share on other sites

On 5/24/2023 at 10:38 PM, DaveM said:

Update!  Time Rush Mode complete!  Well, except audio.

The attached ROM is Time Rush Mode ONLY.  Continue to use the previous ROM to play the Practice Mode.  Both modes will be available in the final product.

 

I haven't yet addressed the kernel issue discussed earlier.  I'll be doing that next.

 

The "first puzzle is the same all the time" problem is fixed here.  You should get a different first puzzle each time you play.

 

To start, select the number of rounds you'd like to play, from 1-9.  Complete those rounds as quickly as possible to get your final time.  When you're done, push the button to start a new game and return to the round select screen.

 

The clock can count up to 999.9.  If you max out the clock, it's automatically game over, regardless of the number of rounds you have left to complete.

 

FOR NOW...

  • The round select screen will always start at 1 round, regardless of the number of rounds you just played.  I'll probably change that later, as I'll also have to implement an option to return to the main menu. 
  • You'll get a different set of puzzles each time you play.  If I have the room/time at the end, I may add an option to replay the same puzzles.  But, since this really a secondary mode to what will be the final game, I may just decide to leave it as-is.

UP NEXT...

  • Addressing that kernel bug that popped up on ZPH.
  • Implementing the main menu.  
  • A much-needed vacation.  I may get the kernel bug done before I leave, but the main menu will have to wait until I get back from vacation.  I'll be leaving June 7.  I'll fill everyone in on the details of that probably next week, as I'm quite excited about what I'll be doing.  :)

My latest 9 round time:

image.thumb.jpeg.8bb2344c190fe62f7718ea1b5098e4ca.jpeg

Frazzled_20230524.bin 8 kB · 7 downloads

That's much better, I like challenge to play with this, also it's good idea to keep both practice and timed modes in same ROM.. 👍

Link to comment
Share on other sites

This update hopefully fixes the kernel bug that popped up on ZPH.  I'm writing to the PF2 register 2-3 cycles earlier here, so hopefully that does the trick.  If you were seeing the playfield error (as shown a few posts above), I'd appreciate it if you could test this out and see if you still see the same bug or not.

 

There's another bug that I noticed that I can't quite figure out.  After the screen flashes "READY!", there's maybe 1 frame as it switches over to start the clock where the bottom grid briefly moves down 1 scanline.  If anyone can figure that one out, I'd appreciate the help!

 

I've also added a new feature to the game - Wild Cards!  These will be power ups in the main game when that's complete, but I'm bringing them forward into the Time Rush mode to help players who have trouble solving the puzzles.  After watching a few friends really struggle with the game, I thought it might be a good idea to implement this early.  

 

For now, if you want to use Wild Cards, set the Left Difficulty Switch to the "A" position. Set it to the "B" position to play without Wild Cards.  Wild Card boxes will flash as you hop about the grid.  You'll have up to 3 randomly selected Wild Cards on each board.  The same boxes will flash on both grids.  These boxes will ALWAYS match, meaning you may only have to worry about as few as 6 other boxes.  You can still hop on a Wild Card box and click it like you would any other, and that will change the status of the surrounding boxes as normal.  You can switch them on and off during a game, but the Wild Cards will only change upon completion of a puzzle. Hopefully the Wild Cards will make it a bit easier to complete the puzzles!  Let me know what you think of them!

 

This will probably be the last update on the game for a few weeks.  As I mentioned in a previous post, I'm going on vacation starting June 7.  I'll be driving up to Vegas to go play in the World Series of Poker.  I last played in the WSOP back in 2011, so I'm very excited to get back there again.  I plan on playing in 2-4 events, depending on how things go.  The plan is to play in Event #18, the $300 Gladiators of Hold'em event starting on Thurs, June 8.  Then on Friday, I'm going to play in Event #24, the $1500 Razz event.  Saturday will be day #2 of the Razz event, if I make it that far.  If not, I'll most likely spend Saturday at the Pinball Hall of Fame. :)  Sunday will either be day #2 of the Gladiators event, or the Final Table of the Razz event, or if I don't make it that far in either of those events, I'll buy into Event #26, the $800 No-Limit Hold'em Deepstack event.  If I do well enough in those events to clear a decent profit (a long shot, for sure), then I'll jump in Event #28, the $1500 Freezeout No-Limit Hold'em event on Monday.  I'll be returning home Weds, June 14.  I'll post updates here, or you can follow along on wsop.com.  I've played in the WSOP 3 times previously, but have never cashed (though I came VERY close once).  This will be the first time though that I'm able to buy into multiple events, so I'm hoping for better results this year!

Frazzled_20230529.zip Frazzled_20230529.bin Frazzled_20230529.a

  • Like 3
Link to comment
Share on other sites

  • 2 weeks later...

Well, it's been a frustrating trip so far. Busted out today holding KK vs QQ vs KQ. Literally couldn't ask for a better spot to get my money in. QQ rivers a dang flush. I could rebuy, but I've had enough today. Tomorrow's a different game - Razz.

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