News:

Don't forget to visit the main site! There's lots of helpful docs, patches, and more!

Main Menu

[SM] [ENEMY] Ceres Ridley Real HP

Started by Prime Hunter, May 12, 2010, 08:51:13 PM

Previous topic - Next topic

Prime Hunter

Does anybody know if there's a way to get it so that the Ceres version of Ridley has an actual HP value rather than a set number of hits he takes before he flies off? (One that I can adjust like all other enemies.) And in this same vein, where would I go to modify the amount of damage he dishes out from things such as his fireballs and his tail? (Basically any attack that doesn't run off of the number in his Enemy AI data.)

I'm asking because I want to more or less turn that battle into a real fight while having his attack pattern (and running away once he's defeated rather than dying) still intact.

Malpercio

sounds like hex/asm edits. if all his attacks run off the AI pointer, you'll need to use ASM there too, i think
as for how to actually do it, you'll need someone else's help

personitis

There was a patch/hex change that Jam made/found that makes it so that the Ceres Ridley doesn't run until 'hits needed' is met. It's floating around on the forums somewhere... it think the collaboration hunt topic like two pages back from the last page?

Crashtour99

Or it could be on the hex page.   :heheh:

1326F5 - 1E 00 to ?? ??
Adjusts how much energy Samus must have before Ridley takes the metroid flies away from Ceres. 1E 00 = default (30 energy), 00 00 = Ridley only flies away after Samus shoots him enough times, etc. (found by JAM)

Prime Hunter

Yeah, I remember seeing that and I was probably going to put that in, but I'm trying to make it so that multiple weapons won't have the same effect on him. (Something harder to do I can already guess.) Normally all you would need to do is find the fastest weapon that can hurt him and spam it until the hit counter passes the requirement, be it missiles, supers, or any beam combination. (Since all it counts is hits and not damage.) Seeing as I'm expecting players to have a few upgrades by the time he appears, I'd like to avoid making every weapon have the same effect on him if that's possible.

If needed I could simply keep adjusting the hit counter until I find something that feels right based on what upgrades you'd have at the time, but unless I made it so that only a certain weapon combo does anything to him, it would probably still feel wrong to me no matter what. (You know, I'm not even sure if that would work in the first place, since I noticed his vulnerabilities are the same as normal Ridley. He isn't effected by the standard power beam, but it certainly works on Ceres Ridley.)

JAM

Prime Hunter
Well, looks like his HP during battle is at $7E:0F8C. Compairing to Samus's health can be easily changed to compairing to Ridley's health. The only problem is that his HP is constantly sets to 7FFF by every frame. So, you can't kill ceres Ridley even with 65000 shots of Hyper Beam. Only shot with damage of 7FFF can prorably kill him. Maybe I can find a code of his immortality...

Got it!
Change 8D 0C 0F at 13228B to EA EA EA
Ceres Ridley will no longer immortal.

Change C2 09 at 1326F2 to 8C 0F
Ridley will fly away after his health will be less than 30 (by default). Of course, health is still adjustable.

Quote from: Crashtour99 on May 13, 2010, 09:40:07 PM
1326F5 - 1E 00 to ?? ??
Adjusts how much energy Samus must have before Ridley takes the metroid flies away from Ceres. 1E 00 = default (30 energy), 00 00 = Ridley only flies away after Samus shoots him enough times, etc. (found by JAM)
But now it's Ridley's health (after change at 1326F2), not Samus'.


P.S. As person701 mentioned, I have a patch related to Ridley, but it's a different, Ridley defeated state. It can help you to improve your hack. After 100 hits (by default), event #16 will be set. It can be used later to alter some rooms: remove acid/lava/water or change their level, open some doors, unlock a secret path, remove some enemies etc.

But in your case, you'll need the opposite: put some easter eggs to the original state of room and remove them from the room with extra state depending on event 16. Of course in that case, this room (or these rooms) must be sealed before Ridley fight.

Prime Hunter

#6
Awesome! I'll have to try this out in a bit. Thanks a bunch!

