News:

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

Main Menu

Show Me Your Moves!! (Project Base & Control Freak)

Started by PHOSPHOTiDYL, October 24, 2016, 09:46:56 PM

Previous topic - Next topic

begrimed

This is really awesome of you all to do. Didn't expect it to be such an involved process making those two patches play nicely together, dang.

Vanya

Awesome! This is exactly what I wanted to see happen down to the disabled moves. :cheers:

ShadowOne333

#52
Quote from: sylandro on November 21, 2016, 01:15:35 AM
No problem by me :)

By the way, if you plan on using the run patch, please redownload it again from the last post, the bridges in brinstar were impossible to cross (read my edit2 note). You should make a playthrough using it just to double check if there are any issues.

This should be the last update. We discussed removing UPSPIN (Run+Jump to Spinjump) to make it easier to play using auto-run, but I never posted the patch. Here it is.

Thanks!
I did start a new playthrough and noticed the problem with the Brinstar Gates, I already edited the code to make the gates slower so that they are passable when the user has Speed Boost with your Run Code.
I also verified that the second Run portion of Brinstar (after you get the Super Missiles) right before entering the Red-like vertical shaft is passable with Auto-run enabled, so far everything is going okay.

Now, for the ReadMe and description of the hack, I have the following:

[spoiler]
Quote from: ReadMe.txt
SUPER METROID:
ZERO-FUSION STYLE!

----------------------------

CONTACT THREAD:

Metroid Construction's thread for the hack:
http://forum.metroidconstruction.com/index.php/topic,4115.0.html

----------------------------

CREDITS:

Project Base:                Begrimed and co.
http://www.begrimed.com/pb.php

Project Base - 7.2 (Nintendit 1.57):      dex909
http://www.romhacking.net/hacks/2767/

Control Freak:                Kejardon
PB+CF Initial ASM code and Transition tables:    PHOSPHOTiDYL
ASM fixes, new HUD and new Run code:       sylandro
Map Item Circles hack:             Scyzer
Main tester:                ShadowOne333

----------------------------

Super Metroid: Zero-Fusion Style! is a hack of Super Metroid which main goal was to be able to combine the Project Base and Control Freak hacks into a single, fully functional hack. Additionally, this hack aims to make the gameplay experience of Super Metroid as closely as possible to that to Metroid Zero Mission and Metroid Fusion in both controls and physics.

The original base hacks for this project were:

Control Freak:
http://www.romhacking.net/hacks/405/

Project Base - 7.2 (Nintendit 1.57), using the Super Metroid (JU) [!] [h] [2015].ips patch for making the patch changes Gameplay-only related:
http://www.romhacking.net/hacks/2767/

From those two, almost all of the changes have been carried over from their respective base projects:

From Control Freak:
    *Run is now toggleable between Run and Walk.
    *Moonwalk has been deleted, and the setting is now used to toggle Auto Run.
    *Aim Up is now the only aim button, 'Aimlock'. Holding it will make Samus aim at a certain angle, and aim higher or lower if you tap up or down.
    *Samus also has the ability to run and aim straight up at the same time now by using Aim-Lock + Up, you can go back to diagonal aiming by pressing Down while still holding Aim-Lock.
    *Select Item is still used to select missiles, super missiles or the grapple beam. It no longer selects X-ray nor Power Bombs; X-Ray now has its own button and Power Bomb is highlighted automatically when in Morph Ball and pressing Brandish. Beams can still be used at any time, even when missiles and super missiles are selected.
    *Item cancel has also been removed, as it now activates the x-ray scope.
    *Aim Down has become Brandish, which, when held, will toggle between Beams and the item currently selected. This is somewhat... abusable.
    *Powerbomb attacks are also now easy to control, just tap Brandish when you want to trigger them while in Morph Ball.
    *Spinjump controls have also been improved a bit - Walljumping should be a bit easier on a d-pad, and Samus will fire in the direction you're pressing instead of just forward, if you press fire.
    *The controls are configurable to ANY combination. Aim is not limited to L and R.


From Project Base:

