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

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

Previous topic - Next topic

Cpt.Glitch

https://youtu.be/ld1Qv5qdTY8
A little hack/patch that adds clipdata to the game that sucks and destroys bombs like in Samus Returns. Should be neat to see how people use this. You can adjust the speed of the "suck." The animated tiles are by OneOf99. You will have to make your own to use with this so it'll look as if a fan is pulling in air.

Also, updated shinespark control patch for ZM, that allows you to resume boosting when you spark diagonally downward onto a solid block. At long last!

PHOSPHOTiDYL

This kinda strays from the original metroid, but I find it makes things less annoying during gameplay.

If samus plants a bomb & is not morphed on top of it, including midair, no bomb jump.
For your super metroid entertainment system.

Also works with bombskip, if you find the code for it.

LoROM

;=================================================;
;-------------------------------------------------;
!0000 = $A0FFE0

ORG $A0984B : JSR StandingBomb

ORG !0000
StandingBomb:
PHA : LDA $0A1E : AND #$FF00 : CMP #$1100 : BEQ + : CMP #$1200 : BEQ +
CMP #$1300 : BEQ + : CMP #$0800 : BEQ + : CMP #$0400 : BEQ + : PLA : STZ $0A56 : RTS
+ PLA : STA $0A56 : RTS
;-------------------------------------------------;
;=================================================;


This now has more checks cause springball.

PHOSPHOTiDYL

I wanted this like a year & a half ago when I started hacking.
Just found what causes it by accident, it's pretty sick.

Replaces the debug routine in the main gameplay one, else I have no idea where else to run it...
Just your beam shots are now using the hyper beam palette, does not activate hyper beam.

I hope it's enough to keep you entertained on your hack journey.

LoROM

;==============================================================;
;--------------------------------------------------------------;
ORG $828976 : JSL HyperMod
ORG $82F70F
HyperMod:
REP #$30 : LDA $0998 : CMP #$0008 : BNE + ;//[main gameplay]
LDY #$E1F0 : JSL $8DC4E9 : SEP #$20 ;//[magik palette]
+ RTL
;--------------------------------------------------------------;
;==============================================================;


OMFG it even works on frozen enemies.
Does not affect the wave beam trail.

PHOSPHOTiDYL

This patch is for if using SMILE RF.
I personally use due to working from a small laptop & it's features are seperate windows.

Makes life a bit easier by adding native message boxes.
Very simple to add messages now, just read the comments.

$00 is $01 in RF, message $00 in game is NO MESSAGE.

I guess it's my own messenger patch too.
I had the full bank moved to $80 a few months ago, it's gone.

I'll keep it vanilla now.

LoROM

