News:

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

Main Menu

Project Base 0.7.3 release

Started by begrimed, August 31, 2009, 06:03:10 AM

Previous topic - Next topic

Thirteen1355

Wow, it would be really nice if this can be done, but shouldn't we (you) inform the creator of Control Freak about this?

PonchGaming

Quote from: Thirteen1355 on August 26, 2016, 05:32:18 PM
Wow, it would be really nice if this can be done, but shouldn't we (you) inform the creator of Control Freak about this?
I'm pretty sure the creator is long gone. Not sure, but pretty sure kejardon doesn't even care at this point. The patch is really old

Thirteen1355

Isn't he the creator of the respin patch as well?

That would be funny, as the Control Freak patch actually removes respin.

Quote58

Quote from: Thirteen1355 on August 26, 2016, 06:04:04 PM
Isn't he the creator of the respin patch as well?

That would be funny, as the Control Freak patch actually removes respin.

It doesn't remove it, it just changes parts of the pose transition table, and so does project base (more extensively in fact), so it breaks the hack. Also Kej released all his work on his hack (Instanity) a year or two back, he wouldn't have a problem with this.

So this is a bit of a messy collision with the code. Both hacks change a number of parts of the pose transition table, and neither table is well labeled (you should really use the new one I gave you grime), so finding what's different between one and the original will be the easiest way to do it. The question is which one to do it with, as PB adds a number of easier to find changes but has presumably many more changes than CF, whereas CF has fewer changes but they aren't as easy to find, and that transition table doesn't include the respin like PB does.

So there's two options. You could write a script that compares the values in the CF table with the original, and then add those changes to PB, or you could manually add the PB ones because they're easier to see (they are commented into the PB table) and then replace the PB one with the CF one and hope it doesn't break.

Aran;Jaeger

Quote from: PonchGaming on August 26, 2016, 05:58:52 PM
Quote from: Thirteen1355 on August 26, 2016, 05:32:18 PM
Wow, it would be really nice if this can be done, but shouldn't we (you) inform the creator of Control Freak about this?
I'm pretty sure the creator is long gone. Not sure, but pretty sure kejardon doesn't even care at this point. The patch is really old