As for the second part, I remember seeing that as well when I was looking around at patches and things, but I already have a plan in mind for the fight that I don't want to spoil in the event my hack ever goes live, so I won't say anything here. (If it does it's a LONG way from that point, but you never know what people will remember.) Still, thanks again for all the help.

Edit: I must be doing something wrong, since it doesn't seem to fully work. Ridley still sits there once Samus is below 30 health, so that part seems right. But no matter how much I adjust his health in his AI, it appears that he flies away at the same time he normally would. Am I supposed to adjust the number in the game behavior box from the standard setup?

Quote from: JAM on May 15, 2010, 05:17:10 PM
Change 8D 0C 0F at 13228B to EA EA EA
Ceres Ridley will no longer immortal.

If I'm looking at this right in my file, those three are listed as 8D 8C 0F, not what you have listed there. Is that what you meant, or is there something off with my numbers?

Edit 2: Yeah, it seems like the game behavior number still applies to him, because I changed it to zero as a test and he immediately flies off a few seconds after the battle starts.

Prime Hunter

I never could get this to work, no matter how many times I tried changing the hex numbers where indicated. I can get it so that he doesn't fly away once Samus is below 30 health, so that part is good. But even after making the hex changes, Ridley continues to be tied to whatever number of shots are required to make him fly away it seems, not what I put in as his health in SMILE.

This has been driving me nuts since I first asked about it, but I haven't been working on my hack much over the last few weeks. Now that I'm trying to get back to it, I'd love to be able to get this working right since this battle plays a very important part in my plan. If you could spare some more time to help me out with this I'd really appreciate it.

Malpercio

#8
is your ROM headered or unheadered? i believe most people here use unheadered roms when talking about hex changes

EDIT: no, it does look like that's a typo or something.a fresh, unheadered ROM says 8D 8C 0F too

JAM

#9
Prime Hunter
Hmm... that strange... It should work. I'll try to solve this problem

EDIT:
I changed vulnarabilities so normal beam should harm him, but his HP isn't changed at all (I looked up value in the RAM).

Then using cheat codes I've set his HP to 0010 (>001E) and freezed it there. He flashed every frame like he's harmed constantly but don't flied away. Then I've disabled cheat code and he escaped.

So, something else is setting his HP to starting one. (If starting HP is 1000, nothing else will lower). I'll try to find what to do it.

JAM

I've got it! Ridley at Ceres have double protection from lowering HP.

First one is in his main AI: constantly set his HP to 7FFF.

Second one is in his shot AI: when hit, if not in Norfair, don't touch HP and increase hit counter instead.

Go to 135FAA and change 80 0A to EA EA to fix it.



Sorry for double post, but now I have a solution =)

Prime Hunter

Definitely seems like that last fix put things on the right track. I adjusted his health down so that 10 power beam shots would take him out, and once I hit him that many times he simply takes off without dropping the larva, but still flies at the screen and starts the escape sequence like normal. Still seems like his shot AI is tied to the number of hits he takes though, since before I did that he'd still fly off like normal after 100 shots. (But I knew something was different since even though he flashed when a shot hit him, the sound that plays is the same one when a beam is ineffective. This changed back to the normal shot sound once I adjusted his vulnerabilities to make the power beam effective against him.) So as long as the "Fake Ridley Hits" counter in SMILE is set high enough, it now looks like his health is what determines when he flies away once all of the HEX changes in this topic are made.

However, I don't know if this is a bug with the power beam alone or with any weapon since I haven't tried any others against him yet, but whenever Ridley gets hit he stops momentarily for a frame or two. Because I've previously adjusted the speed of the power beam to shoot faster, I can actually freeze him in place if I fire fast enough, but I don't know if it will be a problem for my hack since I expect Samus to be upgraded a bit by the time this battle is supposed to take place, meaning that the weapons that you'll have at that point will fire slower. Not sure if missiles would still do this though because you can spam those pretty fast under normal circumstances, but I plan to check the battle more thoroughly by temporarily throwing in some upgrades in the normal Ceres rooms to see what that does to him.

