Cybergoth Posted February 5, 2003 Share Posted February 5, 2003 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 Quote Link to comment Share on other sites More sharing options...
Nukey Shay Posted February 5, 2003 Share Posted February 5, 2003 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) Quote Link to comment Share on other sites More sharing options...
Cybergoth Posted February 5, 2003 Author Share Posted February 5, 2003 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 Quote Link to comment Share on other sites More sharing options...
Thomas Jentzsch Posted February 5, 2003 Share Posted February 5, 2003 Sounds like you have to disassemble and analyze the code. Hey, that's a good idea! Then Cosmic Ark wouldn't be no longer the only Imagic disassembly. Quote Link to comment Share on other sites More sharing options...
Nukey Shay Posted February 5, 2003 Share Posted February 5, 2003 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 Quote Link to comment Share on other sites More sharing options...
Cybergoth Posted February 5, 2003 Author Share Posted February 5, 2003 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 Quote Link to comment Share on other sites More sharing options...
Cybergoth Posted February 5, 2003 Author Share Posted February 5, 2003 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 Quote Link to comment Share on other sites More sharing options...
Nukey Shay Posted February 5, 2003 Share Posted February 5, 2003 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? Quote Link to comment Share on other sites More sharing options...
Nukey Shay Posted February 5, 2003 Share Posted February 5, 2003 For the value of Y, you could use the accumulator to strip to lower 2 bits from some kind of counter or the stick and transfer it back to Y (so that Y is always <4). Does that sound possible? Then you would have your 4 values of nothing, left, up, and right Quote Link to comment Share on other sites More sharing options...
Cybergoth Posted February 5, 2003 Author Share Posted February 5, 2003 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 Quote Link to comment Share on other sites More sharing options...
Cybergoth Posted February 5, 2003 Author Share Posted February 5, 2003 Hi again! TYAEOR %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... Greetings, Manuel Quote Link to comment Share on other sites More sharing options...
Nukey Shay Posted February 5, 2003 Share Posted February 5, 2003 Perfect! A sprite. Any that you could eliminate? In hacks...nothing is sacred. Ethics go out the window when making a better game! "Hi there!" heh...I'm not THAT high to be adding that in every post! j/k Quote Link to comment Share on other sites More sharing options...
Thomas Jentzsch Posted February 5, 2003 Share Posted February 5, 2003 I'm not sure if I unsterstood Manuel 100% right. 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? athack01.zip Quote Link to comment Share on other sites More sharing options...
Cybergoth Posted February 5, 2003 Author Share Posted February 5, 2003 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 Greetings, Manuel Quote Link to comment Share on other sites More sharing options...
Thomas Jentzsch Posted February 5, 2003 Share Posted February 5, 2003 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 ) Hm, maybe I can even support both. Quote Link to comment Share on other sites More sharing options...
Thomas Jentzsch Posted February 5, 2003 Share Posted February 5, 2003 How is that one? atlantis_fh.zip Quote Link to comment Share on other sites More sharing options...
Cybergoth Posted February 6, 2003 Author Share Posted February 6, 2003 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! Heya Al²: This is worth a major headline news. After all these years the Atlantean defense system is fully operational! BTW: Makes me wonder if Imagic had some playtesting department... Greetings, Manuel Quote Link to comment Share on other sites More sharing options...
+Atarius Maximus Posted February 7, 2003 Share Posted February 7, 2003 Awesome! Atlantis was one of about 20 games I had as a kid (it was one of my favorites), and this really makes it better. Thanks Thomas! AM Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.