The Great Metroid Construction Collaboration Hunt - Post your resources here!

Started by Zhs2, July 20, 2009, 07:55:03 PM

Previous topic - Next topic

Mettyk25jigsaw

2 props in 1

Ever wanted to go through these tunneled slopes pictured in image and at the same time touch a plm without making the slope not work as you'd want it? instead you fall through the blessed slope and you at best have to bomb yourself back up. Well if conditions with your hack are met you can now do this with this patch. This is useful for plm's like the scroll plm and the arrow plms that accompanies the scoll plm, (not that you really need these arrows), also good with our good friend JAM's messanger PLM, can really be used on any PLM but there are a lot that you really wouldn't want to use with it, event plm by squishy ichigo is another one that comes to mind that is useful with it.

Conditions to be met: Your hack cannot have currently any used properties in level data under the 2 catagories of AIR???/Unused or bombable air, if you currently use any of these, this patch will clash big time with it. You've been warned.

To Use: Follow the instructions below in image, it should be self explanatory with an additional couple of comments--these>>>,
1>>>Use bombable air for vertical tunnels and use unused/AIR??? for horizontal tunnels.
2>>>Best not to make it on an edge of the tunnel because the slope is really half a tile in width that you are using (unless you want to make it like this), note that this slope that is being used is with a BTS of 02 of the original slope scheme, even though this can be alternatively have a work around by adjusting where the PLM Goes and what value the tile itself is given, it's usually best not to alter the flipping of the tile with a different BTS, you can just place the custom tile on the bottom always/usually for horizontal tiles and on the right always/usually for vertical tiles.
3>>>As the custom tile mimics a slope property so does it mimic a V & H copy/extend property>>>V extend for horizontal tunnels and H extend for Vertical tunnles.
4>>>A couple other slopes might work using the same techinique for example bts 07 for horizontal tunnels but most have issues because of a fact that is too long to explain.
5>>>After using this patch, you will no longer be able to use these 2 properties in question (Unused and bombable air) for anything other than this tecnique.


PHOSPHOTiDYL

This went through a lot more testing, I'm sure it works now.

Granting you higher levels of immortality...

Samus can now only transfer health to reserves.
Samus can't transfer if health is lower than a value you set.
Samus transfers health until max reserves, not enough health, or you move from the digits.

You can't select items from a different list when reserves are set to manual.
You can't select manual to transfer when reserves are set to auto.

The more health you keep in your reserves, the longer you will stay alive.
Maybe just an interesting add-on to your next vanilla playthrough.

I was aiming for some form of "last stand" & save corruption "permadeath" if you died & the counter wasn't reset. :lol:

UPDATE:
Just found out this modifies the same routine as the reserve fuse.
I think that patch also let's damage carry over if reserves are saving you, so this on top should balance out your immortality.
Haven't tested yet, just a thought.

Cpt.Glitch

SM-esque Weapon Select for Fusion
I made a patch like this for Zero Mission already, and someone suggested I make it for Fusion as well. Basically, this makes selecting missiles and Power Bombs a bit more like Super, but not so much. What does that mean? Well, to arm missiles in the original you'd have to hold the R button. However, this patch makes 1 press of the R button arm missiles and another press of R disarm them. This is especially useful for those playing on an emulator on a mobile device, of for those who have keyboards that don't allow several inputs at once, (like mine).

Better Morph Roll (ZM)
Makes the morph ball rolling animation only play when moving. Otherwise the ball will stop animating and look all together more realistic. Due to how the GFX for morphball are though, (the random glow it has) you'll have to rework the GFX to look better.
https://www.youtube.com/watch?v=QwRAyACpHIs

Black Falcon

Delayed crumble blocks



This adds ZM-esque blocks that don't break immediately, giving you a bit of time to stay on them.

Please read the patch instructions carefully! This asm file is not compatible with xkas! Use the included asar instead!!

For those who don't know, asar is a highly improved SNES assembler based on xkas, with lots of added features such as conditionals (which is what this patch makes use of). It also provides an easier way to assemble code by just double clicking and choosing your patch and ROM files. More info and download can be found on SMW Central.
I also included instructions for how to change the displayed tile, so you can distinguish it from regular crumble blocks.

https://www.youtube.com/watch?v=oEAciDe23-0

Unlike shown in the video, I fixed the problem of getting stuck repeatedly, so it's safe to use.

Haffun!  :^_^:

Cpt.Glitch

Better Morph Roll (Fusion)

Time for Fusion to get more love! Makes the morphball only play the rolling animation while moving. When idle, it'll stop animating, making it more realistic.

MetroidRuins

I think I'm dumb...
Because I don't know how to apply
this patch properly..  :lol:

