News:

Don't forget to visit the main site! There's lots of helpful docs, patches, and more!

Main Menu

Smile shortcuts?

Started by Lemonjuice, September 24, 2014, 03:54:30 PM

Previous topic - Next topic

Lemonjuice

Ohwell, title screen problem solved.

I wonder if it's possible to make it so, that the 1st event (when you get the morph ball and rockets) already happened and you already have the enemies there. Or is it not necessary?

TobiMikami

I think there's an event you can trigger in the ROM automatically, there's probably a hex tweak or a patch for it on the main site, I'd be kinda surprised if it wasn't, and even so I'm sure someone with a little more in depth knowledge of the events system could easily make it happen.

Quietus

I did have a quick look through the hex tweaks, and there is information there, though it relates more to which bytes to change to have the event triggered by different items, rather than which bytes are changed once the event is actually triggered.

It could certainly be worth noting, and having a convenient list of what to change for any given event to already be triggered.

P.JBoy

If you don't want a state to do anything, make it not do anything; i.e., set the pointers to be the same
...

TobiMikami

While you bring that up, what becomes of the event state in that room if you were to set the pointers equal?

P.JBoy

If the event has happened, the room will load as if the event has happened; else it will load from the default state. If the pointers are the same, then there's is no difference in the effect of the event within that room
...

personitis

I really should get on that guide I was going to do about room states...
Anywho, quick rundown of how events work and related things:

  • The game checks event bits before loading the "default" state. If the requirement for the event is met, then that will be the state that is always loaded in place of default.
  • Regarding "setting the pointers to be the same," room states are not handled like most other pointers in rooms (the ones you can find in the pointers window). Instead, the pointer located in the room header leads to code which checks if certain conditions are met and if they are, is told to jump to continue loading the proper pointers for the appropriate state of the room (enemies, PLMs, level data, etc., etc.) If there are multiple states in the room, each state will be checked until one is "correct" or the default is reached.
  • If feel I should note this because it trips up everyone [I've helped] when messing with states: "Event" states (and "Boss" states, I think) have an extra byte after them which defines the proper bit to check for that event. E.g. Maridia tube is broken or entrance to Tourian is open.
  • "Item" based states, as I like to call them/fittingly called, instead check Samus' equipment and not the event bit array.
  • And finally, to set room states on ROM load, you can either make it so the room only has the "default" state or a bit of ASM would be required to turn the specific bit on when the main game loop is started.
If you're interested to go any deeper, JAM has a good room state guide here (though I personally feel it's too wordy) and I've done a rather dry, but accurate disassembly on room load and states here.

Whew. Good luck. If you have questions, feel free to ask.

Lemonjuice

This is rather difficult for me at this stage... But, thanks for the help anyways.

What I am stuck with now is why some items re-appear when you enter the room. I placed a morphball in the room where your ship is but it keeps respawning if I re-enter the room.

Jordan5

do you have the high bit set to anything other than $00?

Lemonjuice

With $00 it respawned, and with any other number too. :/

Lemonjuice

Quote from: Lemonjuice on September 26, 2014, 08:47:24 AM
With $00 it respawned and with any other number too... Atleast sofar I remember.

Smiley

PLM's have a HIGH and LOW value. If HIGH is 80 (or larger), the item will respawn. Make sure it's set to 00.

Quietus

When you are changing items to other items, check the details in the yellow box at the bottom.  It provides explanations as to what needs to be set to what.  If you check the Morph Ball, it tells you that a high of 80 is respawning, and 00 is normal, so check that it's 00. :^_^:

Lemonjuice

Ah, I see. It's fixed now.

TobiMikami

The high bit is the one you need set to 00, there's also a low bit which determines the index of the PLM, you use the low a lot more with doors (Keep good notes of them too) mainly because if you set a low bit of 01 any other doors set with bit 01 will open as well, it's a nice tactic to use as a simple switch but if you say set a power bomb door and a missile door the same you might open up a sequence break you didn't intend on having.

Lemonjuice

OR it's a perfect puzzle mechanic.

Jordan5

Quote from: Lemonjuice on September 26, 2014, 11:57:53 AM
OR it's a perfect puzzle mechanic.

Yes, Mockingbird Station used this well.


TobiMikami

Quote from: Jordan5 on September 26, 2014, 12:21:59 PM
Quote from: Lemonjuice on September 26, 2014, 11:57:53 AM
OR it's a perfect puzzle mechanic.

Yes, Mockingbird Station used this well.
That's usually the most referenced form of that mechanic, same with Redesign and the remote gates. one more complex then the other of course however keeping in mind for an exploration hack these make for a bit of a challenge. Your title screen is quite nice, 3 years 360 days left xD

Quietus

Well done, Lemonjuice.  You've progressed quickly.  Next thing you know, you'll be ASMing. :oh: