News:

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

Main Menu

im about to give up!

Started by Crazyjoe5150, May 06, 2018, 01:26:15 PM

Previous topic - Next topic

Crazyjoe5150

I cloned a room ok but the enemy pointed is still shared. i would like to know once and for all where to repoint plms enemiss and such! what banks of free space to use because im getting frustrated and am about to give up and how to change and add enemies without a room crash

PHOSPHOTiDYL

PLMs are bank $8F, free space is 078000 to 07FFFF, which is the pc address.
Smile makes it easy, you just convert the pc address to LoROM, which for this bank is $8F8000 to $8FFFFF.

Scrolls are the same bank, same thing, find free space, make some scrolls.

Doors are the same bank, but each room would need a two byte pointer to space in bank $83.
It's easy once you do some manual door entries, sometimes smile won't let you copy your door to edit it.
The super metroid mod manual has all the info you need for this.

The enemy set is bank $A1, pc address 108000 to 10FFFF.
I haven't done anything with this part, so I'm not too sure how it works.
Each enemy in the room gets a 16 byte/$10 length string of data, until ending with $FFFF.
16 would equal 10 in hex. I'm looking at the landing site rite now, so here's an example.

$A1883D is the enemy set pointer, & there are three enemies, aka three parts to the ship.
Pc address is 10883D, so goto that in a hex editor.
Every $10 bytes, or 16 in decimal, is a string containing enemy data.
Three enemies, the sequence ends with $FFFF, so $32 bytes total.

Copy & paste those bytes @ the next available free space.
Just to be safe, 10EBD0. Then change the enemy set pointer to $A1EBD0.

Now enemy gfx is a bit different due to the bank it's in.
Bank $B4 in pc address would be 1A0000 to 1A7FFF.
You could think of even banks being xx0000 to xx7FFF & odd banks being xx8000 to xxFFFF.

Now, while the ship is three parts, it only uses two enemy headers, $D07F & $D0BF.
The landing site enemy gfx pointer is $B48193. [7F D0 02 00 BF D0 07 00 FF FF]
If you decode that, it would be D07F,0002,D0BF,0007,FFFF.

For every different enemy header in the room, max of four, you'll need four bytes, followed by FFFF.
The first two bytes are the enemy header, the next two are it's palette.
You can share palettes with other enemies in the room, but I still can't figure out how it works.

If you rite click the ship, the lower rite is the room enemies box.
The allowed pointer is the enemy gfx pointer.

So idk, pick any room with enemies you want & copy their data.
Find another room you want new enemies in, paste the data to free space, & change that room's pointers.
You'll understand once you try it a few times.

Get ready to break some vanilla romz.

Crazyjoe5150

i have cloned room 79ad9  its in 7e99a. i want to fix it so when i move the elevator it dosent move in 79ad9  any way to do this?

Crazyjoe5150

Nevermind I figured it out