• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • Forum moderator applications are now open! Click here for details.
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

Development: Sideways Stairs

Teh Blazer

Divider of Zero
776
Posts
15
Years
Every hack I've seen has had a problem with the dreaded sideways stairs. Sure, they look pretty nice when not stepped on, but when stepped on they turn the seemingly multi-platformed and 3-D area turned flatter than soda in a broken down fridge. In Fire Red there is the small animation where the player goes up the stairs which seems good enough to use as a lead.

Would it be possible for us to make the stairs work?
 

Jambo51

Glory To Arstotzka
736
Posts
14
Years
  • Seen Jan 28, 2018
Personally, I think it would be better to look into the animations for downwards stairs for some clues on how we should be implementing this. There's a barely noticeable delay when walking down stairs.

If we could find this, and how it works, we could look at the behaviour bytes/background bytes which control how it affects the player's movement.

Thing is, we'd need to make the camera move too (not that difficult imo), and change the way that the existing stairs work, to create the illusion of the upstairs areas being above the lower areas.
 

Teh Blazer

Divider of Zero
776
Posts
15
Years
To Teh Blazer:
Do you mean having the stair animations in RSE, or what..?
Does RSE have sideways stairs? If so, then yes. I don't think it does (but maybe I'm crazy) however I will look into it.

I've just noticed a lot of hacks which are graphically great but the sideways stairs kills the game for me. Some hacks, like my demake, might have run into a big problem with the sideways stairs, which I think should be updated.
 

Sierraffinity

Desperately trying to retire from ROM hacking
1,069
Posts
16
Years
Does RSE have sideways stairs? If so, then yes. I don't think it does (but maybe I'm crazy) however I will look into it.

I've just noticed a lot of hacks which are graphically great but the sideways stairs kills the game for me. Some hacks, like my demake, might have run into a big problem with the sideways stairs, which I think should be updated.
It doesn't, but I still don't get what you mean.
 

~Anbuja

Let's Keep It Simple
321
Posts
13
Years
It doesn't, but I still don't get what you mean.

no he means like in platinum or black and white when u walk on a stair that leads to the side it should bring u kinda vertically down but in FR/LG R/S/E if u have an side stair in the hero walks straight that makes it unnaturally.
dont know if i was clear enough....:S:S:S
and yeah i have met this problem on FR to and i think it's not possible to get that animation in.....maybe it is but im not smart enough to do it....
 

Teh Blazer

Divider of Zero
776
Posts
15
Years
It doesn't, but I still don't get what you mean.
Ok, I'll try to explain (but I'm terrible at explanations):

Some hacks decided to put in sideways stairs so when people are on a mountain, instead of getting off on the front, they can get off on the side. Not all hacks have this because it's not in the actual Fire Red ROM, but some hackers put it in.

Since they only put in the tile of the sideways stairs, it's flat just like all the other tiles when stepped on. I'd like for us to figure out a way that, when stepped on, some stuff will make the player go up or down just like in actual stairs.
 

Sierraffinity

Desperately trying to retire from ROM hacking
1,069
Posts
16
Years
Ok, I'll try to explain (but I'm terrible at explanations):

Some hacks decided to put in sideways stairs so when people are on a mountain, instead of getting off on the front, they can get off on the side. Not all hacks have this because it's not in the actual Fire Red ROM, but some hackers put it in.

Since they only put in the tile of the sideways stairs, it's flat just like all the other tiles when stepped on. I'd like for us to figure out a way that, when stepped on, some stuff will make the player go up or down just like in actual stairs.
Ahh, gotcha. This makes it all clear.
 

Derlo

Tired....
135
Posts
16
Years
Well, I was taking a look at the RAM to see if anything happens when you use the side stairs of the houses.

More or less in 02020660, when the player up / down the stairs, a series of bytes are written, making the overworld has a diagonal movement.

But when that data is written out of the command "up / down stairs," the overworld leaves the center of the screen.
Thus the movements of the player are strangers to the map and other events on it.

Maybe this helps ... or not.
But what counts is the intention. ^ ^ v

Good luck
 

Jambo51

Glory To Arstotzka
736
Posts
14
Years
  • Seen Jan 28, 2018
Well, I was taking a look at the RAM to see if anything happens when you use the side stairs of the houses.

More or less in 02020660, when the player up / down the stairs, a series of bytes are written, making the overworld has a diagonal movement.

But when that data is written out of the command "up / down stairs," the overworld leaves the center of the screen.
Thus the movements of the player are strangers to the map and other events on it.

Maybe this helps ... or not.
But what counts is the intention. ^ ^ v

Good luck

This is the pre-OAM staging area. This makes sense for trying to create a form of moving upwards. Thing is, we'd need to shift the tiles up the same number of pixels too for it to actually have that sort of illusion of being above the lower area, we would also need to repeat this movement for the camera most likely. When walking over these tiles, we'd need to have a custom routine called which writes the upwards OAM movement.

Could be difficult to pull off, but not impossible!
 
1,323
Posts
16
Years
  • Seen Dec 9, 2023
Just in case you guys don't get it, the topic starter is talking about this:
unledrce.png
 

Full Metal

C(++) Developer.
810
Posts
16
Years
This is the pre-OAM staging area. This makes sense for trying to create a form of moving upwards. Thing is, we'd need to shift the tiles up the same number of pixels too for it to actually have that sort of illusion of being above the lower area, we would also need to repeat this movement for the camera most likely. When walking over these tiles, we'd need to have a custom routine called which writes the upwards OAM movement.

Could be difficult to pull off, but not impossible!

I believe what we would have to do would be insanely difficult.
FIRST you would have to hook on to whatever copies the mirror memory into the GBA's VRAM or whatevers. Then if you wanted a decent looking 'zoom' effect- well...actually, I think there's an SWI for that. ( resizing to make it bigger ) but we'd also have to save a z position, ( granted that is only one byte ) and we could make a pretty nice hack out of this. For example, when moving up a layer in movement permissions, z position +1 ? (: Hell. With movement permissions in place we wouldn't even have to save the z position -- we could just make a hack that zooms appropriately according to the current movement permission ( why didn't Nintendo do this, I wonder? o: )

So there's my two cents, for what it's worth. :)
 

TheDarkShark

Metal Headed Hacker
56
Posts
13
Years
I have never worked with graphics on ASM level before, but I have another idea: If we manage to move the camera half a block up, all we need to do is reset the player's sprite's position in the OAM, right? I don't know how easy or hard it is, to move a sprite, but Derlo has posted some information on the camera moving.
Then all we need are two behaviour bytes: one for the stairs from left to right, and one for the other way round (ie. behaviour byte X: when stepped on from the right moves the camera down, when stepped on from the left moves camera up. Behaviour byte y does the exact opposite.)
No need for a z-coordinate.

@Full Metal: Wouldn't the zoom effect be a completely different thing? I think you would implement it in the overworld's main routine, not in a camera-moving-stairs-routine. Also you would have to zoom every OW-sprite on that layer. I don't think it's worth it, interesting idea, though.
 

Full Metal

C(++) Developer.
810
Posts
16
Years
@Full Metal: Wouldn't the zoom effect be a completely different thing? I think you would implement it in the overworld's main routine, not in a camera-moving-stairs-routine. Also you would have to zoom every OW-sprite on that layer. I don't think it's worth it, interesting idea, though.

That's called thinking outside of the box, and thinking laterally. :O
Anywaysss. It would create a much nicer effect than just moving the camera x/y. It would generate a psuedo 3D effect. :)
So that is definitely worth it, and is just as challenging as any of the ideas we don't have yet. ;)
 

Jambo51

Glory To Arstotzka
736
Posts
14
Years
  • Seen Jan 28, 2018
Yes, there is a SWI (Or possibly a piece of callable code - not sure which) for upscaling sprites. Thing is, I don't understand how it would be used, and have no idea where the routine/SWI is either.

FWIW, I think Full Metal's idea would be a very good idea, but we would have to dedicate a large amount of research to it. So, for the time being, I think we should try to replicate Gen 4's camera, which doesn't zoom, but sort of... lags behind the player while walking up steps, and "fake" the z co-ordinates at a later time.
 

TheDarkShark

Metal Headed Hacker
56
Posts
13
Years
I just checked GBATek, and if I got it right, there's no such swi, neither in the GBA, nor in the NDS. I'm not sure, since my technical English isn't thaaaat good. (What is BgAffineSet, for example? )
Err, okay, just checked again, and it seems as if BgAffineSet and ObjAffineSet are the functions you are looking for (swi 0x0e and 0x0f, respectively) :
http://nocash.emubase.de/gbatek.htm#biosrotationscalingfunctions

@Jambo51: What do you mean by "lags behind the player" (gnaah, my English isn't half as good as I want it to be >< )?

By the way: When I said "It's not worth it", I meant something like "Has no priority to me". Still, it's a good idea.
 

TheDarkShark

Metal Headed Hacker
56
Posts
13
Years
Ah, okay.
I've just been thinking of zooming tiles and OWs in the layers above the player. I don't know if zooming the tiles is necessary, but at least, you have to modify the zoom-level for all OWs, not only the player to make it look authentic, right? Just a "small" suggestion, though.
*English-skill returned*

By the way: Shouldn't we be talking about the sideway's stairs instead of a zooming camera with z-coordinate support?
 

Full Metal

C(++) Developer.
810
Posts
16
Years
Oh yeah....good point. xD
But the zooming camera would accomplish the same effect...only prettier. b:
Which I think is what we've been talking about?
Right Now it's my understanding that we're deciding: is the effort for the zoom worth the output, or would we rather go with the lagging camera?
 
Back
Top