Language…
9 users online: acd13141,  AmperSam, Cristian Cardoso, CroNo, Dan2point5, Hayashi Neru, JeepySol, Maw, random_box - Guests: 252 - Bots: 359
Users: 64,795 (2,377 active)
Latest user: mathew

SMW2 Yoshi's Island offsets and helpful info

Resource

Originally posted by tehaxor69
@Yoshis Fan
I changed the 2nd pointer and tested it, the screen now scrolls.
Oh, and since your adding another sprite to the scroll table you need to change SNES 0x03D84F ROM 0x1DA4F from 0x1B to 0x1C
Code
$03/D84E C9 1B 00 CMP #$001B A:001B X:0036 Y:0004 P:envmxdizc


Thank you for the second table and the info about the byte to change. Since Sprites S1F5 to S1FF are unused, I theoretically could make additional scrolling types out of them. When I'd use S1F5 as the additional Scrolling Type-1R (S1D5 to S1F5 are 32 letters, so it goes like this in my logic: L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 1A, 1B, 1C, 1D, 1E, 1F, 1G, 1H, 1I, 1J, 1K, 1L, 1M, 1N, 1O, 1P, 1Q, 1R) would I have to increase the CMP value up to 0x1D or up to 0x3C? And another thing: Would it read its scrolling pointer from the Offset after the [38 01]-pointer, or would it read the data from the Offset 0x1D903 as a pointer?

I guess I will have to change the CMP byte to 3C and it would read the data from 0x1D903 as a pointer.
The index is based of the sprite index ((index - 0x1B9 - 0x11) * 2), there are 0x02 free bytes between the two tables, M~1R would require that you move the tables around. Not sure of the side effects on other sprites when the CMP byte is changed, the byte should be equal to the index of the last sprite that uses the scroll effects - 0x1B9.
Working on Super Mario World 2 - Yoshis Island Boss Rush
Other projects on hold.
Alright, thanks for the tips. I will go for trial and error now and see what happens.

@tehaxor69:
The Offsets of the Sprite Tables you've announced here in the forums are slightly wrong.
The relative pointers to them start two bytes before the actual pointer table.
So, actually the first table goes from 0x1D66F to 0x1D6E4. The second Table, then goes from 0x1D6E5 to 0x1D75A.
I've noticed that, while relocating the second table. Each of them is 0x76 (118) bytes. I've relocated the second one to some free space in bank $03.
To do this, copy from 0x1D6E5 to 0x1D75A and paste, starting from 0x200F0. Then, go to Offset 0x19B04 and change [E3 D4] to [EE FE]. Also go to Offset 0x1D8A9 and change [E3 D4] to [EE FE]. Now the Sprites 1BA-1FF will work as they did before. To add custom Sprites now, add up to 0xB (11) additional 2-byte pointers to each of the tables. After pasting, however, you can overwrite the space from 0x1D6E5 to 0x1D75A with [FF]-bytes.
There are only 0x10E (270) bytes of free space in bank $03. In case you make all the Sprites, 0x2C (44) bytes are lost, so that you got 0xE2 (226) bytes of additional ASM space in that bank. I don't know very much about ASM, but it should ACTUALLY be possible to let the code jump to another bank in order to reach some regions of the ROM with more free space.
Each of those jumps would consume 0x4 bytes altogether, right? If so, upon letting 22 code strings jump (11 for each table), you lose (0x58) 88 bytes. Then still 0x8A (138) bytes can be used. => So if I'm not mistaken, all of the unused Sprites from 1F5 to 1FF can be used for some custom Sprites.