At any rate, the main issue with Ceres Ridley looks to be solved now, since after all of these changes he's that much closer to becoming a standard boss. As long as you adjust both his health and vulnerabilities properly, he can become a real menace if you put those other hex changes you've found into place that adjust his fight AI. I hate to ask for more at this point because you've found so much for me already, but the only thing that's missing to turn Ridley into an absolute beast in this form is where I'd change the damage output of his fireballs and tail attack, since I believe his ram attack is tied to the number you can adjust in SMILE already. I know that it's possible to change boss projectiles like that based on what I've seen in other hacks, but I don't know where to look to try and adjust them myself.

Again, I can't thank you enough for helping me out with all of this.

Crashtour99

Jampion indeed.   :grin:

I've gotta thank you as well, cause this info will be very important for my Ridley edit.  Awesome stuff!

Prime Hunter

Just made a quick test run against him with some upgraded gear, and unfortunately he still freezes no matter what weapon is fired at him, so I don't know what's causing that. Otherwise all of the changes made look to be in working order, other than the fact that he flashes when ANY weapon hits him, regardless of whether or not he's vulnerable to it.

JAM

#14
Crashtour99
Thanks =) I glad to hear that

Quote from: Prime Hunter on June 29, 2010, 04:43:56 PM
I don't know if this is a bug with the power beam alone or with any weapon since I haven't tried any others against him yet, but whenever Ridley gets hit he stops momentarily for a frame or two.
I've noticed this bug too. Try to reduce "Hurt Flash" time from 08 to 02 or 01 in SMILE. If this will not work against rapid power beam, tell me.

Quote from: Prime Hunter on June 29, 2010, 04:43:56 PM
But I knew something was different since even though he flashed when a shot hit him, the sound that plays is the same one when a beam is ineffective.
I see... Ceres Ridley will flash by default when you hit him. Actually, it will flash 1 time when you hit him but don't harm (see vulnarabilities) and flash 2 times in a row when you hit him and harm him. That's because Ridley in Ceres executes all Ceres commands when hit and after that executes all Norfair commands when hit.

Change value at 135F92 from A0 to 80 to make Ridley flash only when you harm him. Now you can make him immune to certain attacks. But "Ridley hits" counter will still increment from hits that will don't damage him at all.

Quote from: Prime Hunter on June 29, 2010, 04:43:56 PM
I hate to ask for more at this point because you've found so much for me already, but the only thing that's missing to turn Ridley into an absolute beast in this form is where I'd change the damage output of his fireballs and tail attack, since I believe his ram attack is tied to the number you can adjust in SMILE already. I know that it's possible to change boss projectiles like that based on what I've seen in other hacks, but I don't know where to look to try and adjust them myself.

Again, I can't thank you enough for helping me out with all of this.
No problem, I'll look at it. I liked your idea =)

Prime Hunter

Yeah, looks like the lag from getting hit is gone now that I made that change. Before, his movement delay was bad enough that the larva would lag behind as he moved around if I didn't completely stun him during my attacks, but it moves along with him normally after the edit is made.