*FEATURES:

    General movement is less inhibited, with many new tricks made possible
    Faster elevators, doors, room transitions and item-collection sequences
    Bug fixes and polish applied whenever possible

*SPECIAL MOVES:

    RESPIN – press jump at any time during a normal fall to resume spinning
    BOMB SKIP – hold down to avoid bomb jumping
    QUICK MORPH – hold X-Ray + press down to instantly morph while in air.
    DEMORPH JUMP – until Spring Ball is equipped, holding run allows spin-jumping straight out of ball form
    SPEED BALL – with Spring Ball equipped, Samus gains the ability to run at full speed as a ball
    SPIN FALL – hold jump as you fall from a ledge to flip automatically

*ENHANCED EQUIPMENT:

    Beam travelling and firing speeds adjusted, auto-fire speed increased
    Charge beam draws energy and ammo drops from enemies toward you, also charges slightly faster
    Speed Booster has become a major power-up with several huge limitations removed
    Horizontal shinesparks can be exited into a full-speed run when Samus touches a slope
    Space Jump no longer stops working after you've fallen too far
    Missiles and super missiles can be fired faster
    Super missiles can be fired straight down while in the air to propel Samus upward
    X-Ray Scope speed increased
    Bomb timer shortened
    Underwater wall jumping and bomb jumping enabled
    Running speed no longer resets after jumping or falling

Additionally, sylandro made new ASM code:

*New HUD changes:
    Missiles selected will be highlighted in GREEN. If you press Select, Super Missiles will be in GREEN while normal missiles will appear in grey. Pressing Select again will hightlight the Grapple Beam in GREEN. Only when the Brandish button is pressed, the selected item will change its icon to YELLOW.
The same applies for Power Bombs, they will always be highlighted in green, and only when Brandish is selected they will be YELLOW.

*New Run code:
    sylandro made new Run ASM code to make the Running of Samus much more similar to that of Zero Mission and Fusion. If you have Auto-Run enabled, Samus will now wait some time until she starts gaining up speed into Boost, similar to the following entries on the franchise.
This new code is available in the Super Metroid - Zero-Fusion (New Run).ips patch, while the other one will have the original Speed Boost and Run gameplay of the original Super Metroid.

Final Note:
This hack *might* be compatible with other variations of Project Base, but those are untested yet.
[/spoiler]
.
.
Let me know what do you guys think so that I can finally post it.
If I'm missing someone in the credits, please let me know!

Thirteen1355

Great! This is going to be awesome!

A wish that began by simply patching both Control Freak and Project Base (along with Heavy Gravity) now has become a full-fledged ROM-hack, thanks to you guys!

sylandro

#54
Thanks @begrimed, @Vanya and @Thirteen1355!

@ShadowOne333 about the patch, would it be OK if in the later months I publish another patch with the same purpose but different execution? With all the work we've been doing recently I've been thinking about making Super Metroid work with the GBA mechanics as an experiment. I'd be trying to achieve the following changes:

- Apply Project Base gameplay patch, heavier physics and Control Freak (obviously).
- Tweak Project Base gameplay patch to fix the Tractor Beam and disable speed boosting as a Spring Ball. Maybe enable ballspark. Try to fix the intro demos.
- Make my Run patch work more like the GBA games. This will require slight edits of the brinstar bridge rooms.
- Change Scyzer's mapitemcircles implementation. Currently the dots and circles do not show in the HUD minimap and they overlap when there's more than one item in the room, drawing a fat circle.
- Apply and tweak DC's Map Patch to show doors in the map. Doors would have to remain hidden when the map is unexplored, and parts of the map that not revealed by the map station would show in teal color.
- Make power bombs reveal all tiles. Make the beam reveal bomb blocks.
- Apply my hard mode patch and have alternate rooms for hard mode.
- Edit the status screen to show energy and ammo totals.
- Apply JAM's spazer+plasma, Black Falcon's morph flash, adamf's screw-attack-frozen, Scyzer's itemsounds and superrefillstations patches.
- Edit some map icons to make them resemble their modern counterparts.

