Jump to content
IGNORED

Atlantis Hacking Success!!! (Thanks Thomas!)


Cybergoth

Recommended Posts

Hi there!

 

Yesterday I was trying to modify the controls of Atlantis, but unfortunately I didn't succeed. I was trying to reverse the side guns and having them fire without pushing the fire button (Just like the Cosmic Arc).

 

Unfortunately everything is pretty much hardwired in Atlantis. The code is nailed down as is and touching anything would ruin other parts. For example I can easily get the cannons swapped, by swapping the "shot start" data, but then the firing animation would still happen on the other side.

 

To sum it up, this is no two hour job, but would require some serious rewrite/redesign of that code part and I'm too lazy for that at present.

 

I just thought to post the idea, for others to take... ;)

 

Greetings,

Manuel

Link to comment
Share on other sites

Hi there!

 

I disagree.  What did the part that you changed originally look like...and what did you change it to?  It's probably as simple as changing a branching instruction to it's compliment (i.e. BNE->BEQ, BPL->BMI, BCC->BCS)

 

I can post the code in 8-10 hours. But it's really not that easy.

 

A shot is fire with JSR Shot, having Y holding the cannon index and X the shot #. Now just tweaking the branches wouldn't bring you anywhere, since you'd also have to tweak the indexes accordingly.

 

Now the Y index is missued for other stuff. It's inited with 2 (right cannon) and parts of the code won't work anymore if you change that to 0 (left cannon) for example. It's somewhat more complex.

 

Greetings,

Manuel

Link to comment
Share on other sites

Interesting...you would thing that the code has a routine that follows the form:

(Not 6507, naturally...just a flowchart)

 

 

*Is the firebutton pressed?

---No...branch to X

---Yes...branch to Y

 

and change it to:

*Is the firebutton pressed?

---No...branch to Y

---Yes...branch to X

Link to comment
Share on other sites

Hi Thomas!

 

Sounds like you have to disassemble and analyze the code.

 

Yup no other way. What makes the whole thing extra tricky is that there's no single free byte in the ROM, so you don't have much room for experimenting. The replacement code would need to be of the same size or smaller. You know the deal.

 

Hey, that's a good idea! Then Cosmic Ark wouldn't be no longer the only Imagic disassembly. ;)

 

Oh, I don't think there's anything special in it worth to analyze. Maybe the explosion of the siren ship (probably a 6char), but that's about all. The game itself is so dead simple, only hyped up with tons of eye and ear candy ;)

 

I was playing it more often lately and was wondering about the murky controls. Why the hell did they swap the cannons? It feels so... unnatural :)

 

Greetings,

Manuel

Link to comment
Share on other sites

Hi there!

 

Interesting...you would thing that the code has a routine that follows the form:

(Not 6507, naturally...just a flowchart)

 

It's more like

 

Is the fire button pressed?

Yes: Check left or right or nothing

No: Do nothing

 

With the yes branch expanding to:

 

Assume right

check any direction

yes: check left/right

no: fire upwards

 

Mixed in is the debouncing/delay code, and the code to determine which /if a bullet is to fire.

 

As said it would init the cannon index Y with 2, then DEY/INY it according to the branches it follows and _expect_ these exact values right there. At a certain point it'd do stuff like

 

CPY Anyregister

BNE somewhere

 

Now if I start tweaking the content of Y to my desires, I'm instantly dead there.

 

Phew... well... i hope that explains it good enough...

 

Greetings,

Manuel

Link to comment
Share on other sites

Yup no other way. What makes the whole thing extra tricky is that there's no single free byte in the ROM, so you don't have much room for experimenting. The replacement code would need to be of the same size or smaller. You know the deal.

 

If you don't mind sacrificing a sprite or frame, you could also steal one of those to sqeeze in an extra few bits of code...right?

Link to comment
Share on other sites

Hi there!

 

For the value of Y, you could use the accumulator to strip to lower 2 bits from some kind of counter and transfer it back to Y (so that Y is always

 

A sequence like:

 

TYA

EOR %00000010

TAY

 

In the Shot JSR might do the trick (swapping 0 with 2 and vice-versa), but one needs finding those four bytes first :)

 

I certainly won't sacrifice a sprite or anything else for that, that's against all ethics of controler hacks ;)

 

Greetings,

Manuel

Link to comment
Share on other sites

Hi again!

 

TYA

EOR %00000010

TAY

 

In the Shot JSR might do the trick (swapping 0 with 2 and vice-versa), but one needs finding those four bytes first :)

 

Argh, no! it'd addtionally swap 1/3, what we don't want!

Hm... then

 

LDA table, Y

TAY

 

with table =

 

02

01

00

 

Ok, 7 bytes are needed... :roll:

 

Greetings,

Manuel

Link to comment
Share on other sites

Hi Thomas!

 

You want a hack where you can shoot without the firebutton and left/right are reversed?  

 

Check the attached hack (only for game #1) please. Is that what you want?

 

Ah, almost - 75% I'd say :)

 

The side cannons are perfect now. But the middle cannon should still fire with the fire button. You use it 95+% of the time, so I think this'd be better for the Joystick (and your hand ;) )

 

But the side cannons are excellent! Hey, they're almost usable now!

 

Phew... I think I tried some 2 hours last night, but didn't get half of it done :roll:

 

Greetings,

Manuel

Link to comment
Share on other sites

Hi Thomas!

 

How is that one?

 

Excellent!

 

Woowee! The side guns have changed from useles debris into deadly weapons! That's how they were supposed to work! 8)

 

Heya Al²: This is worth a major headline news. After all these years the Atlantean defense system is fully operational! :D

 

BTW: Makes me wonder if Imagic had some playtesting department... :roll:

 

Greetings,

Manuel

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