Jump to content
IGNORED

2 button joystick ?


R0ger

Recommended Posts

And now, Caverns of Callisto.

 

Original controls:

Fire button shoots

When holding the joystick in direction different than the one you're facing (left vs center vs right), tap the fire button (hold for a maximum of 2 frames) to face the character in the direction of your joystick

 

New controls (matching the joystick button handling of the original Apple II version, albeit with reversed buttons):

Button 1: Shoot

Button 2: Change the direction the player is facing (based on the current horizontal position of the joystick) to left, center, or right.

 

All of this should make it much easier to actually hit things with your shots, which is even more important given that your guns can overheat in this game...

 

Note that if the player is facing center, moving left or right will cause the character to face left or right regardless of whether or not Button 2 is held.

Believe it or not, that's how the original Apple II version worked (so no, it's not exactly like Choplifter).

It's just as well given that your targets are often not right above or below you...

Caverns of Callisto - Joy2B.atr

  • Like 2
Link to comment
Share on other sites

And now, Gauntlet (cartridge version, based on @Wrathchild's Switchable XEGS bankswitched version).

 

Old controls:
Player 1: Fire: Joystick 1 Fire Button   Magic: Space bar

Player 2: Fire: Joystick 2 Fire Button   Magic: 0-9 on the keyboard

 

New controls:

Button 1: Fire

Button 2: Magic

(for both players 1 and 2, each on their own joystick)

 

Note that the magic button may be a little laggy, since the game loop isn't exactly 60/50FPS - if this happens, just hold down the magic button for a bit until it activates.

Gauntlet - Joy2B.car

  • Like 2
Link to comment
Share on other sites

@ascrnet ...such as Satan's Hollow? ?

 

Old controls:
Fire Button: Shoot

Joystick Down: Shield (hold to use, release to recharge)

 

New controls:

Button 1: Shoot

Button 2: Shield (hold to use, release to recharge)

 

The game now matches the original arcade game's controls.

 

Tested with players 1 and 2.

Satan's Hollow - Joy2B.car

  • Like 1
Link to comment
Share on other sites

And now, James Bond 007.

(Based on the cartridge release, which 1) forces you to play the levels in order as intended  2) lets you press a button to skip the intro cutscenes)

 

Old controls:

Fire button: Air missiles and flare bombs (each successive press of the button switched between the two shot types, similar to Super Cobra earlier in this thread)

 

New controls:

Button 1: Air missiles

Button 2: Flare Bombs

 

For whatever reason, the 5200 version only had one button firing too - I think only the Colecovision version (possibly others?) had two button firing.

 

At any rate, this version effectively lets you time each type of shot however you want (even firing both at the same time).

Since shot timing is particularly important in this game, it should make the game decidedly less frustrating.

 

Tested with players 1 and 2 across the first three levels.

James Bond 007 - Joy2B.car

  • Like 1
Link to comment
Share on other sites

@kiwilove @playsoft And now, a big one: a beta release of Hawkquest Joy2B!

(based on @playsoft's NTSC-compatible Atarimax Cartridge version; specifically "hq_blank.bin")

 

Old controls (in the overhead shooter stages):

Fire button: Shoot

Fire button + UP or Fire Button + Down: Drop Bomb

 

New controls:

Button 1: Shoot

Button 2: Bomb

 

This should now make lining up bomb shots considerably easier (especially given the sheer amount of flak to dodge).

Note that the game allows you to have up to two projectiles onscreen at once, where one of those is allowed to be a bomb.

 

Tested on level 1 (played all the way through until I got to the base).

 

As for why I'm declaring this a beta release rather than a full release:

As far as I can tell, the new button code appears to be stable, but it did involve having to branch out to other parts of the rom since the new code took up more space.

In particular:

- This is a very big game (!) and I haven't had the opportunity to play all the levels yet (but two-button firing makes me far more inclined to do so :-))

- The button 2 handler takes up $98D2-$98EB.  I don't know if I clobbered an important lookup table/bitmap/etc. in the process; I didn't know of a better place to put this code ?

- I had to add some extra code to the game's custom VBI handler so that it got the POT value and called STA POTGO; this takes up $F2E0 - $F2EC (there's JMPs to and from the existing handler).

