Language…
5 users online: Daizo Dee Von, DashGamer, drkrdnk, Isikoro, marvisjj - Guests: 254 - Bots: 333
Users: 64,795 (2,377 active)
Latest user: mathew

SMW2 Yoshi's Island offsets and helpful info

Resource

Since the original snowball lacks radial symmetry, here's a graphic that can be used in conjunction with tehaxor69's patch (from when I attempted to do the same thing):


The reason why the blue roller glitches is because they act just like the flowers when the screen is loading, they will only show a bulb form, the blue roller does not have an alternate GFX.
Blue Roller Fix IPS

Here is a patch for the line guide
Line Guide Fix IPS



@Mattrizzle
Thanks for the snowball image.
Working on Super Mario World 2 - Yoshis Island Boss Rush
Other projects on hold.
@tehaxor69:
Awesome! Thanks a lot for these patches, tehaxor69!
But when I played the ported version of Secret 1 (Exercise In The Skies), I wondered whether the line guide fix patch is also supposed to fix the flatbed ferry offset. The blue roller thing works perfectly now, but a red flatbed ferry in the level, which uses a vertical line guide is still a bit off the line guide.

Great, very great! Two more questions are answered!
GBA -> SNES Todo list

@Mattrizzle:
Thank you very much for the image, I will use it, if I may.

*Edit*
@tehaxor69:
In Secret 5, when I destroy the Tap-Taps using the snowball in the level, a bonus Sprite will appear (Sprite 161 on even X axis, odd Y axis, this will generate a SuperFX using flower). That flower, however, uses the graphics of the snowball. The SuperFX !-Switch (Sprite 09D) works fine, though.
To disable layer 2 dizziness

Change:
ROM 0x00DA54 From [22 44 DE 7E ] to [EA EA EA EA] -Disables the vertical wave
ROM 0x045FAE From [3A] to [01] -Were changing some FX code here -Disables the horizontal wave

Those are two different patches.

Edit
I noticed with or without the patches, some of the red ones are a little off, I moved those ones down one unit in egg vine and they all start and stay one the line guides.
Working on Super Mario World 2 - Yoshis Island Boss Rush
Other projects on hold.
Thank you, tehaxor69!
However, there are a few problems with the Layer 2 dizzy effect:
When I do the steps as said, Layer 2 will somehow jerk a little to the right/left, when a fuzzy is touched. Aside from that, some of the Layer 2 tiles are gone for a very short time, when a fuzzy is touched. I don't know, whether the latter is easy to fix, but the first one should be fixable.

