1 page
^^
vv
List results:
Search options:
Use \ before commas in usernames
http://games.technoplaza.net/smse/

The Super Metroid SRAM Editor is the first public release of my new program to edit Super Metroid save games. It works with SRAM files, not save states, so it will work on Snes9x or ZSNES (or any other SNES emulator you like probably). Windows, Linux, and Mac OS X are of course supported, too.

It edits nearly any property and allows editing of all three save games.

There are a few very minor things I want to add to it before the 1.0 release, but the 0.90 release is 99.9% what I want.

Let me know if there are any questions or comments. I'm especially eager to hear from people who own Macs with OS X. I can only test in PearPC, and that's no guarantee it really works.
Thread title: 
Y'know, cheating would take all the glory out of such an achivement, you know that, don't you?

But whatev, it was interesting enough to get my attention, so I'll test it out later.
Quote from Dark_SA-X:
Y'know, cheating would take all the glory out of such an achivement, you know that, don't you?

But whatev, it was interesting enough to get my attention, so I'll test it out later.


I meant the speed run comment as a joke.

edit: I removed the comment. I don't want it to overshadow the substance of the post.
Oh right. So basically this cheat thing will let you have more save states, is that it?
Quote from Dark_SA-X:
Oh right. So basically this cheat thing will let you have more save states, is that it?


It's just a cheat program for Super Metroid. It lets you edit whatever you might want to edit.

I don't know what you mean by "have more save states".

I don't know if it will be useful to anyone. I wanted to know about the SRAM in Super Metroid and how the game saves its progress. After reading documents from phonymike and doing my own research, I know most everything there is about how the game saves its progress and what triggers what. That was my motivation. Later on, I plan to write a document describing the format of the SRAM.

