GBAtroid Hacking: What's up, what's down, and what's stationary [Dec.2012]

Started by FlamingCobra, December 11, 2012, 12:30:36 PM

Previous topic - Next topic

FlamingCobra

The title of this thread may or may not have been stolen from another forum. 

I think it's about time I made this post. And this post is going to be the Big Bad post for MF and MZM. I'm going to cover hacks, tools, how-to's, users, gfx, and possibly other things. And I'm also going to need feedback from you guys. Yes, you. I'm talking to you. I want a response from you.
NOTE THIS IS NOT AN INTRODUCTION GUIDE TO GBAtroid HACKING. This is a reflection on how far we've come and where we need to go.

What's already been done
Several patches for the GBAtroids have already been made, and they were made a long time ago. And PJBoy made most of them. He also disassembled a lot of ROM data for... various things. And I probably need to archive all of it because now the page won't load for me and I have to access it through Google's cache. Anyway, you can find all of his shit here. And if that link doesn't work for you, put interdpth.arc-nova.org/PJs%20stuff/ into Google and click Google's cache link yourself. And if Google's cache updates and stops working, don't panic! Hopefully by that time I will have archived all that shit. I'm not going to list all of it here. Not right now. Maybe later. But here are the names of and some short blurbs about some of the patches PJBoy has made:
Fusion: Intro skip; Missile expansion patch - makes it so that when you pick up a missile expansion you get the missile ability; Power bomb expansion patch - like the missile patch, but for power bombs
Zero Mission: Full suit patch - start the game with the full suit; Zero Suit patch - you always have the Zero Suit, which means you can't ever have the full suit.

PJBoy also supposedly defeated the infamous event system in Metroid Fusion, but I haven't seen a patch for that.

