Welcome to the Naked Apron Project teamhack!

First thing you need to know is that we manage resources in a Google spreadsheet. Please have a look through it and familiarize yourself with it (you can change tabs at the bottom!). Next step is to add yourself to the user list and give yourself a name color in the Resource allocation tab.


The story of the hack is quite simple, the main character (Princess) has lost her glasses and is looking for them. Feel free to add flavor to your level or the hack in general by adding small bits of story pieces to your levels, if you want to.

Project Folder structure:

_project - Home folder with .bps, .dsc and other various LM files and build bats at tools/bats

_project/toos/bats/_createFastROM.bat bat to build NA fastROM version (will apply _baseCreateROM.bat and _baseUpdateROM.bat with fastROM as argument)
_project/toos/bats/_createSA1ROM.bat bat to build NA sa-1 version (will apply _baseCreateROM.bat and _baseUpdateROM.bat with sa1 as argument)
_project/toos/bats/_updateROM.bat bat to update a rom (a.smc) (will apply _baseUpdateROM.bat)

_project/toos/_doc - Various documents with information + this site and scripts to generate it
_project/resources/demo-levels - Contains demo levels (for screen-scrolling pipes etc.)
_project/resources/levels - Contains inserted levels
_project/resources/map16 - Contains all the map16 files
_project/resources/paletteMasks - Contains various palettes for certain tilesets/spritesets
_project/tools - Tools and resources as specified below, each with their own subdirectory

Starting from 29.0, all tools are packed inside the resource pack

Level #, Level name, and Author should be self-explanatory.

Submaps and Secondary entrances should list which of these you use in your level.

No Yoshi Entrance Patch is used if you are using a no Yoshi entrance. Note that a custom entrance must always be used for the quick restart to work.

Multimidway Patch is used if your are using custom midways via the patch.

Dragon coins - enter Yes if you have 5 dragon coins in your level, leave blank if not. Note that you need to use the custom objects (BF-C3) and not the regular dragon coins. See the Object list on the sheet or the Useful info tab above for more info.

Moon - enter Yes if you have a moon in your level, leave blank if not. Remember to not use MAP-16 to place a moon.

Tile is which tile your level should have on the overworld, use a drop-down list to select. For switch palaces, please confirm with the rest of the team that it's okay for you to make one since there are only 4 available.

Theme is what the general graphical theme of your level is, this is also for overworld purposes. If you have multiple themes or are unsure what to put here, be sure to make good use of Notes.

Difficulty and Secret difficulty are what the difficulty of your level is, and how hard it is to get the secret exit, from 1-5. What the difficulty of a level actually is, is hard to say and is very subjective. Put in what you think is right, and consider how other people feel about it. (Note that this difficulty rating may get reworked to have more proper guidelines in the future).

Second Exit denotes what kind of secret exit you have in your level, if any.

! - Enter ! under the appropriate switch color if your level contains a switch block of that color. The order of the switch palaces is the order they appear in the sheet (yellow, red, blue, green). Note that the red blocks contain flowers and the blue blocks contain stars, and that we have solid switch blocks via custom objects.

Notes / Comments is for describing your level briefly. What is the gimmick? Is there something we should know about it? Do you have specific ideas of where it should go on the overworld? Etc.

Inserted just means that the finished level has been inserted into the baserom. Tattletale will edit this.

Quick things to note

Dragon coins require custom objects to be used properly.
Collected dragon coins will be saved upon touching a midpoint or beating a level.
Red switch blocks contain flowers and blue switch blocks contain stars.
We have solid switch blocks via objects.
Switch palaces can be replayed and switches can be repressed to deactivate the switches.
If you use a no Yoshi entrance you need to use the patch to make quick restarts work.
If you press a button during death animation or level entry, animations are skipped.

Using dragon coins

To insert dragon coins you must actually use the objects BF-C3. The easiest way to use them is to copy and paste them from the block test level (105). If you want to insert them manually, read below.

Inserting custom objects

We have lots of useful custom objects with various flags (such as disable flight, filter powerups on entry etc.). The block test level (105) has some objects for easy copying and pasting, but inserting them yourself is very easy.

First, look at the object list on the sheet so you see which ones to use. Then in Lunar Magic, go to Layer 1 or 2 Editing Mode, press the Insert key to open the Add Object Manual window, then in Size/Type/Ext enter the number of the object you wanna use. The image below shows the Add Object window with the disable flight object as an example:

The objects will look garbled in Lunar Magic, but they will not be visible in the game. Note that the powerup filters and disable flight etc. objects are run once on level load, and do not need to be touched.

Some objects are tied to RomHijacks. Basically, I have set up a freeRAM so each bit in it should toggle a behaviour in game. Ram is $1475. This RAM gets reset at OW load in the original game code and has a mirror RAM so sprites can proper enable / disable configurations in this and have a backup for the original level value. Mirror is $0DD9.

