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

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

Previous topic - Next topic

Zhs2

After several days of deliberation (some discussion and mostly my laziness,) I present to you...



[spoiler=Unreadable?]The Great Metroid Construction Collaboration Hunt!™[/spoiler]

Basically, it's a topic for one to post any and all resources for hacking majors that they may have and want to allow others to use freely, such as graphics files, palettes, tutorial documents, pieces of assembly code, and public patches. There are a few rules:

- Please post a short description for each and every resource you attach to your post (screenshots are optional, but highly preferred!) We won't know what you're posting unless you tell us! State also whether or not you'd like for others to credit you for the usage of said resource, and we will put that information up on your resource link when we get around to posting it on the main site.

- If you're posting multiple files that make up one resource (i.e. .gfx/.bin + .pal/.tpl/.fpl,) please zip the files all up together in one zip/rar file and THEN upload as an attachment. Try to keep everything orderly, because then it makes it easier for you AND us! :grin: Also, if you do go this route, feel free to include a simple text document stating whether or not you'd like credit for said resource!

- Please refrain from posting content that's not yours and that you don't have permission to post for someone else. As stated in our Recognized Forum Crimes™, we don't take plagiarism here lightly, and should a claim come up about content that you've contributed, we will have to take the matter into our own hands and investigate. We don't want to have to do that, so please don't do it in the first place! :icon_sad:

And now that that's all out of the way... START CONTRIBUTING!  :icon_bounce:

squishy_ichigo

1st Contribution! :D

All my appendix's in one nice little .rar!
These are a variety of useful Super Metroid tidbits.
I will update the RAR when ever I make a new file or edit an old one.
--------
1/20/10
A - Boss Palettes - Updated 11/23/09
B - MDB Pointers
C - GFX Pointers
D - Ending Scene Palettes - Updated 7/21/09
E - PLM Item Palettes - Added 1/20/10
--------
If you EVER find an error in something I write, please send me a PM with proof of error. 
I'll get it fixed ASAP.

personitis

Actually, I had the first contrbutation earlier in another topic, but w/e. :lol: I don't know if you grabbed it earlier Zhs2 but here:

A guide I typed up that that people will hopefully be able to point newbies to.

squishy_ichigo

Timer Change.ips
unheadered
----------------
Changes end game display to show minutes/seconds instead of hours/minutes

I'd suggest only using for VERY small hacks such as one room hacks
----------------
[spoiler=FOR ADVANCED PEOPLES]
Changes to code:
$05F3D6: EO -> DE
$05F3F8: DE -> DC
[/spoiler]

Zhs2

Ahh. Here's something for the Metroid hackers - a thingy table that will parse the standard text in Metroid correctly. I've used it before to read off the escape text, so it works a charm!

