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

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

Previous topic - Next topic

JAM

9. Event Doors
This patch lets you to make grey doors flashing after certain event has happened without using room states. You even can be in the same room where event has happened to get effect. It's working like Dachora/Eticoons saved check because it's based on it with exception that any event can be used.

[Low] byte is event to check and part of door shell index in the same time. Keep track on your indexes carefully. You can use 2 doors for every event in original ROM or 8 of them if you've used SuperMap patch, because it expands door bit array in 4 times. [High] byte should be 18 or 19 for original ROM of from 30 to 37 if you have used SuperMap patch. Read text files, related to doors when setting [High] and [Low] bytes.




10. SuperMap
This patch lets you to use every map sector of every area, including Debug. Code is based on Scyzer's Save / Load patch, so credits goes to her. Besides of that, collected item bit and open door bit arrays are expanded in 4 times allowing to have 2048 items in your hack and 2048 doors. The rest of SRAM was compressed, so now every single byte of SRAM is finally used.

This version doesn't using free space at all, because new save map and load map subroutines are placed where they are by default. Almost. Load map subroutine is moved a bit. To be able to load the game through quickmet in SMILE, patch Quickmet.bin with QuickMetPatch.IPS. There is also a reverse patch, so don't worry.

Saves from the hack before patching will not be loaded by the hack after patching because SRAM Map was changed. If you need to do it, save a single savestate before saving in unpatched hack and load it in patched hack.

RAM modification
7E:D7C0 - 7E:DA5F    RAM that is saved to SRAM
7E:D7C0 - 7E:D81F    SRAM copy of 7E:09A2 - 7E:0A01
7E:D820 - 7E:D83F    Event bit array. Only $100 of them can be used, so their array is shortened
7E:D840 - 7E:D93F    Item bit array. Indexes from 000 to 7FF can be used
7E:D940 - 7E:DA3F    Opened door bit array. Indexes from 000 to 7FF can be used
7E:DA40 - 7E:DA4F    Used elevator(Odd bytes) and save point(Even bytes) array, indexed by area
7E:DA50 - 7E:DA57    Map Station byte array
7E:DA58              Value to use in 0998. Kinda used to keep track of what part of the game we're at. 5 = main, 22 = escaping Ceres / landing on Zebes, 1F = starting at Ceres
7E:DA5A - 7E:DA5F    Relocating of 7E:D916 - 7E:D91B   
7E:DA60 - 7E:DE1B    Totally unused




Ceres & Debug usage was not working correctly. I understood recently that SMILE ignoring ROM's visibility array poiters and use internal ones instead. Because if that, code at $11E27 will be overwrited by Debug's visibility array after editing and saving Debug map. So, this patch is replaced with another one made at 11.11.11 to give me power of 11.

Jump ahead to download the fixed version of Ceres & Debug usage patch


11. Text area names centering
A patch that centers text area names on the map in 2 versions: with or without centering icons for areas 06 and 07.

