In general, all offsets should be for a SNES Yoshi's Island (v1.0) (U) headered ROM, unless labeled otherwise.
Note: We also have a ROM map wiki page. Most of the offsets in this thread are not on the wiki page-- feel free to add them. (Please only add them if you understand their purpose, though.)
- Zeldara109
---
Also, since it's not necessarily easy to find something you're looking for considering the length of this thread (or even know whether it exists), here's a list Mattrizzle has compiled containing posts that he and Romi has made containing information on YI offsets:
Mattrizzle's Posts
47071: Numerous miscellaneous offsets
47192: Level Data: starting points/midway points/name pointers
47381: Changing Mini-battle icons into levels
48586: Correcting side-effects of changing bonus icons into levels
52304: Stuff related to World 6 on the title screen/world completion sequence
52605: Audio-related offsets
52965: World map music/palette/tilemap setup offsets
54307: Boss-related offsets (more specific descriptions for these can be found in one of Romi's posts below)
55332: Mini-battles cheat-related offsets (buttons to use, disabling the "incorrect" buzz)
55367: Offsets related to brown chomp rock
55779: Breakdown on the order in which levels (translevels) are indexed
56602: Byte determining which world map uses alternate colors for the sign-holding Yoshis
56766: World map checkpoints
56778: Foreground tileset/sprite set GFX file setup, FG palette pointers, path data for 3D island
58668: Yoshi transformation palette, title screen offsets, huge list of AllGFX.bin offsets
58878: Hookbill Koopa-related offsets
65326: Locations of map screen sprite palettes, starting offset of level names
70239: Information on how to fix Pink Yoshi's colors
98185: Message text: pointers/values list/control codes
346353: Adding Yoshi colors, part 1
346778: Adding Yoshi colors, part 2
422376: Modifying Tap-Tap the Red Nose's transformation sequence to work outside of 6-4
448208: Music value lists for each Music Bank
449054: Modifying track 0x15 to play the X-4 boss music
489518: Alterations to allow Barney Bubble and Slugger to work properly when used together
492221: Credits text/table file
496667: Font/Message Box-related, Map16 (Metatile) tilemaps, sprite tilemap pointers/format
530862: Fix for underwater red coin colors
531240: Changes to keep coin sprites from using palettes E and F when sprite palette setting 2 is used
537538: Byte to fix the incorrectly-colored tile on the seesaw holder
820246: How to add extra colors for the sign-holding Yoshis on the map
820763: This post Oh, wait...
Romi's Posts
93635: Disabling one-time pop-up messages
93669: Disabling the message that pops up when moving in the welcome level
101004: Preventing Green Yoshi's Y-coordinate from being shifted on the map after playing an Extra level
101374: Custom code which forces you to continue when dying in the welcome level
102993: Custom code to disable the story intro before the title screen
152692: Custom code allowing you to choose which areas use brown Chomp Rocks
155429: Disabling the Welcome level
157021: Prevent Yoshi from facing left in 1-5, 2-7, and 5-7
175392: Offsets related to the star counter
187594: Raphael the Raven's speed
190603: Raphael's HP/palette settings for each phase
201315: Fix to allow mushroom platforms to overlap lava streams regardless of z-order
202600: BG gradient pointer table and how to find the color tables using it
216238: Screen exit information for the rotating doors in 6-8
259438: A more detailed explanation for the boss-related tables
273520: Disable the code that prevents you from drawing a flower at 1-Extra's Goal Ring
590130: Level bytes where Yoshi faces left/ski-mode is enabled/screen exit is enabled at the right boundary
591052: Custom code allowing you to choose which levels you start out facing left in
597049: Removing the pause after Yoshi eats a watermelon
618050: Change to make Kamek's dialogue appear each time before fighting a boss
---
After digging on the the Acmlm Board archives for like 2 Hours, I finally found some offsets that could be helpful in YI hacking. Also, some descriptions on header info and tips that could be helpful too...
Misc. Useful Data:
xBB643 [08] How many levels can be scrolled to on the map
xBB6AE [D0] Change to 80 to make the Bonus icon lead to a level
xBF7DB XX XX XX XX: Midway start data. There are four bytes per level middle ring. The first one determines the level number of the midring. The second byte determines the X position of entry. The third byte determines the Y position of entry. Finally, the fourth byte is the entrance type, using the same format as screen exits.
xBF671: XX XX XX XX: Main Start Data. There are four bytes per level here. The first one determines the level to enter into. The second one is the X position. The third is the Y position. The fourth byte is the map icon to unlock after completing that level-- this fourth byte should generally be left alone.
Sprite Information:
1E1CE: Balloon with cactus generator
136DF: What Monkey on ground with Melon shoots
13BC3: What Monkey with torpeado throws
13BC8: What Monkey with cactus throws
13EB2: What Monkey on a vine with Melon shoots
14D93: Froggy's Throat shyguy generator
14D27: Froggy's Throat acid generator
1DC07: Gusty Generator
1DCA9: Bat from the right generator
1DD40: Bat from the Left generator
1E003: Flying Wiggler Generator
1E0D2: Nipper Generator
1E28B: Balloon with Bomb generator
1E2E8: Riding Balloon Generator
1E44D: Lemon Drop Generator
2141A: What Seed Shyguy Spits
21837: What a Flower Shyguy turns into when stepped on
24F86: What the spike tops (seen in 5-1 and SMB3) throws
2E302: What the cactus with a cactus ball bounces
33134: What the milde boss splits into
364BC: Controls the sound that the Ghost that spits shyguys make
364C3: What the Ghost that spits shyguys spit
383B7: What an Egg Flower with an even X axis shoots
384F8: What an Egg Flower with an odd X axis shoots
3972F: What Snifit Shoots
3ACBF: What Lakitu throws
3C864: What Wall Lakitu throws
716C5: Affected what Goonie with Shyguy Drops
7177F: What Goonie Generator Generates
725E5: What the Bubble Blower guy Blows
7872E: What Amazie Daisy Blows
79D3A: What a large milde (the one you get after pounding a full-sized milde once) splits into
7A14B: What a medium milde (the one you get after pounding a full-sized one twice) splits into
8B373: What the Gather Coins Mini-Game cannon generates
8C539: What the Mini-Game Bandit (Seed Spit) Shoots after comsuming a watermelon
8C576: What the Mini-Game Bandit (Seed Spit) Shoots after comsuming a red watermelon
Music Pointer Offsets:
E1968 Athletic
E268B Bonus Challenge
E3163 X-4 Boss
E3B9E Cave Theme
EBE5A Credits
ED3CA Touch Fuzzy Get Dizzy
ED89C Make Eggs, Throw Eggs
F2329 Final Bowser Battle
F3260 Pre-Credit Stuff
F36BC, F43EE Death
F378C, F44BE Baby Mario kidnapped by Toadies
F38EA, F461C Level Start
F3956, F4688 Game Over
F3B5C Introduction
F40B0 Welcome to Yoshi's Island
F488A Goal Part 1/Win Bonus
F49A1 Goal Part 2
F5143 Powerful Mario/Mini-Game
102623 Title Screen
102EB9 Story
Disabling Message Box Values:
x73734: Change to 80 to disable the message when you first get a flower.
x1161F: Change to 80 to disable the message box popping up at the first mid-ring
xC488 and xC48B: Chane to 80 to disable the message when Yoshi first gets hurt in a level
x80FA2: Change to 80 to disable the Welcome level message.
Yoshi's colors
x10200-x10247 Yoshi color assignments for each level
(12 bytes per world: Levels 1-8, Extra, Bonus, & 2 unused entries)
This won't change the Yoshi colors on the map.
In-game Yoshi Palettes
(15 colors per palette)
1FA240 00: Green
1FA25E 01: Pink
1FA27C 02: Yellow
1FA29A 03: Light Blue
1FA2B8 04: Purple
1FA2D6 05: Brown
1FA2F4 06: Red
1FA312 07: Blue
Intro Yoshi Palettes
(16 colors per palette)
1FEF4A Brown
1FEF6A Pink
1FEF8A Yellow
1FEFAA Light Blue
1FEFCA Purple
1FEFEA Green
1FF00A Red
1FF02A Blue
Personal note by me B.B.Link: To edit the Yoshi colors easily, use SNES Pallete editor, and use those offsets to find the colors you want to edit.
Level and Text editing:
1. Make sure you have YITable.txt in your EggVine folder.
2. Make a copy of this file and rename it YITable.tbl. Put it in your EggVine folder.
3. Load your ROM in Translhextion.
4. Go to Script--> Open Thingy Table, and load your YITable.tbl file. Some popup about tokens will come up, just click OK. Another small window will appear, click "Thingy View Active" and the # on this window.
5. Go to Jump To-->Offset, and enter x114C50. This will take you to the beginning of the level name text. It goes in order from the Welcome level all the way to Extra 6.
6. You can't just enter the text, you have to enter the hex value equivalents to the text characters. A complete list of hex equivalents is found in the YITable.txt file, so refer to that. Note: Be careful not to overwrite the "###" things in the text, this makes the level name text skip a line or go to the next level, so try to keep your text within the boundaries of the "###" things.
Personal note by me B.B.Link; If your thingy table don't work for some reason, I'll upload the one I got from SNN later (thanks again SNN).
Expanding the Amount of Bytes a Level can use:
1. Choose a level which you want expansion. Write the level number down. Now, go into your Windows calculator. Put the calculator in scientific mode, then hex mode. Plug your level number into this equation: BF9C3 + (6 x Level Number). Now, write down the value you get, this is your level address. We will use this number later.
2. Go into your hex editor, preferrably Translhextion. Open your ROM, and go to Jump To-->Offset, and enter x11554A. This is where the free space begins. You'll notice a whole swarm of FF bytes from x11554A to x1201FF. The FF's are unused bytes in the ROM, so all together you have around 44000+ bytes of free space! Now, the first step is that we're going to add object data.
3. To add the object data...start at x11554A (or whatever byte after you do this the first time). Take the offset where the object data starts and write it down, you'll need the offset later. Now, enter thirteen 00 bytes. This represents the header information. After those 00's, enter 85 FF FF. This will put a cloud in the level because if a level doesn't have any objects or sprites it will crash. Now after that, add as many 00's as you wish. Each 00 represents one byte of object data, so place accordingly.
4. Now we will do the sprite data. To do this, skip one byte after your last 00 in the object data, and make sure you leave an FF after the last 00. Now that you have skipped a space, write down the offset, this is your sprite offset. Now, start of the sprite data with two FF's, then after that enter as many 00's as you want for sprite data.
*Note: When you go back to expand a new level, make sure you leave two FF's after the sprite data where the last expanded level ends, or else you will have major problems.
5. Now, go back into your calculator, and plug your object offset into this formula: Offset + 400000 - 200. After you should get a 6 digit number. Now, swap the first two digits with the last two digits. For example. If you got 515B12, swap it to 125B51. Do the same with the sprite offset, and write both of the new values down. These are your SNES addresses
6. Now go into the hex editor, and jump to the level offset offset from way before. Enter your SNES addresses over the first 6 bytes at the level offset (object address first). Now save the ROM in the hex editor.
7. Go into EggVine and open the newly expanded level. You should see a cloud all the way at the top of the screen, plus a new byte limit. Now, you can add your sprites and objects (Just make sure to get rid of the cloud because it's all the way at the top)
To do this again repeat steps 1-7, and remember, every time you do it, leave two FF's after the sprite data of the previous expanded level.
-----------------------------------
Sprite Set Lists, thanks to Blumiere and Yoshis_fan
Here are two lists that show all 127 sprite sets and what sprites are compatible with each set. The second one, made by Yoshis_fan, has some more detail about each sprite at the bottom, but other than that the lists basically show the same thing.
Blumiere's list (text file, viewable on your browser)
Yoshis_fan's list (You'll need Microsoft Word to view this)
-----------------------------------
Here's a complete list of tilesets and the palettes to go with them (courtesy of CD Productions):
Tileset List
0 - Cave with waterfalls and cross sections
1 - Ground with Palm Tree and cross section (for worlds 1-5)
1 - Ground with Bones and cross section (for world 6)
2 - Jungle stone (grassy or bald) with white flower, wooden platform, wooden pendulums and coral reef
3 - Semi-3D Castle Blocks with Semi-3D Pipes, and Wavy lava, and Jungle stone used for Hookbill the Koopa's room (the striped platforms and boxes will have a Semi-3D look when used with this tileset)
4 - Snowy ground with Icy ledges, animated water to go with the icy ledges, snow-capped tree, and Ski lift poles with bars
5 - Jungle ground with Jungle stones, treetops, vines, muddy surfaces, and jungle trees
6 - Standard castle tileset used for most X-8 levels
7 - Grassy ground with bushes and cross section
8 - Cave with lavafalls, icy surface, icicles, mushrooms, tall and stalked mushrooms, and crystals
9 - Ground with twisted trees and huge flowers embedded within the ground (looks similar to the "non-world 6" variation of tileset 1)
10 - Wooden castle tileset used exclusively for X-4 levels
11 - Sewer tileset (which is too complicated to do levels with!)
12 - Flowery ground with huge rocks used exclusively for levels in world 1
13 - Sky tileset with various shaped clouds and snow-capped rocky platforms used exclusively for levels in world 5 (5-6 and 5-8)
14 - Jungle castle tileset primarily used for the boss levels of world 3
15 - Grassy ground with raven platform and falling stone (looks similar to tileset 7)
Palette List
0 - Green cave and water
1 - Light green ground (for worlds 1-5)
1 - Brownish ground (for world 6)
2 - Blue-grayish stone with pure green grass
3 - Red jungle stone?
4 - Snowy ground
5 - Light jungle ground and green jungle stone
6 - Peach castle (from 1-8)
7 - Cyanish ground
8 - Green castle (from 3-4)
9 - Yellowish flowery ground
10 - Yellowish ground
11 - Sewer tileset palette (only suitable with the sewer tileset!)
12 - Green cave and lava
13 - Standard sky tileset palette from 5-8
14 - Brown castle (from 1-4)
15 - Green flowery ground
16 - Brownish ground (same as the "world 6 variation" of palette 1)
17 - Red cave
18 - Snowy or icy cave
19 - Golden ground
20 - Red ground
21 - Leaf green ground
22 - Purple ground
23 - Pink castle (from 2-8)
24 - Violet castle (from 4-8)
25 - Blue castle (from 5-8)
26 - Red castle (from 6-8)
27 - Dark jungle ground and purple jungle stone
28 - Pinkish sky tileset palette from 5-6
29 - Gray castle (from 5-4)
30 - Weird reddish palette
31 - Weird reddish palette again?
---Extra Info---
Here is a list of layer 1 objects that can virtually be used with any tileset:
15: Cloud platform
35: Animated water
37: Red line bridge
3C: Vertical pipe, enterable
47: Lava
63: Horizontal Wooden Platform
66: Ice Blocks
68: Coins
6B: Goal platform
6C: Grey stone blocks
6E: Multi-colored stone blocks
79: Red diagonal stairs
82: Green Red coins, grouped closely together
83: Green Red coins that make weird noises
8A: !-switch coins
8B: !-switch blocks
C4: Horizontal coins, every 2 tiles
C5: Vertical coins, every 2 tiles
C6: Diagonal coins, every 2 tiles
C4: !-switch horizontal coins, every 2 tiles
C5: !-switch vertical coins, every 2 tiles
C6: !-switch diagonal coins, every 2 tiles
CE-D2: Line guides, straight
DA: Blocks that are only solid for Super Baby Mario
F4: Vertical pipe, non-enterable
F5: Spikes
X12-15: Bridge guide, for use with ? cloud bridges
X14-15: Staircase guide, for use with ? cloud stairs
X17: Green red coin
X47: Bandit's House
X50: Right arrow sign
X81: Yoshi's House's Chimney
X82: Yoshi's House
X8E-91: Line guides, small quarter-circle
X9A-9D: Line guide ends
XA8: Left arrow sign
XC4: Egg block
XFB: Repeats objects in another screen
XFD: Allows screen to scroll into the screen it's placed in
XFE: Prevents screen from scrolling into the screen it's placed in
XFF: Prevents screen from scrolling into the screen it's placed in, and removes all tiles in that screen
----Cross Sections-----
Here is a quick guide to crossections. Huge thanks to Blumiere for explaining how these work.
----Layer 3 List-----
Here is a nice spreadsheet created by Yoshis_Fan which documents the layer 3 data in the game.
----Sewer Levels----
Sewer levels are regarded by many as one of the nastiest levels to work with due to EggVine's nasty rendering of them. Very few people have successfully. This thread contains information, as well as an excellent tutorial which you may find useful for designing them.