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

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

Previous topic - Next topic

Black Falcon

Door Glitch Fix v1.2

Fixes the nasty visual bug that occurs if Samus touches a door block that is not aligned properly at the edge of the screen.


  v1.1 fixes several issues related to me being bad at coding half a century ago.
  v1.2 implements a much better way of modifying an existing routine, which smoothly scrolls the screen into position until the transition is performed
       
This version can be safely applied over the old one.
There's actually no need to use door asm to correct samus positioning.  Use the Door Editor's "Distance to Spawn" instead.

Uses free space at $82:F710 and $8F:EA00.


Cpt.Glitch

Looks like I put mecha's graphics as the freespace offset by mistake just change it to crocomire's.

Hackmi

Snow/ice tileset I made for a ZM hack, oh and a samus recolour :)

[spoiler][/spoiler]


If used, credit "Hakmi"

Oh and a Alpha Metroid:
[spoiler][/spoiler]

Cpt.Glitch

Updated Serris' patch to un-restrict it to corocmire gfx. In other words, the patch can now be placed anywhere in the rom, allowing you to repoint it easier.

PHOSPHOTiDYL

Figured out how to not have single plasma beam pass through walls when pressed against them by making the hitboxes smaller...

[spoiler]LoROM

;--------------------------------------------------------------;
;//[projectile outofbounds check][plasma_nrm l/r = 8d1f][plasma_chg l/r = 9b63]
;org $90af32 : jsr $b16a   ;//[jsr $b16a]
;org $90afaf : jsr $b16a ;//[jsr $b16a]
;org $90b015 : jsr $b16a ;//[jsr $b16a]
;org $90b123 : jsr $b16a ;//[jsr $b16a]

;org $90b174 : cmp #$ffc0 : bmi $05 : cmp #$0140 : bmi $06   ;//[ffc0/0140/xcheck]
;org $90b18b : cmp #$ffc0 : bmi $ee : cmp #$0140 : bpl $e9   ;//[ffc0/0140/ycheck]
;------------------------------;
org $938cf7   ;//[plasma_nrm d/u]
   dw $0001,$f194 : db $08,$04 : dw $0000
   dw $000f,$a3b3 : db $08,$04 : dw $0001
   dw $8239,$8cff

org $938d0b   ;//[plasma_nrm dl/ur]
   dw $0001,$f2ce : db $06,$06 : dw $0000
   dw $000f,$a3c9 : db $06,$06 : dw $0001
   dw $8239,$8d13

org $938d1f   ;//[plasma_nrm l/r]
   dw $0001,$f0fa : db $04,$08 : dw $0000
   dw $000f,$a37d : db $04,$08 : dw $0001
   dw $8239,$8d27

org $938d33   ;//[plasma_nrm dr/ul]
   dw $0001,$f22e : db $06,$06 : dw $0000
   dw $000f,$a393 : db $06,$06 : dw $0001
   dw $8239,$8d3b
;------------------------------;
org $939adb   ;//[plasma_chg d/u]
   dw $0001,$f194 : db $08,$04 : dw $0000
   dw $0001,$f408 : db $08,$04 : dw $0001
   dw $0001,$f1a7 : db $08,$08 : dw $0002
   dw $0001,$f41b : db $08,$08 : dw $0003
   dw $0001,$f1e9 : db $08,$0c : dw $0004
   dw $0001,$f45d : db $08,$0c : dw $0005
   dw $0001,$f209 : db $08,$10 : dw $0006
   dw $0001,$f47d : db $08,$10 : dw $0007
   dw $8239,$9b0b

org $939b1f   ;//[plasma_chg dl/ur]
   dw $0001,$f2ce : db $06,$06 : dw $0000
   dw $0001,$f542 : db $06,$06 : dw $0001
   dw $0001,$f2da : db $0a,$0a : dw $0002
   dw $0001,$f54e : db $0a,$0a : dw $0003
   dw $0001,$f310 : db $0e,$0e : dw $0004
   dw $0001,$f584 : db $0e,$0e : dw $0005
   dw $0001,$f33a : db $12,$12 : dw $0006
   dw $0001,$f5ae : db $12,$12 : dw $0007
   dw $8239,$9b4f

