-
Notifications
You must be signed in to change notification settings - Fork 42
CSMM User Manual
- Importing and Exporting map data through CSMM
- Making various changes to board data using the .yaml file
- Optional Patches
- Importing custom assets to the game through CSMM
- Acquiring a Fortune/Boom/Itadaki Street ROM
- Any feature that did not exist in version 1.3.3 of CSMM or prior
The bare minimum files you will need to get started are:
- A fresh Fortune/Boom/Itadaki Street ROM, in either .iso (NOT .nkit.iso) or .wbfs format. CSMM does not support “double-dipping”, or working from a ROM that has already been edited with CSMM before. Strange glitches and file loss will occur if you double-dip. You will need a ROM that is either completely vanilla, or one that has been edited from a vanilla ROM without using CSMM. I use a “Base ISO” that has an altered main.dol, edited text, and an altered .scene file, which I injected into the ROM through WiiScrubber.
- Unfortunately, it is not legal for us to tell you where to find video game ROMs, and ripping one from a disc is not within the scope of this guide.
- A copy of CSMM, which can be downloaded on the CSMM Releases page.
- .frb board files. These can be created through Fortune Avenue, which can be downloaded on the Fortune Avenue releases page. Alternatively, you can extract .frb files from the
param
folder of your ROM, or you can download pre-created maps from the Fortune Street Modding Community Maps page. - .yaml map descriptor files, which can be extracted through CSMM. Instructions on how to do this will be explained in this guide.
If you want to include custom assets, you will also need:
- Image editing software capable of editing and creating .png images, for custom icons. Firealpaca and Krita are available for free on Windows and Mac if you need to download a program for this purpose.
- .brstm tracks for custom music. You can download tracks from smashcustommusic.net, or create your own tracks by following the instructions from the Custom Music guide.
- If you want to create your own .brstm tracks, you will also need a copy of Brawlcrate. Brawlcrate can be downloaded on its own Github page by clicking here.
- .cmpres and .scene files for custom backgrounds. You can create custom backgrounds by following the instructions from the Custom Environments guide.
For every board, the .frb board file, .yaml map descriptor file, and all custom assets (collectively, the board assets) need to be in the same folder. This is because CSMM only searches the folder that contains the .yaml file for board assets, not your entire computer. Personally, I like to be neat, so I put each of my boards’ assets into a separate folder, labeled in the internal order of the board slots.
This level of organization isn’t strictly necessary. You could put all of the board assets for your entire mod pack into one folder and it would still work, although you may have a harder time finding the files you need that way.
CSMM requires Wiimms ISO Tools (WIT) and the SZS Toolkit in order to function. You can download these through CSMM, so you don’t need to get them separately. When you open CSMM for the first time, click File
→ (Re-)Download External Tools
, and a prompt will open requesting a download url.
This prompt will also appear if CSMM has detected that you don’t have WIT or SZS and you try to load a ROM.
As of the time of writing (November 2nd, 2021), the urls that appear by default are up to date, so you shouldn’t have to enter anything in yourself. Just click OK
and the external tools should download for you. However, if you are reading this guide far in the future, the links may not be up to date anymore, in which case you’ll have to find the current location where WIT and SZS can be downloaded and enter the new urls in this prompt.
Once you’ve downloaded the external tools, it’s time to open your base ROM. If you want to use a regular ROM, Click File
→ Import WBFS/ISO
or press Control/Command
+ I
to load a ROM. If you want to use a folder instead, Click File
→ Open Game Folder
or Control/Command
+ O
. A prompt will appear requesting the location of your ROM or folder. Once you select one, you will see a screen that looks somewhat like this:
I made the window very long and thin to demonstrate a single row, but your window will probably be normally shaped.
Each row represents a board in the ROM’s files, and each column represents some aspect of the board’s data that can be edited by CSMM or the .yaml file.
On the very left side of each row, you will find two buttons: Import .yaml or .zip
and Export .yaml
. These are how you can interact with CSMM’s .yaml map descriptor files. These buttons are fairly self-explanatory: Export .yaml
exports the board’s .yaml file and .frb board file to a selected location on your computer. You can then edit these files to make changes to the map data, or store them to import back into your ROM later. Import .yaml or .zip
prompts you to select a preexisting .yaml file (or a .zip folder with all board assets, if you prefer that) to import into CSMM.
After that is a table with a large number of entries. Most of them just display information that can be found in the .yaml file, which can be useful for double-checking if a board was properly imported, but can’t be interacted with otherwise. The entries that are useable within CSMM are:
Name: The in-game title of the board, editable through the .yaml file. This can’t be interacted with, but it is your first indicator of which board is which.
MapSet: Which side of the “Easy Mode/Standard Mode” partition from the main menu that the board is on, editable by double clicking on the entry in CSMM and typing in the desired value. This is NOT the difficulty mode of the board, just which side of the main menu partition the board can be found in. A -1 indicates that the board is unused, a 0 indicates that the board can be found on the blue “Easy mode” half of the partition, and a 1 indicates that the board can be found on the red “Standard mode” half.
Zone: Which Tour the board is on in Tour mode, editable by double clicking on the entry in CSMM. A -1 indicates that the board cannot be played in Tour Mode or Free Play, a 0 indicates that the board can be found in the Dragon Quest Tour, a 1 indicates that it can be found in the Super Mario Tour, and a 2 indicates that the board can be found in the Special tour.
Order: Which slot within the tour that the board is on, editable by double clicking on the entry in CSMM. 0 counts as a number, so 0 is the first board in the tour and 5 is the sixth. A -1 indicates that the board cannot be played in Tour Mode or Free Play. You can add additional boards to a Tour by setting the order of a new board to higher than 5, but if you do this you must add a new board to the opposite MapSet with the same Zone and Order as well. (In less technical terms, each tour must have the same amount of boards on each side of the main menu partition: You can’t have 6 Dragon Quest Tour boards on the red half and 7 on the blue half, for example.)
Is Practice Board: Whether or not the board can be played during the Tutorial, editable by clicking the checkbox in its entry on CSMM. There must be one Practice Board per MapSet. It is recommended that the practice board be in the -1 Zone and Order so it is not accessible through Tour Mode or Free Play, but this is not a requirement.
Unlock ID: The slot used to determine if the map has been beaten in Tour mode or not, editable by double clicking on the entry in CSMM. Currently, this is somewhat buggy. It is recommended to either set this to 0 if you are adding additional boards, or keep it at the default value if you are only replacing the 38 existing boards.
Venture Cards: This entry contains a button that shows the user what Venture cards are available on this board’s deck. If you want to change the Venture card deck for a board, you’ll need to edit the .yaml file.
At the bottom left corner of the CSMM window, two buttons can be found: Add Map
and Remove Map
. Clicking Add Map
will add a new row to the CSMM table, with blanked out data. You will need to change the MapSet, Zone, and Order of this row to make the new map playable when your ROM is created.
Clicking Remove Map
will summon a prompt asking if you are sure you want to remove the selected map or maps. If you click Yes
on this prompt, any map you have selected will be permanently removed from the table, and when you make your new ROM, the map(s) will be absent from its files.
This cannot be undone, so if you make a mistake you’ll have to reload your base ROM and start over from the beginning. Please delete responsibly.
The toolbar is where various features of CSMM that aren’t related to the boards are located. In Windows versions of CSMM, you can locate it on the top of the CSMM window, underneath the program’s title and icon. On Mac versions, you can find it on the top left corner of the screen, next to the Apple logo, when CSMM is the active window. The following options can be found in the toolbar:
File: This is where you can import a ROM to begin working, or export a ROM when you are done. The external tools can also be downloaded here.
If you load a ROM and then immediately click File
→ Export to Folder
without making any changes, a special prompt will appear:
Clicking Yes
will cause CSMM to extract your ROM as-is into a folder, with no CSMM changes. You can then replace files in this folder, and use it as a base ROM for CSMM without causing double-dipping glitches. This is most useful if you want to use a base folder but don't know how to extract your ISO with command line tools; or if you want to add custom sound effects to your mod (which requires extra steps that include turning your base ROM into a folder first).
Tools: This section contains a few useful tools.
Save clean lstat.csmm.brsar: This button exports a special version of the game’s .brsar file that is somewhat bigger than the vanilla file. This file can also be downloaded from the CSMM github, but exporting it through CSMM is a nice convenience. This file is required to make any custom sound effects (specifically custom sound effects, not custom music) compatible with CSMM-modded ROMs.
Load/Save map list (*.csv): Version 1.3.3 of CSMM contains a convenience feature in which users can store the instructions for injecting boards, so that they only have to import one file instead of importing every board individually. This tool is how that feature works: the instructions are stored in a .csv table that you can save after importing your boards once.
Validate: CSMM performs the following checks when the Validate button is pressed:
- Both MapSets contain exactly one practice board
- All boards have only valid values for MapSet (-1, 0 or 1) and Zone (-1, 0, 1 or 2),
- There are the same amount of boards in a Zone in both MapSets (current limit, which Deflaktor says they will try to lift)
- There are between 6 and 16 maps in each Zone
- The Order values within a Zone are unique, increase without gaps, and start with 0
If any of these checks fail, pressing the Validate button will inform you of where the error has occurred and where the error is located.
Optional Patches: CSMM allows you to add some extra features to your ROM, and this is where those features are located. As of Version 1.3.3, there are two optional patches available.
- Patch Wiimmfi: If this is checked, CSMM will apply a patch that connects players to the Wiimmfi servers instead of the defunct Nintendo Wi-Fi Connection servers. This way, players of your ROM can play online natively, without having to set up Netplay on Dolphin or download an external program like Parsec. Do note that if you are using Dolphin, you will need a copy of a real Wii’s NAND or a way to randomize your Dolphin NAND in order to play with Wiimmfi.
- PatchSaveID: Every game has an ID in its disc header, which can be read by Dolphin. This patch allows you to change the last two digits of this ID to any combination of capital letters or numbers. This is most useful for Dolphin texture packs: any ROM with an identical ID will share a texture pack, so if you want your mod to have a unique texture pack, you can give it a unique ID. If you do nothing, CSMM will automatically patch the ID to have a suffix of 02.
Help: Contains a “CSMM Help” button, which links to the CSMM Wiki. This Wiki doesn’t actually have any articles, but it does have a link to the Fortune Avenue article where the Custom Street guides are actually located.
The .yaml file is what CSMM uses to determine what changes to make to the Fortune Street ROM and where to make them. In other words, it’s an instruction sheet for the program to use. These instructions are written in plaintext, so you can edit the .yaml file with a standard text editor (Notepad for Windows, TextEdit for Mac). You could also make a working .yaml file completely from scratch since they are just text files, although it is much easier and faster to export a .yaml file from CSMM and edit that instead.
To export a .yaml file, Open CSSM and click File
→ Import WBFS/ISO
or press Control/Command
+ I
to load a ROM. Locate your ROM of choice, wait for CSMM to load, choose a board, then click Export .yaml
. When the save prompt opens, choose a location to export the .yaml file to, then click Save
.
name: Determines the in-game title of the board.
desc: Determines the description that crawls above the board in the main menu.
The lines within these sections determine the game-language that the titles are being used for. I created entries for every available language for demonstration purposes, but you should only make entries for the language(s) you need.
ruleset: Determines the difficulty mode of the board. “Easy” and “Standard” are the valid arguments. This does not have to coincide with the board’s slot, CSMM can decide the difficulty mode on a board-by-board basis.
theme: Determines the aesthetic theme of the board. “Mario” and “DragonQuest” are the valid arguments.
initalCash: Determines how much cash players begin with at the start of the game on this board, between 0 and 65535. This only affects singleplayer, so this value should match the one in the .frb so players start with the same amount of starting cash on all modes.
targetAmount: Determines the default target net worth for the board, between 0 and 65535.
baseSalary: Determines the base salary that players earn upon promotion. This value should match the one in the .frb.
salaryIncrement: Determines the amount of gold that players’ salary increases by for each promotion they earn. This value should match the one in the .frb.
maxDiceRoll: Determines the highest number that players can roll on the die, between 1 and 9. This value should match the one in the .frb.
frbFile1: Selects the .frb board file to be used for this board. If you have a dynamic board, you can add an “frbFile2”, “frbFile3”, and/or “frbFile4” line to include the other board states. “frbFile1” is always required.
switchRotationOriginPoints: selects the coordinates on the board that rotating tiles center on. This is only useful on dynamic boards which have the moving tiles rotate rather than slide around.
bankruptcyLimit: Determines the number of players that must go bankrupt before the game ends automatically in Tour Mode for this board, between 1 and 3.
opponent[#]: Determines which characters participate in Tour Mode for this board.
clearRank: Determines the placement that players have to tie or beat to complete Tour Mode for this board, between 1 and 4.
looping: If the board is a looping board, this is where the settings for the loop are located.
mode: The manner in which the board loops. Fortune Street Wii has a Vertical and Omnidirectional looping mode, but the latter is extremely buggy and barely works. You should enter “Vertical” here.
radius: The radius of the circle or sphere around which the board rotates, in tiles.
horizontalPadding: The distance that horizontally adjacent tiles will be from each other, in tiles. Generally this should be 1.
verticalSquareCount: How many tiles make up the vertical loop.
background: determines the background that will be used for this board. If the argument you enter is a background that already exists in the vanilla game, CSMM will simply use that background, without you having to supply the files for it. Valid vanilla background arguments include:
Background ID | Vanilla Scenery |
---|---|
bg001 | Yoshi’s Island |
bg002 | Mario Circuit |
bg003 | Peach's Castle |
bg004 | Mario Stadium |
bg005 | Delfino Plaza |
bg006 | Super Mario Bros. |
bg007 | Bowser's Castle |
bg008 | Starship Mario |
bg009 | Good Egg Galaxy |
bg101 | Castle Trodain |
bg102 | Ghost Ship |
bg103 | Colossus |
bg104 | Mt. Magmageddon |
bg105 | Slimenia |
bg106 | Robbin’ Hood Ruins |
bg107 | Alefgard |
bg108 | Alltrades Abbey |
bg109 | Observatory |
bg901 | Tutorial |
If you enter any other argument, CSMM will search the yaml’s folder for suitable .cmpres and .scene files.
mapIcon: You can put a custom icon for the board here, that will be displayed in the board selection menu. Custom icons must be in .png format, and are about 79 pixels square. Due to certain glitches in CSMM’s code, certain restrictions apply to mapIcons:
- All MapIcon file names must be 13 characters long or less.
- If you use the Tutorial background (bg901), you must have a map icon named
p_bg_901.png
in your board’s folder, and it must be referenced in this line. This is true even if you are replacing the Tutorial and thus wouldn’t see the map icon in normal play.
music: This is where you can include custom music tracks and jingles for the board. All custom music must have a “.##” at the end of the filename, where “##” is a number between 0 and 100. This determines the volume of the track, with 0 being muted and 100 being full volume.
To determine which tracks are played in which portion of the game, this entry has several categories. These are as follows:
map: The standard music that plays throughout normal board play.
stock: The music that plays in the stock menu.
ventureCards: The music that plays when selecting a Venture card.
auction: The music that plays during an auction.
targetMet: The music that plays during board play, once someone has reached the target net worth.
win: The music that plays during the results screen, after a player has won the game.
guestAppear: The jingle that plays when cards 28, 91, and 92 are pulled.
guestLeave: The jingle that plays when an NPC leaves the board.
badVentureCard: The jingle that plays when card 13 is pulled.
takeAbreak: The jingle that plays when someone’s stores close.
promotionMii: The jingle that plays when a Mii promotes.
promotionMario: The jingle that plays when a Mario character promotes.
promotionDragonQuest: The jingle that plays when a Dragon Quest character promotes.
forcedBuyout: The jingle that plays when a player forcibly buys out someone else’s shop.
domination: The jingle that plays when a player buys all shops in a district in Standard mode, or buys two or more shops next to each other in Easy mode.
bankruptcy: The jingle that plays when a player goes bankrupt.
If you don’t need a custom track of a certain category, just don’t include that line.
This portion determines which of the 128 venture cards are available for this board. The text on the bottom is irrelevant for CSMM’s purpose, it is only there for the user to know which number corresponds to which card. The part that matters for CSMM is the “1” or “0” on the left side. This determines whether a card is activated (1) or deactivated (0). Exactly 64 cards must be activated, and 64 must be deactivated. If there are less than 64 cards in a board’s deck, the game will pull the remaining cards from the last stage selected. This is quite glitchy. If there are more than 64 cards activated, the deck will only use the lowest 64 activated cards.
While the vanilla .yaml files come with a venture card section, it is optional. If you delete the section, CSMM will use a default venture card table which can be found here. The left column of true/false statements is the default venture card table for Easy mode boards, while the right column is the default table for Standard mode.
Before you even open CSMM, you’ll need to prepare all your other files first. Double check you have your base ROM and board assets ready, and that all board assets for each board are in the same folder.
The first time you use CSMM and every time you move the location of your board assets, you will have to inject every board manually. The method for doing so is as follows:
Start by opening CSMM, then click Import WBFS/ISO
or press Control/Command
+ I
. Locate your Base ROM and click Open
.
Once your ROM loads, choose a board and click Import .yaml or .zip
. A load prompt will open. Locate the .yaml file in your board’s folder, then click Open
. Due to the glitches associated with double-dipping, you must do this with every board in your mod pack, from a fresh base ROM.
If you want to change the MapSet, Zone, Order, or Unlock ID of a board, double click on those entries in the CSMM window and type in your desired value. When you’re done, either press Enter/Return or click away from the entry you were typing in.
Once you are done, Click Tools
→ Save map list (*.csv)
. A save prompt will appear, allowing you to save the instructions for importing your maps as a .csv table. Next time you make a mod with CSMM, instead of importing each board one at a time, you can just click Tools
→ Load map list (*.csv)
, locate the .csv you just made, and all the boards will be imported automatically.
To toggle whether or not you want to patch Wiimmfi into your ROM, Click Optional Patches
→ Patch Wiimmfi.
If it is unchecked, clicking this option will check it, and CSMM will patch Wiimmfi into your ROM. If it is already checked, clicking it will do the opposite.
To change the ID of your ROM, click Optional Patches
→ PatchSaveID
. A prompt where you can type in your desired ID suffix will appear.
I want my mod to have a suffix of BB, so it would be nice if people didn’t use that one.
Click OK
to confirm your choice.
Once all your boards have been injected, and you’ve made every optional patch you desire, click File
→ Export to WBFS/ISO
. Choose a location to save your new ROM to, then choose a file name. The file format your ROM will be exported in depends on the filename you choose: if it ends in .iso
, CSMM will export an .iso. If the filename ends in anything else, a .wbfs will be exported instead. .iso files are easier to edit in post-production, but .wbfs files have a smaller file size and are faster to create. Once you have selected a location and filename, a progress bar will appear. Wait for it to fill up, and you should have a newly modded Custom Street ROM.