Patch file TextAreaNamesCentering.IPS will centering text icons for usual areas except Wrecked Ship (it's already centered).

Patch file TextAllAreaNamesCentering.IPS will centering text icons for all areas except Wrecked Ship (it's already centered), including newly coded text icons areas 06 and 07 that are provided by Ceres & Debug usage patch (it should be installed first).

Screenshots:



A_red_monk_called_Key

#426
here is some info on editing the file select menu layer2 easily. this also includes changing the Japanese text to say (NONE) so you can use the extra space for graphics.



(If you use this I don't need credit for it)

Scyzer

Just put this up onto my site. It's a new HUD styled like the HUD from Prime, with an Energy Bar, Charge Bar, 2 equipment icons, and a map. Both icons are navigated with separate inputs (Select and Cancel), but you can still only use one at a time.

The ASM file only includes the input system and HUD routines, as well as the necessary hijacks to work with the more variable values for Samus's currently selected item ($09D2).

Only one beam can be equipped at a time, not including charge. Beams cannot be mixed via the HUD or Status Screen, though code exists to run the beams without crashing anyway if the player should somehow find a way to combine them.

Different sounds can be used for each instance of HUD selection. Changing from Beams to Equipment, from Equipment to Beams, cycling Beams, and cycling Equipment. The palette lines can also be altered with the ASM file.

At this stage, the only included version is with no beam mixing, but other versions and styles will come later on.

A_red_monk_called_Key

#428
Finally, Kraid's animation data and how to edit it.



(If you use this I don't need credit for it)

Mon732

I've recently put together a palette file for Paint.net that has the colours of the CRE (Rows 0 to 2).
Thought this might be useful for making custom graphics.
The colours are in Hex and in the range of 00 to FF.
Even if you don't use Paint.net it's only a txt file so you can pull the colours from it.
Paint.net CRE Palette

http://www.getpaint.net/doc/latest/WorkingWithPalettes.html <-- This might help if you don't know about Paint.net palettes.

No credit needed.

Black Falcon

HUD v.2.5 Release:

Changes/additions:

- some slightly code optimization
- some more bugfixes (also grapple beam glitch fixed)

For Non-ASMers:
- HUDrev.ips, unheadered, contains complete HUD and everything you need (message box hack, gfx, asm, etc.)

For ASMers:
- assembly file (a bit messy, sry :P)
- CleanHUD.ips, unheadered, needs to be patched to the ROM before applying the asm file,
  contains HUD gfx, transparent message box hack and all the stuff that's needed to make the HUD display correctly.

[spoiler=in short:]CleanHUD.ips + HUD2.5.asm = HUD2.5.ips.[/spoiler]

The rest pretty much stays the same, info about used RAM addresses are included in the .asm file.
Backup before patching! It may overwrite some of your code, so you should check that first.
Don't forget to notify me of errors, but do not beg me if it conflicts with other hacks/codes that use the same ROM/RAM space etc.

Happy hacking everyone!

EDIT: forgot to upload .zip file..  :lol:

Prime Hunter

Just gave your revised HUD a quick spin and I'm quite pleased with the things that have been fixed since the first version I used. The grapple bug is gone as mentioned, but the Hyper Beam can also be used properly without the game coming to a screeching halt after every other beam, and the graphic bug when switching from one beam to another is gone because you cut out the sprite and the beam entirely when you bring up the HUD. So in my quick test of the things I knew were wrong with it in the past, they've all been fixed, although the only "bug" is a minor graphic one where the Hyper Beam doesn't show up as its rainbow color but more like a thicker Plasma Beam. It's a similar green to Plasma, but I don't know if it's the exact same color or not. Otherwise it still functions as normal.

Luckily this comes early enough in my own work that I can implement it in with only a minor setback to my progress. (It doesn't get along with the sheer number of patches I've been using if I try to simply add it now, but I can't really consider that the HUD patch's fault.)

Awesome work once again!

Charmander106

The ripped gfx from Castlevania SOTN in the abandoned mines. Enjoy. PM me any problems with the set, though I doubt you will...

[spoiler][/spoiler]

A_red_monk_called_Key

#433
PhotoShop is needed for both documents

First is a doc that i have been working on for a long time. TLP to PhotoShop; it's unfinished so i'll add more to it someday. The information inside is important to know to use the 2nd doc.   
TLP to PhotoShop v1.2 Mediafire link

This is the Smoking easy noob friendly visual guide for texturized backgrounds. It's a step by step graphical lesson plain to help you make backgrounds like this [spoiler][/spoiler]

Smoking easy noob friendly visual guide texturized backgrounds Mediafire link

If you have any questions about PhotoShop Youtube has tons of videos.

Qactis

Thank you monk this is something I needed to know how to do, this helps immensely. Time to go revive my old GFX sets and fix them up :p that new sewer BG is sexy btw xD

squishy_ichigo

Red Monkey: Just to be critical, the foreground tiles near the door seems a tad to bright to go with that background. :P

A_red_monk_called_Key

Quote from: Qactis on December 13, 2011, 02:34:03 PM
Thank you monk this is something I needed to know how to do, this helps immensely. Time to go revive my old GFX sets and fix them up :p that new sewer BG is sexy btw xD
i didn't think this would help anybody much, awesome i'll make more

squishy_ichigo thanks for the tip i'll go change that.

Qactis

I don't think most people around here use photoshop for graphics editing on SM that's why. It's definitely my program of choice for graphics ripping

P.JBoy

To set the heat bit using the DoorScroll pointer, point that DoorScroll-son-of-a-gun to A0 61 F7 22 E9 C4 8D 60

Why would you wanna do that?  Well it also works in non-Norfair rooms 8D.  In fact, that should work at any time and any place in your ASM.  Disassembled, it's LDY #F761; JSL $8DC4E9; RTS (RTS for the DoorScroll routine)

P.JBoy

I present, a trace-once log of me collecting 100%, visiting every map square, saving the animals etc., making a fantastically huge disassembly including what parts are data

Qactis

Quote from: P.JBoy on December 24, 2011, 01:01:55 PM
I present, a trace-once log of me collecting 100%, visiting every map square, saving the animals etc., making a fantastically huge disassembly including what parts are data
80-A8 holy shit that's amazing God bless

Edit: it was still loading  :mwa:


Black Falcon

Something I found randomly while messing with momentum and speed:

82652 20 to 4A - Disables mockball completely, but without any side effects afaik.

Basically instead of setting 7E:0B20 to 0, which is an unknown RAM address that doesn't seem to affect things much, it sets 7E:0B4A to 0 , causing a the momentum to be reset somehow, even though Kej wrote 0 would increase it:
Quote from: RAM map
7E:0B4A - 7E:0B4B    Something to do with momentum and speed. Cause of mockball. (0 = increasing momentum, !0(always 1?) = decreasing momentum)
Anyway, possible idea would be hijacking the spot and writing some code for item checks, and voila, mockball item. :P

MetroidMst

At the request of Squishy. This is Cardweaver's guide to getting the rolling boulder enemies set up the way you want them to be. Because we all know - "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! These excite me, but the values are a bit baffling." - Is not a good way to set your boulders up.

[spoiler=Cardweaver's Boulder Guide]Speed: 0X00
0000 = fall and roll to the right
0100 = fall and roll to the left
0200 = fall, bounce once, then crumble
Other values work, but seem to be repeats of these 3, or a very similar effect

Speed2: XXYY
XX = Number of pixels above the enemy to place the rock and how far it will fall
YY = (I think) how close samus can come horizontally before the rock falls

Orientation: 00XX
XX = (I think) how close samus can come vertically before the rock falls.

Example: Place the rock on the very bottom left of a room so that the bottom of the rock touches the floor and give it these values: Speed: 0000 Speed2: 8040 Orientation: 0080. The rock will be placed 8 tiles above the place you see it in SMILE and activate upon samus coming within both 4 tiles horizontally and 8 tiles vertically, where it will then fall 8 tiles, and roll to the right until it hits a wall, where it will crumble.[/spoiler]

All credit should be given to Cardweaver for this.

JAM

New year presents, part 1: Map stuff and extra events.

It's a time for a new year presents. Yeah, I know, I'm a bit late this time, but late is better than never.

0. Text area names centering
A patch that centers text area names on the map in 2 versions: with or without centering icons for areas 06 and 07.

Patch file TextAreaNamesCentering.IPS will centering text icons for usual areas except Wrecked Ship (it's already centered).

Patch file TextAllAreaNamesCentering.IPS will centering text icons for all areas except Wrecked Ship (it's already centered), including newly coded text icons areas 06 and 07 that are provided by Ceres & Debug usage patch (it should be installed first).

Screenshots



Download link




1. $100 extra events
This patch lets you to use alternate states depending on $100 extra events in the RAM at $7E:D840..D85F, $200 in total. Just in case if regular 256 events is not enough for you.

Warning
Read this if have used SuperMap patch, any version.
SuperMap patch already lets you to use every single byte in SRAM. So, there are no free space to use literally and extra event array will use some space of item bit array. Actually, there will be a common space used by both arrays at $7E:D840. But this also has a cool side effect.

About sharing effect
Read this if have used SuperMap patch, any version.
Let me explain how this works. Collect item with index 012 (for example) and extra event 12 will be set and vice versa: set extra event 12 and item with index 012 will disappear without actually collecting it. To avoid this effect, simply don't set indexes of the items that are matching extra events. For example, if you want to use $20 extra events (from $00 to $1F), don't use indexes for the items from $000 to $01F and use indexes from $020 to $7FF. In general, using X extra events doesn't allow you to use first X indexes from item bit array unless you want to use extra events as item events.

Warning
I've made a check for extra events, but SMILE will not recognize it and will not load the room with extra event check, but it works perfectly in game.

More information is in text file inside archive.




2. Extra event doors
This patch lets you to make grey doors flashing after certain event has happened without using room states. You even can be in the same room where event has happened to get effect. It's working like Dachora/Eticoons saved check because it's based on it with exception that any event can be used. This version lets you to use $100 extra events, $200 in total. Just in case if regular 256 events is not enough for you.

Warning
Read this if have used SuperMap patch, any version.
SuperMap patch already lets you to use every single byte in SRAM. So, there are no free space to use litterally and extra event array will use some space of item bit array. Actually, there will be a common space used by both arrays at $7E:D840. But this also has a cool side effect.

About sharing effect
Read this if have used SuperMap patch, any version.
Let me explain how this works. Collect item with index 012 (for example) and extra event 12 will be set and vice versa: set extra event 12 and item with index 012 will disappear without actually collecting it. And even more. Grey door with High Byte 38..3F and Low Byte 12 will start flashing after extra event 12 will be set or item with index 012 will be collected. To avoid this sharing effect, simply don't set indexes of the items that are matching extra events. For example, if you want to use $20 extra events (from $00 to $1F), don't use indexes for the items from $000 to $01F and use indexes from $020 to $7FF. In general, using X extra events doesn't allow you to use first X indexes from item bit array unless you want to use extra events as item events.

More information is in text file inside archive.




3. SuperMap v1.1
This patch lets you to use every map sector of every area, including Debug. Code is based on Scyzer's Save/Load patch, so credits goes to her. Besides of that, collected item bit and open door bit arrays are expanded in 4 times allowing to have 2048 items in your hack and 2048 doors. The rest of SRAM was compressed, so now every single byte of SRAM is finally used.

Changes since v1.0
1. Code in bank 81 is compressed a bit to place load map subroutine to where is supposed to be. No longer need to patch Quickmet.bin file.
2. All renewed item PLM text files are added.
3. Screenshot of $500 groups error is added.

This version doesn't using free space at all, because new save map and load map subroutines are placed where they are by default, including load map subroutine to avoid Quickmet.bin patching. SuperMap also have priority over KejMap, so it's OK to use it on hack patched with KejMap.

Warning
If you're planning to add Ceres and Debug areas, apply Ceres & Debug usage patch v1.1. Without it you will be able to edit and save these maps, but can't use them in game normally and see maps of areas 06 and 07.

Warning
After expanding map of every area you may see message about exceeding $500 groops.


SMILE version 2.0 or above will refuse to save map data if this limit was exceeded to avoid RAM and SRAM corruption. This patch prevents corruption but SMILE 2.0 still will not allow to save giant maps. So, use SMILE version 1.0 but only to make maps. It's hard to find now, so I placed it on my site.

SMILE 1.0

Save as *.zip archive. How you can freely use every sector of every map.

Known bugs
Crateria map after reloading will not be centered because of showing first 15 map sectors like they were explored anyway.




4. Ceres & Debug usage v1.1
A patch that allowing to fully use Ceres and Debug areas, also know as Areas 06 and 07. When I say fully, I mean saving and loading, have a text icons of these 2 areas, pressing start and viewing the map instead of crashing and so on. Except for the world hexagonal map, of course. No one knows how to edit it yet. Debug map can be freely edited with SMILE after applying the patch.

This patch also prevents CRE removing in all rooms of Ceres area to make ability to use items, doors, BTS and all stuff you can't use in Space Colony normally. Rooms in Ceres tileset will look ugly, but I made CRE removing interval patch if you need to remove CRE not in all rooms of Area 06.

Start button is active now in Area 06. Change it back in SMILE if you don't want to.

Pointer in text icons array for Ceres and Debug are points to terminator (FFFF) at 147C9. Change the values at 17EFC (Ceres) and 17EFE (Debug) to have text icons in these areas.

Pointers for map station in areas 06 and 07 are null. Create your own pointer and write X position (2 bytes), Y position (Y bytes) and terminator (FFFF word) at pointer address.

This version have 2 IPS files. Ceres&DebugV1.0fix.IPS is just a changes since version 1.0 and Ceres&DebugV1.1.IPS is a full patch that can be applied to the ROM unpatched by Ceres&Debug v1.0 earlier. In other words, v1.0 + v1.0 fix = v1.1.

Changes since v1.0
1. Added text icons explaination.
2. Save point using data updated.
3. Visibility array bug is fixed. I understood recently that SMILE ignoring ROM's visibility array poiters and use internal ones instead. Because if that, code at 11E27 will be overwrited by Debug's visibility array after editing and saving Debug map. This version fixes that. I've relocated a code to 17F00 and place visibility array to where SMILE writes it actually.

Warning
If you have used version 1.0 of this patch, re-save map of Debug area. The map will there but map sectors visibility data will be lost after reinstalling the patch.

Warning
If you want to save progress of explored maps of Debug area or you just recieved message about exceeding $500 groops in SMILE, apply SuperMap patch v1.1.

Warning
To make rooms in Ceres with CRE you'll need to place them in another region while editing them. To do so, go to Edit > Room Properties in SMILE and set any area except Ceres. When done, just change area back to Ceres. Layout of the map will looks like it's screwed up, but it's OK. It's just because SMILE is visually removing CRE in any room in Ceres but not psysically.

JAM

5. Map data cleaner
A patch that will clean map data saved by SMILE at $F800. It can save up to 1285 bytes of patch size of your hack. Use it only if you have applied Save/Load patch by Scyzer or my SuperMap patch.

SMILE is saving explorable map data at $F800 anyway. Even if you have applied Save/Load or SuperMap patches or NOT applied KejMap patch (in case if you're working on vanilla hack), but there is no need to do so. It's better to apply this patch right before releasing the hack because saving the map in your hack will write data to $F800 again.

This patch was written in hex editor entierly.




P.S.

Posted by MetroidMst, discovered by Cardweaver
Compilation of above post of modifying rolling boulder enemies in text file, to see and read it in SMILE.

Simply go to "files\enemies" folder inside your SMILE folder and replace DFBF.txt file with this one.

Crashtour99

Dunno how I hadn't stuck this here yet, but this is something for all you folks interested in it.
A full disassembly of all routines used by the HUD (with a fair amount of commentary).
Have fun with it kids.   :wink:
http://dl.dropbox.com/u/9394977/HUD%20disassembly.txt

JAM

Quote from: SMILEuser96 on September 16, 2011, 02:48:14 PM
Ever wanted to make shutters like those in the X-Ray room?
But just can't get them to stay still?
BEHOLD:

here's a step-by-step tutorial on how to make them. It takes a little bit of time and knowing how to use hex editors to do this.

1. Place shutters (enemy D53F) in your room, where-ever you want them
2. Save the room.
3. Make a copy of your ROM
4. Back in SMILE's enemy editor, give your shutters "Special GFX"
5. Save
6. Do a file compare between your current ROM and the copy (this is to find which bytes to edit)
7. The resulting .txt file should only show bytes that have changed from 00 to 04. It might show some other changes too; ignore them.
8. Go to those locations-1 in your hex editor (so if the .txt file shows that one of the offsets is 10A37B, go to 10A37A)
9. You'll see 04 00 in this location. Change it to FF FF and save.
10. Done. Enjoy.
Actually, there is a more easier way even without using a hex editor or file compare.

Select shutter enemy and Set Graphic Unknown to FFFF. You'll need SMILE under v2.0 to do that. But it also possible in SMILE v2.0. Graphic Unknown text field is still there but "Normal GFX/Special GFX button" in placed right over it. To access this field, click on value in "Orientation" field and press Tab once. You're in Graphic Unknown field now, but you can't see what are you typing, so you should do it in blind mode. Simple press Delete 4 times. Window header will change to "Unrecognized GFX mode!!!" after you press Delete just once, but don't stop. Then just type "F" 4 times and save your enemy by pressing OK.

A_red_monk_called_Key

#448
Found some Extra Enemies. Some Enemies are usable, some enemies are used with bosses, and some are just used in the Enemies allowed list.
Just copy the contents of the extraEnemies folder into SMILE's Enemies folder.


Thanks Sadiztyk.
Weird purple spinning enemy(F153) added

Scyzer