Jump to content
IGNORED

Games hacked to work with paddles?


eegad

Recommended Posts

Wonder why the 2600 version doesn't have it? Maybe reading both paddles just takes too long to do and compromises the game speed.

There's plenty of time in the kernel to read 2 paddles, about 30 free cycles per scanline.

 

This was an early 2K game on the 2600, looking at the source from minidig there's very little unused space so lack of ROM would be the most likely reason.

 

Kaboom! Standard label

 

 

Kaboom! is a 2K game, as all the first Activision releases were. Kaplan is quoted as saying that 2K is all you really need for a 2600 title, and that 4K is extravagant. Kaplan only released one 4K title, Bridge, and he said that he only needed the extra 2K for the AI. (Contributed by Larcen Tyler)
  • Like 1
Link to comment
Share on other sites

I'd definitely vote for Space Invaders and Galaxian for Paddle versions. Spider Fighter. Maybe Mega Mania.

I think I rather driving controllers for those. At least, those can get a second fire button. Of course somebody has to design a new case or somehow put new button somewhere.

  • Like 1
Link to comment
Share on other sites

There's plenty of time in the kernel to read 2 paddles, about 30 free cycles per scanline.

 

This was an early 2K game on the 2600, looking at the source from minidig there's very little unused space so lack of ROM would be the most likely reason.

 

Kaboom! Standard label

 

Heh. There you go. Thanks for taking the time to check that out. Now maybe I can wait for someone to hack up a version of Kaboom! with a 2 player option in a 4K assembly?? :) :)

Link to comment
Share on other sites

Heh. There you go. Thanks for taking the time to check that out. Now maybe I can wait for someone to hack up a version of Kaboom! with a 2 player option in a 4K assembly?? :) :)

 

 

Having the source code should make it fairly straightforward to do. I'll take a look this weekend, hopefully doing this will revitalize my interest in the 2600 as I've been having a hard time getting back to SpiceC.

  • Like 1
Link to comment
Share on other sites

Kernel changes are finished. Initially had an issue with using too many cycles in the bucket area:
post-3056-0-24305300-1548978844_thumb.png

Was able to resolve that:
post-3056-0-61178800-1548978852_thumb.png

With these kernel changes both paddles are now read on every frame, so we'll still have 60 fps movement which is important for this game.

Still to do (but not tonight):

  • read the rest of the code to see how it works
  • fix game variation 2 - due to the kernel changes the first paddle's position is currently used for both players, but you still need to use the second paddle's fire button to start the round for player 2
  • add game variation 3 - Pitch and Catch

After reading this from the 5200 manual:

post-3056-0-18927800-1548980092.jpg

 

Is the fire button used by the player controlling the bomber, or do the bombs auto-release once the bucket player started the round?

 

After recalling this:

 

Hi all.

I've been hanging around here for years but rarely post - and what I do post rarely makes a difference.

Over the weekend I was poking around and came across the Medieval Mayhem thread. I bought a cartridge version of this from the shop quite a while ago and was impressed - I even took the time to review it in the atariage shop. I live in PAL land so naturally I asked for the PAL version. Very nice it is too - I even read it is speed adjusted for PAL However I noted in my review that the borders are big - paricularly the bottom border. Spiceware created a post containing a version of the ROM for PAL60 - basically (if I understand Spiceware's post right) the timings are for NTSC but with PAL colours.

Being a Harmony cart owner I tried this out - and lo and behold I have full screen Medieval Mayhem - I am delighted.I posted in the MM thread and PM'd Spiceware thanking him.

This got me thinking. If I'm right - then to get a PAL60 version of any game all that is needed is the correct PAL colour values hacked into an NTSC assembly.

I posted some time ago here asking if Kaboom! was optimised for PAL. A kind poster took the time to study the assembly and stated that there wasn't any speed optimisation to be seen in the code. As someone who back in the day could score >300K (albeit at diff B) I was somewhat perturbed that I was playing a less than optimal version of the game.

So today I searched for a Kaboom! disassembly (I downloaded the DASM kit ages ago and did some messing about and then of course abandoned any planned work in that area). I opened up the ASM file and I have to say the 2600 community is a marvel - there it was it in all its commented glory with DASM meta instructions for assembly - showing me the NTSC and PAL settings for colour (not color!!) and frame timings.

So I changed the file to use the PAL colour values in the NTSC part of the file, assembled it, copied it to my Harmony and Holy Mother I now have 60Hz Kaboom! on my PAL woody!!!! I can still bust 10K but I doubt I'll ever get back to the heady days of 6 figure scores - faster game and slower me!!! By the way , I run my woody through a Sony VCR which is connected via SCART to my Panasonic CRT so I'm guessing this is giving me a composite feed into the TV which keeps it happy re the frame rate.

Has anyone created a batch of PAL60 ROMS? I'm keen to create a set if it hasn't been done but I'll be limited to the number of high quality disassemblies that are available (at least initially - I can read 6502 and may get into more involved work if necessary). With a good disassembly this is ridiculously easy to do.

I don't know what the legality of this is (Kaboom! is available in a piss poor version on the PS2) so I won't post the ROM here - however happy enough if I'm allowed to and if anyone wants it. It will be of limited interest as its only relevant to those with a PAL console and a Harmony. There is an impressive amount of tech ability in this forum so this is child's play to most here but there might be those who aren't tech at all and just want the games.



I added an option to build PAL60
post-3056-0-57441800-1548979505_thumb.png

And left in the ability to build PAL on the off chance somebody really wants the slower version.
post-3056-0-26094000-1548979527_thumb.png

  • Like 2
Link to comment
Share on other sites

EXCELLENT @SpiceWare !!

 

You are a gentleman, Sir. :)

 

 

