--Lawrence of Arrakis--
...and it's not in a programmer friendly format!
Enjoy the .ips patch!
I'm releasing this before I disappear into the abyss again. Maybe you guys can get more use out of it than I can.
http://interdpth.arc-nova.org/Insom/HUD.zip
I tried to explain it as best as I could (having done most of the coding for this about a year ago.)
C'mon vultures, pick this carcass CLEAN!
The readme (written as fast as possible, sure to contain huge amounts of problems) included in the .zip is inside the spoiler tags below, so as not to create a huge post.
Have some videos too:
Enjoy the .ips patch!
I'm releasing this before I disappear into the abyss again. Maybe you guys can get more use out of it than I can.
http://interdpth.arc-nova.org/Insom/HUD.zip
I tried to explain it as best as I could (having done most of the coding for this about a year ago.)
C'mon vultures, pick this carcass CLEAN!
The readme (written as fast as possible, sure to contain huge amounts of problems) included in the .zip is inside the spoiler tags below, so as not to create a huge post.
HUD hack patch
by Insom
So yeah, I guess releasing this like I am is kind of like taking a dump in your lap and telling you to have fun with it.
This is pretty much for reverse engineering. I did all of this coding in pure machine language in a hex editor. VERY BAD IDEA.
...come to think of it, please patch this onto your hack and release it. That'll give us all a good laugh or two.
Yeah, I know I broke the opening sequence. Please don't tell me about all the bugs you find. Again, I'm releasing this for reverse engineering purposes.
If you don't want to take up the daunting task of reading my shit code, you can still play with what works...
Off the top of my head, most of the hijacks are in bank 90. A lot of the code is there too. My main code block is at the end of bank 90 as well...
Most of the subroutines I call are in bank DE. By most, I mean almost all. I think my code in that bank begins at DE:D000. I wouldn't bet on it though. This is just a good guess.
There's some really hackish shit I do to pause the screen. Good luck finding where I did that.
Most of those displays in the HUD work.
INT displays 7E:09D0, EXT displays 7E:09CE, SHELLS displays 7E:09C6, FUEL displays 7E:09CA. Of course, ENERGY displays 7E:09C2
The tile index table for the HUD that is initially written to 7E:C608 (which is the current tile index table which is drawn on the screen automatically)
...is at 80:988F
The ............ 's above the minimap begin at 80:98BF and end at 80:98CB. This top line of the HUD is not included in 7E:C608. In fact, you cannot use that array to change the top row at all. The top row is only drawn when loading a saved game and those initial values come from 80:988F.
As it's set up:
7E:09A8 (16 bit) is flags for the weapons that you can get. I think you can set that to FFFF to get all the available weapons.
They can be in any order in the selection bar thing as well...
As far as the order of the items...
At 7F:FFA0, begins an array of 16 bit integers (don't give me a hard time about that) for each item.
This code was designed to be flexible, the weapons can be added to the inventory in any order and it'll still work. This is perhaps the one well coded part of this project.
Anyway, the size of this array is re-calculated every time the HUD turns to the weapon selection thing, based on the bits set in 7E:09A8. I forget the exact corresponding values, but I think they were:
0 power beam
1 wave beam
2 plasma beam (or something similar)
3 missiles
4 supers
5 new kind of missile I had planned. (basically, when you were to fire one of these, you lose control of samus and the control pad controls the missile. Of course, the screen would focus and scroll accordingly with the missile.)
6 anti-material rifle (I started making this one. It would end up with a slow firing rate and moderately high damage, and would go through most enemies and all tiles.)
7 bomb launcher (would shoot a [morph ball style] bomb in a parabolic path)
8 rinka launcher (started on this one too, kinda self explanatory. I was thinking about making this one a non-required easter egg)
9 grapple beam
A plasma cutter (see youtube vid. it was supposed to be a very high damage weapon with a short range. it would also be the only thing that can cut through certian steel obstructions and damage certian bosses)
B orbit shield (basically the ice beam + power bomb combo thing. it would be a specific kind of beam type and would have some special effects I can't remember yet. It would really chew through ammo though.)
Q & A:
Q: "Y CNT I USE ICE BEEM?!?!1"
A: Because Ice beam was supposed to work as a beam modifier. Most of the beams would be removed from the inventory because they're main weapons now. The ice beam is more of an effect though, so it's in the inventory, and turning it on gives an icy effect to beams or other attacks. This feature works to some extent.
Q: "Y SPAZR BEEM GET TURNED ON WEN I USE WAV BEEM?!"
A: I think the wave beam just feels more complete when combined with spazer. In my hack, all reference to spazer would be removed. It would not exist. Every reference to wave beam in my hack would actually be to wave + spazer.
Q: "WEN R U GON RELESE UR HACK?!!1"
A: Probably never. I think I might be done with ROMhacking.
Q: "HOW U DO DAT? KEN U TEECH ME"
A: Lunar Magic. ...and no, I won't teach you.
Q: "Why are you such a cynical asshole?"
A: CUZ MOMA RAIZED ME DAT WAI
Good luck if you try to salvage anything from this patch, and if you do, use it freely. You can even change the credits to say "Insom Sux!" if you want. You don't need to ask [bug] me.
-Insom
by Insom
So yeah, I guess releasing this like I am is kind of like taking a dump in your lap and telling you to have fun with it.
This is pretty much for reverse engineering. I did all of this coding in pure machine language in a hex editor. VERY BAD IDEA.
...come to think of it, please patch this onto your hack and release it. That'll give us all a good laugh or two.
Yeah, I know I broke the opening sequence. Please don't tell me about all the bugs you find. Again, I'm releasing this for reverse engineering purposes.
If you don't want to take up the daunting task of reading my shit code, you can still play with what works...
Off the top of my head, most of the hijacks are in bank 90. A lot of the code is there too. My main code block is at the end of bank 90 as well...
Most of the subroutines I call are in bank DE. By most, I mean almost all. I think my code in that bank begins at DE:D000. I wouldn't bet on it though. This is just a good guess.
There's some really hackish shit I do to pause the screen. Good luck finding where I did that.
Most of those displays in the HUD work.
INT displays 7E:09D0, EXT displays 7E:09CE, SHELLS displays 7E:09C6, FUEL displays 7E:09CA. Of course, ENERGY displays 7E:09C2
The tile index table for the HUD that is initially written to 7E:C608 (which is the current tile index table which is drawn on the screen automatically)
...is at 80:988F
The ............ 's above the minimap begin at 80:98BF and end at 80:98CB. This top line of the HUD is not included in 7E:C608. In fact, you cannot use that array to change the top row at all. The top row is only drawn when loading a saved game and those initial values come from 80:988F.
As it's set up:
7E:09A8 (16 bit) is flags for the weapons that you can get. I think you can set that to FFFF to get all the available weapons.
They can be in any order in the selection bar thing as well...
As far as the order of the items...
At 7F:FFA0, begins an array of 16 bit integers (don't give me a hard time about that) for each item.
This code was designed to be flexible, the weapons can be added to the inventory in any order and it'll still work. This is perhaps the one well coded part of this project.
Anyway, the size of this array is re-calculated every time the HUD turns to the weapon selection thing, based on the bits set in 7E:09A8. I forget the exact corresponding values, but I think they were:
0 power beam
1 wave beam
2 plasma beam (or something similar)
3 missiles
4 supers
5 new kind of missile I had planned. (basically, when you were to fire one of these, you lose control of samus and the control pad controls the missile. Of course, the screen would focus and scroll accordingly with the missile.)
6 anti-material rifle (I started making this one. It would end up with a slow firing rate and moderately high damage, and would go through most enemies and all tiles.)
7 bomb launcher (would shoot a [morph ball style] bomb in a parabolic path)
8 rinka launcher (started on this one too, kinda self explanatory. I was thinking about making this one a non-required easter egg)
9 grapple beam
A plasma cutter (see youtube vid. it was supposed to be a very high damage weapon with a short range. it would also be the only thing that can cut through certian steel obstructions and damage certian bosses)
B orbit shield (basically the ice beam + power bomb combo thing. it would be a specific kind of beam type and would have some special effects I can't remember yet. It would really chew through ammo though.)
Q & A:
Q: "Y CNT I USE ICE BEEM?!?!1"
A: Because Ice beam was supposed to work as a beam modifier. Most of the beams would be removed from the inventory because they're main weapons now. The ice beam is more of an effect though, so it's in the inventory, and turning it on gives an icy effect to beams or other attacks. This feature works to some extent.
Q: "Y SPAZR BEEM GET TURNED ON WEN I USE WAV BEEM?!"
A: I think the wave beam just feels more complete when combined with spazer. In my hack, all reference to spazer would be removed. It would not exist. Every reference to wave beam in my hack would actually be to wave + spazer.
Q: "WEN R U GON RELESE UR HACK?!!1"
A: Probably never. I think I might be done with ROMhacking.
Q: "HOW U DO DAT? KEN U TEECH ME"
A: Lunar Magic. ...and no, I won't teach you.
Q: "Why are you such a cynical asshole?"
A: CUZ MOMA RAIZED ME DAT WAI
Good luck if you try to salvage anything from this patch, and if you do, use it freely. You can even change the credits to say "Insom Sux!" if you want. You don't need to ask [bug] me.
-Insom
Have some videos too:
Thread title: