Register | Login
Views: 19364387
Main | Memberlist | Active users | ACS | Commons | Calendar | Online users
Ranks | FAQ | Color Chart | Photo album | IRC Chat
11-02-05 12:59 PM
1 user currently in Super Mario World hacking: labmaster | 3 guests
Acmlm's Board - I2 Archive - Super Mario World hacking - ASM to enable 3 exits?
  
User name:
Password:
Reply:
 

UserPost
FuSoYa
Posts: 129/255
Er, sorry to pester you more, but what's in the lower nibble of that byte?

A few levels seem to have it set to the same value as the upper nibble, but it doesn't appear to do anything. I suspect it's not really used. If you open the OV editor and switch to layer 1 editing mode, then move the mouse over a level, the "D:" value in the status bar is the byte that holds the directions to enable.

Also, did you mean that the normal exit direction is in the upper half of the upper nibble and the secret is in the lower half

Yes.

Er, and is the SNES little or big-endian?

Little endian.
Keikonium
Posts: 678/-2459
Thnaks for so many replys, however I really dont understand that much of it. However, Escherial, seems to be getting somewhere with this. Escherial, if and when you do get the block working, would you be able to submit it to jonwil (Block tool creator. If he is still working with that...?), or to me so I could use it in my hack? It would be so useful. Thnaks and good luck!
BMF98567
Posts: 363/1261
Originally posted by Escherial
This is kind of off-topic, but the MacOS X version of Snes9x has this amazing feature where you can monitor a memory address as the game is running; it'll display the value at that address in the upper-left corner (customizable, of course, for signed/unsigned/hexadecimal display and varying address widths). I'm a little disappointed that it can only show one address at a time, but it's still incredibly useful. I recommend it.
For everyone else, there's always my method of replacing a timer digit or two with a memory address, though you need to replace an entire page of 2bpp tiles with values 00-FF in order to get much use out of it. I think I may have released such a hack on the old board...
Escherial
Posts: 63/90
Thanks, FuSoYa; I really appreciate the help . Er, sorry to pester you more, but what's in the lower nibble of that byte? This emulator can't search for values that are less than a byte in size, unfortunately, so I need to reconstruct the entire byte to look for it. Also, did you mean that the normal exit direction is in the upper half of the upper nibble and the secret is in the lower half or is that vice versa? Er, and is the SNES little or big-endian?

Sorry for all the questions answer what you like, I'm sure I'll find something myself if I spend long enough researching/staring.
FuSoYa
Posts: 127/255
Originally posted by Escherial
So, anyone have any ideas on what values correspond to Up, Down, Left, and Right for the directions to enable upon beating a level?


0, 1, 2, 3, bit-shifted from the upper or lower half of the upper nibble depending on whether it's for the normal or secret exit.
Escherial
Posts: 62/90
So, anyone have any ideas on what values correspond to Up, Down, Left, and Right for the directions to enable upon beating a level? If I can figure that out, the little hack I'm throwing together to demonstrate multiple exits will be complete.

This is kind of off-topic, but the MacOS X version of Snes9x has this amazing feature where you can monitor a memory address as the game is running; it'll display the value at that address in the upper-left corner (customizable, of course, for signed/unsigned/hexadecimal display and varying address widths). I'm a little disappointed that it can only show one address at a time, but it's still incredibly useful. I recommend it.
Alastor the Stylish
Posts: 2259/7620
So you can make a custom block that you can only pass through when event ___ is passed where ___ is the number of the event to be replaced, and put it in the way of the extra exit.
Simon
Posts: 38/115
Originally posted by Kratos Aurion
Yeah, it will graphically glitch then, but when you go in to a new level or in to a different map area and then go back it'll be fixed provided the replacement event is after the first one. It's not like the path will kill itself... As is my understanding, anyway.


There will still be the graphical glitch though and we can't have that can we?
Alastor the Stylish
Posts: 2258/7620
Originally posted by Simon
But what if the player finished the level through the third exit before using the exit that would trigger the event that was meant to be overwritten by the third exit's event, that way, the player could reach two new levels using only one exit and when the player finally does use the exit with the event that was meant to be overwritten it will instead overwrite the third event that was meant to overwrite the event that has now overwritten it but was meant to be overwritten by... you get the picture
Yeah, it will graphically glitch then, but when you go in to a new level or in to a different map area and then go back it'll be fixed provided the replacement event is after the first one. It's not like the path will kill itself... As is my understanding, anyway.
Simon
Posts: 34/115
Originally posted by Kratos Aurion
Actually, Simon, I just checked. Even if the direction is enabled from the start, if there is no path tile there you won't be able to go in that direction.
Fmmf? I'll have to look in to that more closely...