I actually almost forgot it existed. ;(

squishy_ichigo

Palette Hunting Guide
.rtf file
-------------------------
A step-by-step guide to editing palettes squishy-style

written for Grime, distributed for the community
-------------------------

ASM Mnemonics
.rtf file
-------------------------
All the 65816 opcodes and a short description of what they do.
Copied from the [423]Programmanual

written for DChronos, distributed for the community

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

ASM Instruction List
.rtf file
-------------------------
Documents ALL 65816 opcodes hex values.
Included is which addressing modes each uses, and how many bytes are used for the operands.
Copied from the [423]Programmanual

written for DChronos, distributed for the community

Black Falcon

Some of you know what this patch does...
Others don't ...hehe
Would be awesome to see this in crazy hacks :grin:
I only have to say:
Thanks PZ_Powa!
How to use it: get to a missile reload station, refill your missiles and shoot your beam!
MOD POWER!!!
[spoiler=huh? MOD?]Missile Of Destruction!!![/spoiler]

DSO

Finally here, it's my IPS version of the palette blend patch.

This patch lets you change the palette for your tileset by simply changing the palette blend in the FX. No longer do you have to waste multiple tileset spots just for an alternate palette, vastly opening up the possibilities for your hack. Of course, I can't make your palettes for you, so currently they're all blank slates.

Blends 80-BF will activate the code, thus giving you 64 alternate palettes that can be shared with all your tilesets. I could've added more, but that would've made this patch use up more than one bank, and I highly doubt that anyone will ever need more than 64. The blends will pull the area palette from the following locations:

[spoiler]I'm a Genius offsets for where each palette blend will load the new area palette. Second box will be 7F (For 8 full rows).

Unheadered, naturally.

$4B0FF ;80
$4B21F ;81
$4B33F ;82
$4B45F ;83
$4B57F ;84
$4B69F ;85
$4B7BF ;86
$4B8DF ;87
$4B9FF ;88
$4BB1F ;89
$4BC3F ;8A
$4BD5F ;8B
$4BE7F ;8C
$4BF9F ;8D
$4C0BF ;8E
$4C1DF ;8F
$4C2FF ;90
$4C41F ;91
$4C53F ;92
$4C65F ;93
$4C77F ;94
$4C89F ;95
$4C9BF ;96
$4CADF ;97
$4CBFF ;98
$4CD1F ;99
$4CE3F ;9A
$4CF5F ;9B
$4D07F ;9C
$4D19F ;9D
$4D2BF ;9E
$4D3DF ;9F
$4D4FF ;A0
$4D61F ;A1
$4D73F ;A2
$4D85F ;A3
$4D97F ;A4
$4DA9F ;A5
$4DBBF ;A6
$4DCDF ;A7
$4DDFF ;A8
$4DF1F ;A9
$4E03F ;AA
$4E15F ;AB
$4E27F ;AC
$4E39F ;AD
$4E4BF ;AE
$4E5DF ;AF
$4E6FF ;B0
$4E81F ;B1
$4E93F ;B2
$4EA5F ;B3
$4EB7F ;B4
$4EC9F ;B5
$4EDBF ;B6
$4EEDF ;B7
$4EFFF ;B8
$4F11F ;B9
$4F23F ;BA
$4F35F ;BB
$4F47F ;BC
$4F59F ;BD
$4F6BF ;BE
$4F7DF ;BF[/spoiler]

As for making the palette, you should be able to make it in the graphics editor in a backup ROM in your tileset, export the palette file in the graphics editor, then go to the specified location in SABS and re-import. Note that this has to be done in SMILE 2.3, as earlier versions won't fully import the file.

Edit: For those wondering, the Xkas version with glow effects and other realtime changes is still being worked on and is not yet done.

Double edit: this patch is all in bank $89.

zephyrtronium

PyPS 0.6 - Python-written utilities for handling IPS patches. Includes a completely rewritten version of my old IPS header fixer as well as an applier, with a patch creator on the way. See the included readme for more info.

Also known as SUMS: Someone Use My Stuff (please).

I haven't tested it myself yet, having no IPS patches on this computer, but I didn't do that much coding after midnight, so it should all work. You might want to make backups first, just to be safe, though. And if you do use it, please tell me whether or not it worked (this request only applies for pre-1.0 releases... >_>).




PyPS 0.9 - added patch creator and fixed a fatal typo in the patchfix function; still untested. 1.0 should be coming soon, with support for a config file.




And, what do ya know? Version 1.0 is here. I'll put up both the .zip, which contains the config file, and the config file again, since the script will break if you mess it up. The next version of this will either improve some of the algorithms or have a GUI; which one depends on how easy a time I have learning Tkinter.

squishy_ichigo

A few more docs I've posted else where, but aren't in the "document" section of the main site.

edit: I ought to give credit to DSO.  Since he did most of the work on that second one, and without his finding of the haze changing, that second document wouldn't be around either!

edit2: added something for Grime :P

Black Falcon

For those people who played Crys' Darkworld hack and now think 'I wanna do that, too :3' there's a solution:

Metroid Prime 2 blocks.

This patch makes Air-fool X-Ray with BTS of 03 healing samus when touching,
BTS of 04 dealing damage to samus depending on which suit is equipped:
No suit: massive damage
Varia suit: less damage (like the dark suit in Prime 2, slowly but constantly) << this is more Echoes-like than
having the suit divisors.
Gravity suit: no damage (like the light suit)

If the BTS value is 05 it takes always damage, no matter what suit you have equipped
(for free use on other ideas).

It also changes the default palettes for power suit, varia suit and gravity suit.
BTW: this does not change item graphics, text or palettes like charging, etc.

Credit goes to Crys for the idea and the dark world concept
and DSO for helping him.
I only made the patch because I can do it!  :grin:

Edit: unheadered btw


personitis


Black Falcon

Quote from: person701 on September 06, 2009, 01:24:03 PM
Anyone got a boost ball patch?
Yes here it is
Credit to Insom, of course
Edit: again unheadered

squishy_ichigo

ZM GFX.rar
Contains 4 tilesets and coresponding palettes.
The gfx were ripped in the same order they are stored in Zero Mission, that's why they may appear jumbled.

Good Luck

GF_Kennon

Quote from: Black Falcon on September 06, 2009, 02:01:08 PM
Quote from: person701 on September 06, 2009, 01:24:03 PM
Anyone got a boost ball patch?
Yes here it is
Credit to Insom, of course
Edit: again unheadered

It would be much better to give the original zip, thats what insom would have wanted

GF_Kennon

Sorry for double post but i have new content, its the reef tileset from Metroid Fusion.



Edit: hahaha, would help if i attached the damn thing  :icon_razz:

Edit2: ok so i decided i would attach some more stuff



Edit3: Ehh, i put an updated reef tileset up and also something i had been withholding for quite a while, Unique CRE without ASM.

Edit4: Oh look, i ripped another tileset, Chozodia6, now post damn it.


Sylux

Kennon, did you make those last two yourself? If so, you have forever put me (and most other spriters) to shame. That's professional tier stuff right there!

personitis

If you did a little reading Sylux, you'll find he ripped them. =) But nice rips GF, especially the Sec4 one. I've always liked that tile set.

zephyrtronium

I made a patch FOR FUSION.

fnormal_charge.ups - makes it so that you fire a charge shot instead of a normal shot. This isn't so much a resource as it is a cheat, really.

I'm releasing it as a UPS patch for a number of reasons, the main one being that it enables this as a sort of testing thing: UPS has bi-directional patching, so you can apply it while you're testing to just skip through stuff, then apply it again to remove the effect completely for release. Another major reason why this isn't an IPS is because IPS sucks.

[spoiler=Technical Info]0x005CA4: 2201: mov r2,1h
becomes: 2205: mov r2,5h
[/spoiler]




Edit: FOR MZM.

znormal_charge.ups - See above.

[spoiler=Technical Info]0x007D1E: 2401: mov r4,1h
-becomes: 2406: mov r4,6h
0x007DFC: 2001: mov r0,1h
-becomes: 2006: mov r0,6h; for suitless
[/spoiler]




Edit: FOR MZM.

zenemy_vuln.ups - Makes all enemies always vulnerable to all weapons. I hope.

Note: this can cause unexpected things to happen when you kill enemies that aren't intended to ever die.

[spoiler=Technical Info]0x050370: B500: push r14; 1C03: mov r3,r0
-becomes: 20FF: mov r0,0FFh; 4770: bx r14
This works by changing the routine that gathers an enemy's resistance data to make it always return 0xFF: no immunities.[/spoiler]


zephyrtronium

This is the patcher created by the designer of UPS, with both Win32 and Linux binaries.




Edit: I've decided to upload important.txt here. It's basically all my growing knowledge of things in ZM that can be changed in a hex editor. Some of it requires debugging and/or knowledge of THUMB, and some (i.e. palettes) requires special knowledge.

Edit again: apparently it didn't like my .txt, so I'm copypasting the contents of important.txt here.
--PHYSICS--
max non-boost speeds (nop for infinite): 00829a and 0082ae
on-ground bombjump height: 006b3a
in-air bombjump height: 006b00
table having something to do with pose movement: 007184
above table found from bl starting at 007164
table for what to do on hurt based on pose: 006edc
pose to enter when hurt: 006fa6
on-ground knockback vertical velocity: 006fc0
in-air knockback vertical velocity: 006fca
knockback horizontal velocity towards left: 00ecb0
knockback horizontal velocity towards right: 00ef26

--PALETTES--
power static: 2376a8
power unmorph 1: 237848
power unmorph 2: 237868
power shortshot: 237708
power longshot: 237728
power damage/sa 1: 2377a8
power damage/sa 2: 2377c8
power short charge 1: 237a68
varia static: 237be8
varia longshot: 237c68
varia unmorph 1: 237d88
varia unmorph 2: 237da8
varia damage 1: 237ce8
varia damage 2: 237d08
grav static: 2383c8
zero static: 2387e8
normal shot: 3270e8
long shot: 327108
ice shot: 327128
wave shot: 327148
emo shot (?): 327168
chozodia door: 5e0040
mb room sprite: 2fe230
frozen enemies: 32baa8

--ENEMIES--
zoomer speed: 01693a
geemer speed: 016940
ai pointer list start: 75e8c0
stat structs? 2b0d68
projectile stat structs? 2b1be4
space pirate projectile damage: 2b1d72
ridley entry point vertical: 032548
ridley entry point horizontal: 0324d0-0324d4
interaction type table: debug around 00ea0e (00ea20?)

--TEXT--
brinstar area popup text: 442e4a
others follow

--OTHER--
missile door health: 345cb6
starting pose: 060608
starting horizontal position: ([33e60a]<<6)+(([33e60f]+8)<<2)
starting vertical position: 0606cc
starting area/room/door ids: 060f5c
circle of light: fg pointer to 0874d9c0, bg0 decomp to 45 (not all tilesets)
bomb timer 1: 05205c
bomb timer 2: 0521a2
bomb timer speed 1: 05218e
bomb timer speed 2: 0521b6
bomb status changer: 052062 (2002 to skip second timer)
beam gfx: 3271ac
sound id when hit: 006fd2
invincibility timer when hit: 007020
shinespark timer when hit: 00701e
sound bl: 002a18

--RAM (0300)--
free ram: 5b30-6fff (?)
missile switch button: 168c
diagonal aim button: 168e
start menu button: 1690
ammo switch button: 1692

zephyrtronium

I made a utility for doing various things with IPS patches. ipspi (IPS Python Interactive) is currently command-line only and is very reminiscent of my old PyPS, except this time it's been thoroughly tested and has no bugs I'm aware of. It has the capability to do two things I'm not aware of any other IPS patcher doing: it can apply patches with an added offset, with the same purpose as the patch fixing feature of PyPS; and it can "force" patches, which is basically creating a patch not by comparison of two files but directly from one file with a given offset and length or a list of offsets and lengths.

ipspi can be run under any system with Python using the source distribution. Windows users can also take advantage of the executable distribution, which does not provide the source directly but also should not require any dependencies - just double-click.

As for how to run it, with either distribution you can simply launch it to get a command prompt thing, or you can run from the command line itself; see the readme for more information.

Source
Win32 Executable

Let me know if anyone has any problems.

To do list for this:
  • Patch logging (this is technically a py_libips todo)
  • Make a GUI
  • Add UPS functionality

Black Falcon

I finally made a new patch because I can:
     - makes gravity suit to be immune against acid (but not against lava!)
     - makes varia suit to be immune against lava (but the physics are still the same when samus is in lava)

If there are any bugs with it pm me and I'll try to fix it.
Have fun!  :grin:

Edit: for unheadered btw
and it uses free space at $90F640

zephyrtronium

I made a SNES-specific utility, or more specifically, a ZSNES-dependent utility. palettez is a Python script for finding palettes within a SMC using a ZST, much like Squishy Ichigo's guide. I'm too lazy to document it or anything, so you guys will have to just figure it out.

GF_Kennon

http://www.metroidconstruction.com/KraidKar.ips

KraidKar, turns Kraid into a KraidKar, totally humorous but you cant kill him though. apply with love.