Actually, Kejardon is still around over here (but rarely active, but he normally does answer when he is nickflashed) in the SRL Super Metroid Discord (there is a permanent invite link to the Discord on the main page of the Super Metroid Wiki: http://deanyd.net/sm/index.php?title=Main_Page ).

But I cannot promise that he still cares about SM Control Freak, considering he cancelled SM Insanity.

ShadowOne333

I decided to dig deeper into each IPS.
I essentially made a comparison between the two, seeing what offsets they modify specifically in the ROM, and I narrowed it down to two things.

IPS Peek Version 0.6.0.0.

File: Super Metroid (JU) [!] [h] [2015].ips
File: ControlFreak.ips


Offset End    Size  Type IPS Offset IPS End  IPS Size
------ ------ ----- ID   00000000   00000004 5       

08763A 087658 31    PAT  000011FC   0000121F 36
087640 087667 40    PAT  0000045C   00000488 45       

   
089EE2 08AC9F 3518  PAT  000012E4   000020A6 3523   
089EE2 089F0A 41    PAT  0000057B   000005A8 46       


The first row of offsets is the one for Super Metroid (JU) [!] [h] [2015].ips and the second one for ControlFreak.ips.

In the code above, you can see the only two collisions I could find between the two.
The second collision (089EE2) I believe it to be the one I specified in my previous post here.

The first one starts colliding at 087640 up to 087658.
I'm not sure exactly what those portions of the code are yet.
I think the first collision might be related to the SelectionHack and the second one to the FallTransitions labels of Control Freak, I'm not sure though.

I will try to disable those specific portions of Control Freak to see if I can get it to work properly with the Super Metroid (JU) [!] [h] [2015].ips patch of Project Base.

PHOSPHOTiDYL

Quote from: ShadowOne333 on August 30, 2016, 01:59:13 PM
The first one starts colliding at 087640 up to 087658.
I'm not sure exactly what those portions of the code are yet.

The code starting at 08763A is for the spinjump restart in the project base patch. The JSL at the very bottom of the code points to that same location of free space.

ShadowOne333

Quote from: PHOSPHOTiDYL on August 31, 2016, 12:32:24 AMThe code starting at 08763A is for the spinjump restart in the project base patch. The JSL at the very bottom of the code points to that same location of free space.
Thanks for the info!
Today I continued on my quest to try to get them working together.
I tried restoring the code for PB into the Combined ROM (combined CF+PB ROM), and viceversa (restoring the code of CF into the combined ROM), but no luck so far.
If you apply Control Freak first and PB after, when Mother Brain hits Samus in the first cutscene, she does fly back, but gets stuck for a while in mid air crouching, and then shoots the Grapple Beam in the air, turns back and stays there just gazing at MB.

If you apply Project Base first and then Control Freak, everything goes fine until the moment that Samus is about to jump back to the middle ledge, that's when the game freezes.
Maybe that can help to narrow down the problem.

I dug a little bit more into the code, and I was able to find exactly the first collision in Control Freak's ASM code:


org $90F640
SelectionHack:
LDA $8F
PHA
LDA $09BA
STA $8F
JSR $C4B5
PLA
STA $8F
RTS

AutoRunCheck:
AND $09B6
PHX
LDX $09E4
BEQ +
EOR $09B6
+
PLX
BIT $09B6
RTS

SuitPallete:
JSL $91DEBA
LDA $0DC2
RTS


That code beings at 0x087640, which is the first collision I specified in my previous post:


08763A 087658 31    PAT  000011FC   0000121F 36    (Project Base)
087640 087667 40    PAT  0000045C   00000488 45    (Control Freak)


As for the second collision, here's where it begins for the Control Freak code:


org $919EE2
FallTransitions: ;29, 2A, 31, 32, 33, 34, 7D, 7E
;Adding 2B, 6D, 6F
DB $29,$29,$2A,$2B,$2C,$6D,$6E,$6F,$70,$29,$2A,$29,$2A,$2B,$2C,$6D
DB $6E,$6F,$70,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$31,$31,$32
DB $33,$33,$33,$34,$33,$FF,$FF,$29,$2A,$FF,$FF,$FF,$FF,$FF,$FF,$FF
DB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
DB $FF,$32,$34,$FF,$FF,$29,$2A,$29,$2A,$29,$2A,$FF,$FF,$FF,$FF,$FF
DB $FF,$FF,$FF,$29,$2A,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$29,$2A,$29
DB $2A,$FF,$FF,$29,$2A,$29,$2A,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
DB $FF,$6D,$6E,$6F,$70,$6D,$6E,$6F,$70,$7D,$7E,$7D,$7E,$FF,$FF,$FF
DB $FF,$FF,$FF,$FF,$FF,$2B,$2C,$FF,$FF,$29,$2A,$FF,$FF,$FF,$FF,$FF
DB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$29,$FF,$FF,$FF,$FF
DB $FF,$FF,$FF,$FF,$29,$2A,$29,$2A,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
DB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
DB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$6D
DB $6E,$6F,$70,$FF,$FF,$29,$2A,$29,$2A,$29,$2A,$FF,$FF,$FF,$FF,$FF
DB $2B,$2C,$6D,$6E,$6F,$70,$29,$2A,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
DB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF


And that's it for Control Freak.
The turning point where I think the game is freaking out is after the FallTransition code for both hacks.
The whole TXX: labels are completely different for both hacks.

So, what I will try to do next is try to apply all of the ones from Project Base into Control Freak, and then apply the ASM changes into an ROM already patched with PB just to see what it does.

Project base begins the whole TXX table at org $919EE2 while Control Freak has it at org $B88000.
I don't even know what the hell of a mess I'm doing xD

Thirteen1355

Yeah, as soon as Samus starts jumping in the Mother cutscene (when appyling PB first), it freezes. Somersaulting has been changed in PB.

I actually never tried patching Control Freak first, then PB.
Maybe there is a way to skip the intro cutscene (using cheat codes) in order to find out how the patches work in-game.

Jordan5

Quote from: Thirteen1355 on September 09, 2016, 07:15:23 PM
Maybe there is a way to skip the intro cutscene (using cheat codes) in order to find out how the patches work in-game.

Just QuickMet in?

It doesn't matter where the issues are in game, you still just need to change the offsets in the .asm file so they don't overwrite PB code.


PHOSPHOTiDYL

Change the byte at 016EBB from 07 to 05 to skip the intro.

Zero Dozer

#637
I started playing the full hack tonight. So, I was tearing through Maridia and I was on Draygon's door, when I headed right to check for the recharge stations. First the missile station didn't interact with me, and when I reached for the energy station... The game froze. Froze as in crashed.

So... Any hint on why this happened?

Edit: Yo, Grime. I found some new bug. This one here happens when I access the Ridley entrance's save room from the Shinespark passage on Crocomire's arena.



And...


...Yeah, seems like I've just chosen something to make a gameplay video out of.

Grahf

Hi, I'm currently playing with the Gameplay Only version and the Heavier Physics patch. However, I've noticed that when the intro demo starts playing (when you leave the title screen on for too long), after Samus crosses a door you can control her and you are forced to reset the game to continue.

I've noticed that the alternate versions of PB omit playing the demo, can I get some pointers on which byte I have to change in order to do this?

Also, the Gameplay Only version does not contain the "Skip message box" patch, I wonder if this could also be patched manually?


Quote from: ShadowOne333 on September 09, 2016, 07:06:30 PM
So, what I will try to do next is try to apply all of the ones from Project Base into Control Freak, and then apply the ASM changes into an ROM already patched with PB just to see what it does.

Project base begins the whole TXX table at org $919EE2 while Control Freak has it at org $B88000.
I don't even know what the hell of a mess I'm doing xD

ShadowOne333, don't give up! I came to this topic to see if exactly the same thing could be done and saw that you already tried it. I hope you get somewhere with your research.

Steel Sparkle

@Zero Dozer
That is not a bug. I thought the same thing but it's not. something to do with a green chozo room myth. Im not 100% but i know it's not a bug and as i said i asked that same thing you did.

PHOSPHOTiDYL

Quote from: Grahf on September 23, 2016, 06:44:22 PM
I've noticed that the alternate versions of PB omit playing the demo, can I get some pointers on which byte I have to change in order to do this?

Change the byte at 059F29 from $CE to $A9 to hide the demo.
Quote from: Zero Dozer on September 21, 2016, 11:04:10 PM
I started playing the full hack tonight. So, I was tearing through Maridia and I was on Draygon's door, when I headed right to check for the recharge stations. First the missile station didn't interact with me, and when I reached for the energy station... The game froze. Froze as in crashed.

Did you apply any other patches? This happened to me months ago I forget the fix..

Zero Dozer

#641
Quote from: PHOSPHOTiDYL on September 23, 2016, 07:53:59 PM
Did you apply any other patches? This happened to me months ago I forget the fix..

Nope, as of the moment, I've never applied more than one patch at a ROM.

And yeah, I just checked the guy's question on the same room now. Good thing I discovered it way after I killed Crocomire.

ShadowOne333

Quote from: Grahf on September 23, 2016, 06:44:22 PMShadowOne333, don't give up! I came to this topic to see if exactly the same thing could be done and saw that you already tried it. I hope you get somewhere with your research.

I'm trying, man, I'm really trying. xD
Right now I haven't worked on it that much, I'm working on another hack atm, but once I'm done with that one I pretend to go back to this one to hopefully manage to get it working (somehow).
At least we now know that the problems might be the spinjump code which seems to be clashing between Control Freak and Project Base, so that's a good start I guess.

Thanks for the good wishes though! :P
I'll post anything that I come up with right here.

Grahf

@ShadowOne333
Excellent!

---

One thing I noticed with Project Base is that the Tractor Beam is implemented in a way that every shot you make the items draw closer (as opposed as drawing them only when the beam is charged). I've seen in another thread a patch for this (provided PB uses Black Falcon's code): http://forum.metroidconstruction.com/index.php/topic,145.msg54256.html#msg54256

