Ikemen GO - RetroBIOS¶
Technical notes
M.U.G.E.N.-compatible 2D fighting game engine written in Go. It reads the .def, .air, .cmd, .cns, .sff and .snd files of M.U.G.E.N. content, plus its own .zss state files.
Every file is read relative to the working directory; paths below are written under ikemen/, which stands for it. The file names come from the embedded default configuration, src/resources/defaultConfig.ini, which save/config.ini overrides (src/main.go:189-195).
The repository ships: data/: common animations, commands, constants and state files external/script/: the Lua scripts that drive menus and game modes external/icons/: window icons external/shaders/: optional post-processing shaders font/: debug.def with Open Sans, and the default-3x5 bitmap fonts
The default configuration also names files the repository does not hold: the motif data/ikemen1/system.def, the effects pack data/gofx/gofx.def, the stage stages/stage0-720.def and external/gamecontrollerdb.txt. Release packages copy chars, data, font, sound, stages and video from the Ikemen-GO-Screenpack repository next to the engine (.github/workflows/releases.yml:585-593) and download the controller database (.github/workflows/releases.yml:610-612).
A definition file names the files it loads. Each name is searched beside the definition, beside the motif, in the working directory and in data/ (src/common.go:641), fonts also in font/ and videos in video/. The motif names its music under sound/, which release packages ship empty.
Characters and stages are found under chars/ and stages/ (src/system.go:5364, src/system.go:5590).
40 files | 29 required, 11 optional | 40 in repo, 0 missing Categories: 40 game data
script/ required in repo game_data bundled directory
Lua scripts: main.lua and the modules it requires
- Path:
ikemen/external/script/ - Source:
src/resources/defaultConfig.ini:143,src/main.go:213-232 - main.go opens Config.System and panics when it is missing. main.lua requires debug, start, options and menu from the same directory.
IkemenCylia_256.png required in repo game_data bundled
Window icon, 256 px
- Path:
ikemen/external/icons/IkemenCylia_256.png - Source:
src/resources/defaultConfig.ini:141,src/system.go:527-538
IkemenCylia_96.png required in repo game_data bundled
Window icon, 96 px
- Path:
ikemen/external/icons/IkemenCylia_96.png - Source:
src/resources/defaultConfig.ini:141,src/system.go:527-538
IkemenCylia_48.png required in repo game_data bundled
Window icon, 48 px
- Path:
ikemen/external/icons/IkemenCylia_48.png - Source:
src/resources/defaultConfig.ini:141,src/system.go:527-538
shaders/ optional in repo game_data bundled directory
Post-processing shaders offered in the options menu
- Path:
ikemen/external/shaders/ - Source:
external/script/options.lua:1646,src/system.go:457-470
common.air required in repo game_data bundled
Common animations merged into every character
- Path:
ikemen/data/common.air - Source:
src/resources/defaultConfig.ini:12,src/char.go:4676-4689
common.cmd required in repo game_data bundled
Common commands appended to every character's command file
- Path:
ikemen/data/common.cmd - Source:
src/resources/defaultConfig.ini:14,src/compiler.go:8367-8380
common.const required in repo game_data bundled
Common constants
- Path:
ikemen/data/common.const - Source:
src/resources/defaultConfig.ini:16,src/char.go:4338-4355
functions.zss required in repo game_data bundled
Common states: shared ZSS functions
- Path:
ikemen/data/functions.zss - Source:
src/resources/defaultConfig.ini:18,src/compiler.go:8545-8552
action.zss required in repo game_data bundled
Common states: actions
- Path:
ikemen/data/action.zss - Source:
src/resources/defaultConfig.ini:18,src/compiler.go:8545-8552
demo.zss required in repo game_data bundled
Common states: demo mode
- Path:
ikemen/data/demo.zss - Source:
src/resources/defaultConfig.ini:18,src/compiler.go:8545-8552
dizzy.zss required in repo game_data bundled
Common states: dizzy
- Path:
ikemen/data/dizzy.zss - Source:
src/resources/defaultConfig.ini:18,src/compiler.go:8545-8552
guardbreak.zss required in repo game_data bundled
Common states: guard break
- Path:
ikemen/data/guardbreak.zss - Source:
src/resources/defaultConfig.ini:18,src/compiler.go:8545-8552
score.zss required in repo game_data bundled
Common states: score
- Path:
ikemen/data/score.zss - Source:
src/resources/defaultConfig.ini:18,src/compiler.go:8545-8552
system.zss required in repo game_data bundled
Common states: system
- Path:
ikemen/data/system.zss - Source:
src/resources/defaultConfig.ini:18,src/compiler.go:8545-8552
tag.zss required in repo game_data bundled
Common states: tag team
- Path:
ikemen/data/tag.zss - Source:
src/resources/defaultConfig.ini:18,src/compiler.go:8545-8552
training.zss required in repo game_data bundled
Common states: training mode
- Path:
ikemen/data/training.zss - Source:
src/resources/defaultConfig.ini:18,src/compiler.go:8545-8552
common1.cns.zss required in repo game_data bundled
ZSS replacement for the common1.cns state file
- Path:
ikemen/data/common1.cns.zss - Source:
src/compiler.go:6929-6943,src/compiler.go:8538-8543 - A character names its common state file in stcommon. When that file is not found, stateCompile retries with the .zss suffix, so a character asking for common1.cns gets data/common1.cns.zss.
debug.def required in repo game_data bundled
Debug overlay font definition
- Path:
ikemen/font/debug.def - Source:
src/resources/defaultConfig.ini:174,external/script/main.lua:648,src/script.go:4108-4111 - loadDebugFont raises a Lua error when the font cannot be loaded.
OpenSans-Bold.ttf required in repo game_data bundled
TrueType face named by debug.def
- Path:
ikemen/font/Open_Sans/OpenSans-Bold.ttf - Source:
font/debug.def:19,src/util_desktop.go:29-40 - When the file is not found, the same name is searched in the system font directories; the engine panics when that fails too.
default-3x5.def optional in repo game_data bundled
Default motif font (font1)
- Path:
ikemen/font/default-3x5.def - Source:
src/resources/defaultMotif.ini:75,src/motif.go:2593-2609 - A motif font that fails to load is logged and replaced by an empty font.
default-3x5.sff optional in repo game_data bundled
Glyph sprites named by default-3x5.def
- Path:
ikemen/font/default-3x5.sff - Source:
font/default-3x5.def:21,src/font.go:412-418 - LoadFntSff panics when default-3x5.def is loaded and this file is missing.
system.def required in repo game_data bundled
Default motif definition
- Path:
ikemen/data/ikemen1/system.def - Source:
src/resources/defaultConfig.ini:96,src/motif.go:2627-2659,src/script.go:4249-4252 - Held by the Ikemen-GO-Screenpack repository and copied into release packages. main.lua calls loadMotif at startup, which raises a Lua error when the definition cannot be read. -r selects another motif.
gofx.def required in repo game_data bundled
Common effects pack
- Path:
ikemen/data/gofx/gofx.def - Source:
src/resources/defaultConfig.ini:21,src/fightscreen.go:85-102,src/system.go:6551-6555 - Held by the Ikemen-GO-Screenpack repository and copied into release packages. A load failure puts the match loader in its error state.
gofx/ required in repo game_data bundled directory
Sprites, animations and sounds named by gofx.def
- Path:
ikemen/data/gofx/ - Source:
src/fightscreen.go:162-193 - loadFightFx returns an error when the sff, air or snd file it names fails to load.
ikemen1/ optional in repo game_data bundled directory
Default motif: sprites, logo and credits storyboards, fonts
- Path:
ikemen/data/ikemen1/ - Source:
src/motif.go:72-85,src/motif.go:2475-2487,src/motif.go:2594-2621,src/storyboard.go:561-620 - Files named by system.def and searched beside it first. A sprite file or font that fails to load is logged and replaced by an empty one.
select.def required in repo game_data bundled
Character and stage selection list
- Path:
ikemen/data/select.def - Source:
src/motif.go:81,external/script/main.lua:1522,external/script/main.lua:43-50 - main.lua reads the file at startup and raises an error when it cannot be opened.
fight.def required in repo game_data bundled
Fight screen definition
- Path:
ikemen/data/fight.def - Source:
src/motif.go:82,src/fightscreen.go:6005-6027,src/fightscreen.go:4792-4800,src/script.go:4233-4236,external/script/main.lua:1188 - main.lua calls loadFightScreen at startup, which raises a Lua error on a load failure.
fight.sff required in repo game_data bundled
Fight screen sprites
- Path:
ikemen/data/fight.sff - Source:
src/fightscreen.go:4916-4926 - Named by the sff key of fight.def; a load failure fails loadFightScreen.
fight.snd required in repo game_data bundled
Fight screen sounds
- Path:
ikemen/data/fight.snd - Source:
src/fightscreen.go:4927-4937 - Named by the snd key of fight.def; a load failure fails loadFightScreen.
fightfx.sff required in repo game_data bundled
Common effect sprites
- Path:
ikemen/data/fightfx.sff - Source:
src/fightscreen.go:4938-4948 - Named by the fightfx.sff key of fight.def; a load failure fails loadFightScreen.
fightfx.air required in repo game_data bundled
Common effect animations
- Path:
ikemen/data/fightfx.air - Source:
src/fightscreen.go:4949-4959 - Named by the fightfx.air key of fight.def; a load failure fails loadFightScreen.
common.snd required in repo game_data bundled
Common effect sounds
- Path:
ikemen/data/common.snd - Source:
src/fightscreen.go:4960-4966 - Named by the common.snd key of fight.def; a load failure fails loadFightScreen.
system.snd optional in repo game_data bundled
Motif sounds
- Path:
ikemen/data/system.snd - Source:
src/resources/defaultMotif.ini:69,src/motif.go:73,src/motif.go:2578-2590 - Named by the snd key of the motif. A load failure is logged and an empty sound set is used.
glyphs.sff optional in repo game_data bundled
Button glyph sprites for the movelist
- Path:
ikemen/data/glyphs.sff - Source:
src/resources/defaultMotif.ini:97,src/motif.go:84,src/motif.go:2490-2503 - A load failure is logged and an empty sprite set is used.
font/ optional in repo game_data bundled directory
Fonts named by the motif, the fight screen and storyboards
- Path:
ikemen/font/ - Source:
src/motif.go:64,src/motif.go:2594-2621,src/fightscreen.go:5017,src/storyboard.go:620,src/font.go:413 - font/ is the default directory of every font lookup.
video/ optional in repo game_data bundled directory
Videos played by the logo and credits storyboards
- Path:
ikemen/video/ - Source:
src/stage.go:204-212 - A background element of type video names its file in path; video/ is the default directory of the lookup.
gamecontrollerdb.txt optional in repo game_data bundled
SDL game controller mapping database
- Path:
ikemen/external/gamecontrollerdb.txt - Source:
src/resources/defaultConfig.ini:153,src/system.go:444-445,src/input_sdl.go:261-271 - A read failure is logged.
chars/ optional in repo game_data directory
Character directory
- Path:
ikemen/chars/ - Source:
src/system.go:5364,src/script.go:3190-3191 - A character path that does not resolve as given is searched under chars/. Release packages ship the Kung Fu Man characters.
stages/ optional in repo game_data directory
Stage directory
- Path:
ikemen/stages/ - Source:
src/system.go:5590,src/resources/defaultConfig.ini:178,external/script/main.lua:1770-1774 - Debug.StartStage defaults to stages/stage0-720.def, the stage added when select.def lists none.
Generated on 2026-10-10T11:26:01Z