News:

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

Main Menu

Bigger rooms?!

Started by lol123ps3, December 28, 2015, 05:18:03 AM

Previous topic - Next topic

lol123ps3

Sup guys,,,,,,
Can i change rooms Widht / Height without overwriting stuff??????????????????????????????

Quietus

#1
Yes, indeedy. :^_^:

You may also wish to take a look at 2.2 of the FAQ.

lol123ps3

okayyyyyy, now how do i make elevators?¿?¿?¿?¿? :sad: :blush: :evilno: :colonrightv: :nod: :<_<: :wink: :grin: :grin:t

Jordan5

If you actually looked at the FAQ that Quietus linked, section 2.13b is about elevators.

TAxxOUTBR3AKxx

I know room dimensions cant be bigger than I believe 50 screens, but in any 1 direction, they can only expand to 15 screens either X or Y max [F]. Is there any way to allow a room to expand past 15 screens in any 1 direction? Like say maybe have a room that's 20x2? Or 1x35?

Mettyk25jigsaw

It might be possible in theory, but I think smile would have to support it as when you go to save and reload the room, I suspect the room would just go back to normal. You can however give this a try if you like but definitely make a back-up first...Also some ASM Would be required probably if it's possible at all I am pretty sure. So this probably won't work.
   You can go to a hex editor and find the offset of the room header, for example room 793AA, (room top right of ship room), normally set amount of scrolls for this room is 2 x 1, so if you go to offset 793AA in hex editor you will find the bytes at around the 4th or fifth byte (it's directly before the 70 A0 anyway) change it to what you want and at least try but I doubt it will work, so please don't do this unless you make a back-up first!!!!...The room may actually show up fine at first I don't know or it might not load at all, but once you go and save or maybe save and reload room, the room will turn back to normal size I think...
   Anyway you don't know till you try I suppose...

DSO

Quote from: TAxxOUTBR3AKxx on January 04, 2016, 02:25:39 PM
Like say maybe have a room that's 20x2? Or 1x35?
While you can set room dimensions however you want in a hex editor, the issue is that block lookup gets corrupted beyond 0x0F (top nibble is chopped off when calculating blocks). So even if SMILE could display a 20 screen wide room, it would not behave properly ingame. Both Scyzer and I have made workarounds where we can make a 'room' any size we want by writing code that dynamically loads new level data, enemy and PLM placement while invisibly warping Samus to constantly be in the middle of a "5x5" room. The tradeoff is that the level data for this must be uncompressed, meaning that AT BEST only 42 screens will fit in a single bank, less if you want a custom layer2 instead of a BG pointer.

snarfblam

Suppose you wanted a 20x2 room... would it be possible to arrange it as a 10x4 room (or maybe 11x4 to allow for one-screen-wide duplicated "buffer" area if it makes things simpler) and e.g. when the player gets to the right edge of the top section, "warp" him to the appropriate location at the left side of the bottom section?

[spoiler=Illustration]

The duplicated buffer screen is outlined in red.

When you get to an "X", your coordinates (and those of enemies?) get adjusted down and left, or up and right, by a certain number of screens.
[/spoiler]

Quietus

Most probably, yes. I believe that's how Drewseph created the Lost Caverns in Redesign. Unless you followed the correct path, it just kept warping you back round to the same room.

JAM

Quote from: DSO on January 04, 2016, 05:13:57 PM
While you can set room dimensions however you want in a hex editor, the issue is that block lookup gets corrupted beyond 0x0F (top nibble is chopped off when calculating blocks). So even if SMILE could display a 20 screen wide room, it would not behave properly ingame. Both Scyzer and I have made workarounds where we can make a 'room' any size we want by writing code that dynamically loads new level data, enemy and PLM placement while invisibly warping Samus to constantly be in the middle of a "5x5" room. The tradeoff is that the level data for this must be uncompressed, meaning that AT BEST only 42 screens will fit in a single bank, less if you want a custom layer2 instead of a BG pointer.
What a perverts you are! I tried to do something, but ended when found that PLMs can't be physically located after Fth screen (actually, at 10th screen still can). Because 1 byte in RAM is used for each PLM for X coordinate and 1 byte for Y coordinate. $FF means block $F on $10th screen. So I stoped there.

For the 42 screens, not a big problem if:
a) use just a few such kind of rooms in the hack.
b) expand the hack to ExLoROM format.

personitis

Quote from: JAM on January 04, 2016, 11:45:10 PM
What a perverts you are!
I feel like you don't understand what "pervert" means. That or I'm missing something...

Quote from: snarfblam on January 04, 2016, 05:38:53 PM
Suppose you wanted a 20x2 room... would it be possible to arrange it as a 10x4 room (or maybe 11x4 to allow for one-screen-wide duplicated "buffer" area if it makes things simpler) and e.g. when the player gets to the right edge of the top section, "warp" him to the appropriate location at the left side of the bottom section?
Yes, this would definitely work. Only issue then becomes how the map handles it. You're then warping down and over a few screens and the map would pick up on this. Some additional code would have to be written to accompany that I'd assume.

DSO

Quote from: personitis on January 05, 2016, 01:20:11 AM
Only issue then becomes how the map handles it. You're then warping down and over a few screens and the map would pick up on this. Some additional code would have to be written to accompany that I'd assume.
That's just writing new values to $07A1 and $07A3. There's also a different kind of 'larger than F' screens room I've done with this, where I've made a 1x1 'elevator' room. You activate it, the door locks and the background starts scrolling faster and faster (with temporary heavy gravity or Samus rising in the air, depending on the direction of the elevator) and you appear to zoom up/down the map. Then a screen shake, sfx, and if you're headed upwards, Samus gets launched upward into the air and hits the ceiling.
How's that for perversion?

JAM

Quote from: personitis on January 05, 2016, 01:20:11 AM
Quote from: JAM on January 04, 2016, 11:45:10 PM
What a perverts you are!
I feel like you don't understand what "pervert" means. That or I'm missing something...
I said that in good meaning.

Quote from: DSO on January 05, 2016, 07:27:55 AM
How's that for perversion?
Sounds excellent! Will wait for a hack with this elevator.
And thanks for idea with $07A1 and $07A3. Tried to changed $07A3 via cheat code to $04 and back in the room 792B3. Works perfectly!