Language…
6 users online: anoMaly666,  Atari2.0, cletus_deletus,  Donut, playagmes169, sinseiga - Guests: 232 - Bots: 278
Users: 64,795 (2,375 active)
Latest user: mathew

YI hacking FAQ v2 (updated for 2018) - Ask questions here!

Link Thread Closed
Jeorge, you DO know about level expansion, no? Now, where are the pointers?
Right, calculate level number * 6 + BF9C3 and there you go. For sprite data, calculate level number * 6 + BF9C6.
Or do you mean how to find out the location each pointer points to?
Then take LunarAddress and type them in (byte-swapped, of course!) and there you go. If a pointer ends with a number >40, byte-swap it and calculate the thing - 3F FE 00.
Thanks, Yoshis Fan! I will give it a try. #w{=D}

Edit: In Lunar Address, which ROM type is it? Sorry if this a noobish question or if you've already answered it.Free counters!
No, this is not answered. But as you can conclude from previous pointer calculations, it uses the LoROM addressing mode, so it's a LoROM. Also, the Emulator I use, SNES9X tells you, so I'm sure it is.

Hope this helps. Also, you may not forget to tell the program to calculate the 0x200 bytes header. But I guess it includes that by default.
Thanks, Yoshis Fan! I did all that though, and Lunar Address gave me what looks like a RAM offset. How would I convert this into the offset used in the hex editor?Free counters!
It actually shouldn't do so.
Please send a screenshot.


It showed a RAM-style offset when I tried the other LoROM mode, too.Free counters!
Jeorge, this is not RAM, that would be the pointer. You need the pointer to find out the PC address. So you type the byte-swapped pointer into the right field, where it says SNES LoROM to find out the according PC Address. The PC Address is what Translhextion shows. I thought the program would be pretty self-explanatory. Well, either way, it should work now.

*Edit*
Does it work?
I have a "Kill all enemies in the room and win the prize passage" In my hack, In the said room there is a small ledge with 2 georgetta jellies on either side.

The method is the lick them and throw them off the platform and into a bottomless chasm. the reward is a key vital for completing the level.

sometimes the key doesn't spawn when I have defeated all enemies and the enemies don't re-spawn either.

and there is no item memory sprites in the room either other than that one.

Help please.

Mickey8715, Please subscribe and comment!
Is that room set to a unique item memory setting (different from the other rooms in that level)?

–=–=–=–=–=–=–
Advynia: a Yoshi's Island editor - Alyssa's Unlikely Trap demo 3
I don't recall setting another Item memory setting so no.

EDIT: Does the same apply If you use a salvo the slime mini-boss?