But PJBoy didn't do everything. Other people have made GBAtroid patches as well.
Trunaur68 and uNsane/zephyrtronium made a patch that adds new clipdata types to Zero Mission.
Trunaur68 made a patch that fixes up Crocomire in MZM and turns it into a working enemy (but it still doesn't have death animations).
And Trunaur68 also made a patch that enables a debug feature from MZM: the ability to turn items on and off (ala Super Metroid).
All of these patches can be found on PJBoy's page (linked to above) as well.

Tools

  • Zero Fission - The first ever editor for MF/ZM. Made by interdpth. This thing is old and outdated, and you shouldn't use it for any reason. Ever.
  • Double Helix - The most powerful level editor for the GBAtroids. Made by interdpth. Metastable! Plagued with problems! Your particular Windows installation may not be supported. There are several versions of DH that you should keep for various reasons.
  • Gene Splicer - A failed attempt at a cross between Double Helix and SMILE. interdpth made this program only to abandon it.
  • NLZ-GBA Advance - This program wasn't designed specifically for the GBAtroids; it was made for all GBA games. But it's really useful for us because it can view/import/export compressed graphics (read "tilesets").
  • Usenti - This wasn't made for GBAtroid either. It's a raster graphics editor made specifically for creating sprites, tilesets, etc. It's a whole lot like MS Paint, but it supports palettes, requantizing, has a resizable grid (16x16 px by default), and can "reduce" tiles. Very useful.

Documentation
Right now there isn't a lot of documentation on GBAtroid hacking. I made a tutorial about how to import custom tilesets into said games, and interdpth made a background importing tutorial that it looks like he didn't put much time into. PJBoy disassembled some... stuff... and that's about it. A complete guide to GBAtroid hacking needs to be made, and I'll probably be the one to do it.




And now finally I'm going to talk about people.

interdpth
The man who made GBAtroid hacking possible. interdpth is the creator of Zero Fission, the first editor for MF/ZM, as well as its two successors: Double Helix (mostly awesome), and a piece of shit called Gene Splicer.

PJBoy
Made a shitton of patches for the GBAtroids, as stated above.

uNsane/zyphertronium
Our good old friend Zeph worked on a clipdata patch for Zero Mission, like I said earlier. He also made a few Zero Mission hacks.

  • Escape from Metroid Zero Mission - This hack is hard as fuck! And it's pretty much impossible to get through the first room without cheat codes. But if you want to try it, be my guest. That link will take you to the official topic on Metroid 2002, where there is also a download link.
  • Zero Rush - The first ever truly complete Metroid Zero Mission hack! This is a boss rush hack. The link takes you to Metroid 2002 topic. The download link is down. Bug zephyrtronium about that.

Trunaur68
Made a bunch of patches for MZM, as stated above.

Me
Me. Yes, me. This motherfucker right here. I am going to talk about what I have been doing. I have been in college and I have not had tons of time to devote to Zero Mission hacking. Or I had time but I couldn't bring myself to do it. Lots of ideas have come and gone, but three have seemed to stick. So the three hacks that I'm probably going to continue to work on over the years are Super Metroid Advance, AM2R Port, and Metroid: Secret Mission.

  • Super Metroid Advance (SMA) - I started on this hack a long time ago but a while back I ran into some problems, got tired, and put the project on hold. I do not intend to quit on this hack. It is just sleeping, that's all. But when I do resume work on this hack, I'm going to be using a newly renovated Double Helix editor. And I'm gong to be starting over... well, sort of. I'm not going to be starting from scratch - hopefully the room importer/exporter will be working, and I can simply import the rooms I want to keep. The ROM is probably kind of junky and clunky from the days of using the old Double Helix, back when it repointed everything whenever you clicked the save button. I'm not satisfied with first Norfair room I did, and I recently found out that there's a much easier way of "importing" Zero Mission's stock BG3s than using Double Helix's background importer - all I had to do was change a hex offset in the header editor! The stock save room BG3 I imported for a new save room didn't blink, and I had to reduce the number of unique tiles to import the Old Tourian BG3 I wanted, which means it didn't look as good as the original. Now I know I can just change a hex offset and get a better background in addition to saving space in the ROM. There were a few other reasons I wanted to "start over" but I can't remember what they are.
  • AM2R Port (working title) - I think this is pretty self explanatory. When AM2R finally comes out, I want to port the game to GBA (using Metroid Zero Mission as the base) so people can put AM2R on a GBA flashcart and play it on a real GBA. Or another handheld, such as a PSP, if you're into homebrew and stuff. This will probably be a lot easier to do than Super Metroid Advance, since I'll mostly tiling. Importing tilesets is pretty easy; it just takes a long time. The hardest parts of porting AM2R will be ASM GFX related; importing all the sprites for each Metroid form and coding a proper AI for each one, importing graphics and making code for the spiderball ability and its powerup, scripting some events such as making lava drain after you've killed Metroid # such and such, porting a few enemies from Fusion, etc. Unfortunately, there is no way AM2R Port can ever be a perfect facsimile of AM2R. DoctorM64 is using Game Maker, and there are some things that he can do that MZM can never do. For example, the Doc's rooms can have multiple backlayers, which is something I just can't do, but it can really make a room a lot prettier. He can also defy the tile grid and place vegetation in ways that I simply cannot, like in between tiles, or half a tile up. So I may invoke artistic license and graphically change a few things in the backlayer. It sure won't be perfect, but I'll do the best I can do, and that's all anybody can ever ask. The great thing about SMA and AM2R Port is that when they are completed (and I say "when" instead of "if" because I intend to complete these projects), there will be lots of new stuff for MZM, like new enemies and new abilities for Samus, that can be used in future MZM hacks.
  • Metroid: Secret Mission - This title is also subject to change. I don't want to spoil anything, but I started working on a full hack where you play as Zero Suit Samus the whole time. I've only done a few rooms, and I don't feel like it's far along enough to deserve its own topic with screenies, but I intend to keep working on this hack. I hope you guys look forward to it.

Malpercio
An aspiring Zero Mission hacker. Right now Malpercio can't hack because the latest versoins of Double Helix don't want to run on Windows XP. That needs to be fixed.
EDIT: It done been fixed. I'm looking forward to Malpercio's hacks.




What needs to be done

  • Fix Double Helix. Double Helix has so many problems it's pathetic. The room importer/exporter still doesn't work right, it's crashy sometimes, the latest versions don't work on Windows XP, the very latest version (that I have) won't move doors or assign clipdata to a tile, and also in said version, the header editor is all grayed out.
  • Better documentation for Double Helix. The DH help file is seriously outdated. Terribly, terribly outdated.
  • A full hacking guide, with everything you need to know about GBAtroid hacking. I'll get to work on this one day.
  • Enemy Ports - Enemies from MF need to be ported and made to work in MZM and vice versa. These modifications should be available in .ips format. This will give hackers a lot more freedom.
  • A sound/music importer. 'Nuff said.
  • A repository of tilesets that we can use, available in .png or .bmp format. Because that's what NLZ wants. Not TLP files. A bunch of .ips patches with these tilesets already inserted would be even better.
  • PJBoy needs to release that hack he made where he defeated the event system. Otherwise, Fusion will never get much love.
  • An IBJ patch for Fusion.
  • A better wall jump patch for Fusion.
  • A beam hack for Fusion that adds graphics for different combinations of beams... which is really needed for any hack where you get the beams out of order. Such as a hack where you get ice beam early in the game.
  • A patch for Fusion that separates the ice beam from the final suit.
  • A patch for Zero Mission that adds the Full Suit to the Varia upgrade.
  • Spazer/Wide Beam for Zero Mission.
  • A program specifically made for editing the title screens of the GBAtroids.
  • A scripting utility or an event editor for both games. That would be hellauseful.
  • PJBoy needs to move forward with his idea to make a "better event system" for MF - one that binds events to navigation rooms.

passarbye

INB4 request topic.
also, very good post.
it does give a "scope" of understanding when it comes to MZM/MF hacking and how far everyone has really come.

Quietus

Nice post.  I'll look forward to this:
Quote from: FlamingCobra on December 11, 2012, 12:30:36 PMA complete guide to GBAtroid hacking needs to be made, and I'll probably be the one to do it.

:^_^:

P.JBoy

Defeating the event system was just a small hack:

org 0x08060B10
b #0x8060B1C
org 0x08060B30
b #0x8060B42

Which assembles as 04 E0 and 07 E0 respectively which you can overwrite code at 60B10h and 60B30h respectively in the ROM with

EDIT: fixed

FlamingCobra

Quote from: P.JBoy on December 12, 2012, 06:08:09 PM
Defeating the event system was just a small hack:

org 0x8060940
push {r14}
bl #0x8074890
mov r1,#1
pop {r15}

Which assembles as 00B513F0A5FE012100BD which you can overwrite code at 60940h in the ROM with
eh?

P.JBoy

Well, you would open up a hex editor, go to 60940h, and in overwrite mode, type 00B513F0A5FF012100BD

Malpercio

And from there, everyone knows how to make an IPS patch. Of course, someone still needs to clean that solution up, iirc, because it introduces bugs regarding cutscenes/adam chats/etc

Also as of a few minutes ago, me and inter finally found and crushed the bug stopping me from using new DH

interdpth

Quote from: Malpercio on December 16, 2012, 07:27:06 PM
And from there, everyone knows how to make an IPS patch. Of course, someone still needs to clean that solution up, iirc, because it introduces bugs regarding cutscenes/adam chats/etc

Also as of a few minutes ago, me and inter finally found and crushed the bug stopping me from using new DH

It was a really bad bug as well, I'm extremely glad we were able to find it

FlamingCobra

can you try to explain what it was? I might not be able to understand it but I'd at least like to try.

interdpth

It was asking for a variable that hadn't been initiated, so it was always bad data.
What needs to be done
Fix Double Helix. Double Helix has so many problems it's pathetic. The room importer/exporter still doesn't work right, it's crashy sometimes, the latest versions don't work on Windows XP, the very latest version (that I have) won't move doors or assign clipdata to a tile, and also in said version, the header editor is all grayed out. <--You have been using alpha builds, not release builds.



Better documentation for Double Helix. The DH help file is seriously outdated. Terribly, terribly outdated.
A full hacking guide, with everything you need to know about GBAtroid hacking. I'll get to work on this one day. <--That's on you

Enemy Ports - Enemies from MF need to be ported and made to work in MZM and vice versa. These modifications should be available in .ips format. This will give hackers a lot more freedom.   <---no

A sound/music importer. 'Nuff said. <-- in the works.
A repository of tilesets that we can use, available in .png or .bmp format. Because that's what NLZ wants. Not TLP files. A bunch of .ips patches with these tilesets already inserted would be even better. <---Welcome to the next version of DH.

PJBoy needs to release that hack he made where he defeated the event system. Otherwise, Fusion will never get much love.
An IBJ patch for Fusion. <---He did that

A better wall jump patch for Fusion.<---You should make that your first ASM hack.

A beam hack for Fusion that adds graphics for different combinations of beams... which is really needed for any hack where you get the beams out of order. Such as a hack where you get ice beam early in the game. <--You should do that

A patch for Fusion that separates the ice beam from the final suit. <--Pretty sure you can
A patch for Zero Mission that adds the Full Suit to the Varia upgrade. <---I may have an IPS for this somewhere
Spazer/Wide Beam for Zero Mission.
A program specifically made for editing the title screens of the GBAtroids. <---If enough people want I can make an importer

A scripting utility or an event editor for both games. That would be hellauseful. <--There is no scripting system it's all code.

PJBoy needs to move forward with his idea to make a "better event system" for MF - one that binds events to navigation room <---Fusion Extended will kind of have this.