Cpt.Glitch


Q: How do I apply an ASM file to my hack? (Both Games)
A:In order to apply an ASM file to a ROM, you'll need a assembler, the ASM file, and your ROM all in the same directory. A good THUMB/ARM assembler known as armips is an easy to use program that allows you to apply these ASM files.You can find it here: https://www.romhacking.net/utilities/635/ Next, you'll have to look at your ASM file in a text editor and determine what your ROM name must be in order to apply the ASM. Most ASM files have something like this at the top of the code:
.gba
.open "zm.gba","SparkControl.gba",0x8000000 
What you will need to look for is on the second line. zm.gba Is the what the ASM file would like the unpatched ROM to be named. The second part: SparkControl.gba is the name of the output file. There is one final thing to consider before applying an ASM file. Freespace. Some codes may use the same freespace as others. This means they will conflict and most likely cause the game to crash/break/not work as intened. Most ASM programmers will put a comment, after something like this: .org 0x8043DF0 that says freespace or unused AI or sound. This is freespace. If two or more patches have the same address as freespace they wont work and one needs to be repointed. Repointing is explained in the How do I repoint patches? question. Once all that is done you can apply the patch in one of two ways. Drag the ASM file onto the armips.exe or run the command line in that directory and use this syntax:
armips <asm_file_name>.asm
If the file doesnt compile, the command line will tell you why. So if an ASM fails to produce an output file after dragging the ASM onto armips, try running it through the command line so you can find out what the issue is. From there you can fix it yourself or contact the author of the code. Armips also comes with a detailed README file. You'd do yourself a favor in reading that.

PHOSPHOTiDYL

Until samus collects charge beam, samus can only fire charged shots, & that timer has been doubled.
Pseudo screw attack still works, is compatible with tractor beam.
Just remove the bank $90 timer from tractor beam, it's been moved with this code.

Samus then collects charge beam, is now able to fire normal shots & regular timed charged shots.
Or use accel charge to reduce the timer, or another beam as a seperate reduced timer.

So it's pretty much a power beam in disguise, is compatible with long beam, clears out a routine, rewrites it, $00AB bytes bank $90.
I kept the check for hyper beam, the sba code, & all the vanilla charge timers.

:palsma:

UPDATE:
If anyone actually does try using this, go to the Uncharged routine & change the JMP $B887 to JMP $B88F.
Else some trash hyper beam code is gonna crash your rom with charge equipped.

Also this isn't compatible with hud hack 2.5 without injecting this into it so beam gfx get updated...

Also, if for some reason your rom is crashing when trying to fire midair, add this to the top of ChargeBeam.
LDA $0A1E : BNE AnotherCheck.

Don't know, don't care, it works on every hack in existence.
Like I just perfectly fit some custom long beam code where the charge beam code was.
Then perfectly fit some custom charge beam code where some debug code was & patched.

No free space, hacked all the hacks, see you next mission.

MetroidRuins

Quote from: Cpt.Glitch on August 20, 2017, 06:09:37 PM

Q: How do I apply an ASM file to my hack? (Both Games)
A:In order to apply an ASM file to a ROM, you'll need a assembler, the ASM file, and your ROM all in the same directory. A good THUMB/ARM assembler known as armips is an easy to use program that allows you to apply these ASM files.You can find it here: https://www.romhacking.net/utilities/635/ Next, you'll have to look at your ASM file in a text editor and determine what your ROM name must be in order to apply the ASM. Most ASM files have something like this at the top of the code:
.gba
.open "zm.gba","SparkControl.gba",0x8000000 
What you will need to look for is on the second line. zm.gba Is the what the ASM file would like the unpatched ROM to be named. The second part: SparkControl.gba is the name of the output file. There is one final thing to consider before applying an ASM file. Freespace. Some codes may use the same freespace as others. This means they will conflict and most likely cause the game to crash/break/not work as intened. Most ASM programmers will put a comment, after something like this: .org 0x8043DF0 that says freespace or unused AI or sound. This is freespace. If two or more patches have the same address as freespace they wont work and one needs to be repointed. Repointing is explained in the How do I repoint patches? question. Once all that is done you can apply the patch in one of two ways. Drag the ASM file onto the armips.exe or run the command line in that directory and use this syntax:
armips <asm_file_name>.asm
If the file doesnt compile, the command line will tell you why. So if an ASM fails to produce an output file after dragging the ASM onto armips, try running it through the command line so you can find out what the issue is. From there you can fix it yourself or contact the author of the code. Armips also comes with a detailed README file. You'd do yourself a favor in reading that.
Thank you

Cpt.Glitch