However when I apply it to PB , the Tractor remains as it was, which leads me to think the code is placed somewhere else. I think this patch is something Grime should keep in mind for a later version.

PHOSPHOTiDYL

Quote from: Grahf on October 05, 2016, 11:41:02 PM
@ShadowOne333
One thing I noticed with Project Base is that the Tractor Beam is implemented in a way that every shot you make the items draw closer (as opposed as drawing them only when the beam is charged). I've seen in another thread a patch for this (provided PB uses Black Falcon's code): http://forum.metroidconstruction.com/index.php/topic,145.msg54256.html#msg54256

However when I apply it to PB , the Tractor remains as it was, which leads me to think the code is placed somewhere else. I think this patch is something Grime should keep in mind for a later version.

Tractor beam code is placed from 037600-037634 in project base.

If you go to 037601, you'll see D0 0C.
Change to 62 0B to attract items only when charged.

Foxhound3857

#645
Has anyone done a minimum% run for Project Base yet? I'm planning to give it a try.

2 Missiles and 2 Supers (or 1 and 3, but that would require a moat skip, hard as hell)
1 Power Bombs
1 E-Tanks (to survive Murder Beam)
Morph Ball
Bombs
Charge Beam
Gravity Suit

This would be 10%. I've seen 11% with these exact items plus an extra E-Tank (as well as 12% Ice) by Linkameister, and 13% Plasma by FF7Marsh.

