Kodi Community Forum

Full Version: Installing Leia from the nightly PPA (Beta1) - missing all Cores/emulators
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
After some time catching up with the status of Game emulation in Kodi, I couldn't succeed in getting any game to run Smile

Here's what I have. Test machine running Ubuntu 18.04.1

- Libretro installed from their official 'testing' PPA, including all the cores
   apt install libretro-*
- Kodi Leia nightly (beta1+) from the official unstable PPA
- Enabled the Game section in advancedsettings
Quote:<gamesgeneral>
   <enable>true</enable>
</gamesgeneral>

- Installed the nice IAGL addon
- Out of the box: Kodi runs just fine; I can see the Games section in the configuration
   - also copied a couple classic MAME ROM files to a folder (.7z files), then added this folder to the Game section
   - when entering the folder in Kodi > Games it appears as empty
   - tried the same with a couple of n64 games. Nothing is listed

- Then with the IAGL addon, I select browse to an Arcade game, say "Ms. Pac-Man" and select it; the game is downloaded, but then I get a message "This game isn't compatible with any available emulators"

I realize that I am missing some hook between Kodi and the installed libretro cores in my test system.

I need some guidance on where to get the missing bits from, or guidance on how to compile just those missing bits (if possible) myself, to be added on top of the official Kodi provided by the PPAs. But I am trying to avoid having to build the entire Kodi myself.

Is there a guide on how to build to game (binary addons?) parts that for some reason are missing in the official nightlies? if no guide - any pointer on what github repo to use and pointers on how to build/install would be welcome.
You don't need libretro installed if you are wanting to test Retroplayer (emulation within Kodi). I'm not sure on the status of zip files with Retroplayer, so that may be why the MAME rom doesn't work OOTB. Also, N64 does not work yet with Retroplayer.

You can, however, use standard libretro with IAGL, but of course it will launch libretro externally. You will need to run the setup wizard. Instructions here.
Thanks.
After some tinkering I figured out how to build the binary addons and get at least the MAME core to work (others, like muppen, crash as soon as I try to launch a game) After more tinkering I got a bluetooth xbox s controller working. Really nice. At this point I am trying to figure out how to "insert coins" Smile with the controller.

This is on ubuntu 18.04 and inside a kvm virtual machine to avoid breaking my desktop.
Once I get the basics hashed out some more and hopefully the muppen core to work I will post some guidelines collected throughout the process for newbies like myself. Hats off to garbear, and whoever created/maintains libretro and the emulator cores. Impressive work.
(2018-08-28, 08:49)htpcero Wrote: [ -> ] At this point I am trying to figure out how to "insert coins" Smile with the controller.
 
On the standard controller, "Insert coin" is the Select key and "Player One Start" is the Start key.
(2018-08-28, 11:53)ghizzu Wrote: [ -> ]
(2018-08-28, 08:49)htpcero Wrote: [ -> ] At this point I am trying to figure out how to "insert coins" Smile with the controller.
 
On the standard controller, "Insert coin" is the Select key and "Player One Start" is the Start key.

Thanks! It seems I have a mapping issue, will try remapping today. This might be related to the wireless BT xbox controller in linux not being able to map one or two if the buttons, I think I have read that somewhere.

Question - other than MAME that works great, and given that n64 is not yet working (which I found the hard way), what cores do people recommend building / which are most popular with retroplayer? Basically I am new to emulation and it seems I choose the wrong starting point so looking for guidance on what to try next
Yes i confirm that with IAGL it is not possible to play any MAME roms since we getr the error "missing all Cores/emulators"

do I have to insert a bug in some tracking system for that? I will be glade to help the development in some way!
P.s: even in Android
(2018-08-28, 14:51)htpcero Wrote: [ -> ]Question - other than MAME that works great, and given that n64 is not yet working (which I found the hard way), what cores do people recommend building / which are most popular with retroplayer? Basically I am new to emulation and it seems I choose the wrong starting point so looking for guidance on what to try next 
Basically, all cores that don't require OpenGL should work well. I use (on Win10) [Edited for banned material PatK] all without major problems.
(2018-08-28, 18:49)ghizzu Wrote: [ -> ]
(2018-08-28, 14:51)htpcero Wrote: [ -> ]Question - other than MAME that works great, and given that n64 is not yet working (which I found the hard way), what cores do people recommend building / which are most popular with retroplayer? Basically I am new to emulation and it seems I choose the wrong starting point so looking for guidance on what to try next 
Basically, all cores that don't require OpenGL should work well. I use (on Win10) [Edited for banned material PatK] all without major problems. 
Uh? What banned material? I simply listed some of the emulator addons builted in Retroplayer
(2018-08-28, 11:53)ghizzu Wrote: [ -> ]
(2018-08-28, 08:49)htpcero Wrote: [ -> ] At this point I am trying to figure out how to "insert coins" Smile with the controller.
On the standard controller, "Insert coin" is the Select key and "Player One Start" is the Start key.     