As you can see, I'm going to make a salad out of Super Metroid, and the result may be a decrease in gameplay. Still, I'm willing to make the experiment and release it when it's done.

ShadowOne333

Quote from: sylandro on November 22, 2016, 03:44:41 PM
Thanks @begrimed, @Vanya and @Thirteen1355!

@ShadowOne333 about the patch, would it be OK if in the later months I publish another patch with the same purpose but different execution? With all the work we've been doing recently I've been thinking about making Super Metroid work with the GBA mechanics as an experiment. I'd be trying to achieve the following changes:

- Apply Project Base gameplay patch, heavier physics and Control Freak (obviously).
- Tweak Project Base gameplay patch to fix the Tractor Beam and disable speed boosting as a Spring Ball. Maybe enable ballspark. Try to fix the intro demos.
- Make my Run patch work more like the GBA games. This will require slight edits of the brinstar bridge rooms.
- Change Scyzer's mapitemcircles implementation. Currently the dots and circles do not show in the HUD minimap and they overlap when there's more than one item in the room, drawing a fat circle.
- Apply and tweak DC's Map Patch to show doors in the map. Doors would have to remain hidden when the map is unexplored, and parts of the map that not revealed by the map station would show in teal color.
- Make power bombs reveal all tiles. Make the beam reveal bomb blocks.
- Apply my hard mode patch and have alternate rooms for hard mode.
- Edit the status screen to show energy and ammo totals.
- Apply JAM's spazer+plasma, Black Falcon's morph flash, adamf's screw-attack-frozen, Scyzer's itemsounds and superrefillstations patches.
- Edit some map icons to make them resemble their modern counterparts.

As you can see, I'm going to make a salad out of Super Metroid, and the result may be a decrease in gameplay. Still, I'm willing to make the experiment and release it when it's done.
Damn that sounds sexy af. Btw the patch I'm making includes the heavy physics already ;)
Sure thing! You can go ahead and publish another patch.
You can even update the Romhacking page of the hack and add in your patch!
That's just in case you don't want to create another page for it, but if you do want to make a separate entry for your hack, go ahead :)

I just wanted to post this one because I feel happy the way it is and it certainly fulfilled what I was expecting.
But I can safely say that if you do end up making your hack, you can add it to this one since it basically does the same thing, make Super Metroid more akin to the GBA games, although in your case, in a much more detailed and faithful way.

I'll go ahead and post it to RomHacking then, I''ll then post the link in here.
Please let me know how your hack goes, I'm interested in it as well :)

ShadowOne333

#56
It's up!
http://www.romhacking.net/hacks/3211/

I already sent the Credits submission to list each one whom I added in the ReadMe, the Credits list should be up by tomorow. :)
(Wish I could add them right with the initial entry, but for some reason RH only allows adding Credits once the Hack page has been approved)

EDIT:
Credits are up now!


vivify93

I made a version of GBA Style! with my tweaks to Auximines' Justin Bailey patch applied to it. I'm in class right now, but I'll be posting it here in this topic when I'm home. :^_^: I did fix the wrongly-colored palettes with Samus' picture in the status menu; however, for now it's still a green wire-frame filled with opaque black. It's compatible with RealRed's colored Samus window patch--it just needs to be colored in and shaded with the palettes fixed up. I'll leave that to someone else, though. :razz:

Thirteen1355


vivify93

Here's the Justin Bailey version of the patch. Enjoy!

ShadowOne333

Quote from: vivify93 on November 23, 2016, 12:05:08 AM
Here's the Justin Bailey version of the patch. Enjoy!
I saw an edit to the hack by you, will you addthe patch to the main hack?
Not complaining, just curious :)
I'd recommend posting pics of it in here as a showcase, since yours does have more visual cues than the gameplay/ASM heavy GBA Style one :P
I couldn't find much visual material to put in the hack's page xD

vivify93

