Jump to content
IGNORED

Frazzled - WIP Homebrew


DaveM

Recommended Posts

**** UNICORN DANCE PARTY! ****

 

The game's bonus round is now partially implemented and fully playable (and without using any extra RAM)!  Welcome to the Unicorn Dance Party!  You'll trigger a Unicorn Dance Party in Arcade Mode after successfully completing two levels, and then every three successful level completions thereafter.

 

The object is to hop around the grid, trying to land on the lit square.  Each time you do, you'll earn 1000 points, and you'll have 2 penalty points deducted.  So if your penalty count gets high, here's a chance to bring it back down again!

 

Joining Snuggy in the Unicorn Dance Party are his little sisters, Snowy and Rosey.  One's a bit faster than the other (I'm too lazy right now to look at the code and see which one I made a tad quicker), but other than that and their color, there's no difference.  Snuggy's a bit of a clumsy dancer, so you need to avoid bumping into your sisters.  If you do, the music will speed up, and they'll turn red and run off.  Be careful, as Snowy and Rosey aren't quite like the other enemies.  Sometimes, they'll randomly reverse directions, making it a bit tougher to dodge them!

 

The Dance Party ends when the music has cycled through 3 times, or you have bumped into your sisters 3 times, whichever comes first.

 

You'll notice the top grid disappears during the bonus round.  That's because something else will be going there once I'm done with it.  But for now, the game is completely playable without it.

 

I've made some other minor changes, and it looks like I've solved the problem with the Game Over tune not playing that I mentioned in an earlier post.  I hope to have this game complete by early next week, then get it into the hands of my playtesters.  If you'd like to be a playtester for this game, message me and let me know!  I'll have to have a quick turnaround time though, and I need to get this thing all wrapped up by June so Al can get it ready in time for for PRGE!

Frazzled_20240506.a Frazzled_20240506.bin

  • Like 4
Link to comment
Share on other sites

Another update, and this might be a release candidate!

 

What's New:

1. A disco ball has been added to the bonus round!

2. Color/B&W Switch now has a function.  When set to Color, the game looks as it always has been.  In B&W, the grids are monochrome.  You can switch to B&W at any time, but if you switch back to color during a game, the change won't take effect until the next level starts.  In Practice or Time Rush Modes, the change won't take effect until the next game.

3. Game Select switch now takes you to the Title Screen.

4. Game Reset switch now restarts your current game.  If you press Game Reset from the title screen, it will start an Arcade Mode I game.  Pressing it from the menu should have the appropriate effect.

5. Fixed some minor bugs with the bonus round.

 

What I couldn't do:

1. I wanted stars to fly across the top part of the screen when the disco ball was present.  I literally spent all day today on this, and never got it to work.  I'll take one more crack at it in a couple days, and if it doesn't work, then forget it.

2. I also wanted to get Snuggy hopping around while the title screen was present.  I tried this a few times, and it never worked.  I'll take one more crack at it, then forget it.

3. I wanted a Setup mode as suggested by ZPH.  Just ran out of time and room.  Besides, Practice Mode pretty much fills this role.  There's nothing to say you have to solve the puzzles in Practice Mode, you can do what you want with it.

4. I also wanted a version of Arcade Mode without the enemies and power-ups.  Again, ran out of time and room.  Plus, I figured after playing Arcade Mode, who would want to play it without all the goodies?  Time Rush mode pretty much fills that role for players looking for a straight puzzle without the frills.

5. When the bonus round starts/ends, I wanted the disco ball to lower/raise to and from the top of the screen.  Easy enough to do, but working against time and severe limited space here.  3 out of my 4 banks are completely full, and where I'd need to put the code for this, there's no room.

 

I think that's about it.  Should have a final release candidate sometime in the next few days.  Then if my playtesters don't find anything I need to change, we'll be good.  Once I get Albert what he needs for PRGE, I'll start on a PAL60 version.  

Frazzled_20240511.bin

  • Like 4
Link to comment
Share on other sites

Posted (edited)