I have an xbox one s controller, the one that matches kodi's default controller image; it has a Start key, a Back key, and a "Guide key". There is no Select key in it. I am probably missing something basic here Smile - did you have to add some ad-hoc mapping / configuration file somewhere?

Looking further into this, I notice that kodi applies a 'default' mapping to the xbox joypad,

Code:
<keymap>
  <global>
    <joystick>
      <a>Select</a>
....

so the button 'a' is Select. However this only applies while not in full-screen gaming. While gaming, I think the joypad button 'a' is passed to the emulator as something like this:

Code:
<button id="1">JoypadA</button>
etc. for all other joypad buttons

So it seems in my system (default garbear's kodi-game kodi+emulator addons) the game.libretro.mame emulator is missing the mapping of one of the joypad buttons (say "A" or any other) to the keypress '5' which is the one that mame expects as 'insert coin'. Trying to figure out how to do this.

p.s. so finally figured out a solution:
Arcade/Mame Customization
  • Insert Coin:
    • (mapped by default to "Joypad Select" but the xbox s one joypad has no "Select"; button A is used as Select but only while not in-game)
    • open any mame game
      • hit <Tab> > Input (general) > Other Controls > Coin 1
      • hit <Enter>, then press keyboard key '5', hit <Enter> again, then press the Right Stick; Coin 1 gets thus mapped to: 5 or Joy_1_R3
    • game.libretro.mame custom config gets written here:
      • .kodi/userdata/addon_data/game.libretro.mame/save/mame/cfg
(2018-08-29, 05:40)htpcero Wrote: [ -> ]I have an xbox one s controller, the one that matches kodi's default controller image; it has a Start key, a Back key, and a "Guide key". There is no Select key in it. I am probably missing something basic here Smile

You're only missing about 35 years of gaming history Wink Video games saw a great resurgence in the mid-1980's due to the success of the NES, which had a select button where "View" on the Xbox One controller ("Back" on the 360) is.

"Select" is just a placeholder label for now. I created a system that's able to show button names based on the controller you're holding. This will possibly be a feature in v19.

For now though, I need a cheap and easy way to refer to "that button opposite of Start that does many random things on many different consoles", and "Select" is concise and communicates the exact button if you know the history. Can you think of a better label for this button in the meantime?
(2018-08-29, 05:40)htpcero Wrote: [ -> ]While gaming, I think the joypad button 'a' is passed to the emulator as something like this:

Code:
<button id="1">JoypadA</button>

In v17, the format for remapping controllers in Kodi changed. That syntax is from the old format and will be ignored by Kodi. Use the new format. See https://github.com/xbmc/xbmc/blob/master...ystick.xml

Note that joystick.xml only changes Kodi actions. It does not affect games. Game mappings can be changed using the controller dialog added in v17: HOW-TO:Configure_controllers (wiki)
(2018-08-29, 17:35)garbear Wrote: [ -> ]Note that joystick.xml only changes Kodi actions. It does not affect games. Game mappings can be changed using the controller dialog added in v17: HOW-TO:Configure_controllers (wiki)


I get it now, thanks! I did use the controller configuration tool, I selected the Kodi default one (matching image) and configured all buttons.
After I did that, immediately I could start using then controller to navigate the Kodi interface and in games (prior to running the configuration tool, the controller was not functional in kodi and in games).
I also noticed that the 'A' button was acting as select in Kodi's GUI. However, with retroplayer's mame emulator, the A was not performing 'Insert Coin'. This was in a fresh kodi install. So perhaps the issue is in the default game.libretro.mame default configuration, some issue with the default mapping.

The workaround I found was to invoke the mame UI while the emulator was running as described above.

It would be nice to have 'A' be the Coin1 button out-of the-box in libretro with xbox controllers if that is possible