#62
There's not much changed. All I really did was fix Samus' anatomy in the scene where she passed the baby Metroid to the scientist. I don't think I'll add it to the main patch. If you mean add it to Auximines' main Justin Bailey patch, I'd need his permission. I did contact him about it, but I don't know if he still uses that at least 9-year-old email address.

Edit - Comparison.

http://i.imgur.com/N6k9KYY.png - Original, kind of. This is a mock-up Auximines made that removed part of the tube and the white square by the scientist's hand that was left over.

http://i.imgur.com/tw3EjA8.png - New. I also reverted the Morphing Ball's name in the status screen; it used to say Maru Mari in Justin Bailey for some reason.

ShadowOne333

Quote from: vivify93 on November 23, 2016, 01:39:20 AM
There's not much changed. All I really did was fix Samus' anatomy in the scene where she passed the baby Metroid to the scientist. I don't think I'll add it to the main patch. If you mean add it to Auximines' main Justin Bailey patch, I'd need his permission. I did contact him about it, but I don't know if he still uses that at least 9-year-old email address.

Edit - Comparison.

http://i.imgur.com/N6k9KYY.png - Original, kind of. This is a mock-up Auximines made that removed part of the tube and the white square by the scientist's hand that was left over.

http://i.imgur.com/tw3EjA8.png - New. I also reverted the Morphing Ball's name in the status screen; it used to say Maru Mari in Justin Bailey for some reason.

Oh nice!
I would only like to give you one slight suggestion.
If you look close enough, the perimeter of both Samus and the scientist do not match, which makes it clash and seem rather unfitting. Mostly because Samus' outline is way prominent while the scientist's is almost non existent.
I'd suggest reducing Samus' outline so that it fits a lot more with the artwork of the scientist.

Vanya

Would it be difficult to modify the controls for Brandish into a toggle instead of a momentary switch?

And since you guys have done such extensive fiddling with the controls I always wondered if it would be viable to change the wall jump controls so that you have to press towards the wall instead of away from it to initiate the jump? Seems to me that would make it much simpler to execute provided it doesn't bork things up completely.

ShadowOne333

BTW sylandro, I forgot to mention that I also fixed the Tractor Beam in the release.
PHOSPHOTiDYL was kind enough to post a fix over at the Project Base thread, which I Hex edited into the PB ROM I used as the base ROM

Quote from: PHOSPHOTiDYL on October 08, 2016, 06:06:55 AMTractor 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.

So that should be one less thing from your list, heavy physics as well.
If you do need help with testing, I'll be more than glad to help out!

sylandro

#66
@Vanya  I can't help you much with it because i'm busy with other things, but can attempt it yourself if you have knowledge in ASM. Here are some tips.

The Brandish check is in ControlFreak2.asm, specifically the line that says BIT $09BC. You could create a new variable in RAM that is toggled whenever $09BC is pressed, and then change Control Freak's code to check if your new variable is 1 instead of testing for bit $09BC.

The walljump code is hardcoded into the game and not triggerable through the transition tables we've been editing for this hack. I know it's somewhere in bank 90, you'd have to hijack and change the code there.

Sorry I can't be of more help!

