Jump to content
Dutchman2000

Kickman for 2600 found and RELEASED!!

Recommended Posts

Simplified the kicking gfx routine to adjust HM and NUSIZ registers...Ram $BD to $C2 which held the pointers for the ball and missiles no longer needed (those sprites were then unused, so I repurposed & recolored the ball sprite for the unicycle stem).  The game had a weird method of breaking up the score variables' nybbles into separate bytes and then recombining them later, that code is scratched as well.  Flopped the object gfx to eliminate comparisons in the display loops.

Currently have over a page of Romspace with a lot more to go.

 

Kickman(paddle_hack_v2).bin

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites

This is amazing. I can't follow all of this or grasp how you're doing it. Color me impressed.

 

I did download one of your versions of the ROM paddle hack (the 2nd most recent, I think).

 

I couldn't get the paddles to work. I know you mentioned auto-detect.

 

If you have a minute, please dumb it down & explain step-by-step what to do w/ a Harmony cart & your ROM to try paddles.

I'm pretty sure I need to use joystick 1 for menu select in Harmony, so I put paddles in port 2. I tried switching them to port 1. Couldn't figure out if there was some order of operations or if the paddles needed to be in place at a certain moment to be detected, else it uses joystick?

 

Thanks!

-Jason

Share this post


Link to post
Share on other sites

The test Rom (posted Nov.1) and V0 (posted Nov.2) need the TV type switch set to B&W to use the paddles, set to COLOR to use the stick.

I swapped those settings for V1 (posted Nov.9) so paddles would be usable on a 7800 console...then immediately followed with another test binary which attempts to detect paddles during gameplay instead of using the TV type switch.  The way that this works is that at the end of the "mostly blank" frames, the program checks to see if the capacitor still has not charged.  If paddles are connected, the circuit is complete by the end of the display frame.  This detection routine is executed throughout gameplay, and should automatically switch between stick control or paddles whenever you change what is plugged in the left port.

It works in Stella...yours is the only post that suggests it doesn't on a real console.

 

V2 that I just posted above is also using the autodetect routine...give it a whirl if you've got the time.

  • Like 1

Share this post


Link to post
Share on other sites

:)

 

Temp_dbg_76f52c90.jpg

 

Buildings are just an image so far.  The windows flicker giving those a darker shade.

The round# is 2 digits (abandoning the color change used by the original)...and the score has been updated to use 6 digits.

Interestingly, the spacing used was already within 1 pixel for the added digits, and the 6th score digit was already held in Ram.  Those 2 display routines might have been partially unfinished in the proto, I think.

Edited by Nukey Shay
  • Like 2

Share this post


Link to post
Share on other sites

That's the idea...it was advertised to include the challenge stages BITD.  Without those, I think the game is a little too easy compared to the arcade.

 

Last one for the weekend:

I've heard that Sega pads can mess with autodetection, so I checked INPT1 instead...which should only incorrectly detect paddles in the left port if the C button is held, right?

 

Kickman(paddle_hack_v3).bin

  • Like 5
  • Thanks 1

Share this post


Link to post
Share on other sites

Current idea for challenge racks:

Ram $E0 holds a wait time between racks, dropped balloons, even attract mode if it is set to $FF.  So there already is a handy way to freeze the current rack (you can even stop a balloon in flight if you keep $E0 from decrementing).

Anyway, set up a challenge round every other rack or so...where balloons or bombs are set in the windows randomly.  Ram $C5 (when zero) will allow the current balloon to rise instead of fall...so that is how they are released.

Issue so far is to increase the amount of horizontal movement applied to such balloons (i.e. flung from windows).  Ram $C6 looks to only use very small angles ($01 move left, $02 move right).

As the boards progress, the challenge stages will include those "pitched" balloons in addition to the current set of balloons up top you gotta deal with (either a full or partial set).

 

Not totally faithful to the arcade, but it should be sufficiently maddening.

  • Like 1

Share this post


Link to post
Share on other sites

Yes! Great as it is, wondering how difficult (or desirable) it would be to add a column of balloons between the existing ones?

