MSX on Raspberry Pi - Map Controller to simulate keyboard buttons?

Page 1/2
| 2

By RK

Supporter (6)

RK's picture

30-07-2016, 14:49

Hi All

Been playing around with MSX on the Pi for a while and really want to set up the control pad so that it can function in the same way the keyboard does. E.G - When you press Select on the controller it acts as if you're pressing F4 on a keyboard, etc
Many games seem to only be able to be played with a keyboard and I have tried using the Bind options inside Retroarch to change what they do, however it hasn't worked and keeps reverting to the old configuration every time it restarts.

The annoying thing is that, when starting a game, SOME of the controller buttons work - dpad movements and the B button - so it looks like the controller can simulate certain keyboard presses, but there seems to be no way to change them.

If anyone can suggest a solution or point me in the right direction I'd be very grateful Smile

Thanks

Login or register to post comments

By Manuel

Ascended (12816)

Manuel's picture

30-07-2016, 15:35

Apparently save_settings_on_exit isn't enabled. When you do bind commands, you can do the save_settings command to make it persistent.

See: http://openmsx.org/manual/commands.html#save_settings

Anyway, the bind command is what you need indeed. See http://openmsx.org/manual/commands.html#bind
I think this example is most suitable:
Map button 8 of joystick 1 to F2-key:

bind "joy1 button8 down" "keymatrixdown 6 0x40"
bind "joy1 button8 up" "keymatrixup 6 0x40"

By RK

Supporter (6)

RK's picture

30-07-2016, 17:02

Hi Manuel

Thanks very much for the info! I'm a complete noob to all this, so when I write those bind scripts, where do I put them? In the retroarch.cfg file? Or somewhere else?

Also, I have installed openmsx on the Pi, but when I start a game it just goes black and returns to the game select screen. Can these commands be used with bluemsx or one of the other programs?

Thanks

By rderooy

Expert (94)

rderooy's picture

30-07-2016, 17:40

Actually retroarch does not use OpenMSX by default, but special libretro enabled builds of either BlueMSX or fmsx. If you want to use OpenMSX you need to add it manually.

Having said that, if your using RetroPie you will find that changing settings in retroarch has no effect. Manuel was close to the answer, namely that retroarch has been configured not to save settings, so your settings are being discarded.

Personally, I changed my setup to use OpenMSX, but I keep a keyboard at hand to press keys when needed.

By RK

Supporter (6)

RK's picture

30-07-2016, 21:56

Yeah, I've installed OpenMsx using a few tutorials and it shows up on the list of programs. However, when I select it, the game won't start. It just flashes black and then goes back to the game select screen.

The system files are in the systemroms folder as the tutorial says, but OpenMsx never starts. The other msx programs bundled with the RetroPie always start.

Any ideas on what might be going on?

Thanks again.

By Manuel

Ascended (12816)

Manuel's picture

31-07-2016, 00:31

I don't know about all of that. rderooy: you say 'close to the answer', but which part was wrong then? Smile
RK: about the commands: you write them in the console and with save_settings you can save the binds. (It will end up in the openMSX settings.xml file.)

By rderooy

Expert (94)

rderooy's picture

31-07-2016, 22:49

I cannot check my Pi setup right now, I will try to check tomorrow for the details as I cannot remember. But possibly the MSX system roms are not in the right location. retropie normally expect you to install BIOS/System ROMs in /home/pi/RetroPie/BIOS, but that only applies to libretro enabled emulators. Emulators that are not libretro enabled, like OpenMSX will use their own location and settings. So you should copy the C-BIOS (or whatever MSX system ROMs you have) into a path where openmsx will find them.

So first locate where openmsx gets installed, I think it is under /opt
find / -name systemroms

Then copy the roms into that openmsx/systemroms directory. Next you may want to set a default machine type, by default OpenMSX will try to use the MSX2+ C-BIOS. I think retropie will automatically install the C-BIOS files into the right location, but it is worth checking. You can also try to start openmsx manually with the -machine flag to force a certain MSX type for which you installed the ROMs.

To understand some of the hierarchy of configuring retropie, these videos may be of interest.
https://www.youtube.com/watch?v=SCqQ7ciCHcI
https://www.youtube.com/watch?v=hH1_GMAvCdc

Basically you have system level settings, them emulator level, and finally game level. Emulator level settings will overrule system level, and likewise game level will overrule emulator level. But again that assumes your using a libretro enabled emulator for non-libretro it will be emulator specific.

By rderooy

Expert (94)

rderooy's picture

01-08-2016, 15:16

Ok, I checked it out, and there is an issue with the latest RetriPie release. When you try to start openmsx you get an error that libtcl8.5.so is missing. It has already been reported here;
https://retropie.org.uk/forum/topic/2851/openmsx-it-doesn-t-...

Ohh and by default it only installs the C-BIOS ROMS, which are located in /opt/retropie/emulators/openmsx/share/systemroms
So if you have any other MSX roms, put them into that directory.

By rderooy

Expert (94)

rderooy's picture

01-08-2016, 15:29

Solution is simple, you need to update RetroPie to the latest release, including the emulator packages.

Personally, I installed RetroPie on top of Raspbian. And I need to run sudo ~/RetroPie-Setup/retropie_setup.sh and choose to Manage Packages, followed by Update all installed packages.
If you still have a RetroPie 3.x setup, you first need to update the script itself before you have the above update all option.

By RK

Supporter (6)

RK's picture

01-08-2016, 22:15

Thanks so much to everyone for the responses. I'll try and get OpenMSX working first and then move on to the controls Smile

Looks like you have a great and helpful community here.

By RK

Supporter (6)

RK's picture

02-08-2016, 07:58

Hi

Good news - updated RetroPie and now not only are all the files in the right places, but ir-fmsx has a "controls" option which allowed me to map buttons and get one of the games working perfectly Smile
However, could someone please explain how to get ir-fmsx to load a different bios for another game, as it doesn't seem to want to play a Japanese one, plus I'd like to use the new control option to configure the buttons again.

Finally, the start+select hotkey for quitting games has stopped working and all games now use the analogue stick instead of the dpad. Am I right in saying that I change this in the retropie.cfg file?

Thanks again for all your help Smile

Page 1/2
| 2
My MSX profile