org $939b63   ;//[plasma_chg l/r]
   dw $0001,$f0fa : db $04,$08 : dw $0000
   dw $0001,$f36e : db $04,$08 : dw $0001
   dw $0001,$f10d : db $08,$08 : dw $0002
   dw $0001,$f381 : db $08,$08 : dw $0003
   dw $0001,$f14f : db $0c,$08 : dw $0004
   dw $0001,$f3c3 : db $0c,$08 : dw $0005
   dw $0001,$f16f : db $10,$08 : dw $0006
   dw $0001,$f3e3 : db $10,$08 : dw $0007
   dw $8239,$9b93

org $939ba7   ;//[plasma_chg ul/dr]
   dw $0001,$f22e : db $06,$06 : dw $0000
   dw $0001,$f4a2 : db $06,$06 : dw $0001
   dw $0001,$f23a : db $0a,$0a : dw $0002
   dw $0001,$f4ae : db $0a,$0a : dw $0003
   dw $0001,$f270 : db $0e,$0e : dw $0004
   dw $0001,$f4e4 : db $0e,$0e : dw $0005
   dw $0001,$f29a : db $12,$12 : dw $0006
   dw $0001,$f50e : db $12,$12 : dw $0007
   dw $8239,$9bd7
;--------------------------------------------------------------;[/spoiler]

mccad

-MOAR ITEMS-
https://www.youtube.com/watch?v=TlreDsnSpA4

'MOAR ITEMS' adds 3 new, unique upgrades to Super Metroid without overwriting any existing vanilla items.

WAVE DASH [spoiler]

While spinjumping, hold RUN and double tap left or right on the DPAD to air dash and become temporarily invulnerable.[/spoiler]
GAUSS MISSILE [spoiler]

A direct upgrade to your standard missiles.Gauss missiles travel significantly faster and preform 1.5x damage. [/spoiler]
HAMMER BALL [spoiler]

While midair in the morph ball, hold down and press the ANGLE DOWN button to preform an incredibly fast downwards shinespark. [/spoiler]


The ASM file is very user friendly, and any used freespace or ram addresses can be adjusted easily to accommodate for other ASM files which you have already applied to your hack. This also includes 9 custom plms, which are normal, chozo orb, and hidden shot block item plms for each item. Custom message boxes for each item are not included, and its up to you to use any one of the many existing resources to make new custom message boxes for each item. Otherwise, you can change their message box index within to file to use whatever vanilla message box you want.


PHOSPHOTiDYL

If kraid gets killed b4 rising up, this code will make sure the camera isn't locked to the first screen.
Also bg removal if you're into not having a background for bossez, & a change in screen shakez.

LoROM

org $a7ada0 : jmp $adb0 ;//[no kraid room bg]
org $a7a981 : jmp $a991 ;//[no kraid room bg]

org $a7aa8e : lda #$0001 ;//[0005/better quake]
org $a7c052 : lda #$0001 ;//[0004/better quake]

org $a7c58e
lda #$c715 : sta $0fa8 : stz $0941 : jsl $a0ba71 : jsr kscroll

org $a792b5 ;//[unused foot hitbox]
kscroll:
lda #$0202 : sta $7ecd20 : lda #$0101 : sta $7ecd22 : rts ;//[scroll]
padbyte $ff : pad $a792d1 ;//[]



Cpt.Glitch


PHOSPHOTiDYL

Don't know if there's a debug routine that already does this, but holding L+R+START+SELECT will now perform a reboot.

LoROM

;==============================================================;
;--------------------------------------------------------------;
ORG $828976 : JSL coldboot
ORG $90ff9c ;//[$000c bytez]
coldboot:
lda $8b : cmp #$3030 : beq + : rtl
+ jml $80841c
;--------------------------------------------------------------;
;==============================================================;




nodever2

SM: Reserve Tank Bugfixes