But if people wanted to edit their games for whatever reason, they can now.
Embarrasing Fact: Power suit made by lowest bidder
Neat.
I can actually see one use for that that many people might like (though I haven't tested to make sure it permits it): Changing Aim up or Aim down to other buttons than L and R. There's nothing in the game engine stopping you from doing so, the configuration screen just won't let you make that change.
Although, since this is for emulators only, and you can configure L and R to different buttons to begin with, I guess that it's redundant for some people and useless for others. :/
Quote from Kejardon:
Neat.
I can actually see one use for that that many people might like (though I haven't tested to make sure it permits it): Changing Aim up or Aim down to other buttons than L and R. There's nothing in the game engine stopping you from doing so, the configuration screen just won't let you make that change.
Although, since this is for emulators only, and you can configure L and R to different buttons to begin with, I guess that it's redundant for some people and useless for others. :/


No, the game engine does prevent you from doing this. I tried this earlier. If you set the button to something other than R or L, it simply won't work. So I removed the option from the program.

Sorry, but  they limited the configuration for a reason. Not a good reason, but a reason.
Embarrasing Fact: Power suit made by lowest bidder
hmm.. then the game must limit it from the save file. If you change the controls in game via game genie codes or something, you CAN configure aim up and aim down to other buttons.
... assuming my memory is correct. >_> Lemme go check.

Ok. That's pretty weird... if Aim up and Aim down aren't assigned to L or R, they don't get detected at all. But if they are assigned to one or another, they *are* detected on other buttons as well.
eh. That probably doesn't make any sense to most people. >_< In ram, each command is assigned to any set of buttons - you can assign Run to A, B, X, and Y at the same time, assign Switch Item to nothing, assign Shoot to up and right, etc. The game engine is potentially *extremely* flexible as far as button assignments go, even though the game doesn't use any of that flexibilty.

Can't say I know how those values are saved to sram though.
Armor Guardian
It looks good. However, I suggest that you use nested tabs for the sake of people with horribly low resolutions.
-
Now go for Metroid 2!
Quote from Kejardon:
hmm.. then the game must limit it from the save file. If you change the controls in game via game genie codes or something, you CAN configure aim up and aim down to other buttons.
... assuming my memory is correct. >_> Lemme go check.

Ok. That's pretty weird... if Aim up and Aim down aren't assigned to L or R, they don't get detected at all. But if they are assigned to one or another, they *are* detected on other buttons as well.
eh. That probably doesn't make any sense to most people. >_< In ram, each command is assigned to any set of buttons - you can assign Run to A, B, X, and Y at the same time, assign Switch Item to nothing, assign Shoot to up and right, etc. The game engine is potentially *extremely* flexible as far as button assignments go, even though the game doesn't use any of that flexibilty.

Can't say I know how those values are saved to sram though.


I know nothing about PAR or GG codes that change the controller configuration or anything about where in a ZSNES or Snes9x save state where you might edit such things.

In the SRAM, the controller configuration is at offset 0x10 (hex) for each game. 0x20 from the start of the SRAM file for game one. Each controller button is one word (two bytes or 16 bits) in length and the controller configuration ranges from 0x10 hex 0x1D hex (inclusive) for each game and specifically 0x20 0x2D for the first game from the start.

The button order is Shot, Jump, Dash, Item Cancel, Item Select, Angle Down, Angle Up. The button values are as follows:
A = 0x80, 0x0
B = 0x0, 0x80
X = 0x40, 0x0
Y = 0x0, 0x40
L = 0x20, 0x0
R = 0x10, 0x0
Select = 0x0, 0x20

So, if you wanted to change Angle Up from R to A in game one, you can change SRAM offset 0x2C and 0x2D to 0x80, 0x0, respectively. Then of course to preserve the checksum, you'll need to change whatever A was mapped to into 'R'. Since 'A' is Jump by default, I'll assume it is for the purposes of this example. Jump is the second button mapped to SRAM values 0x22 and 0x23 for game 1. Change these to 0x10, 0x0 repsectively.

Now, in theory, Angle Up would be maped to 'A', and Jump would be mapped to 'R'. But this is not what happens. 'R' does become jump as you would expect, but 'A' is nothing.

I don't know what prevents you from making changes like this, but something does.
Quote from RT-55J:
It looks good. However, I suggest that you use nested tabs for the sake of people with horribly low resolutions.
-
Now go for Metroid 2!


Thanks. I have been thinking bout how an 800x600 rewrite will go. I don't like nested tabs, but I will increase the number of tabs. Probably put each color door in its own tab, and maybe split equipment (morphing ball, screw attack, etc) from missile, super missile, and power bomb packs.

I might also need to move a couple things from the Game tab to the Misc tab. I'm thinking map data and the save point, but we'll see how it goes.

I really do try to respect people who have 800x600 resolutions, but I hate them so much it's hard sometimes. :-) I barely got it to fit in Windows in 800x600, and you have no idea how much time it took to do that. A rewrite at that point wasn't an option. But now that I've had some time to think about it, I realize a 1024x768 resolution requirement isn't realistic yet. 800x600, as much as I disdain it personally, is still the most popular desktop resolution.

As far as Metroid 2, I've never played it, so it will be hard to do anything for it.
I've updated to version 0.91.

http://games.technoplaza.net/smse/

Some bug fixes, the 800x600 rewrite, some new offsets, and some other things. I forget.

I also wrote a guide to the SRAM format for anyone who is interested in things like that.

After I had built the new version, I noticed the new Yellow & Eye Door tab is mislabed on Windows and OS X. There is supposed to be an ampersand, and it doesn't show up on Windows or OS X. Wasn't important enough to fix, but if I release any more versions, I'll fix that. No plans for any updates right now.

The only other thing I wanted is for my icon to work in Mac, but I don't know how to create an icns file, and there doesn't seem to be any program that even supports its creation in Windows or Linux, so I'm not sure I'm going to get to it. But if I figure it out, that would be nice.
Hmmm... It won't let you Murder Beam. Or open Metal Doors that are normally unopenable.
Well, technically you aren't meant to be able to either of those anyway, but you still can because of glitches. Maybe the program gets rid of some of the glitches...
Woooot!
Go go go Mac Os X-Compatible Rom-enhancing applications!
Quote from Dark_SA-X:
Quote from LifeMega:
Hmmm... It won't let you Murder Beam. Or open Metal Doors that are normally unopenable.

Well, technically you aren't meant to be able to either of those anyway, but you still can because of glitches. Maybe the program gets rid of some of the glitches...


I thought about the murder beam. I've never used it, but the description in the Super Metroid section says you have to charge first, and you can't do that when you first load, so it's a guaranteed crash in the game if the program allowed this. (Yes, I tried it)

As for metal doors, the program just edits the SRAM. If you can't open them in the game, then it would be impossible to edit the save game data to open them.

I wanted to add hyper beam, but the game doesn't save that in the SRAM either, so that was a no-go, too.

Aside from Samus' personal map data (i.e. which rooms she has been in), I can't think of anything major the program doesn't already edit. There is one bit I thought about adding later that I was too lazy to. It determines whether monsters are in Crateria near the old Tourian escape shaft (they aren't until you take the morphing ball, which triggers the eye sensors down there, too), but it wasn't important.

I don't know what triggers the snow/clear weather near Samus' ship, but it didn't seem important enough to go hunting for.
Embarrasing Fact: Power suit made by lowest bidder
The weather is determined by Samus's equipment (power bombs specifically) and event bits. You can't directly control it.
Quote from Kejardon:
The weather is determined by Samus's equipment (power bombs specifically) and event bits. You can't directly control it.


You're right. It's determined by power bombs. It has nothing to do with any event bit. If it did, then I could directly control it as they would have to save that bit.

I suppose a third option could have been event bit + power bombs, but since I added power bombs to a new game and it changed, that pretty much disproves that.
Or Prehaps a "Space/Time Beam Beam Lock" Button which will allow you to increase the Missile/Super Missile/Power Bomb Count to as far as you want.

You Know, I've been messing with S/TB And I got like, 95 Super Missiles, and lots of everything else. And Now that I tried your editor, It makes me feel dumb because it automatically sets it to 50...
Embarrasing Fact: Power suit made by lowest bidder
It's really simple how the game checks:
Is Zebes blowing up? Goto explosion state.
Does Samus have the power bombs? Goto clear weather.
Is Zebes awake?... well, the only difference with this one and the one below is some behind-the-scenes music handling.
If all are false, goto default.
Quote from Raccoon Sam:
Or Prehaps a "Space/Time Beam Beam Lock" Button which will allow you to increase the Missile/Super Missile/Power Bomb Count to as far as you want.

You Know, I've been messing with S/TB And I got like, 95 Super Missiles, and lots of everything else. And Now that I tried your editor, It makes me feel dumb because it automatically sets it to 50...


I don't want to add edits that are outside the games legitimate possibilities. If you don't want to lose your extra whatever, don't edit them in the program. It won't change them unless you do.

If you have more max whatever, you should still be able to use the text controls to edit things. But it won't allow you to exceed your max, whatever that is. I don't intend to change that.
If you didn't know, there is a relatively easy game reset glitch, but I haven't tested much with roms... there's a description in one of the FAQs at GameFAQs.
Quote from kwinse:
If you didn't know, there is a relatively easy game reset glitch, but I haven't tested much with roms... there's a description in one of the FAQs at GameFAQs.


Which FAQ are you talking about? There are several on GameFaqs for Super Metroid. If you're talking about the glitch FAQ, the only one I saw there was the one we're already talking about. Using all except wave (Spazer + Plazma). This is the "Space/Time Beam".

It doesn't work in the latest ZSNES WIP [10/08 2005]. Crashes the game. But it worked in the Geiger's Snes9x 1.43 Debugger (ep9r8). I don't know about standard Snes9x. I usually use ZSNES when I'm playing and only use Geiger's Snes9x when I need a debugger.