Speedball for Zero Mission
Start speedbooster in the same way you would start it normally, only in ball form!
https://youtu.be/V9JWAT2hlj4
There is also a compilation of my current ZM disassemblies. 

PHOSPHOTiDYL

I just wanted a proper layer 2/bg data for phantoon.
I've found my solution, it involves some hex tweaks & remaking all the spritemaps off of tileset $04.

I got what I needed, here's all the data from my quest.

Also credit to P.JBoy & Black_Falcon, their resources are very helpful.

Also pretty sure I got the hitboxes mixed up.

start x-pos,start y-pos,end x-pos,end y-pos,touchAI,shotAI

Cpt.Glitch

True SM Controls for ZM
Button inputs shown for maximum effect in this showcase.
R and L now aim Diagonally Up and Down respectively. Also all ammo based weapons are handled through the select button. There is no room on the GBA for an item cancel or Run button however.

dewhi100

Who knows, maybe this has been done already. I changed the 1994 to 2017, and the Nintendo logo now says "Metconst".

The red "nintendo" text is still there as I plan to change that to my username.

Thank you Phospho and SMILE-user for answering my questions while I worked on this.

Moehr

Probably someone has already noticed this, but I found out a fun thing to add to my WIP that's easy and might be useful for others, and can be done entirely with smile.

If you point a string of H-Copy/V-copy BTS at a PLM gate barrier (not the switch that opens it, but the wall of the gate itself), the BTS tiles will be solid when the gate is closed and passable when you open it. This makes for floors that you can activate via the gate; when it's down, you can stand on the floor, when it's raised, you fall through.

Also, KAME needs it's 4 babies to work right, but it doesn't need them to do anything. Disable their graphics and animation, and put them in Samus line of travel asshe enters the room. You can have as many KAME as you like in any room, provided they each have 4 babies. The babies were crashing the room when I left them running, and I didn't need them, so disabling the code seemed to get things working right.

Lastly, and I need to test it more, but I think I have a functioning one-way staircase that the BTS isn't generating permastucks on. I will diagram it when I get a chance.

Mentlegen

It's a bit out of character for me to be posting on the Fusion board, but i made a small patch that changed the beam palettes so that they were a bit more polished and more characteristic of their respective beams.

I took inspiration from fusion for my beams in my SM hack: SM radon so it's a bit of a personal design choice as well


please enjoy this small contribution.

PHOSPHOTiDYL

If you end up playing metroid revival, & have the ability to apply the metroid plus asm, & the time to copy the gfx pages over with the map tiles, well then here's the map data. Paste @ 039410.

I'd post the metroid plus gfx bin files, but it's written for xkas, & I put dawn aran in them, soooooooo nope.


Cpt.Glitch

With this patch, the pirate alarm will sounds like in vanilla Zero Mission, but the room music will resume once the alarm ends, rather than the never ending ambiance.

PHOSPHOTiDYL

Eight hours later...
If you can wrap your head around it, maybe you'll want to use it.

You'll know who to credit as well, I'll take some lag over gfx bugz any day...
Maybe it'd have taken eight days if there wasn't already data for it.

Also, don't use the padbyte for code cleanup...
If you want to fire a missile & see what happens go for it...

PHOSPHOTiDYL

Asm title says it all.
Use in your hack, use it on your next playthrough, I do not care.
This only took three hours.

Patiently awaiting your next hack...

Missed something. Or go without for an increased challenge.
It really only works cause the order you get the ammo.

Crashtour99

And now, something that probably no one has been waiting for.
And just in time for Christmas!

The Samus Animation Master Disassembly!

A complete disassembly of Samus' animations for Super Metroid.
Written in ASM, so it can be applied to a ROM.
Contains:
Optimization of the transition routine, freeing up some space in $91.
Kej's optimized transition table (which with not much effort can be swapped for the spinjump restart transition table).
Frame delay tables for every animation.
Pose definition table.
The master tilemap pointer table AND EVERY TILEMAP FOR SAMUS!
Animation frame progression tables.
DMA tables, which point to ALL the gfx used by Samus.
Tables for all OAM data for the arm cannon opening.

When applied to a ROM it assembles to vanilla specs, with the exception of the 2 optimizations.
Can be used in conjunction with my Samus animation editing guide.
This can also be used by someone if they want to make a true and in-depth editor for Samus' animations (everything they'd need is there).
If anyone would like me to write up a new guide that covers information in this disassembly that isn't covered by the original guide, let me know in this thread and I'll start working on it.

Merry Christmas everyone.


PHOSPHOTiDYL

My Mentor, I can now mockball while holding charge!
Please allow me to demonstrate, only while aiming down as it is vanilla.

T17: dw $0080,$0000,$0037   ;//[aim down morph charge]
T18: dw $0080,$0000,$0038   ;//[aim down morph charge]