*Edit*
I've already achieved to customize S1F5 via JSR. For testing purpose I've imitated the Fuzzy Generator Sprite with that. If you've already followed the above steps you can do the following:
At 0x1D6E5, type the two bytes [40 D5].
At 0x20166, type the two bytes [50 D5].
Afterwards, jump back to 0x1D740 and type the following: [20 CC E2 60]. Scroll one line down to Offset 0x1D750 and type: [20 0E E3 60]. If you leave out the RTS at the end, some weird effects will occurr and only one Fuzzy will appear. Now you have an additional Fuzzy-Generator as Sprite 1F5. I know that it would have been easier to just replace the [40 D5] with [CC E2] and the [50 D5] with [0E E3], but as said, testing purpose. I've noticed that that was a jump within bank $03 and it consumed four bytes. So long jumps should consume five bytes, actually. I'll test that, too.

*Edit2*
Mhm, I've got problems when it comes to imitate Sprites of a lower number than 1BA, because I don't know what address the pointers point to. Those are 3-Byte Pointers. I tried to imitate the Shy Guy, whiches pointers are:
1st Table: [C0 89 04]
2nd Table: [58 8A 04]
I've byte-swapped them and then took it as an SNES address, so I assumed, they point to SNES 0x489C0 and 0x48A58, ROM 0x20BC0 and 0x20C58. However, when I jump there I seem to be in the middle of some random code. I've tried the JSL to let 1F5 read the data, but it crashed with the following ASM:

Code
lorom
header

ORG $3D540
		JML $489C0
ORG $3D550
		JML $48A58


Since I didn't want to alter the Shy Guy's code, I've only set the jump commands.

Applying this will do the following:
At ROM 0x1D740, this string can be found: [5C C0 89 04]
At ROM 0x1D750, this string can be found: [5C 58 8A 04]

As soon as I enter a level with Sprite 1F5, then the game badly crashes/resets.
It is just too obvious, that I've translated the pointers in a wrong way. But which else location are they pointing to?
Burt's Health

SNES 0x0697BB ROM 0x0319BB is how many hits Burt can take, value to use is (NumberOfHits - 1) * 2
SNES 0x0697B6 ROM 0x0319B6 Initial pants size
SNES 0x06A033 ROM 0x032233 Pants size decrease(increase) by this value * 2
SNES 0x06A057 ROM 0x032257 Max value for pants

Code
$06/97BA A9 0A       LDA #$0A                A:0040 X:0058 Y:0000 P:envMXdizc				//Load health value
$06/97BC 9D 02 79    STA $7902,x[$06:795A]   A:000A X:0058 Y:0000 P:envMXdizc				//Store health

$06/97B5 A9 40       LDA #$40                A:0004 X:0040 Y:0000 P:envMXdizc				//Pants size
$06/97B7 9D 00 79    STA $7900,x[$06:7940]   A:0040 X:0040 Y:0000 P:envMXdizc				//Store size


$06/A15C DE 02 79    DEC $7902,x[$06:795A]   A:2E05 X:0058 Y:0000 P:envMXdizC				//Dec health
$06/A15F DE 02 79    DEC $7902,x[$06:795A]   A:2E05 X:0058 Y:0000 P:envMXdizC

$06/A032 A9 08       LDA #$08                A:0000 X:0058 Y:003E P:envMXdiZc				//How many times inc loop runs
$06/A034 9D 98 7A    STA $7A98,x[$06:7AF0]   A:0008 X:0058 Y:003E P:envMXdizc

$06/A05C FE 00 79    INC $7900,x[$06:7958]   A:0000 X:0058 Y:0020 P:eNvMXdizc				//Dec Pants Size (Yes the value really increases)
$06/A05F FE 00 79    INC $7900,x[$06:7958]   A:0000 X:0058 Y:0020 P:envMXdizc

$06/A056 C0 7F       CPY #$7F                A:0000 X:000E Y:0000 P:envmXdizC				//Max value for pants


Edit
Burt's behavior tables, must extend and relocated if health is > 0x0A, other wise he will squish into infinity?(Glitches)

Table falling down
SNES 0x069994 ROM 0x031B94
E0 00 D0 00 C0 00 C0 00 C0 00 C0 00