- This also meant changing the bootstrap loader code params to account for these extra bytes; hopefully this doesn't clobber other data someplace...  (A01A: LDA #$EB now becomes LDA #$FB)

- I don't know if the on-foot sections need the Joy2B treatment as well.  Other than moving and shooting, I don't actually know the controls for it (I don't even know how to get out of the upper-left quadrant of Mycea's base... is there a bomb somewhere?)

- I recall that this game is a bit on the tight side re: per-frame cycle count for NTSC compatibility - how much buffer is there?

 

@kiwilove and @playsoft, please let me know if any of that code should be relocated to other places, or if there are any other unintentional bugs I added...

 

 

Hawkquest - Joy2B - Beta 0.car

  • Like 2
Link to comment
Share on other sites

On 8/17/2020 at 7:24 AM, Bobo Cujo said:

@kiwilove @playsoft And now, a big one: a beta release of Hawkquest Joy2B!

(based on @playsoft's NTSC-compatible Atarimax Cartridge version; specifically "hq_blank.bin")

 

Old controls (in the overhead shooter stages):

Fire button: Shoot

Fire button + UP or Fire Button + Down: Drop Bomb

 

New controls:

Button 1: Shoot

Button 2: Bomb

 

This should now make lining up bomb shots considerably easier (especially given the sheer amount of flak to dodge).

Note that the game allows you to have up to two projectiles onscreen at once, where one of those is allowed to be a bomb.

 

Tested on level 1 (played all the way through until I got to the base).

 

As for why I'm declaring this a beta release rather than a full release:

As far as I can tell, the new button code appears to be stable, but it did involve having to branch out to other parts of the rom since the new code took up more space.

In particular:

- This is a very big game (!) and I haven't had the opportunity to play all the levels yet (but two-button firing makes me far more inclined to do so :-))

- The button 2 handler takes up $98D2-$98EB.  I don't know if I clobbered an important lookup table/bitmap/etc. in the process; I didn't know of a better place to put this code ?

- I had to add some extra code to the game's custom VBI handler so that it got the POT value and called STA POTGO; this takes up $F2E0 - $F2EC (there's JMPs to and from the existing handler).

- This also meant changing the bootstrap loader code params to account for these extra bytes; hopefully this doesn't clobber other data someplace...  (A01A: LDA #$EB now becomes LDA #$FB)

- I don't know if the on-foot sections need the Joy2B treatment as well.  Other than moving and shooting, I don't actually know the controls for it (I don't even know how to get out of the upper-left quadrant of Mycea's base... is there a bomb somewhere?)

- I recall that this game is a bit on the tight side re: per-frame cycle count for NTSC compatibility - how much buffer is there?

 

@kiwilove and @playsoft, please let me know if any of that code should be relocated to other places, or if there are any other unintentional bugs I added...

 

 

Hawkquest - Joy2B - Beta 0.car 1 MB · 2 downloads

@Bobo Cujo great work on this. Harvey asked me to do this previously and I put together a version for him to test (in July) but I don't know if he's got around to trying it. One thing I did find when I added Joy2B support was a (terrible!) existing bug that meant the game more often than not didn't boot on real hardware. The issue was I'd tried to read NMIEN in order to maintain it's status around critical sections.

 

So I changed:

.macro critical_enter
  php
  sei
  lda NMIEN
  pha
  lda #$00
  sta NMIEN
.endmacro

.macro critical_exit
  pla
  sta NMIEN
  plp
.endmacro

To:

.macro critical_enter
  php
  sei
  lda #$00
  sta NMIEN
.endmacro

.macro critical_exit
  lda #$40
  sta NMIEN
  plp
.endmacro

If you want to hack the fix into your version maybe change lda NMIEN/pha to lda #$40/pha/nop. There should be 4 occurrences of this.

 

To port the game to cart I used the RAM under the OS for the replacement OS and all the new code that was added. So that is where I put my 2 button handler. I'm not the original programmer so I don't know what's at $98D2-$98EB (I only hacked it, I haven't done a disassembly). In the replacement VBI I also check the POT value and do a POTGO, so your change there should be fine. I opened up a lot of loops to get it running in NTSC but I can't say how much leeway there is now (but adding a little to the VBI is fine).

 

I don't think I've ever completed a fortress, so mine's also a beta.

 