Thank you, my Mentor.

D1W3

Hi, this is the first sprite that I edit, and I wanted to share it. You don't have to give credit if you decide to use it

It's simply the best ending's animation except Samus wears the zero suit. I used a pair of images to make these sprites, one of those images contained each frame of the animation, and the other was a collection of suits. As I said I'm not very experienced at pixel art, so those helped me a lot


PHOSPHOTiDYL

Here, this is for the spike platforms.

I tried so many fixes to stop taking damage on top of them.
Seems like the possessor was also an attempt at this...

This just turns them into moving platforms.
Including some gfx if you want, just the top part flipped & symmetrical.

Unless you're using them for some dropped spike traps & not jumping across, then plz enjoy.
I think there's enough room to clone the three routines & have a new enemy though...

If your interested enough, that is.

LoROM

;================================================================;
;----------------------------------------------------------------;
;//[ROOM 7CB8B]
!yspeed = #$FFFF ;//[lower values are slower, #$8000 vanilla]
;----------------------------------------------------------------;
ORG $A0E006 : dw $0E00,$0C00 ;//[DFFF width/height (106009)]
ORG $A0E02F : dw $804C ;//[touch ai so no dmg]
ORG $A0E046 : dw $0E00,$0C00 ;//[E03F width/height (106049)]
ORG $A0E06F : dw $804C ;//[touch ai so no dmg]
ORG $AB9800 : incbin 159800_$0400.bin ;//[DFFF gfx (159C00)]

ORG $A68B32 : LDA #$8B29 : STA $0F92,x
ORG $A68B38 : LDA #$8BDC ;//[move platform dn]
ORG $A68C0C : LDA #$8C5D ;//[move platform up]
ORG $A68C18 : NOP : NOP : NOP : NOP : NOP : NOP : NOP ;//[sound removal]
ORG $A68C34 : PLX : RTS : padbyte $FF : pad $A68C4A ;//[movement table routine]

;//[these loaded a speed table or something for dropping them faster]
ORG $A68B47 : NOP : NOP : NOP : NOP : NOP : LDA !yspeed : STA $12 : LDA #$0000 : STA $14 ;//[init ai]
ORG $A68BE7 : NOP : NOP : NOP : NOP : NOP : LDA #$0000 : STA $14 : LDA !yspeed : STA $12 ;//[move platform dn]

;//[this just loads a value]
ORG $A68C68 : LDA !yspeed : STA $12 : LDA #$0000 : STA $14 ;//[move platform up]
;----------------------------------------------------------------;
;================================================================;

PHOSPHOTiDYL

Also, here's a much better depth of water damage routine.
Super Metroid of course.

Doesn't run from the hud every frame.
$6A bytes bank $90 as is.

Maybe you wana try to "hell" run maridia or something.
Suit decompression or something.

Think evangelion, company gave you infected parts, integrity is compromised, it's in the pribnow box.

LoROM

;==============================================================================================================================;
;------------------------------------------------------------------------------------------------------------------------------;
!000E = $90FD00

ORG $9080C3 : JSR WaterDMG

ORG !000E
WaterDMG:
LDA $09A2 : BIT #$0020 : BNE ++ ;//[gravity suit check]
LDA $195E : SEC : SBC $0AFA : ADC #$0018 : BMI + : BRA ++ ;//[higher ADC for more samus submersion]
+ LDA $09DA : BIT #$0007 : BNE + : LDA $09C2 : CMP #$0047 : BMI + ;//[much better frame check from vanilla]
LDA $002D : JSL $809139 ;//[sound fx]
+ JSR LiquidDMG : LDA $195E : SEC : SBC $0AFA : CMP #$FF80 : BPL ++ ;//[first depth of damage/second check]
JSR LiquidDMG : LDA $195E : SEC : SBC $0AFA : CMP #$FF00 : BPL ++ ;//[second depth of damage/third check]
JSR LiquidDMG ;//[third depth of damage]
++ LDA $197E : RTS ;//[hijacked]

LiquidDMG:
LDA $0A4E : CLC : ADC.w WaterDEC : STA $0A4E : LDA $0A50 : ADC.w WaterDEC+#$02 : STA $0A50 : RTS

WaterDEC:
dw $0100,$0000 ;//[water damage per frame (decimal $4000,$0000 = 0.125)][very slow drain]

ORG $909E8B : dw $8000,$0000 ;//[lava damage per frame (decimal 0.50)]
ORG $909E8F : dw $8000,$0001 ;//[acid damage per frame (decimal 1.50)]
;------------------------------------------------------------------------------------------------------------------------------;
;==============================================================================================================================;