@ShadowOne333 Thanks, I've made my own implementation of the Tractor Beam. This one is based on distance, in order to be more similar to Prime/AM2R. All that's left are the ballspark (idk if it's even going to be possible) and status screen edits.

I do need help testing! :grin: I had to redo the maps to include the new features, so now I need to do a 100% run and test that the following is correct, which is very tedious.

I'm attaching a beta version in case you want to leave feedback or test it. The IPS patch has to be applied to a vanilla unheadered ROM.

1. Check that there are no wrongly placed map tiles in contrast to the layout of the rooms.
2. Check that ALL expansions appear as circles on the map AND minimap (they're separate implementations), and change to dots when picked. Also check if they're placed in the right rooms.
3. Same as 2, but upgrades should appear as spheres instead of circles.
4. Test that when two items are in the same room, you have to collect both in order for the circle to become a dot.
5. Test if there are any noticeable slowdowns in parts of the game that ran normally.
6. Test if the game is completable without crashing or softlocking.
7. Test if hard mode is too imbalanced.

ShadowOne333

@sylandro check the IPS patch you uploaded, because I keep patching the ROM and I keep getting vanilla Super Metroid.
Snes9x even recognizes the patched ROM with the correct checksum, which in my years of hacking never happens :P

sylandro

#68
@ShadowOne333 lol, I don't know what I did wrong, but I've made sure this one works.

EDIT -- Speed boosting is broken on this version. I'll get around that quickly.

Vanya

Quote from: sylandro on November 28, 2016, 06:34:36 PM
@Vanya  I can't help you much with it because i'm busy with other things, but can attempt it yourself if you have knowledge in ASM. Here are some tips.

The Brandish check is in ControlFreak2.asm, specifically the line that says BIT $09BC. You could create a new variable in RAM that is toggled whenever $09BC is pressed, and then change Control Freak's code to check if your new variable is 1 instead of testing for bit $09BC.

The walljump code is hardcoded into the game and not triggerable through the transition tables we've been editing for this hack. I know it's somewhere in bank 90, you'd have to hijack and change the code there.

Sorry I can't be of more help!

No need to apologize! This helps a lot. Thanks! :)

ShadowOne333

Quote from: sylandro on November 28, 2016, 06:34:36 PM
@ShadowOne333 Thanks, I've made my own implementation of the Tractor Beam. This one is based on distance, in order to be more similar to Prime/AM2R. All that's left are the ballspark (idk if it's even going to be possible) and status screen edits.

I do need help testing! :grin: I had to redo the maps to include the new features, so now I need to do a 100% run and test that the following is correct, which is very tedious.

I'm attaching a beta version in case you want to leave feedback or test it. The IPS patch has to be applied to a vanilla unheadered ROM.

1. Check that there are no wrongly placed map tiles in contrast to the layout of the rooms.
2. Check that ALL expansions appear as circles on the map AND minimap (they're separate implementations), and change to dots when picked. Also check if they're placed in the right rooms.
3. Same as 2, but upgrades should appear as spheres instead of circles.
4. Test that when two items are in the same room, you have to collect both in order for the circle to become a dot.
5. Test if there are any noticeable slowdowns in parts of the game that ran normally.
6. Test if the game is completable without crashing or softlocking.
7. Test if hard mode is too imbalanced.

Okay I am like halfway through the game and noticed some stuff worth noting:

1. When you get the Wave Beam, I saw some glitched graphics in the background (yellow blocks)
2. The items do show up as circles and when you get them they become dots.
3. Map blocks where there are two items do not remove the circle until you get BOTH items from said spot, so this works as desired!
4. Upgrades do show up as spheres, nice work there!
5. Okay here's the real bummer...
I got stuck in Norfair.

The Auto-run is not working properly, and I think that the bridge before getting the Speed Booster was something neither one of us took into consideration.
It seems that you cannot run anymore even if you select or deselect Auto-run.
I noticed this was intentional since you made the bridge portions in Brinstar solid blocks, but this really screws up the gameplay when you are on the long hallway to get the Speed Booster.
The bridges keep breaking and Samus keeps falling off unless you really press the jump button fast enough to jump off the block before it dissolves, and when you do get to the Speed Booster, well... You cannot get back in time.
The Auto-run is not triggered quickly enough to pass the first bridge, ending up in Samus falling and the lava rising, so it is either going back to the Speed Booster room, or try to make it in time without the Speed Booster turning on.
No matter what I did, I couldn't get out of there. :/

So it seems like the Run code needs some tuning to make that part work properly.

Aside from that, I'd just suggest adding some sort of speed to the single shoots of the Power Beam, or maybe even an auto-fire if you keep the button held.
Out of all of those points, everything else seems to be working okay, at least until that portion of the game it all seemed fine (map tiles, special rooms, etc). I really liked the redesign to the special rooms tiles!
I haven't tested Hard mode yet, but I'll give it a try once I complete Normal.

Hope this helps you out.
I'll be here in case of anything :)

sylandro

@ShadowOne333 That was some fast testing on your side. My intention was to only enable running until you get the Speed Booster to make it more like the newer games, hence the level edits. Since the game was not designed this way let me know if it feels too "unnatural", in which case it would be better to restore the run code.

This version has the following changes:
- Edits room 7ACF0 in Norfair to make it easier to traverse the crumble blocks and actually be able to trigger a speed boost.
- Edits a tile that caused the Wave Beam message box glitch.
- Fixes a bug with the running code.

MollyAncalime

I'm playing with hard mode active, just so you know.
I love most of the controls and physics, although I feel like Samus moves too slow, and shouldn't the sphere for major items remain even after picking up said item? It does in ZM.
I look forward to seeing the status screen additions, spazma (if it's not in yet, haven't gotten that far to know) and the map doors/teal 'off-map' rooms implemented!
Do you have any plans to add automorph, transparent GBA-style HUD, the colored Samus subscreen sprite patch and the new ending palette change patch?

sylandro

#73
I agree that the default speed feels slow, I'll try to raise it a notch for the next update to see how it feels.

The sphere thingy disappears when you pick it in ZM, I think you're getting confused with AM2R, which does the opposite: draws a circle where there's an upgrade, and changes to a sphere when picked.

About the teal map and door icons... i tried to code them but hit some limitations with the engine. Basically, I need to alter the palette, but certain colors are used by other parts of the level and can get messed up if I change them. There's also the fact that the HUD can only use 4 different colors at the same time for each tile. I'll try to think of a way to implement such changes, but they're at the bottom of the list for now.

The rest of the changes you mention are definitely going in, except coloring Samus in the subscreen. I'm going really hardcore on the gba/am2r feel (what's next, a gallery? :lol:), and in those games you see only a wireframe. You can apply said patch separately if you want, though. If it doesn't work let me know and I'll check it, it probably only has to do with repointing.

I already tried the transparent HUD thanks to Quote58, but the colors did not blend very well, making some parts hard to see. He is developing a different implementation based on sprites, which will look much better. I'm definitely looking forward to do this.

MollyAncalime

Quote from: sylandro on November 30, 2016, 02:24:29 AM
I agree that the default speed feels slow, I'll try to raise it a notch for the next update to see how it feels.
Awesome, that's good to hear.

Quote from: sylandro on November 30, 2016, 02:24:29 AM
The sphere thingy disappears when you pick it in ZM, I think you're getting confused with AM2R, which does the opposite: draws a circle where there's an upgrade, and changes to a sphere when picked.
I think you're right; now thinking a bit more in depth I remember the spheres becoming Chozo heads where there are statue items in ZM, so I probably got my memory mixed up.

Quote from: sylandro on November 30, 2016, 02:24:29 AM
About the teal map and door icons... i tried to code them but hit some limitations with the engine. Basically, I need to alter the palette, but certain colors are used by other parts of the level and can get messed up if I change them. There's also the fact that the HUD can only use 4 different colors at the same time for each tile. I'll try to think of a way to implement such changes, but they're at the bottom of the list for now.
I would say that the tiles should be okay, since at most you'd likely have to use pink or teal, white, alpha channel and a door color per HUD tile, but then I don't know if you mean each individual 'square' on the map or not by tile, and that doesnt solve the level palette issue.

Quote from: sylandro on November 30, 2016, 02:24:29 AM
The rest of the changes you mention are definitely going in, except coloring Samus in the subscreen. I'm going really hardcore on the gba/am2r feel (what's next, a gallery? :lol:), and in those games you see only a wireframe. You can apply said patch separately if you want, though. If it doesn't work let me know and I'll check it, it probably only has to do with repointing.
Cool, I'll try applying it later and tell you how that goes. And hey, if a gallery is possible I think we all can agree that'd be kickass.  :lol:

Quote from: sylandro on November 30, 2016, 02:24:29 AM
I already tried the transparent HUD thanks to Quote58, but the colors did not blend very well, making some parts hard to see. He is developing a different implementation based on sprites, which will look much better. I'm definitely looking forward to do this.
I look forward to seeing it as well!