This patch does a few things:
* Prevents the loss of invincibility frames when auto reserves activate (no more getting hit twice!)
* Prevents heat damage when auto reserves activate
* Prevents a crash when pausing while auto reserves are active.
If you think of other ways reserves can be fixed, let me know! This patch has been updated a few times to tweak some things to continue to make reserves less sucky.

No freespace is used.
Credit to Lioran for inspiration, PJBoy for bank logs and help, and Benox50 for another bugfix (see update log below).

UPDATE 1-11-2020: You also no longer take heat damage during reserves! Still no freespace used.
UPDATE 3-17-2020: Thanks to Benox50, this patch now prevents a crash that can result from pausing the game on that same frame that auto reserve tanks activate. Also renamed this patch because it's now more of a general bugfix; if you have any further suggestions for bugs that can be fixed about reserves, let us know in the metconst discord!


Cpt.Glitch

Forgot to post this. ZM Arachnus but uses actual freespace instead of croco graphics.

nodever2

SM: Torizo Checks Speed

Just made this for my hack, might as well post it. This patch makes Torizos check their speed variable as if it was the area bit. Basically meaning, if you want them to act as if they are in area 0 (Crateria), and have Bomb Torizo behavior, set the torizo's speed value to 0000 in the enemy editor.
If a torizo's speed variable is nonzero, it will act like Gold Torizo.

This allows you to use Bomb Torizo in any area, or use Gold Torizo in Crateria if that's your thing.

No BTS required :heheh:

Uses free space in bank $AA, and uses extra enemy RAM ($7E7804,x). Also includes some hex tweaks that you might want to look at that are DISABLED by default but are very helpful.

Update 2-11-2020: If this code wasn't assembling for you because of line 51, it should now.

Mettyk25jigsaw

Special Beam Block Items:

What it does:

Creates 4 special beam items very much along the same lines of my disengager block items but instead of being able to
bomb the 2x2 tile, you shoot them once item is collected but with a specific beam.
   So basically there are four items, one for wave beam, one for ice beam, one for spazer beam and one for plasma beam.
The special beam block items must be collected in order to be able to shoot these special beam blocks with their
respective beam. So you might find and collect the ice beam for example in your hack, yeppee, congrats for you, however
it won't allow you to shoot the special beam ice block at this stage, boo hoo. Well that is until you also find the
item called special beam ice, and then you will be able to shoot the special beam ice block and destroy it with the ice
beam, yeppee.

PHOSPHOTiDYL

Here's something you might like.

[spoiler][/spoiler]

The key here is skipping the zebes explosion & samus ship with the time.
Well you don't need to skip actually, I'm using different ship gfx though.
It'll go to credits, then samus, then item %/game time/see ya next mission.

lorom

;--------------------------------------------------------------;
;org $828506 : lda #$de80 ;//[no planet explosion]

org $8be7b5 : jsl screwcreditz
org $8bfd00
screwcreditz:
lda #$381a : sta $7e319c : sta $7e31dc : sta $7e31a2 : sta $7e31e2 ;//[:]
ldx #$0000 : lda $09e0 : jsr timemath
ldx #$0006 : lda $09de : jsr timemath
ldx #$000c : lda $09dc : jsr timemath : rtl
timemath:
sta $4204 : jsr mathone : jsr mathreset : lda $4214 : jsr tricktimeone
lda $4216 : jsr tricktimetwo : rts
tricktimeone:
asl a : asl a : tay : lda $e741,y : sta $7e3198,x : lda $e743,y : sta $7e31d8,x : rts
tricktimetwo:
asl a : asl a : tay : lda $e741,y : sta $7e319a,x : lda $e743,y : sta $7e31da,x : rts
mathone:
sep #$20 : lda #$0a : sta $4206 : rts
mathreset:
rep #$20 : rts
;--------------------------------------------------------------;

kkzero

FUSION
Asm and music resources made for my old unfinished hack, Evilution.