Originally posted by Kratos Aurion
EDIT: CPUbasic, you didn't understand. The fourth exit changes the path that the first or second goes along via layer two 16x16 event-activated path tiles. To prevent it from harming anything, the level after it could have going to the level the path to which was overwritten and have that direction enabled from the start so you wouldn't have to do anything to get to it. Understand?
But what if the player finished the level through the third exit before using the exit that would trigger the event that was meant to be overwritten by the third exit's event, that way, the player could reach two new levels using only one exit and when the player finally does use the exit with the event that was meant to be overwritten it will instead overwrite the third event that was meant to overwrite the event that has now overwritten it but was meant to be overwritten by... you get the picture
Escherial
Posts: 61/90
Let's not forget the possibility of enabling events that aren't directly related to moving on to the next level (i.e. terrain changes on other parts of the map); I think that more than three exits would be useful in such cases.

I'm trying to get a three-exit setup working smoothly (using a little ASM), but I'm having trouble figuring out the address that states which direction to enable upon level completion. If anyone knows the numeric values for Up, Down, Left, and Right, it'd make searching for the address a lot easier. I've tried the obvious 0, 1, 2, 3 for those directions, respectively, but that's not it.

Once I find that address, it should be entirely possible to write up a block that not only executes an arbitrary event upon level completion, but moves the player in the direction that the event makes passable as well.

Once again, if anyone knows the numeric values for Up, Down, Left, and Right, it'd make searching for the address a lot easier (please, Fu? ).
Alastor the Stylish
Posts: 2253/7620
Actually, Simon, I just checked. Even if the direction is enabled from the start, if there is no path tile there you won't be able to go in that direction. You going off in an odd direction would be strange but it could be fixed pretty easily, just set the three-way level as one where you don't move after level completion. Of course, if changing the direction IS possible, none of that would be necessary.

EDIT: CPUbasic, you didn't understand. The fourth exit changes the path that the first or second goes along via layer two 16x16 event-activated path tiles. To prevent it from harming anything, the level after it could have going to the level the path to which was overwritten and have that direction enabled from the start so you wouldn't have to do anything to get to it. Understand?
cpubasic13
Posts: 564/1346
Originally posted by Kratos Aurion
You could probably do the same thing to make 4+ but that would be rather awkward, though not completely useless if you were to use new path tiles triggered by the event to alter the path.


Think about that for a second... you enter one way (lets say the bottom) and you have four exits. How will that work?

Anyway, It could be possible, but you would need a custom block as since SMW originally came with only two different exit sprites. ASM could also do it, but you also have to remember about LM's limits. It would not allow you to edit the third exit in it, so you would have to use ASM...
Simon
Posts: 32/115
Originally posted by Kratos Aurion
Make a custom block that changes what event an exit trigger when touched. Make this block work as a level exit. Voila, third exit. I'm not sure changing the direction enabled would be possible but having that direction enabled from the start and having the event activate the path so you can't go along it anyway would probably work You could probably do the same thing to make 4+ but that would be rather awkward, though not completely useless if you were to use new path tiles triggered by the event to alter the path.


I don't think that would work as the event tiles that makes out the visual path on the OW map has nothing at all to do with what path Mario will actually follow. Thus, if a direction is enabled from the start, Mario will be able to walk in that direction regardless of whether the event showing the 16x16 path tiles has been triggered or not. You might be able to make the custom block enable the new direction for you when it's triggered though.
Alastor the Stylish
Posts: 2245/7620
Make a custom block that changes what event an exit trigger when touched. Make this block work as a level exit. Voila, third exit. I'm not sure changing the direction enabled would be possible but having that direction enabled from the start and having the event activate the path so you can't go along it anyway would probably work You could probably do the same thing to make 4+ but that would be rather awkward, though not completely useless if you were to use new path tiles triggered by the event to alter the path.
Not sure the overworld animation thing is possible; why not just use a different shape for it that overwrites either the small or big level icon? That's what I'd do, anyway.
Keikonium
Posts: 674/-2459
I actually have two questions here:

1. What bytes would I need to add/change in the rom to enable a level to have 3 exits (normal, secret, and another one)? Would I need any custom blocks etc?

2. How do I do overworld animations? If I can get three exits, I need to create a different animated (flashing) level tile...

I could go without the three exits, however because of the levels placement, it would need to be always revealed and it would be floting in the air (its a bridge level).

So any help would be great.
Acmlm's Board - I2 Archive - Super Mario World hacking - ASM to enable 3 exits?


ABII


AcmlmBoard vl.ol (11-01-05)
© 2000-2005 Acmlm, Emuz, et al



Page rendered in 0.010 seconds.