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

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

Previous topic - Next topic

OmegaDragnet9

Tonight I restored all the latest revisions of my attachments to this thread. What I contributed is back where it should be.

It would be great if my fellow metconsters would follow suit.

Much can be salvaged before February of  2024 (on the Wayback Machine) but there was an explosion of contributions from this year that I'd rather not lose to the sands of time.

OmegaDragnet9

Metroids Stay Dead
Speed 1 Version

(Was trying to figure out how to do this for a while, and seeing what Mystii was doing with the Zebetites made me check how the vanilla game used the Speed 1. So credits to Mystii, Scyzer and P.JBoy for helping me figure this out.)

If an event matching the metroid's Speed 1 is set, the metroid will not respawn when you reenter a room. (This is Parameter 1 in SMART.)

The exception is for Event 00. Why? Because every gray door sets Event 00, and would result in no unedited metroids spawning if a gray door were unlocked at any point before you entered the room.

This gives you the option to have returning metroids, if you so desired.

This is best used with JAM, dewhi100, or my own room-clearing event PLMs.

It might be some time before this gets added to resources, mainly to make sure there aren't any bugs I missed.

Assembles in xkas and asar.

Tundain

Torpedo enemy

This one is featured in V E R T I C A L I T Y.

Intended for usage with the SMART editor.

More info in the ASM file.


OmegaDragnet9

Transparency Line Fix

P.JBoy's edit of Black Falcon's Transparency Line fix that was featured in the Super Metroid Mod Manual.

Credits to Black Falcon, P.JBoy, and Neen (for explaining the changes.)

Another set of edits I added that should be discussed:

-Commented out the transparency fix for acid (there is a better fix that affords palette tweaks, not featured here.)

-Added another row of water tiles from elsewhere in the tilemap. This is completely necessary because I encountered an issue where a transparent row of air tiles replaced the top row of water. What would happen is Samus would splash in and out of air, and the water physics were still active in that row of air. This corrects that problem.

(I know before the Metconst purge I thought I saw a similar fix floating around.)

OmegaDragnet9

Shared with permission from Meowmaritus:

Acid Fix

Meowmaritus was kind enough to share a fix for the transparency line and the background for the acid imposing on the air above the acid.

Similar to squishy_ichigo's Acid Mod, this allows the acid to be set to any palette blend instead of just using the Power Bomb door colors.

Why is this to be used instead of the original acid mod?

The original acid mod allowed the acid palettes to be chosen much the same way as lava in the FX editor. However, the lava palette blend was only setup to handle two colors, as introducing a third color would result in the background being tinted that very color. (The effect is actually very ZM looking and does look cool with lava.)

The problem with acid is you could either just have the whole room filled with the acid background, or you were forced to have the acid rely on two colors. The former was too overpowering and the latter was too weak looking, and  the result was inferior to simply leaving the original door color intact.

Code entirely by Meowmaritus. The only thing I provided is the palette blend table (courtesy of P.JBoy) as well as the legend for the custom palette blends. (Palette blends taken from my current project.)

Image and video links for reference:



https://imgur.com/UN8n7Bj
https://i.imgur.com/E5uZBEp.mp4
https://i.imgur.com/exEkKSN.mp4

Not shown in the videos, but the vanilla acid colors are provided in the palette blend table.

Use blend 82 in the FX editor for vanilla acid.
88 for a richer acid.
8E for a dark green acid.
94 for a dark blue acid.



OmegaDragnet9

I recommend people use Meowmaritus' acid fix, but I figured it would be worthwhile to provide my disassembly of squishy_ichigo's acid mod. (For documentation's sake.)

lorom

;Disassembly of squishy_ichigo's acid mod

org $8A8840

DW $180F,$180F,$180F,$180F,$180F,$180F,$180F,$180F,$180F,$180F,$180F,$180F,$180F,$180F,$180F,$180F
DW $180F,$180F,$180F,$180F,$180F,$180F,$180F,$180F,$180F,$180F,$180F,$180F,$180F,$180F,$180F,$180F

org $8A8880

DW $1850,$1851,$1852,$1850,$1851,$1852,$1850,$1851,$1852,$1850,$1851,$1852,$1850,$1851,$1852,$1850
DW $1851,$1852,$1850,$1851,$1852,$1850,$1851,$1852,$1850,$1851,$1852,$1850,$1851,$1852,$1850,$1851

org $8A88C0

DW $1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853
DW $1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853
DW $1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853
DW $1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853
DW $1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853
DW $1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853
DW $1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853
DW $1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853
DW $1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853
DW $1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853
DW $1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853
DW $1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853
DW $1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853
DW $1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853
DW $1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853
DW $1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853
DW $1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853
DW $1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853
DW $1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853
DW $1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853
DW $1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853
DW $1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853
DW $1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853
DW $1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853
DW $1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853
DW $1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853
DW $1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853
DW $1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853
DW $1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853
DW $1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853
DW $1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853
DW $1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853
DW $1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853
DW $1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853
DW $1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853
DW $1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853
DW $1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853
DW $1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853
DW $1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853
DW $1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853
DW $1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853
DW $1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853
DW $1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853
DW $1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853
DW $1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853
DW $1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853
DW $1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853
DW $1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853
DW $1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853
DW $1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853
DW $1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853
DW $1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853
DW $1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853
DW $1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853
DW $1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853
DW $1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853
DW $1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853
DW $1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853
DW $1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853
DW $1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853,$1853


OmegaDragnet9

Not my code. This is a reupload of HAM's Beam Glows. (Reuploaded because of broken forum links.)

OmegaDragnet9

Enemy Deletion Prototype

Room ASM that deletes all enemies in real time if a particular event is set. (Event PLM not included.)

It does have a PLM; and it serves only to have a PLM argument and set that value to a specific RAM address. (If you have an Event PLM, make sure both PLMs have the same low byte.)

The Room ASM ($FCC0) reads that and determines which event to check against (using the value determined by PLM $FEC0. Make sure you place that PLM in the room editor.)

Known Issues:

1.) It is best to make sure enemies needed matches all the enemies in the room (or you will have a goofy jumpscare when they suddenly vanish.)

2.) I have fast door transitions and noticed that enemies appear in the room momentarily when the room is loaded.

3.) Enemies not set to process off-screen, even after the room is loaded, their graphics can be visible for about a frame when you walk into a new screen.


;This has some issues and requires a bit of setup.
;Might be worthwhile to save on roomstates.

lorom

;Event PLM not included. The PLM that is included only serves to provide a PLM argument
;by which the Room ASM can detect if a certain event has been triggered.
;Otherwise you'd be left with a hardcoded event OR be stuck with only the Room Index (which does work well enough.)

!A7Freespace = $A7FF8A

org $8FFCC0
;Room ASM

;LDA $079D ;Use this or the next line, but not both.
LDA $1C21
JSL $808233
BCC END
JSL BankA7

END:
RTS

org !A7Freespace 
BankA7:
JSR $A943    ;Sets Enemy Properties as dead
RTL

;So what I gather of thise routine in Bank $A7, the reason all the enemies seemingly vanish at once
;is because it is summoned by the Room ASM once a frame and appears to be running down a list of the enemy index.
;I don't believe it's actually deleting them all at one time.

;----------------------------------------------------


org $84FEC0
;This goes in the room. It's only purpose is to have a PLM argument and store that to a value in RAM
;The Room ASM takes that value in RAM, and determines the event to trigger the deletion of all the room's enemies.

DW Setup
DW InstList

Setup:

PHY
LDA $1DC7,y        ;PLM variable (event # to set)
AND #$00FF
STA $1C21
PLY
RTS

RTS

InstList:
DW $86B4

;KNOWN BUGS

;If you have a fast door transition you can see enemies for half a second.
;Additionally, if you do not set the enemies to process offscreen, the graphics will remain for about a frame where
;they would normally spawn in game.