Table jumping up
0x0699A0 ROM 0x031BA0
C0 FA 40 FA 80 FA C0 FA 00 FB 40 FB


You could "NOP" the second DEC/INC opp-codes to make editing easier.

Pants value of 0x00 will cover him head to toe with white/blue stripes.

I have no Ram address since his values are indexed.

@Yoshis Fan

Sprite set 1 and sprite set 2 won't be compatible like that,
During loading a sprite routine SNES 0x007960 contains the sprite address, same for both sets, the X, Y axis and other vars, are both indexed by reg X and use different memory offsets for each set,
But a little ASM can do wonders.
Working on Super Mario World 2 - Yoshis Island Boss Rush
Other projects on hold.
I see. I've already expected something like that, because else they wouldn't have made two tables for the Sprites. Also, the Burt battle still glitches. I want him to 13 HP (since he's the mid-boss in my World 6, that should be a good number), so I've increased the 0A-value up to 18. 18 = 24 in decimal /2 are 12 + 1 are 13. When I tried to relocate the tables, the battle was somewhat glitchy afterwards. Here is what I did:
I thought, 0x3205F would be a table pointer, so I've altered it to: [E4 FF].
I thought, 0x32030 would be a table pointer, so I've changed it to: [A0 99]
I've moved the falling down table to 0x381E4 and added seven [C0 00] strings.
Then I've moved the jumping up table to 0x381A0 and added seven [FB 40] strings. Those are 13 2-byte strings each. However, the actual fight is glitchy, then. I must go now, so I will most likely add more precise info about the glitche's kind.
I'm not sure what the problem is with your Burt battle, but I will point out that 13HP might be quite boring for the player... I don't suggest increasing it to more than 9 or 10-- just my opinion there.

(I'll personally limit my hack's boss HP to at most slightly more than 1.5x their original values.)

–=–=–=–=–=–=–
Advynia: a Yoshi's Island editor - Alyssa's Unlikely Trap demo 3
@Yoshis Fan

OK, here is what I did.

Change 0x069E29 from 0xFF to 0x03
Code
$06/9E28 29 FF 00    AND #$00FF              A:010C X:0058 Y:000C P:envmXdizC


Add entries to table at 0x069994 values 0xC0 0x00 work well -Fixes falls
Add entries to table at 0x0699A0 values 0x40 0xFB work well -Fixes jump height
Add entries to table at 0x0699B8 values 0x40 0xE6 work well -Fixes flesh tone colors


Code
Loads falls
$06/9E5B BC 02 79    LDY $7902,x[$06:795A]   A:00F8 X:0058 Y:0000 P:envmXdizC
$06/9E5E D9 94 99    CMP $9994,y[$06:99A0]   A:00F8 X:0058 Y:000C P:envmXdizC

Loads jump height
$06/9E1F B9 A0 99    LDA $99A0,y[$06:99A8]   A:0000 X:0058 Y:0008 P:envmXdizC
$06/9E22 9D 22 72    STA $7222,x[$06:727A]   A:FB00 X:0058 Y:0008 P:eNvmXdizC

Loads colors
$06/A0B4 BC 02 79    LDY $7902,x[$06:795A]   A:0005 X:0058 Y:000C P:envmXdizC
$06/A0BC BC 02 79    LDY $7902,x[$06:795A]   A:0005 X:0058 Y:000C P:envmXdizC


This worked fine for a health value of 0x0C and 0x0E
Working on Super Mario World 2 - Yoshis Island Boss Rush
Other projects on hold.
@tehaxor69:
Thanks a lot for that. It works fine even for value [18] of health now. I just easily have to expand each table by two bytes for each health I add to the default value. Doing this will fix the color for the general thing, but Burt's hands still look wrong. [...] Forget about that problem I've posted here, it's solved!

Here is a quick guide on how to increase Burt The Bashful's HP.

1. The first thing you should do is jump to ROM Offset 0x32029 and change the [FF] there to [03].

2. As the second step, think about how many HP do you want him to have. There are 342 bytes of free space at the end of SNES bank $06. That's most of the free space you can use for table relocation. To calculate, how many bytes you need, calculate HP * 10. That's a maximum of 34 HP. If you have determined a good value, calculate what Hex-value to write. Calculate your (HP - 1) * 2. Keep in mind to use the Hexadecimal system (The 34 is 22 in Hex). Now jump to ROM Offset 0x319BB and write the value down there.

3. Now jump to ROM Offset 0x32233. To calculate what to put there, calculate:
8 / (your HP / 6).
Calculate it in Decimal, cut all the numbers behind the comma off, translate the number into Hex and write it down at that Offset. If the number is close to the next upper number you might want to round the value off, so for example 4,8 becomes 5.

4. Copy five strings of data and paste them into your free space. It begins from 0x380AC and ends at 0x381FF. Each of those strings is 12 bytes. Here are their locations: (Don't copy and paste, yet!)
1. 0x31B94 [E0 00 D0 00 C0 00 C0 00 C0 00 C0 00]
2. 0x31BA0 [00 FA 40 FA 80 FA C0 FA 00 FB 40 FB]
3. 0x31BB8 [A6 E7 40 E6 40 E6 40 E6 40 E6 40 E6]
4. 0x31BC4 [DA E7 D8 A5 D8 A5 D8 A5 D8 A5 D8 A5]
5. 0x31BD0 [FA E7 F6 A5 F6 A5 F6 A5 F6 A5 F6 A5]
Sooo... What you are going to do now, first is calculate again. Each of those tables consume an additional amount of ((your HP - 6) * 2) bytes. Take the first table and write it to the beginning of the free space. Then add the string [C0 00] repeatedly, until you have enough bytes (With enough bytes, the value of bytes you've got from ((your HP - 6) * 2) as a result is meant!!). Set the second table after that. Write down [40 FB] repeatedly at the end until you have enough bytes, there, too. To the third table, add [40 E6]-strings, to the fourth, add [D8 A5]-strings and to the fifth, add [F6 A5]-strings. Since you have not taken a higher HP than 34, the free space is fully sufficient to do that.
On another note, keep in mind, where you've placed the beginning of each table. For my sake, make a text file where you write something like:
1. table: 0x......
2. table: 0x......
3. table: 0x......
4. table: 0x......
5. table: 0x......

5. Afterwards, we are going to change some pointers. This requires a little bittle of ASM knowledge. Jump to 0x3205F. There you can see the string [94 99]. That's a pointer. Now, in case you haven't done so already, download Lunar Address. Now on the left side of Lunar Address give the Offset for Table 1's beginning. You will get the SNES Address now. Forget about the bank and keep the last two bytes in mind. If you've placed the first table from 0x380AC, Lunar Address will give out the following SNES Address $06:FEAC
Forget about the $06, because that is the SNES bank. Since it's a two-byte address pointer, it can't reach another bank. Now you've only got FEAC left. Swap them, so you get ACFE. That's the value you use to replace [94 99], so you will write [AC FE].
For the following values always use this method!!

Jump to 0x32020 and replace [A0 99] with the value for your second table.

Jump to both, 0x322C0 and 0x32AD2 and replace both strings [B8 99] with your value for table three.

Jump to 0x322EE and 0x32AEA. Replace the strings [C4 99] with the value for your fourth table.

Jump to 0x3231C and 0x32B02. Then replace both string [D0 99] with your fifth table's value.

6. There you go! In case you've followed the instructions carefully the battle should be completely unbuggy now.

In case you want to lower Burt the Bashful's HP only change the byte of Step 2 to the value you need and then follow Step 3. Steps 1, 4 and 5 are not needed in that case.
Salvo's Health

RAM 0x061078 Salvo's Health

SNES 0x06831F ROM 0x03051F 2 Bytes Salvos Health Value before growing
SNES 0x068BA4 ROM 0x030DA4 2 Bytes Salvos Health Value after growing
SNES 0x0688E8 ROM 0x030AE8 2 Bytes Salvos Health decreases by this when hit
SNES 0x0688EB ROM 0x030AEB 2 Bytes Salvos Health minimum value

Code
$06/831E A9 00 B0    LDA #$B000              A:008F X:0000 Y:0000 P:envmXdizc		//Initial Health and Size
$06/8BA3 A9 FF FF    LDA #$FFFF              A:BB40 X:0054 Y:0054 P:eNvmXdizc		//Load max Health and Size after growth
$06/88E7 E9 00 03    SBC #$0300              A:7060 X:0050 Y:0004 P:envmXdizC		//Health decreases by this when hit
$06/88EA C9 00 4C    CMP #$4C00              A:6D60 X:0050 Y:0004 P:envmXdizC		//When the health drops below this value the boss dies

Working on Super Mario World 2 - Yoshis Island Boss Rush
Other projects on hold.
@tehaxor69:
Great finds you have there. You are doing a great and quick job on finding all this out. Good work. Tomorrow I will start experimenting around a bit with Salvo's HP. As you can see above, I've already made a small tutorial on how to increase Burt The Bashful's HP. Those instructions should be understandable for everyone, even if completely without ASM knowledge it shouldn't be that much of a problem.
Bigger Boo's Health

0x04BCCF 2 Bytes Initial health size 1
0x04BD5F 2 Bytes Increase initial health until = (0x04BD5F - 0x04BD62)
0x04BD62 2 Bytes Health will increase by this until one iteration less than 0x04BD5F
0x04BD7E 2 Bytes Initial health size 2
0x04BCD4 2 Bytes Initial growth value
0x04BD4C 2 Bytes Initial growth increment
0x04B8AD 2 Bytes Increase health by this 1
0x04B8B4 2 Bytes Increase health by this 2
0x04B8B7 2 Bytes When health value is greater than this the boss dies

Code
$04/BCCE A9 50 00    LDA #$0050              A:0022 X:0044 Y:0060 P:envmXdizC		//Load first health value

$04/BD5E 69 10 00    ADC #$0010              A:0000 X:0006 Y:0000 P:envmXdiZc		//Initial value increases
$04/BD61 C9 90 00    CMP #$0090              A:0000 X:0006 Y:0000 P:envmXdiZc		//until matches this value - 0x04BD5F
$04/BD7D A9 80 00    LDA #$0080              A:0400 X:0000 Y:0043 P:envmXdizc		//Final initial health value

$04/BCD3 A9 40 00    LDA #$0040              A:0040 X:0044 Y:0060 P:envmXdizC		//Initial growth value
$04/BD4B 69 02 00    ADC #$0002              A:0000 X:0006 Y:0000 P:envmXdiZc		//Initial growth increment, Cycles 0x20 times

$04/B8AC 69 18 00    ADC #$0018              A:0080 X:0044 Y:0003 P:envmXdizc		//Increase health value code 1
$04/B8B3 69 30 00    ADC #$0030              A:0098 X:0044 Y:0003 P:envmXdizc		//Increase health value code 2

$04/B8B6 C9 C1 01    CMP #$01C1              A:00C8 X:0044 Y:0003 P:envmXdizc		//Boss dies when health is greater than this


Boo's health and size should match, other wise he won't move.
Boo's size will mirror it's health value when hit.
Working on Super Mario World 2 - Yoshis Island Boss Rush
Other projects on hold.
@tehaxor69:
You surely are very fast! That is a great progress! Prince Froggy should have palette tables similar to Burt, and it should be nearly the same scheme to edit his HP. I don't think Milde can be edited well at all, maybe it'd be possible to increase the number of Ground Pounds you have to do to make him split. Sluggy The Unshaven shouldn't be too complicated, too, since we'd only have to edit three things, I guess: HP, speed of heartbeat, and speed of crawling forwards.
For these two bosses, would you mind to find out a few additional things?



Raphael The Raven: An interesting thing would be the Tilemaps for the moon, in order to add/remove poundable logs from there.

Tap-Tap The Red Nose: Maybe it would be interesting for this one, to control how far he is pushed back/forward, when hit by an egg. Since Tap-Tap The Red Nose and Tap-Tap The Golden have the same behaviour (because they are the same Sprite), it might be interesting to have two different ones, so for example, if the Sprite is placed on an even X position, it acts like it does now and if placed on an odd one it is pushed back less than before, or makes different jumps or something like that. Since it has not a certain value of HP, this is less a HP find, but more an actual Sprite edit.
@tehaxor69:
Could you also search for offsets relating to Naval Piranha's speed, as well as how often it spits Nipper Plants?

(Naval Piranha is pretty easy once you know how to damage it, so I'd like to make it move faster... and I've always found it boring if I run out of eggs and have to wait for the Nipper Plants.)

By the way, thanks for all the offsets so far.


Originally posted by Yoshis Fan
Raphael The Raven: There must be a palette and behaviour table for him, like there is one for Burt The Bashful. To my knowledge we know how to alter his HP, but the palette turns incredibly glitchy after the third hit. Another interesting thing would be the Tilemaps for the moon, in order to add/remove poundable logs from there.

The palette turns incredibly glitchy after the third hit? Not for me... I was able to create higher-HP Raphael without a problem, using the offsets in this post.

About the tilemap for the moon, Romi mentioned it here, but didn't say how to edit it...

–=–=–=–=–=–=–
Advynia: a Yoshi's Island editor - Alyssa's Unlikely Trap demo 3
Oh, thank you, Zeldara!
It turns out I have edited the wrong Offsets #w{x(}
I've tested the battle out with 8 HP, but it seems like he would rarely make his lightnings, then. I've used Normal, Normal, Angry, Angry, Angry, Furious, Furious, Furious. The battle against him is still easy, though. Is there a way to enlarge the lightnings, so they are 2x2 instead of 1x1?
Also, I think Nintendo first wanted to give them more than 3 HP, because why should they have made 8 status bytes, then?

And for Naval Piranha:
You can increase the difficulty a little bit, when you close one of the gaps, so Yoshi can only hurt it, when it is on a certain side of the platform. Unfortunately it is not possible to increase Naval Piranha's height by moving it upwards within the level editor, because Nintendo exactly calculated where the single Sprites should be. Underwater, there is nothing.


On another note, here is a small RAM Map by a user with only 1 post, named giangurgolo.
Prince Froggy's Health

SNES 0x02C90B Initial Shy Guy rate, 2 Bytes
SNES 0x02CB4D Shy Guy repeat rate, 2 Bytes
SNES 0x02C911 Initial acid rate, 2 Bytes
SNES 0x02CB22 Acid repeat rate , 2 Bytes
SNES 0x02C923 Y axis of stomach, 2 Bytes

Code
$02/C90A A9 80 01    LDA #$0180              A:0778 X:005C Y:000E P:envmXdizc		//Load initial Shy Guy Rate
$02/C90D 9D F8 7A    STA $7AF8,x[$02:7B54]   A:0180 X:005C Y:000E P:envmXdizc		//Store initial Shy Guy Rate

$02/CB4C A9 00 01    LDA #$0100              A:0000 X:005C Y:005C P:envmXdiZc		//Load Shy Guy Repeat Rate
$02/CB4F 9D F8 7A    STA $7AF8,x[$02:7B54]   A:0100 X:005C Y:005C P:envmXdizc		//Store Shy Guy Repeat Rate

$02/C910 A9 00 01    LDA #$0100              A:0180 X:005C Y:000E P:envmXdizc		//Load initial Acid Rate
$02/C913 9D F6 7A    STA $7AF6,x[$02:7B52]   A:0100 X:005C Y:000E P:envmXdizc		//Store initial Acid Rate

$02/CB21 69 70 00    ADC #$0070              A:FFFF X:005C Y:005C P:eNvmXdizc		//Add Acid Repeat Rate
$02/CB24 9D F6 7A    STA $7AF6,x[$02:7B52]   A:006F X:005C Y:005C P:envmXdizC		//Store Acid Repeat Rate

$02/C922 A9 0C 07    LDA #$070C              A:0100 X:005C Y:000E P:envmXdizc		//Load y axis of stomach
$02/C925 8D 27 0C    STA $0C27  [$02:0C27]   A:070C X:005C Y:000E P:envmXdizc		//Store y axis of stomach



Do this to change the health to a specified value
Change 0x02CC3D from 0x49 to 0xA9
Change 0x02CC3E to (0x8000 / (NumberOfHitsYouWant)), Value is 2 Bytes, Minimum number of hits is 2


RAM 0x027A32 Uvula swing, 2 Bytes
RAM 0x027A94 Health, 2 Bytes
Working on Super Mario World 2 - Yoshis Island Boss Rush
Other projects on hold.
Good finds, but I can't figure out how to give Froggy the amount of HP I want him to have. 0x8000 makes, that he has 12 HP, changing it to x6000 or 0xA000 makes, that he has 24 HP for me. I don't understand that system at all. I've tested other values, too, such as setting the first byte to 0x00 and the second to a small value, f.e. 0x05. Then he's had very many HP, after 40 hits I stopped counting.
@Yoshis Fan

Its a 16 bit value so you should byte swap

Value = (0x8000 / (NumberOfHitsYouWant))

0x4000 [00 40] = 2 Hits
0x2AAA [AA 2A] = 3 Hits
0x2000 [00 20] = 4 Hits
0x1999 [99 19] = 5 Hits
...
Working on Super Mario World 2 - Yoshis Island Boss Rush
Other projects on hold.
That doesn't seem to to work.
0x4000 for me is 23 hits.
0x2AAA is 6 hits.
0x2000 is 24 hits.
0x1999 is 9 hits.
0x3BBB is 3 hits.
0x4CCC is 2 hits.
0x5EEE is 3 hits again.
0x6FFF is 2 hits again.

I can try and try, but I am unable to find a system in that mess of random values. The only Hex-Edit I've done to the ROM is changing those three bytes:
0x49 to 0xA9 and the two 0xFF bytes after that to the value.
Originally posted by Yoshis Fan
And for Naval Piranha:
You can increase the difficulty a little bit, when you close one of the gaps, so Yoshi can only hurt it, when it is on a certain side of the platform.

That wouldn't increase the difficulty. It would just make the battle take longer.

What I'm interested in doing is speeding up the battle-- that is, Naval Piranha stands still for less time before using its ram attack, it moves faster when crossing, it spits Nipper Plants sooner (it normally uses its ram attack quite a lot of times before spitting Nipper Plants), and so on.

–=–=–=–=–=–=–
Advynia: a Yoshi's Island editor - Alyssa's Unlikely Trap demo 3
Sluggy's Health

SNES 0x02D5B8 Number of hits Sluggy can take, 2 Bytes

Code
$02/D5B1 FE 38 7A    INC $7A38,x[$02:7A7C]   A:0078 X:0044 Y:0000 P:envmXdizc		//Increase Damage
$02/D5B4 BD 38 7A    LDA $7A38,x[$02:7A7C]   A:0078 X:0044 Y:0000 P:envmXdizc		//Load Health
$02/D5B7 C9 04 00    CMP #$0004              A:0001 X:0044 Y:0000 P:envmXdizc		//Check Max


Heart Beat Table, 2 Bytes per index, SNES 0x02D4AF
06 00 0A 00 0E 00 12 00

Push Rate Table, 1 Byte entry index, SNES0x02D435
80 64 48 2C
Working on Super Mario World 2 - Yoshis Island Boss Rush
Other projects on hold.

Resource