Cxbx-reloaded: Libretro revisited

Created on 16 Apr 2017  Â·  7Comments  Â·  Source: Cxbx-Reloaded/Cxbx-Reloaded

Cxbx currently can't be converted into a libretro core, since the Cxbx executable is build such, that it reserves the lowest possible memory address, in order to be able to load Xbox executables there.

We cannot change that behaviour, but if the need ever arises, we could build a libretro core that functions as a forwarding mechanism to Cxbx.

This core would have to launch Cxbx as a separate executable (thus in a child process) with the selected software to emulate.
Furthermore, this core would have to pass through all libretro events (particularly controller input​) to the running Cxbx instance, perhaps using the same shared memory buffer - method as Cxbx is currently using already.

Any thoughts on this? Would this be feasible? And how urgent / valuable would the implementation of such a hybrid libretro core be? Has anymore ever done something like this before?

Please discuss...

enhancement low-priority needs-developer-discussion question

Most helpful comment

I regularly talk to the RetroArch guys about this, the problem with making a libretro core is that it would require a near complete rewrite of Cxbx-R, and RetroArch/Libretro is missing some functionality essential for Cxbx-R but not required for other emulators.

I'm sure we'll work something out eventually, but it's not going to be any time soon, Both sides have work to do first.

All 7 comments

@PatrickvL Well, in my opinion it might be a better idea to focus on improving the emulator compatibility and accuracy. If users can't really run games, they will start posting a hundred issues on the libretro GitHub, and we don't want that. I know some games run, but most libretro users are more casual than that (in general).

Of course, if you label it strictly development/beta, then that might deter that a little bit.

To sort of counter that, more users via a libretro port might help you guys out with bug reports.

I would focus on what you guys think is most important, but that's my two cents. 😃

xexec would be suitable as a core to libretro. These emulators do require their own process space for memory, I/O & signal handling.

Until more stable code surfaces, especially portability to Windows, this would be a viable idea. No promises that it will be done in time.

Would be great to see a Cxbx libretro core in the near future! I think Cxbx would gain a much bigger user base and support by that.

Also supporting you now via Patreon. Keep up the good work!

I regularly talk to the RetroArch guys about this, the problem with making a libretro core is that it would require a near complete rewrite of Cxbx-R, and RetroArch/Libretro is missing some functionality essential for Cxbx-R but not required for other emulators.

I'm sure we'll work something out eventually, but it's not going to be any time soon, Both sides have work to do first.

I'm also very interested in a Cxbx Libretro core! :D It would be great!

I regularly talk to the RetroArch guys about this, the problem with making a libretro core is that it would require a near complete rewrite of Cxbx-R, and RetroArch/Libretro is missing some functionality essential for Cxbx-R but not required for other emulators.

I don't have the skills but I'm curious what essential functionality is missing in Libretro or RetroArch?

I otherwise agree with both igno2k and vgturtle127. More users mean more attention which could lead to more patreons and/or more developers, but it could also mean more unwanted bug reports.

We can't move forward until we have virtual emulation, replace every Windows exclusive functions, and kernel forward calls to Windows' API. Users can still use RetroArch (desktop) to launch our cxbx.exe or cxbxr-ldr.exe with load argument requirement.

In summary, Libretro support isn't coming anytime soon and will take years before we will be able to get all the tasks done.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

PatrickvL picture PatrickvL  Â·  3Comments

gandalfthewhite19890404 picture gandalfthewhite19890404  Â·  3Comments

Kumoashi picture Kumoashi  Â·  3Comments

Margen67 picture Margen67  Â·  3Comments

gandalfthewhite19890404 picture gandalfthewhite19890404  Â·  4Comments