HELP!!! Anyone here know how to add a starfield type of effect?  I've been trying to add one to the game's bonus round, and I just can't get anything I've tried to work.  I started with this bit of code from Steven Hugg's book, but it just causes scanline issues:

 

lda #2

sta ENABL

ldy #0

.MoveStars

sta RESBL

adc Start,y

bmi .Delay1

.Delay1

ror

bcs .Delay2

.Delay2

ror

bcs .Delay3

.Delay3

ror

bcs .Delay4

.Delay4

iny

ldx INTIM

cpx #$89

bcs .MoreStars

lda #0

sta RESBL

 

 

I've also tried just writing my own code for it, adding various delays and then writing to RESBL, and that had interesting results, but not what I'm looking for.  I couldn't get the random scatter effect of a good starfield.  I could release the game without it, but it sure would had a nice touch to the game if it's there.  Thanks!

Edited by DaveM
Link to comment
Share on other sites

I suppose you mean the Cosmic Ark starfield?

 

It only works on most consoles. That's why Imagic added a switch to disable it. However you can tweak the parameters for Jrs to make it work. For that you need have to auto detect the jr. Which is no rocket science. We did that in Boulder Dash. Let me know if you need some code.

 

But there will still be some incompatible (or for which we do not know how to handle them) consoles.

Link to comment
Share on other sites

1 hour ago, Thomas Jentzsch said:

I suppose you mean the Cosmic Ark starfield?

Sure, that'll work!  I don't think the code above did that particular starfield, but the Cosmic Ark starfield will do nicely.

 

1 hour ago, Thomas Jentzsch said:

It only works on most consoles. That's why Imagic added a switch to disable it. However you can tweak the parameters for Jrs to make it work. For that you need have to auto detect the jr. Which is no rocket science. We did that in Boulder Dash. Let me know if you need some code.

Yes, some code would be great!  Something on some consoles is better than nothing on all consoles.  I can always tie it to a switch as well.  

 

Thanks!

Link to comment
Share on other sites

Posted (edited)

Here is some code to trigger the stars effect:

    lda     #$70                    ;2      $10..$70 work
    sta     HMP1                    ;3
    sta     HMM0                    ;3
    sta     HMM1                    ;3
    sta     HMBL                    ;3
    sta     WSYNC                   ;3   =  23
;---------------------------------------
    sta     HMOVE                   ;3
    SLEEP   10                      ;       10..18 ($70)
    sta     HMCLR                   ;3

This is taken from the attached binary. Which looks like this:

image.thumb.png.aa6017c954f5c2535017d6cff96d6ecd.png

And here is the Jr. detection code from Boulder Dash (optimized for space):

        ldx     #$80        ;       disable VDELP1, else detection will fail!
        stx     VDELP1
        dex
        stx     HMP1        ;       move P1
        stx     ENAM0       ;       enable M0
        stx     GRP1        ;       enable P1
        sta     WSYNC
        sta     RESM0
        sta     RESP1
        sta     HMOVE       ;       HMOVE during RESPx
        sta     WSYNC       ;       start new line
        sta     CXCLR       ;       clear any collisions
        sta     WSYNC       ;       wait one line
        lda     #$f0-$30
        bit     CXM0P       ;       if M0/P1 collision then
        bmi     .compatible
        lda     #$50-$60    ;       console Kool Aid Man incompatible (Jr.) -- FIXED WOBBLE FOR ALL AD'S MACHINES
.compatible:
        sta     hmJunior    ;       different HM values for Jr.
    ; reset graphics:
        ldx     #0
        stx     ENAM0
        stx     GRP1

The HM values differ from the code above. But I am sure you can sort that out. Use Stella's developer settings (TIA) to virtually test the result on a Jr.

StarsEffect.bin

Edited by Thomas Jentzsch
  • Like 1
  • Thanks 1
Link to comment
Share on other sites

On 5/15/2024 at 10:33 AM, Thomas Jentzsch said:

Here is some code to trigger the stars effect:

    lda     #$70                    ;2      $10..$70 work
    sta     HMP1                    ;3
    sta     HMM0                    ;3
    sta     HMM1                    ;3
    sta     HMBL                    ;3
    sta     WSYNC                   ;3   =  23