Murder Beam seems to do exactly 194 damage, so I'm assuming only 1 E-Tank is needed with an absolutely perfect fight against Mother Brain (no damage received, you'd survive Murder Beam with 5 Energy).

Aran;Jaeger

Yes. Low% has been done already, by Linkameister and Foosda. Here is Linkameister's WR video for the category:
http://www.speedrun.com/run/wzpg51gz

For a more general overview, here is the general SM Romhack page on speedrun.com:
http://www.speedrun.com/games#Name=metroid&sorting=playerCount&direction_sort=on

Zero Dozer

Grime, I noticed something. I compared a Vanilla Gameplay-Only patched Super Metroid against the Full Hack. I noticed that some movement features like Bomb timing are not present in the Gameplay-Only hack. Was that intentional?

ShadowOne333

#648
I dug a little deeper into the Project Base + Control Freak combo I'm trying to do.
I have managed to make the game boot by commenting out the Spin Jump related code in ControlFreak2.asm, however this disables the Spin Jump in-game. The game boots just fine, and Samus can jump, but only with her vertical jump and the vertical jump animation. You can still move while in the air, but the Spin Jump animation will not be triggered as well as its pros.
This leads me to believe that the ControlFreak2.asm file has a pointer related to the Spin Jump routine and redirects it to one of the Transition Tables included within ControlFreak2.asm itself.

For anyone who knows even a little ASM and might want to help, I have opened up a topic discussion in RomHacking.net regarding combining both Project Base and Control Freak with detailed instructions on how to perform tests and also a RAR with all the required files for testing (except the ROM of course):
http://www.romhacking.net/forum/index.php/topic,22889.0.html

PHOSPHOTiDYL

Just repointed the spinjump code to not conflict with control freak. Nothing.
Repointed & replaced the control freak animation table with project base.  Spinjump, backflip, & quickmorph work. Not quick air morph, blame brandish.

No idea what else control freak does, was tested up to super missiles. Also no idea how the animation table works. There's too many differences to combine them at first glance.