OpenMSX ported as a libretro core, is there willingness to do so?

Page 1/2
| 2

By Garudian

Supporter (11)

Garudian's picture

30-07-2018, 09:58

Hi,

I recently gave OpenMSX a try and really like it.

There's only one larger issue that's keeping me from really really liking it, and that's that in Windows 10 full screen mode with vsync does not really work for me. Windowed mode sort of works allright, but as soon as I switch to full screen mode there are scaling issues (it seems to open a borderless full window in windows?) and I haven't been able to find a vsync setting either.

I read what I could on this forums and on GitHub issue tracker whether there will be any improvements to full screen mode and vsync implementation when using on Windows 10, but as far as I understood that's a planned future development path (hope I'm correct).

Anyway, I'm also using Retroarch, which has come a long way over the past years, and has developed amazingly, giving access to opengl, direct3d, vulkan with a (huge) archive of very nice shader possibilities, vsync, low latency audio, fencing etc for low input latency (including a "frame delay" option to have input latency very close to real hardware). It's just very nice to use with also support from the developers who are keen on helping developers create an "upstream" core. Once done it can be run on a wide array of devices from android, to linux, to windows to handhelds and consoles.

Recently the author of Mesen, a great and accurate Nintendo NES emulator, created an upstream libretro core, and while reading his development posts in the forum I was surprised that he mentioned that (to his own surprise) it only took him a day to create the core.

Please see the author (Sour) his forum post here:

Mesen Core

and to quote his introduction:

Quote:

After being asked several dozens of times if/when I was going to port Mesen to libretro (and seeing a lot of people saying it couldn’t be done because “lol C#”), I finally got around to doing so. It barely took a day (and less than a thousand lines of code), so now I’m left wondering why I didn’t get it done earlier :-)

Given this I'm hoping there's willingness among the OpenMSX devs to look into creating an upstream OpenMSX libretro core also. As a developer you pretty much "own" an upstream core, in the sense that you're the one to validate any pull requests. With the added benefit's that the platform more easily attracts the attention of developers who may help improving the core.

Hopefully this is something that OpenMSX devs are willing to explore, and maybe it will be similar to Sour's experience "It barely took a day (and less than a thousand lines of code), so now I’m left wondering why I didn’t get it done earlier :-)".

Login or register to post comments

By Vampier

Prophet (2235)

Vampier's picture

30-07-2018, 18:22

Doesn't Libretro butcher keyboard input and disables keys that are needed to play games correctly? I tried blueMSX with emulation station (retro pi) once and the experience was 'ok' until I needed to save/load in SD Snatcher... the f4 and f5 didn't respond. I knew I was unable to finish the game as the numeric keyboard also didn't respond. So my conclusion was that Libretro butchered the emulator to work like a game console instead of a home computer. I reformatted my SD card and installed Raspian with openMSX auto booting. I am now working with the Sedai Linux dev to have a bare metal emulator on the Pi.

I think having openMSX work as a Libretro emu is a good idea as long as the full keyboard communication isn't butchered.

Also: openMSX is an open project and anyone (including some that say otherwise) can contribute to the code and make suggestions. Anyway: another MSX dev with more programming experience will respond soon enough Tongue

By Garudian

Supporter (11)

Garudian's picture

30-07-2018, 20:21

That indeed used to be the case, fortunately though it has come some way towards a more proper implementation for computer platforms. Computer keyboards are supported nowadays (thank god Tongue )

For example, current BlueMSX libretro core supports full keyboard. It can be seen in the file libretro.c in the Libretro BlueMSX git here: BlueMSX libretro. Another good example is the Commodore 64 core (VICE-Libretro), which has full keyboard support also and works very well too.

For a better experience I would suggest to make use of the "enable hotkeys" option. It's in config -> input -> hotkey mapping -> Input hotkey binds and "enable hotkeys". This allows for the emulated machine's keyboard to be active unless the hotkey is pressed (which allows Retroarch GUI hotkeys to become active).

You're right though when you say it's still not fully perfect. It has its roots in providing the best setup for consoles, and it still shows, even though it has improved over the years. The biggest issue which you touched upon is that without workarounds you can only load into the primary rom slot or floppy. I understand providing direct access for subslots is in the cards, but currently there's a workaround needed for loading multi floppy games. The Commodore 64 core for example allows "cmd" files to be loaded, which are just plain text files that have a file path in them for each floppy in drive 1 to N.

Another interesting core is the Sharp X68000 core (px68k), which both has full keyboard support, but also enables the original emulators' GUI via a hotkey. So I can imagine an OpenMSX core could make use of similar techniques to allow for as much functionality as possible.

In case it's of interest, the documentation on implementing the libretro api can be found in the libretro docs wiki here: https://docs.libretro.com/specs/api/

By Vampier

Prophet (2235)

Vampier's picture

31-07-2018, 04:04

Good to hear Smile These days I don't have much time to mess around with distros for the Pi anymore. The keyboard issue was also my biggest issue with it.... feel free to join #openmsx on freenode to discuss with wouterv/quibus or mth (main devs on the openMSX team) I'm just here for side support like parts of the website/tcl/romdb.

By Vampier

Prophet (2235)

Vampier's picture

31-07-2018, 04:06

I believe one dev said his was interested in helping but he wasn't going to spearhead the project. We are still doing this as a hobby Smile

By Manuel

Ascended (14782)

Manuel's picture

31-07-2018, 19:41

We'll do our best to help anyone who is willing to do a libretro port of openMSX. Just step forward to take the initiative...

By Garudian

Supporter (11)

Garudian's picture

01-08-2018, 12:30

Thanks, that's much appreciated. I'll contact Aliaspider, who was involved initially in the BlueMSX libretro port and ask if he possibly has an interest. I guess he should be able to judge the amount of work involved better than most. He does seem quite busy with other aspects of Libretro though, so apart from interest I'm not sure whether he has the time. Hopefully something fruitful will come out of it.

By Vampier

Prophet (2235)

Vampier's picture

01-08-2018, 18:00

Gaurdian: maybe someone else is willing to do the groundwork?

By Garudian

Supporter (11)

Garudian's picture

02-08-2018, 09:45

Could you elaborate?

By Vampier

Prophet (2235)

Vampier's picture

02-08-2018, 19:11

The openMSX team has indicated they are willing to assist with guidance. openMSX is located in a GIT repository and everyone can suggest code merges. And the openMSX team dev team is willing to assist in guidance.

So to the short answer your question: "is there willingness to do so?" the answer is yes, we're willing to give guidance to anyone who is willing to do so.

By Manuel

Ascended (14782)

Manuel's picture

02-08-2018, 20:26

I'll be willing to help in any way I can, even. But there is no one in our team going to take the lead for that port, it seems.

Page 1/2
| 2
My MSX profile