;---------------------------------------
    sta     HMOVE                   ;3
    SLEEP   10                      ;       10..18 ($70)
    sta     HMCLR                   ;3

OK, I tried this out, and it didn't quite work.  Here's the results...

 

Before:

image.thumb.jpeg.cd7b3bc0734365ff67f5d3eb68aa04cc.jpeg

After:

image.thumb.jpeg.e2a224c3e7413e005ae1b20e4fbb8b25.jpeg

So it's messing with the disco ball (Player 1 object) and it's string (Missile 0).  What did I miss here?

 

Here's the code for that part of the kernel, with the starfield code commented out:

Quote

 

     ldy #20
.UDPKernelLoop    
    sty Temp
    lda #0            
    ldy FillValue_TopPF1+1
    cpy #DB_Ht       
    bcs .Draw_DB    
    
    lda #0
    sta ENAM0       
    lda (ObjPtr),y   
.Draw_DB
    sta GRP1        
    dec FillValue_TopPF1+1

        
     sta WSYNC

;    lda #$70
;    sta HMP1
;    sta HMM0
;    sta HMM1
;    sta HMBL

     sta WSYNC    
;    
;    sta HMOVE
;    SLEEP 10
;    sta HMCLR
        
     ldy Temp    
     dey
     bpl .UDPKernelLoop

 

It's sitting down around line 8660 of the attached code.

 

At least I worked out why Steven Hugg's code won't work.  That requires multiple scanlines of nothing but starfield with no WSYNC's.  Throwing that code into one line as I'm trying to do here is what caused the issue I was having. It can't loop through that more than once in < 72 cycles.  So I'm ruling Hugg's code out as a possible solution.

 

 

Frazzled_starfield.a

Link to comment
Share on other sites

Alright, I think this is the beta version.  I'll be reaching out to my testers in the next few days.  

 

What's New:

  • Starfield during bonus round.  This can be disabled with the right difficulty switch.
  • Fixed a bug which could cause the game clock to expire during a bonus round at higher levels, thus ending the game.
  • The grid colors will cycle once you've hit the highest difficulty level possible.
  • If the game ends with other objects on the screen, these objects should now be cleared if you return to the title screen.
  • The game's difficulty will no longer increase just for hopping on the Panic Button.  I felt this was a bit unfair to the player, and I needed the bytes to fix the bug above.
  • I tried like heck to get Snuggy to bounce around the screen while the game logo is displayed, but I just couldn't get it to work.  Oh well.

Enjoy!

Frazzled_20240519.bin

  • Like 2
Link to comment
Share on other sites

Posted (edited)
On 5/18/2024 at 9:26 PM, DaveM said:

Got it working!  Thanks!

image.thumb.jpeg.cfb3a508d5bde1016f444546318f3981.jpeg

 

Need to make a few more changes before I release a new ROM.

Great! Did you make use of the Jr. detection?

Edited by Thomas Jentzsch
Link to comment
Share on other sites

8 hours ago, Thomas Jentzsch said:

Great! Did you make use of the Jr. detection?

Sorry, I did not.  By the time I had gone through and got everything else working (or given up trying), I just got lazy and called it a day.  I did tie the effect to the right difficulty switch, so it can be turned off by setting that switch to the 'A' position.  But I kinda got burned out putting in the hours yesterday.  :)

Link to comment
Share on other sites

Made some minor tweaks to the game.  Added more frequent power-ups at the expense of some bonus apples; and also eased up a bit on the music speeding up in the bonus round when you bump into a unicorn.  

 

That said, I won't be releasing any more ROMs here.  If you'd like an updated ROM, you'll have to do some playtesting for me and provide me with some feedback.  Just PM me, and I'll be happy to send you a ROM and a (very) rough cut of the instruction manual.  

 

If you've already said you'd help out with playtesting, then I've messaged you sometime in the last week or two.  Just reply to my PM, and I'll send you the ROM.

 

Thanks!

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