I had also run into a bug where Ridley would suddenly stop taking any sort of damage whatsoever and everything I'd fire would pass through him, and he wouldn't hurt me at all either even if he was directly on top of Samus. (Think the fireballs were still acting normal though.) I was able to get rid of both of these bugs on my own by switching in Norfair Ridley instead of the Ceres form, but once I fixed Ceres Ridley's Hurt Flash setting I didn't run into that glitch again throughout the entire test battle I just had with him a few minutes ago. (Granted, I don't know if it has to do with this or if it had something to do with the Ice/Wave combo I had been using at the time.)

But in any case, this part looks like it will be fine from now on with either version of Ridley, so that's good.

Crashtour99

Ok, so for the ease of information gathering...

Hex edits to make Ceres Ridley a normal type boss: (found by Jam)

13228B - 8D 0C 0F to EA EA EA
135FAA - 80 0A to EA EA
Ceres Ridley no longer immortal.

reduce "Hurt Flash" time from 08 to 02 or 01 in SMILE.

135F92 - A0 to 80
Ceres Ridley flash only when you harm him.

1326F2 - C2 09 to 8C 0F
Ridley will fly away after his health will be less than 30 (by default). Of course, health is still
adjustable.

1326F5 - 1E 00 to ?? ??
Adjusts how much energy Samus must have before Ridley takes the metroid flies away from Ceres.
1E 00 = default (30 energy), 00 00 = Ridley only flies away after Samus shoots him enough times, etc.
(after change at 1326F2 it's Ridley's health not Samus')



:grin:  Awesome stuff Jam!

Prime Hunter

Forgot to mention this when I was originally testing out these hex changes, but if you set 1326F5 to 00 00 when it is set to check for Ridley's health, he will ONLY fly away after the number of hits is passed (whatever you set it at), not when his health reaches zero. I found this out the hard way when I was wondering why it was taking far beyond what I expected to take him out, and then after I switched the number to 05 00 (so 5 HP, something insignificant) he would start flying away when he should have. Seeing as I set the number of hits to 7FFF just to be sure players couldn't cheat and simply spam my blazing fast power beam at him the entire fight, that meant before finding this out it would've taken forever to get him to fly away.

Definitely something to keep in mind.

JAM

#18
Addition to ceres Ridley.

1364DE
1E 00 to ?? ??
When player reach this health, Ridley will stop shooting fireballs and do "clockwise flight" attack and try to perform ramming attack by every move. Instead of stooting fireballs and flying clockwise he will just fly in place for 2 seconds. If you set value at 1326F5 to 00 00, set this to 00 00 too, or you'll get a very little chance to win when your health is low.

I recommend to set the same values here and at 1326F5 unless you want to make Ridley more aggressive.

1364DB
C2 09 to 8C 0F
When Ridley's health is less than value at 1364DE, he will stop shooting fireballs and do "clockwise flight" attack and try to perform ramming attack by every move (see description above).

1364DB
C2 09 to C6 09
When player's missiles is less than value at 1364DE, he will stop shooting fireballs and do "clockwise flight" attack and try to perform ramming attack by every move.
For Super Missiles, change to CA 09. For Power Bombs: to CE 09.

1326F2 - C2 09 to C6 09
Ceres Ridley will fly away after player's missiles is less than 30 (by default). Specifically, player's missiles is less than value at 1326F5 For Super Missiles, change to CA 09. For Power Bombs: to CE 09.

Quote from: Prime Hunter on July 01, 2010, 01:53:19 AM
Forgot to mention this when I was originally testing out these hex changes, but if you set 1326F5 to 00 00 when it is set to check for Ridley's health, he will ONLY fly away after the number of hits is passed (whatever you set it at), not when his health reaches zero.
That's because his health can not be negative and stops at zero and next operator is BMI (Branch minus). It means, "perform branch if value is less than". For your case, 01 00 should be fine.

And if you changing this value at 00 00, but will not touch value at 1326F2, it will force player to him enough times to make him escape.


I have an idea for you. Right now Ridley will just fly away if his HP is lowered enough and almost drop larva and then fly away if you hit him enough times.

Opposite is also possible with some tweaks.
[spoiler=How can it be]I mean, if player won't find any weapons and will use only power beam, Ridley will just fly after you hit him enough times. If you'll hit him with more powerful weapons, he'll almost drop the larva when his health will be less than value at 1326F5 (and event 16 will be set, remember this?). Are you interested in this?

Example: (everything in hex)
Power beam damage = 14
64 power beam shots = 14 * 64 = 7D0
Ice beam damage = 1E
64 ice beam shots = 1E * 64 = BB8

If 64 (100 dec) power beam shots < Ridley's HP <= 63 (99 dec) ice beam shots, then he will drop larva only after getting 63 (99 dex) ice shots.

Of course, 64 (Fake Ridley Hits) can be set to any value.
[/spoiler]

And, as you requested:

132217
0F 00 = damage of Ridley's tail.

To be honest, I've got it from RidleyAI by Key, so it's actually found by Kej.


Fireballs are complex thing... All fireballs are projectiles 9642 at bank $86. Both of Ridley are firing them, but... this projectile has a damage of 03. I tried to increment it, but it won't worked. I think, something else is checking for region number and giving this projectile damage of 3C if we are in Norfair and damage of 03 else.

Looks like, it a subroutine, part of which is located at 3144E. But changing values there won't doing anything but should to do so...