If it's of any use attached is my work directory. The resulting builds are in carts/bin and carts/car and there are 4 different versions:

 

hq – for use with a normal joystick, nothing saved

hq_f – for use with a normal joystick, a different fortress on each save position

hq_joy2b+ – for use with a joy2b+ joystick, nothing saved

hq_f_joy2b+ – for use with a joy2b+ joystick, a different fortress on each save position

 

build.zip

  • Like 1
Link to comment
Share on other sites

Thanks Bobo for doing your work on the Hawkquest game for two buttons.

I've only did a little preliminary testing on Paul's updated version - and it seemed to work OK.  I will get to test both versions fully later.

Overall it is a very tough game - and the change to two buttons will make the main game a little more easier.

From what I remember - you need to do well in the main game so as to have a generous number of marines present for the 2nd game.  To do so, you need to pick up and find the hidden extras to help you through.  To allow for a an easy restart - Andrew did have the provision of pressing START to restart the game (don't know if your game in progress stats (crystals) are kept?).  Someone ought to hack the game saves so that you can have extra marines present in the Secondary game.  There are completely new secondary game levels in Level 2.  You need to know the basic instructions to go far in it - that you press T to activate the trapfinder when you find it.  Need to find the explosive - and activate this E at the door where the crystal part is kept - then having picked up the crystal part - you then need to go where the Teleporter icon has appeared - ie. find it.  It is a scavenger hunt you do, that finding the blaster upgrade automatically makes your weapon able to blast away some hard walls.  B appears in your inventory window.

The main game was inspired by Xevious - and the Secondary Game by Shamus and Gauntlet.

For those running the disk version - It's possible to boot straight (bypassing the Game menu system) into the Secondary Game - from using one of the disk sides. (side 2 disk 1?)

 

Harvey

 

  • Like 2
Link to comment
Share on other sites

@playsoft From what I can tell, the main gameplay difference between each of our mods is in bomb button debouncing:

Your version: Bombs will keep dropping if the button is held down

My version: The button has to be pressed for every bomb

In both versions, the forward shots feel the same (the button needs to be pressed for each shot).

I'll leave it to @kiwilove re: which approach is preferable...

 

Some other thoughts from the code pack you provided:

- It certainly is a lot easier to be able to use an assembler to patch in new code without having to introduce JMP band-aids ?

- I'm still trying to figure out how the shots perform the same despite taking different code paths (I haven't looked at it closely enough)

