Libretro port to UWP

The “Xbox1” folder is for the original Xbox.

1 Like

We don’t want or need cmake for anything. I consider it a net negative to using it, not a positive. If you design stuff intelligently, you don’t need anything more than plain Makefiles for most things. Cmake/ninja/genie is all a solution in search of a problem, we don’t need it and we won’t be jumping on that particular gravy train bandwagon anytime soon (read: never).

The MSVC projects all use Griffin, manual solution maintenance is not an issue for them. Look into what Griffin is and you will see why.

I don’t think we need to talk here about our build system, though, that is of no concern here.

If you tell me that Visual Studio solutions are automatically kept in sync with the makefiles that is good enough for me. I just need to be able to use Visual Studio to work on the project if I take it on.

I’m actually leaning towards helping you port Retroarch: growing the Libretro ecosystem to include UWP is a good thing.

A few things I want to ask:

  • Does it mean UWP becomes a supported platform on par with Win32 for cores too? Will Libretro maintain and publish UWP binaries for cores the way it does for Win32 going forward?
  • Are you OK with extending the Libretro API?
  • Are you OK with me helping you do the port then work on my own front end? My end goal would be to eventually use the prebuilt UWP core binaries for my own project

Umm, just to make a couple of things clear -

For MSVC builds, we build with C++, however, the source code is still predominantly C.

I don’t want even more C++ code. I already detest the few parts that are in C++ to begin with and the plans are to get rid of that at a certain point in time if we can. I want C code.

C#? No way, don’t want that either.

The issue is that we will have to maintain this code after the person who wrote it is gone. More C#/C++ code is not stuff I want to maintain, period. I don’t want it and it’s not going to happen. It would have to be written as C code instead that can also be compiled in C++ mode, just like the rest of RA’s codebase.

I never mentioned C#. I know your codebase is all native and it doesn’t make sense to bring .net in.

As for C++, I am afraid you’ll have to live with that: UWP requires C++ to interop one way or another.

  • C++/CX, the easiest and most documented way, builds on top of C++
  • WRL uses C++
  • So does the experimental Cppwinrt

There is literally no other way of coding against UWP that I know of.

As long as it’s a very tiny shim layer, then sure, C++ code might be a necessary evil.

However, I don’t really want to use any frameworks that don’t come provided to the developer out of the box. So if we can just go with the framework that comes out of the box.

I really want to avoid C# though at all costs.

If you are building with MSBuild, that would be C++/CX then.

Again, rest assured I don’t intend to bring C# into the codebase.

Out of curiosity, why the hatred towards C++?

Let’s not get into a debate over C++.

Point is, we want as little of it as possible. C++ is a hot mess of a language, it is a backwards compatibility mess, and C is preferable for most usecases, at least for us.

Hey I have a question, so I am learning how albertofustinoni code is working. And I managed to understand a big part of it. I have decided to try and help add cores to the code by following his logic.

The thing is I was wondering where I can find the source code of the emulator cores itself (like fceumm). I assume that albertofustinoni gets it from regular retroarch and then creates a universal windows project from it. So I want to try that myself just for experimental purposes.

You can find them all on github under the libretro organization umbrella: https://github.com/libretro

1 Like

Thank you so much for quick reply

It’s great to have separate UWP version of retroarch and libretro. Will there be port on Windows Phone? I have WP8.1 phone for testing, and if I remember, dev account for app sideloading.

Sadly not for anything pre Windows 10. Can you update your phone?

I can but I won’t do that, W10m on my phone is unstable. Also I strictly against Microsoft politics of collecting all personal user data in W10.

1 Like