Share this post


Link to post
Share on other sites

Not terribly difficult...just 4 more bytes of Ram to keep track of them.  There is just enough cycle time in the edited display loop to deal with an added column, too.

 

Now the bad news:

There's not enough cycle time to alter colors as the columns are drawn.  Columns 1 and 3 are identical color, and 2 and 4.  Adding an additional column draws more attention to this limitation.  Not so bad?  Just wait...

 

The game uses 2 wide copies for both registers.  Wide is unavailable for 3 copies...so it would have to use medium instead.  So you would end up with the columns closer together (like 5 Space Invaders)...which could make the game easier.  This assumes it would be using 1,3,5 for 1 color and 2,4 for the other color.

Of course, you could have 3 medium copies followed by 2 medium copies (instead of being imbedded)...which gives ample spacing between copies.  But that would point out the color limitation even worse (columns 1,2,3 have one color and 4,5 have the other).

  • Thanks 1

Share this post


Link to post
Share on other sites

Never started it...I was looking into the last question of increasing the number of columns.

The solution that I came up with is to reuse the sprite pointer as the color value, which solves the issue of sprite copies reusing the same color on each row...saving Ram memory in the process.  Now there is still the issue of spacing, which I believe could be fixed by placing 2 of the columns on the frames which display the falling balloon...so a new minikernel must be written to do that.

 

Having a unique color for each object simplified the scoring (use the low nybble of the sprite pointer/color value to read from a table of point values), so this is partially done below.  Balloon stack x 3 multiplier is done, but the Pac-Man x 5 multiplier needs to be addressed...as well as adding a kicking bonus for the first round and the ability to stack multiple Pac-Men as in the arcade game (for a hefty bonus when all 4 are saved).

 

Missed balloons return to the columns in the arcade game, so I threw that in.

 

Kickman(paddle_hack_v4).bin

  • Like 4
  • Thanks 1

Share this post


Link to post
Share on other sites

6 column balloons:

Round 1 has 4 columns as in the arcade game, every other round has 6.  No other changes yet (needs a little better randomizing).

2-player games may have been sacrificed, tho (unless I switch to trackball control...which I don't really want to do since just about everyone has a set of paddles).

 

 

Kickman(paddle_hack_v5).bin

Edited by Nukey Shay
  • Like 3

Share this post


Link to post
Share on other sites

Test for challenge rounds:

Active when the round # ends in zero or five in this demo.  Balloons or bombs will appear and float up out of the windows before falling...but bombs are currently not allowed to be missed (don't get any points for catching them, however).  Wider horizontal motion is still not added to the program, so they are easily caught on the edges of the playfield.

 

Kickman(challenge_test).bin

  • Like 1

Share this post


Link to post
Share on other sites

Getting closer...

This one might be a little too tough...skipping the regular X adjustment when they are initially thrown out of windows.  Still haven't worked out this game's goofy structure, so I added a variable to handle this "skew".

 

Bombs are uncatchable.

 

Kickman(challenge_test2).bin

Edited by Nukey Shay
  • Like 1

Share this post


Link to post
Share on other sites
12 minutes ago, Tempest said:

Could you find a creepier clown for the label? :P

Funny I thought it looked a lot like Shawn :)

 

  • Like 1

Share this post


Link to post
Share on other sites
6 minutes ago, Tempest said:

Ah so it's vintage creepy. :)

Yes.  If you look at the 2nd pic, you get to see the clowns hands.  Now that's creepy!  I won't be able to go the arcade for few days now.

KM Clown Hands.png

  • Haha 1

Share this post


Link to post
Share on other sites
2 hours ago, Shawn said:

Here is a set of labels I made up for anyone that needs them:

 

kick_top.png.d92e0f005a8be15a8a183b672f61102e.png

 

kick_end.png.1231c96b97aa8dd3ebedb6dafe0cc8f2.png

 

:)

 

 

 

I have to admit that your labels and the updates by @Nukey Shay make me want a cart👍

  • Like 2

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.

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