Stork Editor - yoshidonoshi/stork-editor GitHub Wiki
Starting a project
Rip a supported ROM. As of writing, only USA 1.0 (AYWE r0) is fully supported
File -> Open ROM
Select the ROM file
In the next popup, choose an empty folder to extract the project files into
If there are no errors, your project is successfully loaded
To open your project in the future, do not use "Open ROM", use "Open Project" and select the folder you created earlier
YIDS Primer
Traditional 2D Mario games are very uniform, with repeating static blocks making up levels, all clearly square aligned
Yoshi's Island DS however, is much more "natural" in that it has complex, organic designs to its levels
While the point and click block level design is still available, YIDS excels with natural-looking explorable levels
YIDS stores static map graphics (the ground, platforms, backgrounds) as a tile-by-tile array
This means manual creation of levels would require selecting and placing individual tiny 8x8 pixel blocks... not feasible
To solve this, I created "Brushes," which are loaded sets of tiles that can be placed with a right click
You can also copy and paste for larger effect
Collision is 2x2 tiles each, so Brushes snap to a red cursor to ensure your levels are designed with this in mind
This software is plastered with tooltips and hints to help guide your designing
Workflow
Do not wipe the entire Background Map layer tiles right away!
You'll need the existing sets to build brushes and copy and paste from
However, you can delete the first segment of a level to build your own from. Just preserve things to sample from further down
I suggest setting up the basic layout of the level first, just using stone squares, brown platforms, and basic Collision tiles to get platforming and layout right
You should also set the initial Entrance for the level and any exits
Once you have the navigation set up, then you can start painting with Brushes (and Copy/Pasting from elsewhere in the level assuming you didn't wipe the entire thing)
Utilize examples to the maximum. You'll catch on pretty quick to the flow of level decoration
Once you have both navigation and decoration nice, start placing Sprites, then Triggers, Paths, etc
Stork Editor Navigation
Keyboard Shortcuts
Note: Some of these, such as the clipboard functions, don't work on certain layers
Control + O: Open an existing project folder
Control + Shift + O: Open an NDS rom to create a new project
Control + C: Copy selection
Control + X: Cut selection
Control + V: Paste
Control + A: Select all
Control + Z: Undo
Control + Y: Redo
Layers
You can only interact with layers when you are on the layer selected in the top bar
It is recommended to hide layers you aren't using at the time for ease of use and performance
Note: Collision is technically stored in one of the BG layers. In 1-1, it is tied to BG2
Some layers have unusual functionality, such as the Collision layer having some yellow coins on it for performance
Sprites
Set your layer to Sprites with the top left drop down
You should get a list of Sprites on the left
Clicking on a Sprite on that window selects it
You can also select normally in the viewport with left click
Hold Shift to select multiple
You can drag and drop sprites, but also use arrow keys to more finely place them
Delete sprites with the Delete key
Modify Sprite settings by selecting a single one and editing the hex values
Do not change the number of hex values, each is an unsigned 8 bit integer
You can also copy, cut, and paste with Control + C, Control + X, and Control + V
Some coin sprites in the base game are Collision records, if there is a scene with a large number of coins use the Collision coins instead
Adding Sprites
Click the Add Sprites button on the right
You'll get a window with a list of sprites and descriptions
You can search and scroll to find what you want
Click the Sprite name to select it
Right click to place it (remember to be on the Sprites layer)
Verify that the settings bytes are valid
Sprite Settings Bytes
Sprite settings are set by a list of numbers, each of which is referred to as a "byte"
They are represented in hexadecimal, which instead of 0-9, is 0-F (instead of 8, 9, 10 it's 8, 9, A, B)
Most are "u8" which refers to a single number, but some such as u16, u32, s16 link together multiple numbers
Numbers with types that start with u are "unsigned" which means they can't be negative
Numbers with types that start with s are "signed" , see Wikipedia for an explanation
Most are 00, but there are more you can find via this Wiki and browsing levels in editor
"Padding" are bytes that are never used, simply because the length of settings must be divisible by 4
Background Tiles
You'll need to be on the appropriate BG layer to work on this
You can drag to select multiple tiles, and copy/cut/paste normally
Shift + Drag adds to the tile selection, Control + Drag removes
Important: try and select evenly. The red square on your cursor is a guide
Brushes
The two windows you need are Brush and Saved Brushes
The Brush window shows you what you will "stamp"
Once you have a Brush loaded, you place the tiles with a Right Click
You can populate the Brush window with either presets from Saved Brushes or your own selection
Important: Brush dimensions must be divisible by 2! For example, 2x2, 2x4, 4x8 are okay, 2x3, 5x4 are not
The top left corner's position must also be divisible by 2, ie 18x and 16y. The red square helps align this
Creating your own Brush
Select the tiles you want to turn into a brush
Maximum is 16x16, anything larger should be done via copy/paste
Keep dimensions even, such as 6x8 and not 5x7. The red lines guide you
If you've accidentally selected too much, use Control + Drag to deselect more
Click "Load Selection" in the Brush window. You should see it show up, ensure it is even
Note that blank space is also selected, get rid of extra with Control + Drag
If you like this brush you've created, you can save it
In Saved Brushes, name it and click Store Current Brush. It should show up on the list
Collision
Select the Collision layer and open the Collision window
Place collision tiles with left click
Select what collision tile to place by clicking inside the Collision window
You can also middle click an existing tile to set your brush to that
Right click to delete a tile
Right click and drag to mass delete tiles in a rectangle
Green collision records can be passed through from the bottom, usually for brown platforms and stairs
Blue collision records are fully solid and cannot be passed through in any direction
Red collision squares are lava, and instantly KO Yoshi
Blue collision squares are water, Yoshi can swim in it
Yellow collision squares are soft rock, currently unsupported
Pathing
Switch to the Paths layer and open the Paths window
If your map does not already have a Path database, click the button to create it
Create a new Path and select it
Right click to place new Path points
Drag the values to place new ones precisely, and delete Path points that are too far from ideal
To connect the Path points in a straight line, drag the Distance value positive
You should see it stick out. Adjust that plus the angle until the tip of the green line touches the top left corner of the next point's square
Moving Platforms
These are the most common use of Paths, and are Sprite 0x5F
Set the second byte to the index of the Path, which if you just made a new one, is 0
Set the 7th, 8th, and 13th bytes to FF
Set the speed value to 00 20 00 00 (and go up or down for speed changes)