FlipperMCE Logo

# FlipperMCE Firmware FlipperMCE is a *MemoryCard Emulator* that is heavily based on sd2psx by developer @xyzz (see [here](https://github.com/sd2psx)). ## Features It has the following base feature set: - **Card Restore** - **Game ID** - **Multiple CardSizes** - **Game2Folder mapping** - **Settings File** - **Per Card Configs** ### Card Restore If active, FlipperMCE will always boot to the last used card. ### Game ID Many loaders implement a special protocol, that allows the cube to transmit the Game ID of the currently started game to an *MCE*. FlipperMCE supports this protocol (see *doc/mcp*) and will load or create a card for each trasmitted Game ID if configured so. ### Mulitple CardSizes *FlipperMCE* support Card Sizes from 4 - 64 MBits. ## Game2Folder mapping There are some games, that share save data for multiple game ids. For these cases, a custom game to folder mapping can be created. If a game with a mapped id is loaded, instead of using the game id based folder, the mapped folder is used for storing the card. The mapping needs to be defined in ```.flippermce/Game2Folder.ini``` in the following way: ```ini [GC] GT4P=FolderName ``` *Note: Be aware: Long folder names may not be displayed correctly and may result in stuttering of MMCE games due to scrolling.* *Note 2: Make sure there is an empty line at the end of the ini file.* ### Settings File *FlipperMCE* generates a settings file (`.flippermce/settings.ini`) that allows you to edit some settings through your computer. This is useful when using one SD card with multiple *FlipperMCE* devices. A settings file has the following format: ```ini [General] FlippedScreen=OFF [GC] CardRestore=ON GameID=ON CardSize=64 ``` Possible values are: | Setting | Values | |---------------|---------------------------------------| | CardRestore | `OFF`, `ON` | | GameID | `OFF`, `ON` | | CardSize | `4`, `8`, `16`, `32`, `64` | | FlippedScreen | `ON`, `OFF` | *Note: Make sure there is an empty line at the end of the ini file.* ### Per Card Configs There are some configuration values that can be modified on a per card base within a config file named `CardX.ini` in a card folder, where `X` is the card index. *Note: Make sure there is an empty line at the end of the ini file.* ```ini [ChannelName] 1=Channel 1 Name 2=Channel 2 Name 3=Channel 3 Name 4=Channel 4 Name 5=Channel 5 Name 6=Channel 6 Name 7=Channel 7 Name 8=Channel 8 Name [Settings] MaxChannels=8 CardSize=8 ``` ### Card splashes Add a splash image that the device shows in the card browser. Use the included splash generator (`misc/splashgen.html`) to convert a source image to the device `.bin` format, then place the generated file in the card folder on your SD card. Naming and behavior - Folder-level splash (default for the folder): - Path: `MemoryCards/GC//.bin` - Example: `MemoryCards/GC/SuperGame/SuperGame.bin` — used when no channel-specific image exists. - Channel-specific splash (overrides folder-level for that channel): - Path: `MemoryCards/GC//-.bin` - Example: `MemoryCards/GC/SuperGame/SuperGame-1.bin` — shown only for channel 1 of that card folder. - Fallback rules: - If a channel-specific file exists it is used. - Otherwise the folder-level `.bin` is used. - If neither exists, no splash is shown. Practical notes - `` matches the on-device channel index (1..N). - Filenames must match exactly; FAT SD cards are usually case-insensitive but keep names consistent. - Use `misc/splashgen.html` to produce correctly-sized and packed `.bin` files for the OLED. - Keep names short — very long filenames may cause display or performance issues. - Store splash `.bin` files alongside that card's `CardX.ini` and save data in the same folder. ## Known issues ### wii will not recognize the card as memory card Within the wii System Menu, the card may occasionally not be recognized. If this happens please try the following things: - Close and re-open Gamecube Cardbrowser - Switch the mounted card using the buttons on FlipperMCE - Re-Plug FlipperMCE ## Special Thanks to... - **Vapor, rippenbiest, Mancloud**: for beta testing ❤️ - **@gameBitfunx**: for PCB design, testing and support ❤️ - **@xyz**: for sd2psx ❤️ - **sd2psXtd Team**: (you know who you are 😉 ) - **8BitMods Team**: for helping out with card formatting and providing lots of other useful information for things like unlock ❤️ - **@extrems**: For insights into EXI communications and libOGC2 SDK