The bucket controller starts the bombs falling in the 2600 game by pressing the action button on the paddle - that should probably remain with the bucket vs bomber mode.

 

I'd be really interested in seeing the new assembly if that's OK - I'd love to be getting into more coding on 2600. More than just doing the PAL60 hacks I have managed thus far. So reading that would be a great learning opportunity.

 

The extra ROM could also be used for new gameplay ideas......I've thought of a few (e.g. the bomber could tap the button to drop a skull that the bucket holder has to avoid :)

 

I'd like to see if I could manage to add something like that myself.

Edited by davyK
Link to comment
Share on other sites

The bucket controller starts the bombs falling in the 2600 game by pressing the action button on the paddle - that should probably remain with the bucket vs bomber mode.

I understand this part. What I'm wondering is does the player controlling the bomber currently use the button for anything? ie: does that player have to hold down or tap the button to control when bombs get dropped, or is the dropping automatic and the player only moves the bomber left/right.

 

I'd be really interested in seeing the new assembly if that's OK - I'd love to be getting into more coding on 2600. More than just doing the PAL60 hacks I have managed thus far. So reading that would be a great learning opportunity.

Yes, I'll post the source and ROM in a 2600 Hack forum when I'm finished.

 

The extra ROM could also be used for new gameplay ideas......I've thought of a few (e.g. the bomber could tap the button to drop a skull that the bucket holder has to avoid :)

 

I'd like to see if I could manage to add something like that myself.

Besides game #3, I thought I'd use some of the extra space to add the sunset skyline and rainbow logo from their later games. Feel free to add your skull idea and anything else after I post it.

 

s_Crackpots_4.png

  • Like 2
Link to comment
Share on other sites

NICE!!! :) You should call your new version Kaboom! Deluxe!

 

Many thanks again!

 

:)

 

 

Re extra game features - would there be enough time in the kernel to detect the p2 button being pressed while the bombs are falling? I suppose that's something I really should be figuring out myself - but it would be good to hear if someone like you thinks its possible. But I'm guessing it must be tight if it took some optimisation to retain the framerate.

Edited by davyK
Link to comment
Share on other sites

Only paddle position needs to be determined during the kernel. Paddle buttons are wired to joystick left and right directions, so are handled like a joystick by reading SWCHA at any time.

 

 

 

post-3056-0-34372600-1549034498_thumb.png

For 2 player games you only need to worry about D7 and D6, meaning you can do this to read the buttons:

   bit SWCHA
   bmi .skip0
   ... handle player 0 button here

.skip0
   bit SWCHA
   bvs .skip1
   ... handle player 1 button here

.skip1

the bit instruction moves bit 7 into the sign (so use bmi or bpl for program flow control) and bit 6 into V (so use bvs or bvc).
  • Like 1
Link to comment
Share on other sites

Excellent. Many thanks.

 

means I can check that between frames and then set a flag to make sure the next bomb to be displayed is a skull for example.

 

Guessing there isn't too much going on between frames as it's a simplistic game even for a 2600?

Edited by davyK
Link to comment
Share on other sites

Haven't looked at the game logic very much, but do know there's a 9 byte table that keeps track of the graphic image that's used for each bomb:

bombLSB                    ds 9

During the kernel the value in bombLSB is copied over to bombGraphicPointer when they reposition the player before drawing the next bomb. Setting one of those to point at a skull will cause a skull to be shown.

 

Normally you save 2 bytes per image, but since all images are on the same page of ROM you don't need to save a bombMSB value for each one.

 

LSB = least significant byte, for address $1234 the LSB is $34

MSB = most significant byte, for address $1234 the MSB is $12

  • Like 1
Link to comment
Share on other sites

cool.

 

If I have a go at this I'll just try and generate skulls first and then worry about detecting collision with a skull! :) The trick will be keeping track of which type of item has touched the bucket and then branching to "add score" or "bomb missed" code sections.

 

To make the game playable it would probably be best to restrict the bomber to have 1 skull per level otherwise it would become too chaotic and less reliant on skill at the higher speeds. That needs a spare bit or nybble somewhere in RAM to store that indicator and reset it each level.

Edited by davyK
Link to comment
Share on other sites

Why wasn't Pole Position with Paddles? Who needs to shift anyways! icon_smile.gif Would love to see it with driving controller (hmmm, the name of that controller just sounds right! icon_smile.gif )

 

A digital throttle *and* no shifting on Pole Position? That doesn't sound good. How about a foot pedal plus driving controller?

  • Like 1
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...