Introduction
This is a page about editing credits using the credits editor. It can be a bit finicky, and I (Nodever2) was asked to put what I learned about it here. I am by no means an expert on the credits, so feel free to add to this page if you learn more!
Special thanks to Smiley for researching the credits routines and providing more information for us.
Further reading: This great resource can teach you more about the credits in general. It contains additional technical information about the credits. Technical Information About The Credits
The credits are composed of a compressed tilemap (at $97:EEFF) which the game decompresses and precisely loads certain lines from, and displays those lines on-screen. The game chooses what lines to load based on the credits instruction list at $8C:D91B. This instruction lists' format is as follows:
__ Instruction in $8B to execute
iiii aaaa
If the instruction value (iiii) is 0000, then the argument (aaaa) is a pointer into the uncompressed credits tilemap, telling the game what line of the credits to load (the line pointed to by this pointer).
My advice (Nodever2 here): SMILE RF's credits editor has.. problems. If you really want the best experience editing the credits, you might be best off doing so without the credits editor; you could use the credits editor to edit and save the credits tilemap, and then repoint the credits instruction list and manually edit it in hex. SMILE RF seems to not always save the instruction list properly and/or overwrite other data with it without telling you. (This may also be true of the credits tilemap, since it is compressed, so edit that with caution as well).
The credits tilemap is pointed to by the $D91B here: $8B:F6F8 dw 93D9,93D9,D91B If you want to repoint it, start there. (Found by Smiley) Basics of the Credits Editor
The Credits Editor in SMILE RF can be accessed by navigating to Tools > Special Editors > Ending Credits Editor. This document was written for the editor in SMILE RF.
Here's a quick overview on the credits editor, SMMM-style:
The Credits Editor
Credits Line Arranger (aka Credits Instruction List Editor) Controls for Credits Line Arranger Credits Tilemap editor (left box): Shows currently selected tile from Credits Tilemap editor (right box): Shows tile that is being hovered over by the mouse cursor Controls for placing tiles into the Credits Tilemap Editor from the Credits Tile Table (used in conjunction with #7) Credits Tile Table Save/Reload buttons
Credits Tilemap Editor
If you want to edit names from the credits, it's quite easy. Simple right-click a tile from the Credits Tile Table, and it will show up in Box #4 when selected. Then, click in a line in the Credits Tilemap Editor to place it on a line there. Note that the credits are broken up into individual lines.
I'm assuming the purpose of editing the credits is adding your own, but there isn't a lot of extra lines in the Credits Tilemap Editor to work with. However, it is disrespectful to remove the names of the Nintendo staff, so I don't recommend doing that. One possible workaround to this problem is to remove the headings from the credits in the credits tilemap editor (examples of headings: PRODUCER, PROGRAM DIRECTOR, etc.), and then use those lines for your own credits. If you don't have a ton of credits, this will work. if your hack is large enough to need even more lines, then you'll have to do some more advanced editing which is beyond the scope of this tutorial. Credits Line Arranger
After preparing the lines you want to place/move around, you're ready to move on to the left window (Credits Line Arranger). Navigating this window is tricky at first. Here's the basics: You navigate this window by selecting and moving entire lines at a time. Right-click anywhere in this window to select a line, and then use the controls below to edit it. It's that simple! However, there are many pitfalls which you must be careful to avoid, as discussed in the next section….. How to NOT Destroy Your Credits
A few tips I've learned:
MAKE ROM BACKUPS FREQUENTLY!!! There's a good chance you'll need them, even after reading this. The credits are very finicky, not to mention how the credits editor likes to crash SMILE. Make sure all other level data edits, etc. are saved too.
Make sure you have at least a screen or so of blank space at the end of your credits (shown below) or else the screen won't clear properly, and you will still have credits on the final screens of the game (where you are shown your completion percentage, etc.)
An example of credits that don't leave a screen of space at the end, and an example of those that do
(Notice in this image, the Credits Editor is scrolled all the way to the bottom. You want that empty space!)
Edit the contents of each the Credits Tilemap Editor (box on the right) SEPARATELY from editing the Credits Line Arranger(box on the left); when changing from one to the other, always save the Line Arranger and re-open the editor. Failure to do this can result in the credits editor spontaneously reverting your changes back to the last time you saved - which may mean a lot of lost progress.
Sometimes, when you exit and re-open the credits editor, you'll notice that the credits have been changed - typically, you'll see the vanilla bottom section of the credits repeated there, even though you didn't place it [to-do: find out why this happens and how to reproduce consistently]. However, as long as the glitch seen in the next bullet point below doesn't occur, you should be safe (probably? make backups often just in case) to delete the extra stuff that appeared there and replace it with your intended credits. Because of this, when you're done editing your credits, re-open the editor one last time to make sure this glitch didn't occur. Pure speculation: This may happen when your credits are shorter than that of vanilla, and the game fills all the extra space with these credits to restore it to it's vanilla length. Thanks to Smiley's research, we now know that this phenomenon is most likely explained by the following: If you edit the credits and it takes up less data than that of vanilla's, SMILE RF is likely (at least in some cases?) not correctly writing the terminating data to the credits instruction list, resulting in the vanilla data still being read by the game after your custom data ends.
An example of credits where the vanilla credits spontaneously appeared at the bottom when saving
Sometimes, the end of your credits (as seen in the editor) will become a horrible glitchy mess (seen below). If this happens, your credits were likely too long. It may be possible to delete all those extra lines that were created and still have functioning credits, but you should assume the glitch credits broke something else in your ROM. I highly recommend to revert to an older backup of your ROM at this point, or use SMILE's File Compare and a hex editor if you need to perform manual repairs. [to-do: find out if this actually breaks your ROM, or if you will be fine if you just delete all the extra crap and move on. For now, to be safe, assume that it does break your ROM.]
If you see this, your ROM is broken and you're gonna have to do some digging to fix it.
(When the in-game credits scroll to this point, the player will most likely see a glitchy mess, followed by a possibly crash of the Credits Editor. Avoid!)
Some twisted combination of these bugs can cause another bug where SMILE to crashes every time you try to save the credits. If this happens, from what I've seen, your copy of SMILE RF is fine - it's the specific ROM that is causing this. The crash randomly stopped happening to me after I saved the credits of a different ROM, strangely enough.
(feel free to expand this section if you learn more!)