Easy Setup:
#%00000001	Free camera            		ObjectA2
#%00000010	Disable flight         		ObjectA3
#%00000100	Disable cape spin      		ObjectA4
#%00001000	Disable fireballs      		ObjectA5
#%00010000	Enable vertical wrap   		ObjectA7
#%00100000	Downwards Camera Scroll		ObjectA9
#%01000000	Disable L+R            		ObjectAA
#%10000000	Reenter level below screen	ObjectAB
#%00000000	Clean hijacks          		ObjectAC

We have another Hijack ram which is $1477.

Easy Setup:
#%00000001	Keeps yoshi as being drawn when FF is set $78
#%00000010	Enable lineguided act-fix                         ObjectB0
#%00001000	Enable Screen upwards                             ObjectB2
#%00010000	Enables On/Off+Noteblock sprite tile remap        ObjectB3
#%00100000	Toggle LR camera (check blocks for config)

For the On/Off + Noteblock sprite tile remapping, you will have to set RAM: $13E6 for the Noteblock tile and RAM: $13E7 for the On/Off tile.

More will be added as the project go on, feel free to ask for a ROM Hijack. More Rams can be assigned to this too.

Switch blocks

In this hack all switch blocks contain powerups, which means that the red switch blocks contain flowers and the blue switch blocks contain stars. If you would like to use solid switch blocks (that contain no powerups) you must insert them as objects. The block test level (105) has them for easy copying and pasting.

Note that the top part of the object is where the block will appear in the level.

The order of the switches are as they appear in the level list. Yellow, red, blue, green.

Useful ExGFX and animations

The ExGFX mappings tab on the sheet lists all ExGFX inserted in the rom. Anything listed as common is something that could be useful for your level.

Some useful animations can be found in the Block test level (105), this will however be updated in the future to include more animations.

No Yoshi Entrance Patch

If you're using a no Yoshi entrance, you must edit the patch to get the fast restart to work. The file you need to edit is located in _project/tools/asar161/#patches/EntranceEdit/Data.asm. The table looks a bit messy but hopefully it should make sense. The values you can use are located in readme.txt in the same directory.

For more information, read the No Yoshi Entrance Patch section in Configurable Patches.

Multimidway Patch

To use a second midpoint there are two things you need to do; insert the custom midway objects and edit the multimidway patch. Both things are very easy to do.

The custom objects you need are 98 and 99, you can find them in the Block test level (105). The patch you need to edit is located in _project/tools/asar150/#patches/multi_midway/multi_midway_tables.asm. Find the level you want to edit the midpoints for and change the table.

Example: $0025 will use the midway entrance of level 025. $0001+!secondary will use secondary entrance 001.

Generally it's only a good idea to use a second midpoint if your level has a diverging secret exit or a boss.

When you want to reserve resources it is important that you have already added yourself to the user list and given yourself a name color. It's on the top right in the Resource allocation tab.

If you have done so, please check the spreadsheet to see which resources are available to you in the Resource allocation tab. Next is to post in #reservations on Discord to let everyone know what you would like to reserve. More than likely it will be just fine to change the background of the resource you want to your name color right away, and start making your level.

Note that there are resources in the baserom already that is inserted for everyone to use, such as certain ExGFX files (see the ExGFX mappings on the sheet), a ton of custom sprites, and some custom and common use blocks on MAP-16 page 3 (and 4 for screen scrolling pipes).

Note that sprites, objects and music have their own separate page on the sheet. Regarding music, we have not completely decided on which addmusic tool to use just yet, so it's best to hold off on reserving music, sadly.

When your level is finished, you need to make sure that you submit all necessary files, provide all necessary information, and make sure the spreadsheet is updated properly.

As you know, NA is both fastROM and SA-1 now. But don't worry! If you have no idea how to convert your resources, I will do it for you (Tattletale).

List of things to do/include:

Lunar Magic:

Tools (files along with list entry in a .txt):

Patches (necessary info in a .txt):

Spreadsheet (update, and unreserve unused resources):

Configuring NoYoshiEntrance

Well, this one is a bit special because it has been heavily modified by me (Tattletale). First things first, I reserved out from 02 to 07 so you can force the in-game entrances. To configure it, edit the file: _project/tools/asar161/#patches/EntranceEdit/Data.asm - find the entry corresponding to your level and edit it.

00 You block yoshi entrance, regardless of the LM settings and yoshi won't be allowed to get in the level.
01 Will respect whatever is configured in LM (default behaviour
02 Force castle entrance (with background)
03 Force no yoshi entrance (hills BG)
04 Force ghost house entrance
05 Force no yoshi entrance (starts BG)
06 Force no yoshi entrance (isometric BG)
07 Force castle entrance (no BG/dark)
08-FF Regardless of GFX tile set, force the entrance to be valid and to use custom map (level008-0FF)

Fast entrance will only be activated if you set your level to use these mechanism. Fast entrance will skip whatever entrance it had to play if the last level you entered is the same you are entering now.