Details of the non-music asm:
bombtank - Turns the PB tank into an upgrade that gives normal bombs on first obtain, then has room for one PB tank.
chargelvl1 - Makes Security Level 1's lock give charge beam. I think this one also gives super missiles on Level 2.
fansandpercentage - Credit to CaptGlitch for the bomb fans, and Mar99troid for the custom percentage parts. My addition was a clipdata that set the event to right before BOX once hit with a morph ball bomb.

dewhi100

Edit- The original only worked for left-facing Kraid Jr. New file with both directions.

Super Metroid- Fake Kraid can only be damaged by shooting it in the open mouth. For sanity, you can adjust its animation timers to hold the mouth open longer (default is 160% original duration).

Mettyk25jigsaw

Hi Everybody!

I made a Snow FX Patch for anyone to use.
I also uploaded the snow Tileset in my WIP Metroid Blackhawk Indi hack for anyone to use too.
Also, there is a video of it in action below.

!!!IMPORTANT NOTE!!!

Please read the readme file attached, it's got things you really must read...

Enjoy!

https://youtu.be/I3pr5xoAmX4

I noticed a bug in my snow patch when Samus goes to use Xray in a room with Snow FX.
This is a fixed version.

SnowFXPatchV1.1

Mettyk25jigsaw

I'm just letting everyone know who has already downloaded my SnowFXPatch that I found a bug in it.

Once Samus uses the Xray scope in a snow room, there is a gfx glitch.

I have replaced the buggy patch with a new fixed version in my previous release post which is the one above.

Cheers...

Hackmi

Extended version of that ice tileset:
[spoiler][/spoiler]

And BG tiles:
[spoiler][/spoiler]
It's not that polished so may need a bit of work, but honestly it's gone far enough imo.
Hope it's of use to people.

dewhi100

Single-room elevator. Use a regular elevator enemy and add #$1000 to Speed. Moves between original position and Y value in Speed 2.
[spoiler=setup][/spoiler]

Edit: Fixed a loophole in vanilla logic that allows Samus to use an elevator from ANY 0000 door tile, even if the elevator is not located there. She must now be standing on the elevator in order to use it.

Guess what else? Supers cost 5 missiles. Also known as Hyper Metroid missiles. Prime series too.

Since nobody has posted on top of me yet, another morsel for you all. Quick beam swap. Hold Aim Down + Item Cancel, which unequips all your non-charge beams. Keep holding those, and use the D-pad to re-enable the beams of your choice:

Up = Spazer
Down = Ice
Left = Plasma
Right = Wave

Spazer and Plasma will each unequip the other for safety reasons. BUT the safety code is clearly marked so that you can turn it off if you so desire.


Black Falcon

FX Surface Reflection Concept


[spoiler][/spoiler]
This asm patch creates reflections at the current FX Surface level, creating a mirror effect using duplicate sprites and HDMA for bg layers.
Shoutout to Dman for inspiration, and PJBoy for the disassembly.

[spoiler=Video might contain traces of cringe]https://www.youtube.com/watch?v=Mn4FSh-7rwc[/spoiler]

Also I tried a different approach to video presentation, putting more effort into editing and commentary.

Have fun :)

P.S.: use Asar to compile, xkas won't work.
Edit: Due to a very stupid Asar quirk, you need to rename the .smc ROM extension to .sfc before applying, otherwise it'll assume the file is headered.

nodever2

Quote from: Black Falcon on June 22, 2020, 05:45:23 PM
FX Surface Reflection Concept


[spoiler][/spoiler]
This asm patch creates reflections at the current FX Surface level, creating a mirror effect using duplicate sprites and HDMA for bg layers.
Shoutout to Dman for inspiration, and PJBoy for the disassembly.

[spoiler=Video might contain traces of cringe]https://www.youtube.com/watch?v=Mn4FSh-7rwc[/spoiler]

Also I tried a different approach to video presentation, putting more effort into editing and commentary.

Have fun :)

P.S.: use Asar to compile, xkas won't work!
This is amazing, Black Falcon! This looks good enough to be worth figuring out how to use Asar for...

P.JBoy

Worth mentioning that if you're using asar, your ROM extension must be `sfc` otherwise asar will assume your ROM is headered >_>