;//[ADD TO THE END FOR EACH MESSAGE]
;//[ADD TO THE END FOR EACH MESSAGE]
;//[ADD TO THE END FOR EACH MESSAGE]
;//[ADD TO THE END FOR EACH MESSAGE]
;//[ADD TO THE END FOR EACH MESSAGE]
;//[ADD TO THE END FOR EACH MESSAGE]
;//[ADD TO THE END FOR EACH MESSAGE]
;//[ADD TO THE END FOR EACH MESSAGE]
;//[ADD TO THE END FOR EACH MESSAGE]
;//[ADD TO THE END FOR EACH MESSAGE]
;=================================================;
;-------------------------------------------------;
ORG $85824F : PHX : JSR (MessageBox+#$02,x) : PLX : JSR (MessageBox,x) : RTS
ORG $8582F1 : LDA.w MessageBox+#$04 : STA $00 : LDA.w MessageBox+#$0A
ORG $858412 : LDA.w ButtonStuff,x
;-------------------------------------------------;
ORG $85869B ;//[OLD MessageBox/MessageStuff]
ButtonStuff: ;//[first $0000 is no message, save message is complicated, just add to the end of it]
dw $0000 ;//[message 00 is no message, so in smile rf message $00 is $01]
dw $0000
dw $012A ;//[Missile]
dw $012A ;//[Super Missile]
dw $012C ;//[Power Bomb]
dw $012C ;//[Grappling Beam]
dw $012C ;//[X-Ray Scope]
dw $0000
dw $0000
dw $0000
dw $0000
dw $0000
dw $0000
dw $0120 ;//[Speed Booster]
dw $0000
dw $0000
dw $0000
dw $0000
dw $0000
dw $012A ;//[Bomb]
dw $0000
dw $0000
dw $0000
dw $0000
dw $0000
dw $0000
dw $0000
dw $0000

padbyte $FF : pad $85877F ;//[($00AC bytes)][That's 56 messages for ya]
;-------------------------------------------------;
ORG $859643 ;//[free space to bank $86]
MessageBox: ;//[SMALL MBOX $8436,$8289,MBOX//LARGE MBOX $83C5,$825A,MBOX]
;//[REMEMBER MESSAGE $00 IN SMILE RF IS MESSAGE $01 IN GAME]
dw $8436,$8289,$877F ;//[$00/type/typecode/message]
dw $83C5,$825A,$87BF ;//[$01/type/typecode/message]
dw $83C5,$825A,$88BF ;//[$02/type/typecode/message]
dw $83C5,$825A,$89BF ;//[$03/type/typecode/message]
dw $83C5,$825A,$8ABF ;//[$04/type/typecode/message]
dw $83CC,$825A,$8BBF ;//[$05/type/typecode/message]
dw $8436,$8289,$8CBF ;//[$06/type/typecode/message]
dw $8436,$8289,$8CFF ;//[$07/type/typecode/message]
dw $8436,$8289,$8D3F ;//[$08/type/typecode/message]
dw $8436,$8289,$8D7F ;//[$09/type/typecode/message]
dw $8436,$8289,$8DBF ;//[$0A/type/typecode/message]
dw $8436,$8289,$8DFF ;//[$0B/type/typecode/message]
dw $83C5,$825A,$8E3F ;//[$0C/type/typecode/message]
dw $8436,$8289,$8F3F ;//[$0D/type/typecode/message]
dw $8436,$8289,$8F7F ;//[$0E/type/typecode/message]
dw $8436,$8289,$8FBF ;//[$0F/type/typecode/message]
dw $8436,$8289,$8FFF ;//[$10/type/typecode/message]
dw $8436,$8289,$903F ;//[$11/type/typecode/message]
dw $83C5,$825A,$907F ;//[$12/type/typecode/message]
dw $8436,$8289,$917F ;//[$13/type/typecode/message]
dw $8436,$8289,$923F ;//[$14/type/typecode/message]
dw $8436,$8289,$92FF ;//[$15/type/typecode/message]
dw $8441,$8289,$93BF ;//[$16/type/typecode/message]
dw $8436,$8289,$94BF ;//[$17/type/typecode/message]
dw $8436,$8289,$94FF ;//[$18/type/typecode/message]
dw $8436,$8289,$953F ;//[$19/type/typecode/message]
dw $8436,$8289,$957F ;//[$1A/type/typecode/message]
dw $8441,$8289,$93BF ;//[$1B/type/typecode/message]
dw $8436,$8289,$94BF ;//[$1C/type/typecode/message]
;-------------------------------------------------;
;=================================================;




Cpt.Glitch

Bomb Fan clipdata for Metroid Fusion. Functions exactly the same as its Zero Mission counterpart.

Cpt.Glitch

Jukebox for Zero mission. Shoot the button to cycle through music. Leave the directory set up as in upon extraction, and apply only the "jukebox.asm" file. The default sprite it replaces id 0x6C. Be sure to place a solid block where the button is as well, unless you want players to have the ability to clip through it. The AI is set up in a way that easily allows the user to choose what songs will and will not play. You can find these song values in "ByteTable" in the ai.asm file.
https://youtu.be/FHE8kyNfygU

Moehr

If you get one for SAM let me know; as per discord, I wouldn't mind adding one to my SM have!

Cpt.Glitch

Behold, the mighty Serris away from his natural habitat.
https://www.youtube.com/watch?v=yJmos_DBZNc

Mentlegen

I have always been bothered by how squiggly and thin the plasma beam looked like in Super. Import this .bmp to address D7800 to replace the plasma beam graphics with a new, more modern and sleeker version of the plasma beam.

A few pictures:




Mettyk25jigsaw

4 Suits + Moonwalk + Extra Item Bits

This adds 3 new items to the game plus it gives you 13 more item bits to use.

OK, this is going to have to be very well explained....

What it does = *ADDS 2 new item suits to the game
                      *ADDS Moonwalk Item
                      *ADDS Moonwalk event (FEEE)
                      *ADDS 13 new unused item bits to use for items
                      *Changes the load up option menu screen when loading game so that only START GAME is selectable and nothing
                        else...Also, it clears all the other options, so they are no longer visible or usable so that moonwalk item cannot be
                        turned off or on this way. Which means all the other options have to be default and can't and is unable to be
                        changed, which they are all unnecessary anyway for almost all hacks.
                     
New Items use the moonwalk ram address 09E4, since items are not going in the pause item inventory screen, only 1 ram address is necessary.
       Now this means that out of all your items using this ram address should you chose to make more items with this ram address or using the suit items Lava suit or Acid Suit, moonwalk "HAS" to be the first one obtainable in your hack, hence is why I made a moonwalk event so you can block paths, 'OR' you can chose not to use the moonwalk item and delete/free up it's PLM data to free up space and have the first item you collect using this moonwalk ram address (09E4) and have the moonwalk activate at the same time, so you can have an item which does 2 things at the same time if you chose to do it this way.
       The moonwalk event pointer is 'FEEE'. ($12 Bytes worth of data) This can also be deleted/freed up if you chose not to use the moonwalk item...do this at pc address 07FEEE ($12 Bytes).
       Now, these are the unused item bits under the moonwalk ram address.

        0008, 0010, 0020, 0040, 0080, 0100, 0200, 0400, 0800, 1000, 2000, 4000, 8000...

Now when using these item bits, instead of using ram addresses 09A2, 09A4, 09A6 or 09A8 you replace it with 09E4 instead for all of these 4 ram addresses, remember since they are not going in the pause item inventory screen, you can get away with using only the one ram address...The ram address you need to change comes a couple of bytes before the item bit you need to add...Also inside your PLM, the pointer right before the item bit, you need to change to F14D. Change the item bit also to whatever your new item is using and the message box ID (the byte after the item bit) by adding a new message box at the same time if needed...
Lastly, Change the item gfx pointer at 3rd byte of the entire piece of plm data to $100 bytes worth of free space in Bank $89...

The 2 new suits are called the LAVA SUIT and the ACID SUIT (obvious what they do)...
Credit goes to black falcon for the acid mod patch to use as a base for my acid suit...

The GFX for items is to be drawn by you at these addresses...

49500 for LAVA SUIT (pc address)
49600 for ACID SUIT (pc address)
49700 for MOONWALK (pc address)

At the moment the items will probably be invisible unless you already have data here on which you need to repoint, so you need to draw the gfx for them since I don't know how you want them to look like...

The new suit items act like a normal item, so they won't have the flash, move to the middle of room etc...

free space used...27082....27189......PLM DATA
                          49500....497FF......ITEM GFX
                          87772....87789.....ACID MOD CODE
                          7FEEE....7FEFF......MOONWALK EVENT

When you have a moonwalk event in room, smile probably won't recognize new event, so it will crash (unless you are using smile RF, which you can add event in MDB State text file)...If you are not using smile RF you need to change room's event to one like E640 temporarily to edit the room and change it back to FEEE in order to play the game...Do this in a hex editor...

There is Jam's message box asm attached that you may have to patch too, this is only for people who don't have any extra items added to their game. For those who already have extra items added, you'll have to reorganize your message box patch to fit the new items in. Message box ID might have to change with the moonwalk and suit items too...

Enjoy...






       
       


albert v.

Hello, I'd decide to upload my custom norfair GFX from Ancient Chozo,  :colonrightv: but this doesn't have the .TTB so you're gonna have to drag and make your own tile table, I hope you guys like it!  :^_^:


PHOSPHOTiDYL

Super Metroid. Add-on patch for scyzer's itemsounds.
Wicked simple to set up.

Say I'm using "click" for recurring items, & "normal" for major equipment.
Message box hijack lets you pick a message length for each & every message.

Just compare & branch, x register holds length, keep the other stuff.

ORG $858490
JSR MessageHack

ORG $85FF00
MessageHack:
PHA : REP #$30 : LDA $1C1F : CMP #$0001 : BEQ ShortBox : CMP #$0002 : BEQ ShortBox : CMP #$0003 : BEQ ShortBox
CMP #$0004 : BEQ ShortBox : CMP #$0019 : BEQ ShortBox
CMP #$0014 : BEQ ShortBox : CMP #$0015 : BEQ ShortBox : CMP #$0016 : BEQ ShortBox : LDX #$0168 : SEP #$20 : PLA : RTS
ShortBox:
LDX #$003C : SEP #$20 : PLA : RTS

PHOSPHOTiDYL

Okay, so autorun seems to be out of the question.
I tried to get a double tap on the directional, no go.
Also don't think run would be good on the jump button.

So how bout diagonals? Diagonally?? Diagon Alley???

LoROM

ORG $909781 : BIT #$0800
ORG $908542 : BIT #$0800
ORG $90DDCA : BIT #$0800

ORG $909781 : BIT #$0800

ORG $90FC00
RunAlt:
LDA $8B : BIT #$0800 : BNE + : RTS
+ LDA #$0001 : STA $0B3E : RTS


To start running, just roll your thumb up.
If you do quick one-ups, you can control how fast you run to a small extent.
Run till blue suit, then roll your thumb down to hold charge.

You'll also need to modify the transition table if you want to spinjump while running like that...
Also works while holding charge now.

T19 needs dw $0000,$0900,$0019/dw $0000,$0940,$0019/dw $0000,$0A40,$001A.
T1A needs dw $0000,$0A00,$001A/dw $0000,$0A40,$001A/dw $0000,$0940,$0019.

I'll leave it to you to figure out. Kejardon's fixed table will make free space for you cause you'll need it.
Or if you want mine I don't mind sending it to you. Whatever keeps you making another awesome hack.

PHOSPHOTiDYL

This is something I threw together for blood+.
There are two pieces to be used as a room's main asm pointer, or whatever you wana do with it.

Pretty much there are random quakes in norfair, & escape explosions without using roomstates.

First is EFA0, which checks for the escape timer.
If the timer is running, escape sequence, else zero out everything.
No need for an alternate roomstate, just put in every room used in your escape sequence.

Second is EFB0, same timer check.
The hijack is part of the vanilla escape main asm.
If the timer is running, vanilla escape sequence.
If no timer, random number generator.
Depending on the value produced, three different levels of "earthquake" aka screen shake.
If no matching value, no random quake, then same thing as EFA0.

EFA0 & EFB0 is just free space in bank $8F.
Idk make some use of it, you don't need a roomstate for every room in the escape sequence now.

LoROM

;===============================================================================================;
;-----------------------------------------------------------------------------------------------;
ORG $8FC12A : JSR EarthquakezI

ORG $8FEFA0
LDA $0943 : BNE VanillaRS : STZ $183E : STZ $1840 : RTS

ORG $8FEFB0
LDA $0943 : BNE VanillaRS : JSR NorfairRumble : RTS
VanillaRS:
JSR $C124 : RTS
NorfairRumble:
JSL $808111 : AND #$FF00 : BEQ EarthquakezI : ASL A : BEQ EarthquakezII : ASL A : BEQ EarthquakezIII : STZ $183E : STZ $1840 : RTS
EarthquakezI: ;//[lite]
LDA #$0001 : STA $183E : BRA Destroythem
EarthquakezII: ;//[medium]
LDA #$0002 : STA $183E : BRA Destroythem
EarthquakezIII: ;//[stronger]
LDA #$0003 : STA $183E : BRA Destroythem
Destroythem:
LDA $1840 : ORA #$8000 : STA $1840 : RTS
;------------------------------------------------------------------------------------------------------------------------------;
;==============================================================================================================================;

JumZhu

Quote from: Cpt.Glitch on August 15, 2017, 02:56:08 PM
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

When defeating the chozo statue boss, the ball shape triggers the transformation, the game will be stuck。
if use the asm

Cpt.Glitch

Quote from: JumZhu on May 09, 2018, 02:51:06 AM
When defeating the chozo statue boss, the ball shape triggers the transformation, the game will be stuck。
if use the asm
Which asm? There are two in your quote.

JumZhu

Quote from: Cpt.Glitch on May 09, 2018, 03:34:16 PM
Quote from: JumZhu on May 09, 2018, 02:51:06 AM
When defeating the chozo statue boss, the ball shape triggers the transformation, the game will be stuck。
if use the asm
Which asm? There are two in your quote.
Better Morph Roll
On the VBA, hit the hackrom, unzero suit into the ball to trigger the opening ability animation

Cpt.Glitch

Quote from: JumZhu on May 10, 2018, 04:27:25 AM
Better Morph Roll
On the VBA, hit the hackrom, unzero suit into the ball to trigger the opening ability animation
I am not able to replicate this issue. Could you make a video showing exactly what causes it?

dewhi100

Super Metroid- Custom suits for new item flags.
I put a skip into the suit palette select code that normally happens, and redirected to free space @ $92:EE00
Apply this to your ROM and assuming no conflict, you'll see suits work as usual.
Two new palettes are provided for your convenience by pointing to what I assume is actually code, you'll need to jump to newSuits instead of vanillaSuits if you want them. Customize each using the item flag and pointer of your choice.
It's dead easy to make any new suits you may also want.

Thanks to PJ ( I think) for hosting the documented code, and SMILE user to pointing it out. And Mentlegen for inquiring about it. And Billy Corgan for the music while I debugged.

JumZhu

Quote from: Cpt.Glitch on May 10, 2018, 11:49:36 AM
Quote from: JumZhu on May 10, 2018, 04:27:25 AM
Better Morph Roll
On the VBA, hit the hackrom, unzero suit into the ball to trigger the opening ability animation
I am not able to replicate this issue. Could you make a video showing exactly what causes it?
a few pictures

Cpt.Glitch

Okay, I now know why it is happening. I will look into fixing it. I recommend not using the asm or not allowing the player to fight charlie while in full suit in the mean time.

JumZhu

Quote from: Cpt.Glitch on May 11, 2018, 12:01:13 AM
Okay, I now know why it is happening. I will look into fixing it. I recommend not using the asm or not allowing the player to fight charlie while in full suit in the mean time.
Kraid Escape Timer.asm Only open the time, but can not take the spacecraft to escape?

Cpt.Glitch

Quote from: JumZhu on May 16, 2018, 06:41:47 AM
Kraid Escape Timer.asm Only open the time, but can not take the spacecraft to escape?
The timer used for escaping does not mater. If you are using the blue ship to escape you must do this.
0x4AFE6 = 4A to 1E
This will make the blue ship open after Kraid dies.

JumZhu

Quote from: Cpt.Glitch on May 16, 2018, 01:36:57 PM
Quote from: JumZhu on May 16, 2018, 06:41:47 AM
Kraid Escape Timer.asm Only open the time, but can not take the spacecraft to escape?
The timer used for escaping does not mater. If you are using the blue ship to escape you must do this.
0x4AFE6 = 4A to 1E
This will make the blue ship open after Kraid dies.
Thanks, it works. It seems that as long as this event is activated, the blue boat will remain active.

Cpt.Glitch

Quote from: JumZhu on May 16, 2018, 10:27:14 PM
Thanks, it works. It seems that as long as this event is activated, the blue boat will remain active.
Indeed. This is because the blue ship doesn't actually check if a timer is going. It only checks for the event. Shouldn't be an issue though. Glad to help. :)