Skip to main content

MIA - OS Mode, Building and Pushing Games


Assuming that you've flashed your board successfully and you still have the USB-C cable connected, you can now re-assemble your control deck and you will no longer need to press the "Go for broke" or "Mystery button" unless you need to recover/restore your back-up in the future.

This guide will cover building games for the cabinet as well as how you get them installed while using the MIA software, all of this is subject to change and there will be additional steps in the future in order to get specific things working such as leaderboards, online play, or unique controls for specific games and or roms such as lightgun games.

On the discord, we've pre-emptively started a "file-share" channel with the intention of allowing users to share some of the control configurations that will be required so that not everyone has to build them, the MIA application will try to make this process as easy and painless as possible while using user-contributed configurations.

NOTE: There are a few different types of games that you may be loading if you obtained your game from itch.io or a developer directly; it does not need to be 'built' and you can skip this section and go to the section of this guide explaining how to Push games and ignore the rest of this.

 

Building games is when you have an existing APK, or ROM which you would like to build an iiRcade package to push to your board which will be covered in this next section.

 

PCB In OS mode

 


Building iiGames Packages

 

Step 1: In the first step of this guide we're going to click the APK/ROM Configurator (As noted previously, this is if you don't have a package that is already built for the iiRcade cabinet(such as an APK or a ROM).

APK Rom Configurator button being clicked


Step 1.1: Now we'll break down each of the options in an image for the ROM Configurator and explain what each is responsible for

Explanation/breakdown of ROM configurator

Now that we've given the basic rundown of the application we'll get into adding a ROM for demonstration purposes we'll grab a free and legal ROM from the MAME website located here:
https://www.mamedev.org/roms/

The steps for the APK are going to be relatively the same as what's described here for a ROM with the exception of the game type needing to be set to "APK" instead of "ROM".

The rom we'll attempt to load is "Car Polo" so head on over to:
https://www.mamedev.org/roms/carpolo/

And download the rom by clicking the "Download the Car Polo ROM Images", once completed we'll continue to Step 1.2.

Car Polo Download Demonstration

Step 1.2: Naming our package, and selecting a rom...

First we'll want to click "Create new iiGames File" and name the file that we want to be created, we'll leave this at the default location which is 'iiGames' folder the application resides in and we'll go ahead and name this carpolo.zip - It is recommended to keep naming similar to that of the rom file itself.

Create new iigames UI

 

save dialogtext populated for iigames

 

Step 1.3: Now we're going to use the "Set ROM/APK" option and select the carpolo.zip rom we've just downloaded from the MAME website.

select rom apk interfaceSelect car polo zip


 

car polo selected

 

Step 1.4:  For this example, we're going to skip over the setting of the Instruction image and Background image as those are self-explanatory, the same goes for Category, Name, Game Type, Rating, Joystick Type, Display and HDMI Allowed they were explained in the beginning of this portion of the guide, which leaves us with "Configure Inputs".

So when clicking the Configure Inputs option we'll be presented with a new window as seen below:
 

Configure Inputs clickInputs Configurator

 

When first seeing this window we understand that it could be potentially overwhelming, the good news is the configuration there is supplied for you and you can utilize this default configuration by just clicking the "Save Input Config" at the bottom of the window. However, we would still like to provide a partial breakdown of this window in text.

Under Input you have the button or input associated to the control deck itself, under "mode" you have the various modes that input may operate in such as TOUCH, SWIPE, etc. The stickID is whether or not this input should be associated to the first or second player.

At the moment the count is unknown but it appears to be related to debouncing, same thing for Gap these might require some experimentation on the part of the user.

The KeyCode entries are Android keycodes and pressing a button will trigger that keycode to be signaled within the application being configured, if you don't like the inputs for a ROM you can always come back to this and change these to re-associate buttons to other controls.

Last you have Aixs and Axis Value, normally the way the joysticks operate are on/off 0/1 but there are specific cases or instances where they would have more range or sensitivity, by adjusting these values you can swap which axis is controlled as well as the 'play' of how far a joystick is able to move while giving it an analog signal vs digital input.

Now to proceed we're simply going to hit "Save Input Config" and that will bring us back to our main window and use the default configurations as we saw them.

The last step now that we're back at the main UI will be to simply click Build iiGames Zip:

build iiGames zip

If all went well we should be presented with the following pop-up, which we can close as well as close the ROM Configurator and continue on to pushing games onto our cabinet.

Build IiGames Zip

Pushing Games to The Cabinet

 

!WARNING!: Please exercise caution with what you install to your cabinet, do not install things from unknown sources. Do not attempt to install alternative launchers (Nova Launcher, Dig, Launchbox, RetroX, etc.) these will not work properly on this system the OS heavily relies on controls being dynamically configured by the launcher. It's not advised to attempt to 'sideload' things utilizing non-official methods tied to the cabinet because you will also break the stock OS. Additionally, it's advised to watch what you load if you attempt to use intensive android games not intended for a platform like this you're likely to encounter issues, it is also recommended NOT to follow anyone who attempts to load things such as Google Play services on the board as this is bloat and will ultimately slow your arcade cabinet/board down. If you're not sure what is safe or not feel free to check out the discord and we'll be sure to have a recommendations channel and attempt to moderate some of the activity there to keep things as safe as possible for the average user.

It's important not to follow random guides/youtube tutorials or other activity/media just because what someone else is doing looks cool or looks like something you might want to try, from this point you proceed at your own risk and we do not recommend going outside of the 'norm' or the 'trusted' community's recommendations.

 

If we've reached this section of the guide we've either built a iiGames zip file/package utilizing the ROM configurator, or we've downloaded one legally from a developer on itch.io or elsewhere and need to place it in the "iiGames" folder next to the MIA application.

Once we've ensured that our zip file is located in the iiGames folder next to the MIA application ( If we used ROM Configurator, that's where we would've saved it by default ) we'll go ahead and click the "4. Push iiRcade Games"  button on the MIA Application as seen below.

push games button

Once we've clicked the button we'll see the application state that it's "Fixing Android Permissions..." and proceed to give us progress on the game(s) being pushed, if there are multiple games in the iiGames folder they will all be pushed to the cabinet at once.

games pushed success

 

Step 2: Now looking at the cabinet we'll see that a "Game Add Install (NEW)" window has appeared, while in this window we'll notice a few options "A - Add, B - Exit, C - Delete All", we will proceed by Pressing A and be presented with a message in the middle telling us that our game was installed successfully.

WARNING: Absolutely DO NOT press the "C" Button for Delete all this will delete ALL games on the cabinet not just the ones displayed within this installer.

Showing UI on Cabinet


 

Showing Install on Cabinet

Step 2.1 All that is left now is for us to reboot our cabinet and find our newly installed game:
 

Carpolo installed

When launching it we'll see the default instruction image utilized by the application as well as the background while it's highlighted:
 

Instruction Image


And at this point, we'll be able to play our great game we just installed and legally obtained from the MAME website Car Polo!
 

Car Polo Running on the cabinet


That's the end of this part of our guides until more features are added to our software, if you need any help at all please navigate back to the main MIA page at https://www.team-encoder.com/MIA and scroll down for information and links on joining the discord where our team and the community can help answer any questions you have or help troubleshoot any issues you might have.