- My code does less in the vblank interrupt handler but does more in game code; does it make a performance difference either way? (I couldn't seem to tell from playing them)

- When running make_carts.exe, only the Saves and Joy2B+Saves cartridges (rather than the Joy2B only cart) actually enable Joy2B content.  JOY2B_HAWD1S1.ATR is identical in content to HAWD1S1.ATR.  It looks like it's fortress.dat that patches in the actual jump to the new 2-button function (it contains jmp ($E816) )?

 

At any rate; later on this week I'll patch my version to do the following:

- Fix the NMIEN handling per what you mentioned

- Move my $98D2-$98EB to the OS ROM space, now that I know that it's safe there (and is guaranteed to not clobber existing data ? )

- Perhaps also relocate the VBI handler elsewhere in OS ROM space since there's plenty of space, just so that I can eliminate the two JMPs

 

Thanks for the insights!

  • Like 2
Link to comment
Share on other sites

@kiwilove Ah, so that's what you have to do - I'll give that a shot the next time I'm able to get to the fortress ?

It looks like perhaps it's worth trying to add 2-button or 3-button support for that part too...

 

Out of curiosity, do you have the text of the original manual? (Sadly, atarimania.com doesn't seem to have it)

  • Like 1
Link to comment
Share on other sites

49 minutes ago, Bobo Cujo said:

@kiwilove Ah, so that's what you have to do - I'll give that a shot the next time I'm able to get to the fortress ?

It looks like perhaps it's worth trying to add 2-button or 3-button support for that part too...

 

Out of curiosity, do you have the text of the original manual? (Sadly, atarimania.com doesn't seem to have it)

I set up these pages a long time ago - hence it's an old email in it.

 

http://hawkquest.tripod.com/hqht.htm

Shows some hidden targets on 2 planets - need to resize your browser window so they all line up vertically on each other.

(I did draw maps of all planets - but unfortunately gave them to someone to scan for me - who didn't do it.  And now it's in some NZ archive somewhere - I'm trying to get back a scan? of them).  Technical info is elsewhere on this site.

http://hawkquest.tripod.com/indexl2.htm

Shows some secondary game location of certain objects.

http://hawkquest.tripod.com/hqdocs.txt

Some typed in docs.  I should get around to scanning the original instructions - if I have them somewhere?  And send that onto Atarimania.

 

Harvey

Link to comment
Share on other sites

@playsoft @kiwilove OK, here's Beta 1 of my Hawkquest Joy2B mod, with the changes I mentioned earlier:

 

- Fix the critical section bug (that sometimes prevented bootup*) by changing lda NMIEN/pha to lda #$40/pha/nop

- This mod is now guaranteed to not clobber existing data, since the button2 handler is now in the OS memory space (which has plenty of free data)

- Relocate and optimize the VBI handler to optimize out 2 JMP calls (6 less cycles :-))

 

Tested on level 1 with some shooting and bombing.

 

* I actually tried the earlier version of this on a real NTSC Atari 800XL via Ultimate Cart earlier today, and I didn't run into the bootup failure...

 

also: Thanks @kiwilove for the manual link!

Hawkquest - Joy2B - Beta 1.car

  • Like 1
Link to comment
Share on other sites

On 12/13/2019 at 9:10 PM, playsoft said:

I was able to turn my Sega Mega Drive control pad into a 3 button joystick by (1) swapping around the wires from pins 5 & 7 so that +5V is taken from pin 7 on the A8 (2) removing the 74HC157 multiplexer (3) making the appropriate jumper connections between (what were) the multiplexer inputs and outputs.

 

Note this is an original Sega Mega Drive 3 button controller model number 1650 made in China. I also have a model number 1650-50 made in Malaysia but that is different inside, the wires would be harder (for me!) to swap and the chip is surface mount.

It may not work with all the JOY 2B+ hacks because I get small values when buttons B and C are not pressed (5 and 3) and those hacks may be looking for 0. However it does work with the 2 games that I have done, Scramble and Moon Patrol Redux which support Sega and/or JOY 2B+ (since I am more forgiving with my checks).

 

Edit: Just tried the hacked version of Defender and it works fine! As does the hacked version of Dropzone.

 

I used to play on the Amiga 600 with a Mega Drive Pad until it stopped working. 
The multiplexer must have broken. Now I've seen your post and picked out the old pad again. 
I rebuilt it according to your instructions. The board looks a little different. But the result is the same. 
It works great. With all three buttons. I've tried almost all of the patched games with it. The model name is 1650. 
Made in Taiwan. Thank you for this great tip.

 

MDPad1.jpg

MDPad2.jpg

  • Like 1
Link to comment
Share on other sites

On 8/20/2020 at 4:27 AM, Bobo Cujo said:

@playsoft @kiwilove OK, here's Beta 1 of my Hawkquest Joy2B mod, with the changes I mentioned earlier:

 

- Fix the critical section bug (that sometimes prevented bootup*) by changing lda NMIEN/pha to lda #$40/pha/nop

- This mod is now guaranteed to not clobber existing data, since the button2 handler is now in the OS memory space (which has plenty of free data)

- Relocate and optimize the VBI handler to optimize out 2 JMP calls (6 less cycles :-))

 

Tested on level 1 with some shooting and bombing.

 

* I actually tried the earlier version of this on a real NTSC Atari 800XL via Ultimate Cart earlier today, and I didn't run into the bootup failure...

 

also: Thanks @kiwilove for the manual link!

Hawkquest - Joy2B - Beta 1.car 1 MB · 3 downloads

Great job, I tried it on altirra several planets and it looked good shooting with the bomb separately.?

On 8/20/2020 at 2:44 PM, Yellowman said:

I used to play on the Amiga 600 with a Mega Drive Pad until it stopped working. 
The multiplexer must have broken. Now I've seen your post and picked out the old pad again. 
I rebuilt it according to your instructions. The board looks a little different. But the result is the same. 
It works great. With all three buttons. I've tried almost all of the patched games with it. The model name is 1650. 
Made in Taiwan. Thank you for this great tip.

 

MDPad1.jpg

MDPad2.jpg

Congratulations!! welcome to the world Joy 2B+?

Link to comment
Share on other sites

And now, Qix 5200.

(Modified from (what I presume to be) the Glenn the 5200 Man hack).

 

Old controls:

Move the joystick to move the marker along the playfield, and to initiate/perform fast draws.

Hold the fire button while drawing to perform slow draws.

 

New controls:

Move the joystick to move the marker along the playfield.

Hold Button 1 while drawing to perform fast draws.

Hold Button 2 while drawing to perform slow draws.

 

The controls now match both the 5200 version and the original arcade game.

No more getting killed by the Qix because you overshot the already-drawn lines by a pixel ?

Qix (5200) - Joy2B.xex

  • Like 2
Link to comment
Share on other sites

Here's Star Trek: Strategic Operations Simulator.

 

Old controls: 

Left/Right: Steer ship

Up: Thrust

Button: Fire

Down: Photon Torpedoes

Hold the Button, then hold Down (yes, really): Warp speed  (it's still possible to steer in this mode)

 

New controls:

Left/Right: Steer ship

Up: Thrust

Button 1: Fire

Button 2: Photon Torpedoes

Down: Warp speed     (it's still possible to steer in this mode)

 

This now matches the 5200 version's button layout.

At some point I'll also make a 3-button version that maps Warp Speed to button 2 and Torpedoes to button 3.

Star Trek - Joy2B - 2 Buttons.car

  • Like 1
Link to comment
Share on other sites

On 8/20/2020 at 9:27 AM, Bobo Cujo said:

* I actually tried the earlier version of this on a real NTSC Atari 800XL via Ultimate Cart earlier today, and I didn't run into the bootup failure...

 

When I originally did the disk to cart conversion I was using an Ultimate Cart too and I can't have seen the boot failures or I would have investigated. Alas my Ultimate Cart stopped working, so when I added Joy2B support I used a real Atarimax cart and the boot failures were a surprise! Another possible factor is that I have 2 NTSC machines, a 1200XL and a 130XE and I've no idea if I used the same machine on both occasions. When I next have a machine set up I will try the original version on an Atarimax cart and see how that behaves.

  • Like 1
Link to comment
Share on other sites

Here's Meteorites (based on the Playsoft conversion of the original 5200 version).

 

Old controls:
Button: Fire

Shift key: Hyperspace

 

New controls:
Button 1: Fire

Button 2: Hyperspace

 

It's just like playing the 5200 version with a Masterplay and its included extra button... except without needing either of those (ultra-rare) items. ?

Meteorites - Joy2B.xex

  • Like 2
Link to comment
Share on other sites

6 hours ago, doug0909 said:

Just happened across this thread... So I guess for 2 button games, I can just use a Genesis controller to take advantage of these hacks, but for 3 button games, I can't use Genesis button 3 and would need a custom rewired stick? 

That's correct (Sega master system controllers will work too).

 

I use Genesis 3 button controllers on my own real Ataris for 2 button support.  Sadly, I don't have a 3-button Joy2B+ stick.

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

On 8/25/2020 at 1:19 AM, Bobo Cujo said:

Here's Star Trek: Strategic Operations Simulator.

 

Old controls: 

Left/Right: Steer ship

Up: Thrust

Button: Fire

Down: Photon Torpedoes

Hold the Button, then hold Down (yes, really): Warp speed  (it's still possible to steer in this mode)

 

New controls:

Left/Right: Steer ship

Up: Thrust

Button 1: Fire

Button 2: Photon Torpedoes

Down: Warp speed     (it's still possible to steer in this mode)

 

This now matches the 5200 version's button layout.

At some point I'll also make a 3-button version that maps Warp Speed to button 2 and Torpedoes to button 3.

Star Trek - Joy2B - 2 Buttons.car 16.02 kB · 5 downloads

It turns out I introduced a bug in Star Trek where the player can't shoot photon torpedoes after running out of warp energy.

Here's a revised version...

 

And while I'm at it, here's a 3-button Star Trek version too, also with the above fix.

3-button version controls:

Left/Right: Steer ship

Up: Thrust

Button 1: Fire

Button 2: Warp Speed (it's still possible to steer in this mode)

Button 3: Photon Torpedoes

Star Trek - Joy2B - 3 Buttons.car Star Trek - Joy2B - 2 Buttons - Rev 1.car

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