RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login

    I.K.E.M.E.N GO on Raspberry Pi 4 [Now with an Install Guide!]

    Scheduled Pinned Locked Moved Ideas and Development
    golangikemenikemen gomugentutorial
    153 Posts 20 Posters 53.8k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • SuperFromNDS
      SuperFromND @Troopaking
      last edited by SuperFromND

      @troopaking The scripts alone should work just fine (at least the one over on the PR I've submitted).

      ▲▼▲▼▲▼▲▼▲▼
      IKEMEN Go
      SRB2Kart
      ▼▲▼▲▼▲▼▲▼▲

      1 Reply Last reply Reply Quote 0
      • SuperFromNDS
        SuperFromND
        last edited by

        So while I've been waiting to hear back on the PR, I figured I might as well get a head start on writing documentation for the RetroPie Docs. Obviously my documentation won't (and can't) cover every single thing IKEMEN GO can do (that's probably best left to IKEMEN/MUGEN's devs and community at large), but nonetheless I think it should be at least useful for getting stuff up and running for testers who aren't familiar with IKEMEN / MUGEN, or who just need a refresher on how it all works.

        Here's what I've written so far:


        ikemen-logo


        I.K.E.M.E.N GO is an open-source implementation of the M.U.G.E.N fighting game engine, originally developed by Elecbyte in 1999, written using the Go programming language. I.K.E.M.E.N GO adds many additional features and bug fixes, in addition to being backwards compatiable with content created for M.U.G.E.N.


        Ports: I.K.E.M.E.N GO

        ROMs

        Place your M.U.G.E.N / I.K.E.M.E.N content in:

        /home/pi/RetroPie/roms/ports/ikemen-go/
        

        A typical file structure should look like this:

        ikemen-go
        |-- chars
        |    |    (character folders should be placed here,
        |    |    preferrably containing a .def file with the
        |    |    same name as the folder that contains it)
        |    |
        |    + -- kfm
        |         | -- kfm.def
        |         | -- kfm.sff
        |         | -- kfm.snd
        |         | -- kfm.cns
        |         | -- kfm.cmd
        |         + -- (etc.)
        |
        |-- stages
        |    |    (stage files should be placed here, typically
        |    |    they come with a .def, a .sff, and an audio file
        |    |    that must be placed in the sound folder)
        |    |
        |    | -- stage0.def
        |    + -- stage0.sff
        |
        |-- data
        |    |    (screenpack / motif folders should be placed here)
        |    |
        |    | -- system.def
        |    | -- select.def (edit this to add characters/stages)
        |    | -- fight.def
        |    + -- (etc.)
        |
        |-- external
        |    | -- icons
        |    | -- mods (place additional LUA scripts here)
        |    | -- script
        |    + -- shaders (place GLSL shaders here)
        |
        |-- font
        |    |    (additional fonts should be placed here, some motifs
        |    |    might keep their fonts in their own folders however)
        |    |
        |    | -- default-3.5x.def
        |    | -- default-3.5x.sff
        |    | -- f-4x6.fnt
        |    + -- (etc.)
        |
        +-- sound
             | -- (optional stage audio files go here,
             + -- currently MP3 and OGG are accepted)
        

        Adding Characters / Stages

        Once the character folders and/or stage files are extracted, the following file must be edited in order for them to show up on the select screen:

        /home/pi/RetroPie/roms/ports/ikemen-go/data/select.def
        

        The file contains a list of all the characters and stages, listed with either a folder or file name, along with optional extensions, extra file pathing, and other options if needed:

        [Characters]
        kfm
        kfm720/kfm720.def, stages/stage0-720.def
        randomselect
        
        [ExtraStages]
        stages/stage0.def
        stages/kfm.def
        

        See the comments in select.def for more information.

        Controls

        Controls can be configured in-game by going to Options -> Input Settings -> Key Config / Joystick Config -> Config All, and are located in:

        /opt/retropie/configs/ports/ikemen-go/save/config.json
        

        Default controls

        Note that control schemes can vary wildly on a per-character basis.

        Key Action
        ESC Pause / Back
        Left/Right Arrow Move left/right
        Up Arrow Jump
        Down Arrow Crouch
        Left Arrow while opponent is attacking Block
        Left Arrow x2 Back Hop
        Right Arrow x2 Run
        Z Light Kick (A)
        X Medium Kick (B)
        C Strong Kick (C)
        A Light Punch (X)
        S Medium Punch (Y)
        D Strong Punch (Z)
        Enter/Return Taunt (Start)
        F12 Take Screenshot

        Configs

        Options can be configured in-game via the Options menu. A default configuration file is generated upon first run, located in:

        /opt/retropie/configs/ports/ikemen-go/save/config.json
        

        It is recommended to enable Fullscreen for the best experience.


        Am I missing anything important or obvious? Aside from possibly an Issues section, I think this covers most of the essential stuff.

        ▲▼▲▼▲▼▲▼▲▼
        IKEMEN Go
        SRB2Kart
        ▼▲▼▲▼▲▼▲▼▲

        DTEAMD T 2 Replies Last reply Reply Quote 1
        • DTEAMD
          DTEAM @SuperFromND
          last edited by DTEAM

          @superfromnd said in I.K.E.M.E.N GO on Raspberry Pi 4:

          Am I missing anything important or obvious? Aside from possibly an Issues section, I think this covers most of the essential stuff.

          Great work!! Maybe you should put that on the top of your first post like @Folly did here..

          The instruction will be easier to found for newbies or new users. Are you agree.

          1 Reply Last reply Reply Quote 0
          • T
            TheSnackist @SuperFromND
            last edited by

            @superfromnd I would probably be wary about making blanket generalizations about controls - while many characters (especially in the Capcom style) have 6 button gameplay and back arrow to block, it's not nearly as universal as this post would lead some to believe - it's hard because every character controls differently - maybe say to refer to indivual character readmes for details on controls?

            You could also recommend Googling 'such and such MUGEN' for additional help - I feel like anyone who starts to tinker is going to get the most out of Google and reading the documentation.

            Damn excited to give this a go... I think I have to update from an older Raspbian base first so wish me luck on thaaaaaat

            SuperFromNDS 1 Reply Last reply Reply Quote 1
            • SuperFromNDS
              SuperFromND @TheSnackist
              last edited by SuperFromND

              @thesnackist Good points! I still think I'll include the controls chart, but I'll just omit block, run, dash, and re-label ABCXYZ to their generic labels rather than specifically calling them Light Kick, Strong Punch, etc., since that's what Elecbyte's own documentation does.

              I also agree that it would be a good idea to include some mention of "for more information, see also: MUGEN's documentation on bla-bla-bla", maybe links to both Elecbyte's documentation and IKEMEN GO's documentation in specific as well.

              Oh, and good luck on the Raspbian update!

              ▲▼▲▼▲▼▲▼▲▼
              IKEMEN Go
              SRB2Kart
              ▼▲▼▲▼▲▼▲▼▲

              1 Reply Last reply Reply Quote 0
              • SuperFromNDS
                SuperFromND
                last edited by

                I submitted my documentation as a PR on Github; obviously not to be merged until IKEMEN GO itself is added over on the RetroPie-Setup repository. You can read the current draft here!

                ▲▼▲▼▲▼▲▼▲▼
                IKEMEN Go
                SRB2Kart
                ▼▲▼▲▼▲▼▲▼▲

                T 1 Reply Last reply Reply Quote 0
                • T
                  TheSnackist @SuperFromND
                  last edited by TheSnackist

                  @superfromnd Dope!! This is a solid enough introduction to cover the most common questions - how do I add characters I downloaded, how do I add stages, what do I need to edit, etc.. Really impressed!! You've boiled the complexities of this engine down to something simple and easy to understand.

                  EDIT: Until the RetroPie devs approve the pull/commit request, is there a way to use the git command to add the proposed script module to our own setups?

                  SuperFromNDS 1 Reply Last reply Reply Quote 0
                  • SuperFromNDS
                    SuperFromND @TheSnackist
                    last edited by

                    @thesnackist I don't think that Git has any command to pull a single file and place it in a specific directory, but since I'm using Github, it's pretty easy to just wget the scriptmodule file from my fork and download it to the appropriate place:

                    # Downloads the scriptmodule to the scriptmodules/ports folder
                    # You may need to change the directory if you're using 
                    # a different location for scriptmodules
                    
                    # Note that this will become obsolete if the PR is merged
                    
                    sudo wget https://raw.githubusercontent.com/SuperFromND/RetroPie-Setup/master/scriptmodules/ports/ikemen-go.sh -P /home/pi/RetroPie-Setup/scriptmodules/ports/
                    

                    ▲▼▲▼▲▼▲▼▲▼
                    IKEMEN Go
                    SRB2Kart
                    ▼▲▼▲▼▲▼▲▼▲

                    T 1 Reply Last reply Reply Quote 0
                    • T
                      TheSnackist @SuperFromND
                      last edited by

                      @superfromnd after some tinkering I got... somewhere :/

                      when I try to build ikemen-go it can't find a bunch of the packages

                      let me try to figure out how to export the log... my network doesn't like SSH so I can't just grab it easily

                      SuperFromNDS 1 Reply Last reply Reply Quote 0
                      • SuperFromNDS
                        SuperFromND @TheSnackist
                        last edited by

                        @thesnackist Quick question while you're trying to fetch that log, just a hunch: have you tried updating RetroPie-Setup before running the script?

                        RetroPie recently updated their scripts to use a new command for downloading source-archives which my script uses; this command isn't in the version of RetroPie-Setup that's included with new installs via the image on RetroPie's site yet (it will be whenever the next version of RetroPie releases, but for right now you'll need to update RetroPie-Setup first).

                        If that's not the problem and it's instead Golang that's having problems fetching packages... that's a bit more of a problem, but given you mentioned your network not liking SSH it's plausible it might also be having problems trying to fetch the Golang packages needed to compile IKEMEN GO.

                        ▲▼▲▼▲▼▲▼▲▼
                        IKEMEN Go
                        SRB2Kart
                        ▼▲▼▲▼▲▼▲▼▲

                        T 1 Reply Last reply Reply Quote 0
                        • T
                          TheSnackist @SuperFromND
                          last edited by

                          @superfromnd I will give it a try, but I am also running a no longer supported Stretch-based image so... not sure Setup is updating anymore

                          SuperFromNDS 1 Reply Last reply Reply Quote 0
                          • SuperFromNDS
                            SuperFromND @TheSnackist
                            last edited by

                            @thesnackist That's probably the cause then; I admittedly have only tested this on Buster-based images, so it's possible that some of the packages required don't exist on Stretch's package pool.

                            After digging through the 50MB behemoth that is Raspbian Stretch's package list in text format, it seems like all the packages themselves are present... but the version of Golang itself is only version 1.7, which is pretty darn old. I have no idea what the oldest version of Golang that can still compile IKEMEN GO is, but if Gacel's advice from a few dozen posts ago was any indication, having a version this old might be a problem. (For the record, Buster uses Golang 1.11; still pretty old, but it's known to at least be "good enough" for compiling IKEMEN GO.)

                            ▲▼▲▼▲▼▲▼▲▼
                            IKEMEN Go
                            SRB2Kart
                            ▼▲▼▲▼▲▼▲▼▲

                            T T 3 Replies Last reply Reply Quote 0
                            • T
                              TheSnackist @SuperFromND
                              last edited by

                              @superfromnd was hoping to avoid having to make a fresh distro (sigh) but it maybe be unavoidable at this point

                              I just hate having to reset up my reset/shutdown button script and whatever the hell I had to do to get pico-8 running

                              1 Reply Last reply Reply Quote 0
                              • T
                                Troopaking @SuperFromND
                                last edited by Troopaking

                                @superfromnd hello again so I just tested your newest script on pi 4 fresh retropie os. Worked good.
                                Gonna experiment in converting a mugen over.
                                How would you add a anither ikemen for example ikemen go then mk vs capcom .
                                Also why use ports instead of a custom "system"? Just wondering .

                                SuperFromNDS 1 Reply Last reply Reply Quote 0
                                • T
                                  Troopaking @SuperFromND
                                  last edited by

                                  @superfromnd after letting ikemen run and walk away came back to errors cant exit . Had to reboot.
                                  Error traceback
                                  A few times mainly
                                  External/script/mainlua/

                                  1 Reply Last reply Reply Quote 0
                                  • SuperFromNDS
                                    SuperFromND @Troopaking
                                    last edited by SuperFromND

                                    @troopaking I mainly set it as a port for the sake of simplicity when installing stuff. It should be entirely possible to set it up in a way to allow for multiple fullgames to be installed (IKEMEN lets you pass a motif, which can contain a character and stage list among other things, using this command:)

                                    ./Ikemen_GO -r path/to/motif/system.def
                                    

                                    @thesnackist said in I.K.E.M.E.N GO on Raspberry Pi 4:

                                    I just hate having to reset up my reset/shutdown button script and whatever the hell I had to do to get pico-8 running

                                    Aye, indeed it's a bit of a pain to upgrade if you've got a fairly-customized setup. I've had to re-install my custom scriptmodules and ports multiple times, so I understand the pain.

                                    @troopaking said in I.K.E.M.E.N GO on Raspberry Pi 4:

                                    Error traceback
                                    A few times mainly
                                    External/script/mainlua/

                                    I'm gonna need a bit more info than that (external/script/main.lua is just the main logic for the engine, and doesn't really tell anything about what exactly went wrong. I was getting crashes briefly during the demo if an opponent managed to K.O. someone, but apparently that's a known bug and is planned to be fixed soon.)

                                    ▲▼▲▼▲▼▲▼▲▼
                                    IKEMEN Go
                                    SRB2Kart
                                    ▼▲▼▲▼▲▼▲▼▲

                                    T 1 Reply Last reply Reply Quote 0
                                    • T
                                      Troopaking @SuperFromND
                                      last edited by

                                      @superfromnd oh the demo error is probably what happened .
                                      It was running demo .

                                      1 Reply Last reply Reply Quote 1
                                      • SuperFromNDS
                                        SuperFromND
                                        last edited by

                                        So I didn't really bring it up before, but I was having some odd issues with inputs, but only with my specific controller (a Rock Candy Xbox 360 pad). Turns out that wasn't an IKEMEN bug at all, but rather a driver issue. Simply updating xpad (the default driver in RetroPie for controllers) allows you to fully use and remap the controller correctly!

                                        (Oh, quick side note; don't try to compile IKEMEN GO right this moment at the time of this post; some commits that shouldn't have been pushed yet were pushed, and as a result the game crashes on startup due to the game trying to read a nonexistent parameter in save/config.json; this should be fixed shortly after this post's publication!)

                                        ▲▼▲▼▲▼▲▼▲▼
                                        IKEMEN Go
                                        SRB2Kart
                                        ▼▲▼▲▼▲▼▲▼▲

                                        SuperFromNDS 2 Replies Last reply Reply Quote 0
                                        • SuperFromNDS
                                          SuperFromND @SuperFromND
                                          last edited by

                                          @superfromnd said in I.K.E.M.E.N GO on Raspberry Pi 4:

                                          this should be fixed shortly after this post's publication!

                                          Okay so uh, clearly it hasn't haha. At the very least, I figured out the cause and a temporary, if extremely clunky, workaround: pop open the file /home/pi/RetroPie/ports/ikemen-go/external/script/options.lua and find this line:

                                          if itemname == 'gamespeed' then return config.GameSpeed .. '%' end
                                          

                                          and change it to this:

                                          if itemname == 'gamespeed' then return '100%' end
                                          

                                          Note that, as you can probably see, doing this will break the "Game Speed" option in the options menu.

                                          ▲▼▲▼▲▼▲▼▲▼
                                          IKEMEN Go
                                          SRB2Kart
                                          ▼▲▼▲▼▲▼▲▼▲

                                          1 Reply Last reply Reply Quote 0
                                          • SuperFromNDS
                                            SuperFromND @SuperFromND
                                            last edited by

                                            UPDATE: Glad to report this is no longer the case! The game now works when compiling from source once again. :)

                                            @superfromnd said in [I.K.E.M.E.N GO on Raspberry Pi 4]

                                            (Oh, quick side note; don't try to compile IKEMEN GO right this moment at the time of this post; some commits that shouldn't have been pushed yet were pushed, and as a result the game crashes on startup due to the game trying to read a nonexistent parameter in save/config.json; this should be fixed shortly after this post's publication!)

                                            ▲▼▲▼▲▼▲▼▲▼
                                            IKEMEN Go
                                            SRB2Kart
                                            ▼▲▼▲▼▲▼▲▼▲

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.

                                            Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.