(The slime were if you defeat it you gain a normal key, the slime used in 8-4 and King bowser's castle in the original.)

Mickey8715, Please subscribe and comment!
Originally posted by Yoshis Fan
Jeorge, this is not RAM, that would be the pointer. You need the pointer to find out the PC address. So you type the byte-swapped pointer into the right field, where it says SNES LoROM to find out the according PC Address. The PC Address is what Translhextion shows. I thought the program would be pretty self-explanatory. Well, either way, it should work now.

*Edit*
Does it work?

Well, I tried it, and the offset was invalid when I tried to go to it in Translhextion. Not to worry though, I can just copy it all over, which won't be too hard.Free counters!
@xxxzzz1:
I don't quite understand whether you've set the item memory header setting correctly or not... Have you already looked at this section of the FAQ?

Originally posted by YI hacking FAQ v2
- I didn't place any items directly above/below each other, so why do my items still vanish?

Each level contains an item memory/Midring header setting.

If two or more levels share the same setting, collecting items in one may cause items in another to vanish.

It is highly recommended that you make every sublevel in your level use a different item memory setting (as in, if 4-4 contains levels 1E, 55, AA, and C1, set their item memory indexes to 0, 1, 2, and 3, in any order).

(If your level contains 5 or more sublevels... you'll just have to test repeatedly, collecting every single item and watching closely for any that vanish. Therefore, I recommend that you try to limit your levels to 4 or fewer sublevels (not counting boss battles) when possible.)

And yes, the Salvo mini-boss affects item memory, so don't place it directly above/below another collectable item.


@Jeorge535:
Here's a summary of how to find a level's location in the ROM (note: all calculations are in hexadecimal):

- As Yoshis Fan said, to find the pointers, calculate (level number * 6 + BF9C3). For example, if you're looking for the pointers to level 39, you'd calculate 0x39 * 6 (=0x156), + 0xBF9C3 = 0xBFB19.
- The pointers are three bytes each-- first object data, then sprite data. Continuing with my example, at offset xBFB19 in a clean YI v1.0 (U) headered ROM, the next six bytes are [42 80 16 60 85 16].
- However, each pointer is in reverse byte order (little-endian). Reversing these pointers gives you [16 80 42] and [16 85 60].
- These pointers (to write them the way they're normally written, $16:8042 and $16:8560, though symbols are unnecessary in Lunar Address) are SNES addresses, not PC addresses. Copy each one into the SNES LoROM box on Lunar Address, and you'll receive the corresponding PC address on the left side (e.g. $16:8042 is B0242). (If Lunar Address adds symbols to the PC address, ignore them-- the convention is to use $ for SNES addresses and x or 0x for PC addresses.)
- Note: If the highest byte of the pointer (third byte as it's written in the ROM, first byte after you reverse it) is $40 or greater, don't use Lunar Address. Instead, subtract 0x3FFE00 (or, if you prefer, subtract 0x400000 and add 0x200) to find the PC address.
- Now you can go to that offset in Translhextion... don't forget to add the "x" at the start though (xB0242, not B0242).

As for determining where the data ends... I'm not sure exactly how to do it with Golden Egg (that is, whether or not Golden Egg's byte count includes the header or the FF bytes the mark the end of the level). (I know how to find where a level ends using Eggvine's byte count though...)

Edit:
Now that I think about it, why do you need to port your hack to a new ROM, anyway? Is there some kind of game-breaking error? If not, why not just create a copy of your existing ROM and overwrite the levels you don't like?

–=–=–=–=–=–=–
Advynia: a Yoshi's Island editor - Alyssa's Unlikely Trap demo 3
Well, I basically wanted to start from editing the original YI levels...it just seemed better and easier for me. Maybe I will either copy 1-6 over tile by tile or take your suggestion. Apologies for wasting your time, Zeldara and Yoshis Fan.Free counters!
No big deal, Jeorge.

Anyways, I got a question:
Is there an easy-to-edit Offset, that determines Yoshi's vulnerability interval? I mean the amount of time he is invulerably after being hit. I'd like to slightly shorten that amount of time.
This is how Yoshi reacts to getting hit

SNES 0x03A8F8 ROM 0x01AAF8 How long Yoshi is invulnerable after getting hit, default 0xA0
SNES 0x06CFB2 ROM 0x0351B2 Sensitivity to enemies, default 0x9F

The time invulnerable must be grater than the sensitivity value.
Working on Super Mario World 2 - Yoshis Island Boss Rush
Other projects on hold.
Hello.

Is possible to get working right the green red coins? because when collecting them sometimes makes weird noises.
@doggy
I have a IPS for that, Green-Red Coin fix IPS

Does not work with the magnifying glass though.
Working on Super Mario World 2 - Yoshis Island Boss Rush
Other projects on hold.
that's awesome tehaxor! but now it's possible to change their palette/map-16/whatever is called... to red instead of green?
Change:
ROM 0x0CD4A2
from
[40 0E 41 0E 42 0E 43 0E]
to
[40 0A 41 0A 42 0A 43 0A]
Working on Super Mario World 2 - Yoshis Island Boss Rush
Other projects on hold.
When Baby Mario is off Yoshi's back, a warning beep normally starts when the timer counts below 10. Does anyone know how to change when this beep starts (since in my hack, Yoshi only auto-recovers to 7 stars instead of 10)?

–=–=–=–=–=–=–
Advynia: a Yoshi's Island editor - Alyssa's Unlikely Trap demo 3
Link Thread Closed