*Edit*
NOPing the [22 44 DE 7E] obviously is responsible for the Layer 2 jerking around. Changing the [3A] to [01] has no side effects (at least I didn't notice any).

About the red platforms, they also are a little off vertical line guides, not only horizontal ones.

(Read the edit in my post above?)
Here are the cords of the dots / flowers that make up the goal ring

Dot 2
X - Axis = ROM 0x08AE3E
Y - Axis = ROM 0x08AE7E

Flower 2
X - Axis = ROM 0x08AE24
Y - Axis = ROM 0x08AE64

Dot 3
X - Axis = ROM 0x08AF0B
Y - Axis = ROM 0x08AF4B

Flower 3
X - Axis = ROM 0x08AEF1
Y - Axis = ROM 0x08AF31

Dot 4 bottom
X - Axis = ROM 0x08AED8
Y - Axis = ROM 0x08AF18

Flower 4
X - Axis = ROM 0x08AEBE
Y - Axis = ROM 0x08AEFE

Dot 5
X - Axis = ROM 0x08AEA4
Y - Axis = ROM 0x08AEE4

Flower 5
X - Axis = ROM 0x08AE8B
Y - Axis = ROM 0x08AECB

Dot 1
X - Axis = ROM 0x08AE71
Y - Axis = ROM 0x08AEB1

Flower 1 Top
X - Axis = ROM 0x08AE58
Y - Axis = ROM 0x08AE98


The cords are signed and start from the center of the loop
The dots listed are the ones that come right before the flower going in clockwise order



Here are some offsets for the midrings

//Ring expansion rate once passed through -16 bit
ROM 0x011687 [0x02]

//Max expansion -16 bit
ROM 0x01168A [0x60]

Cords Y first entry ROM 0x042D98
Cords Y last entry ROM 0x042ED7
Cords X first entry ROM 0x042ED8
Cords X last entry ROM 0x043017

//Animation speed mask -16 Bit
ROM 0x0115BE [0x03]

Distance between stars
ROM 0x045624 [0x12]

Number of stars -higher values than 0x0E work
ROM 0x04562D [0x0E]


There are downsides to editing the positions-
The level screen wipe uses the same offsets as the end level goal
The midring uses the same offsets as the rotating platforms
Working on Super Mario World 2 - Yoshis Island Boss Rush
Other projects on hold.
Nice finds about the middle and the goal ring!
But... Is it also possible to unSuperFX the goal ring?
If I'm not mistaken, it takes 2 SuperFX slots for resizing objects. But I think it wouldn't lose that much quality, if the graphics for the small/big dot and the small/big flower would simply alter, since you can't see much of the resizing thing anyways.

Also, will you also make a patch for the flatbed ferries to work correctly on vertical line guides? Horizontal line guides work perfectly with all of them (including Sprite 18F), but the horizontal offset from vertical line guides is still unfixed.

*Edit*
I've found out what's wrong with the Snowball:
The game thinks, it would claim 2/4 SuperFX slots, but actually it claims 3/4 SuperFX slots, making the second SuperFX sprite (other than the Snowball itself) shown on the screen into a part of the Snowball.

*Edit*
tehaxor69, I wonder... I see you're online quite often, but you seem to post rarely... Anyways, have you read the first edit of this post? It's only that I have a guess about what is wrong.
Originally posted by Yoshis Fan
@Zeldara:
I still find it weird, that Yoshi disappears behind Layer 2 sometimes. I don't think it has any purpose. Anyways, Nintendo either were too lazy to fix it or they couldn't, since you can see work-arounds for the problem (for example in 1-6 in the cave you can see a Latern Ghost pipe. You can enter it, even if Yoshi would disappear behind Layer 2 (Because it's dark there, so they had to use Level Mode #E). But he doesn't because in that certain place there are no Layer 2 objects).


This will prevent Yoshi from disappearing behind layer 2 when entering a pipe- Change
ROM 0x00CB38 from 0x04 to 0x15

Not sure if this works for every problem, but if you find a place that glitches send me a IPS, and tell me where it problem occurs

@Yoshis Fan

Sorry for the late reply, I'm working on multiple things right now.

Un Super-FX ing any sprite actually won't help since all FX sprites are required to be copied from RAM 0x705800 to VRAM 0x5C00 anyways.

The snowball claims/allocates 2 (32x32) slots, but does not lock its value cause it was never intended to work with the other FX sprites.

I figured out how to change where the FX processor renders GFX to in memory. I created a new DMA routine that copies from the new location to a unused area of the sprite GFX, then changed the snowball's tiles to point there, and had 7 super sprites at the same time, flicker free, snowball + flower + piranha plant + message box.

Im currently writing a patch for this, so that any combination of 4 FX sprites + snowball + Super Mario will work.

FX Memory Render Map
R4 = Address
0x00 = 0x700000 -
0x02 = 0x700800 -
0x04 = 0x701000 -
0x06 = 0x701800 -
0x08 = 0x702000 - Don't use, used for CGRAM
0x0A = 0x702800 -
0x0C = 0x703000 -
0x0E = 0x703800 -
0x10 = 0x704000 -
0x12 = 0x704800 - Blank
0x14 = 0x705000 - Blank -Putting the snowball here
0x16 = 0x705800 - Normal, Auto assign 4 FX slots
0x18 = 0x706000 - Normal, Super Mario
Working on Super Mario World 2 - Yoshis Island Boss Rush
Other projects on hold.
No big deal about the replying thing, I was just wondering...
Anyways, changing the address given from 0x04 to 0x15 does not change anything for me. I've simply made a level, which tests all level modes, so here you go:
Glitch.IPS
Play level 1-1 and see.
Each part of the "level" uses a different level mode.
They go up from 0 to F, but I left #9 out, because that would result in a glitchy Raphael the Raven battle. That glitchy thing in the Kamek room is a pipe, too. (I know, nobody would ever set this in his/her hack, but for testing purpose...)

My initial guess, however, was, that the disappearance behind Layer 2 of Yoshi is an unfixable thing, because the level mode determines hardware parameters, thus nothing can be edited there, but if it is possible, it would be nice to have that fixed (it would, at the same time solve one of the GBA -> SNES porting questions).

And about the Snowball patch...
Do you mean by "Im currently writing a patch for this, so that any combination of 4 FX sprites + snowball + Super Mario will work.", that the Snowball will not claim any of the 4 given SuperFX slots anymore, then? That would be fantastic!! That means, that 0x800 bytes can be used for four SuperFX slots? So... Can this also be done for the door Sprites 093 and 131? Because that would kind of Un SuperFX the doors, then. If that is possible, Un SuperFX ing Sprites 80 and 81 would not be necessary anymore.
You could use 4 doors and the fireballs at the same time if wanted.

It's possible to use any space reserved for OAM GFX, but there auto allocation routines would have to be rewritten.


Try these and see if Modes 0, 1, and 3 are fixed
0x00 - ROM 0x003E1F = [02 11]
0x01 - ROM 0x003E34 = [11 03]
0X03 - ROM 0x003E5C = [21 12]
Working on Super Mario World 2 - Yoshis Island Boss Rush
Other projects on hold.
@tehaxor69:
I see. I concluded, that 8 SuperFX slots can be Un-SuperFX ed. The most important ones are the Snowball and doors 093 and 131 (and maybe Sprites 080 and 081 (which use the same GFX))

Doing the change to the first address will result the intro scene to be glitchy and to be any level with level mode 0 without any Layer 2 image.

Actually, the only level modes, that are worth to be fixed are 0, 3, 8, E and F. And for fixing those things, it's also important, that special settings are not eleminated. For example in level mode 0 you can set a message block, in level mode 3 you can make moving castle blocks and wavey lava and use the fuzzies, in level mode 8, a message block can be set, too, in level mode E you can have darkness and level mode F features transparent Layer 3 and text support.

*Edit*
Your fix of level mode 3 will result all Sprites in being behind Layer 1 all the time... The most important level modes to fix are 8 and F, since those must be fixed for the GBA -> SNES port to work correctly. Level mode 3 fix is only optional. 0 and E are not important, too, but it would be better to know how to fix them than level mode 3, since level mode 3 is the most rare one I use.

*Edit2*
Well, actually for the GBA -> SNES port only F needs to be fixed. None of the secret levels got level mode 8. The two level modes are quite similar, though.
Here are some patches that will allow other FX sprites to work with the snowball:

Slot 4 IPS
This is where the snowball gets copied to.


Slot 5 IPS
This is where the snowball gets copied to.


Slot 6 IPS
This is where the snowball gets copied to.


Due to this being complex -and I don't want to write a IPS patch for all FX sprite combinations(some where in the 100s),
It would be best to have some utility that moves the FX sprites around, and create the custom DMAs

I will figure out mode F
Working on Super Mario World 2 - Yoshis Island Boss Rush
Other projects on hold.
Wait, I don't really understand it...
Are those IPSes the complete patches now?
Does that mean I have to sacrifice GFX to make the game display the Snowball correctly? When I applied one of these patches, the Snowball is just a bunch of Sprites from the Sprite Sets. Is the Snowball Sprite Set dependant from when the patch is applied? Also, the graphics from the Sprite Sets, that are displayed, don't circle around. Would this SuperFX-less Snowball not circle around?
What emulator are you using?

I tested it with ZSNES 1.51, SNES9x 1.51, and SNES9X 1.43 Geiger's debugger, sounds like the DMA is not firing after the snowball is drawn.
Working on Super Mario World 2 - Yoshis Island Boss Rush
Other projects on hold.
I'm using SNES9X v1.51.
I did nothing but applying the patch (the Slot 6 one)to a copy of "Secret Of Yoshi's Island" and as explained, the Snowball is all glitchy, then.
What's the deal with the different slots, anyway? I didn't understand that thing. I thought it would be simply allocated to some free space and that's it, no side effects and limitations and such.
No, the patches only allow the use of more FX memory -to prevent the flickering. You still have the same amount of VRAM as before, so there is a trade off between non-FX rendered and FX rendered sprites. The screen shots show where the snowball gets copied to in VRAM.
Working on Super Mario World 2 - Yoshis Island Boss Rush
Other projects on hold.
I see. So, in fact it costs 2 Sprite Sets to use it, then. Is that correct?
Yes or 4 32x32 Slots. Its still possible to make the snowball only use half its space those areas, and then set it up so it only kills 1 sprite set instead of 2 halves.

Edit:
Try changing ROM 0x003F4C from 0x04 to 0x1D to fix mode F
Working on Super Mario World 2 - Yoshis Island Boss Rush
Other projects on hold.
@tehaxor69:

Changing the byte will result Layer 3 to be below Layer 1...
The GBA game did it like this:
The Layer 3 objects first appear after the room is loaded... (See Secret 6, the castle part and Secret 4, the red cave part.)
A port also can't be done, no?

(Also, to be honest, easily reducing the number of SuperFX used and also claimed for the Snowball is what I would prefer....)
I used transhextion to edit my level names, and even though it says bad ROM, I can still upload an IPS. and it will be playable right? Yoshi's fan said it was not important but I'm still a bit curious.

Mickey8715, Please subscribe and comment!

Resource