Tutorial  Updated

How to install Retrix (Retroarch/Libretro port) for Xbox One

Prerequisite - Requires Dev mode to be activated so you can sideloadd apps. If you don't already have it you can find more information here. https://www.windowscentral.com/how-activate-dev-mode-your-xbox-one-console


libretro_logo.jpg



Retrix(LibretroRT) is a massive project aimed at porting all libretro cores to UWP. It currently supports Nes,Snes,Sega Master System,Sega Game gear, Sega CD, sg 1000, Playstation, Gameboy, Gameboy advance, and many more to be ported soon. This guide will cover installing Retrix for your xbox one console.


[1.] Download ProjectPgeasus (If you already have ProjectPegasus this step doesn't apply)
https://github.com/wiired24/ProjectPegasus/raw/master/ProjectPegasusSetup.exe





[2.] Once Installed just open it up and select RetriX. Now just wait for it to download. All you have to do now is Sideload Retrix on to your Xbox One (If you don't know how, follow the full guide here https://github.com/wiired24/ProjectPegasus/blob/master/binaries/Installing APPX Packages.pdf )

[3.] Enjoy! :yayone:

TEcaQY6.png


Retrix brings with it support for local 2 player something we have not had until now. It also opens the floodgates to every single emulator that is currently inside the scope of the libretro project. You can see a full list here https://github.com/libretro

I had been sitting on releasing Retrix for quite a bit now but it has finally reached a point where it is stable enough for release. Credit goes to Albertofustonini for creating and maintaining the Retrix Project. Credit also goes to @kingtut for advocating for a Libretro/Retroarch port for Xbox One. You can follow current development on the official github page https://github.com/Aftnet/LibretroRT

 
Last edited by wiired24,

Absestos

Well-Known Member
Newcomer
Joined
Jun 24, 2017
Messages
73
Trophies
0
Website
www.aftnet.net
XP
288
Country
Italy
Hello everyone: I joined the forum yesterday and just found out about this thread.

First of all, I would like to thank everyone for the level of interest/support, and in particular I'd like to shout out to @wiired24, @kingtut and @ploggy for the awesome job they did helping people where I couldn't.

I started a gofundme campaign to raise money to buy the stuff I need for continued development, but I'm very much open to suggestions to alternatives if you know something that works better/with less hassles.

I think it's appropriate for me to give a bit of a status update and try to answer some of the doubts I've gleaned from reading so far.

Since releasing the version of Retrix shown on the video and managing to get BeetlePSX to compile to UWP, I had to find a solution to the fact that Libretro cores for newer systems try to access files directly.
This is a problem because UWP enforces sandboxing (apps only get access to the files that have been selected using Windows's file picker and nothing else) and because UWP does not work with file paths.
It took a while, but in the end I managed to come up with a way to virtualize file system access which both works and seems to be accepted by the Libretro maintainers (essential since the Libretro cores themselves need to be modified).
Hopefully this continues to be the case and I'll have a Libretro blessed way of porting cores to UWP going forward, since I do not really have the resources to maintain forks of Libretro cores.

I then had to work on the UI to allow installation of BIOS files for cores that need them, since those, just like ROMs, are copyrighted work and cannot be included with RetriX itself.

An early feature gain made because of this work is RetriX's new ability to run Mega CD games and ROMs in Zip files (this is handled by the front end, the core is unaware the data it is loading comes from RAM instead of a physical file).

I am aware that the in-game overlay doesn't work on Xbox: my plan to solve the issue would be to have a button combination (maybe start+menu?) that is unused in games and doesn't trigger the Xbox dash pause the game (the way RetriX pauses games independently of a game's own pause functionality) and bring up a modal menu with the same options as the overlay.
How exactly this should look/work is something is something I'd need an actual Xbox for to figure out: I need to be able to experience the dashboard and see how it interacts with games/apps run on the console to understand how to design the UI, even before testing and debugging on the actual device.

About the second issue, instability, the honest answer is that my options are limited: beyond the changes described above to support file system virtualization, I am doing my best not to touch the Libretro cores themselves and stay upstream (I lack the expertise and the time to maintain them; it's the reason why I use git submodules even though they can be a pain). It could be that the instability (so far I only had the GB/GBC core being unstable and unplayable) is caused by me getting the build configuration wrong or that it's an issue with the cores themselves.
The most I could do is to ask Libretro's members to help me set up a build, but I am not sure it would go down well: they are a very Linux centric community and helping me would not do anything for them. Keep in mind that sometimes Libretro being a Linux first project may cause Libretro cores to just not be portable to RetriX - some things refuse to build with Visual Studio's C/C++ compiler.

Development can move in a few directions from now on - I could:
  1. Continue the work I started to get PSX emulation working, with software rendering
  2. Look into developing the in game UI for the Xbox
  3. Do proper, official, signed binary releases to make RetriX easy to sideload for normal users
  4. Look into the stability issues, especially with the GB/GBC core, but I may be unable to fix them
Based on what I read so far, it seems the bigger issue would be the Xbox UI, since it stops people from using RetriX where they want to.

Beyond that, what I'd like to do is:
  1. Hardware acceleration for 3D cores (difficult, may not actually be possible or may be possible only for some cores - depends on how they use OpenGL ES and if those uses are covered by Microsoft's Angle for UWP.
  2. Shaders, at least something like hqnx to make 2D games look sharper
  3. More recent consoles, I'd love to be able to support as many systems as possible in RetriX
  4. Split RetriX (the front end) from LibretroRT (the cores converted to WinRT component and supporting framework), put LibretroRT in Nuget to make it easier for people to work on other front ends
Is it a lot? Yes. Can I really do it? I hope so, guess we'll see :)
 

kingtut

Well-Known Member
Member
Joined
May 3, 2017
Messages
1,067
Trophies
0
Age
29
XP
1,354
Country
United States
Hello everyone: I joined the forum yesterday and just found out about this thread.

First of all, I would like to thank everyone for the level of interest/support, and in particular I'd like to shout out to @wiired24, @kingtut and @ploggy for the awesome job they did helping people where I couldn't.

I started a gofundme campaign to raise money to buy the stuff I need for continued development, but I'm very much open to suggestions to alternatives if you know something that works better/with less hassles.

I think it's appropriate for me to give a bit of a status update and try to answer some of the doubts I've gleaned from reading so far.

Since releasing the version of Retrix shown on the video and managing to get BeetlePSX to compile to UWP, I had to find a solution to the fact that Libretro cores for newer systems try to access files directly.
This is a problem because UWP enforces sandboxing (apps only get access to the files that have been selected using Windows's file picker and nothing else) and because UWP does not work with file paths.
It took a while, but in the end I managed to come up with a way to virtualize file system access which both works and seems to be accepted by the Libretro maintainers (essential since the Libretro cores themselves need to be modified).
Hopefully this continues to be the case and I'll have a Libretro blessed way of porting cores to UWP going forward, since I do not really have the resources to maintain forks of Libretro cores.

I then had to work on the UI to allow installation of BIOS files for cores that need them, since those, just like ROMs, are copyrighted work and cannot be included with RetriX itself.

An early feature gain made because of this work is RetriX's new ability to run Mega CD games and ROMs in Zip files (this is handled by the front end, the core is unaware the data it is loading comes from RAM instead of a physical file).

I am aware that the in-game overlay doesn't work on Xbox: my plan to solve the issue would be to have a button combination (maybe start+menu?) that is unused in games and doesn't trigger the Xbox dash pause the game (the way RetriX pauses games independently of a game's own pause functionality) and bring up a modal menu with the same options as the overlay.
How exactly this should look/work is something is something I'd need an actual Xbox for to figure out: I need to be able to experience the dashboard and see how it interacts with games/apps run on the console to understand how to design the UI, even before testing and debugging on the actual device.

About the second issue, instability, the honest answer is that my options are limited: beyond the changes described above to support file system virtualization, I am doing my best not to touch the Libretro cores themselves and stay upstream (I lack the expertise and the time to maintain them; it's the reason why I use git submodules even though they can be a pain). It could be that the instability (so far I only had the GB/GBC core being unstable and unplayable) is caused by me getting the build configuration wrong or that it's an issue with the cores themselves.
The most I could do is to ask Libretro's members to help me set up a build, but I am not sure it would go down well: they are a very Linux centric community and helping me would not do anything for them. Keep in mind that sometimes Libretro being a Linux first project may cause Libretro cores to just not be portable to RetriX - some things refuse to build with Visual Studio's C/C++ compiler.

Development can move in a few directions from now on - I could:
  1. Continue the work I started to get PSX emulation working, with software rendering
  2. Look into developing the in game UI for the Xbox
  3. Do proper, official, signed binary releases to make RetriX easy to sideload for normal users
  4. Look into the stability issues, especially with the GB/GBC core, but I may be unable to fix them
Based on what I read so far, it seems the bigger issue would be the Xbox UI, since it stops people from using RetriX where they want to.

Beyond that, what I'd like to do is:
  1. Hardware acceleration for 3D cores (difficult, may not actually be possible or may be possible only for some cores - depends on how they use OpenGL ES and if those uses are covered by Microsoft's Angle for UWP.
  2. Shaders, at least something like hqnx to make 2D games look sharper
  3. More recent consoles, I'd love to be able to support as many systems as possible in RetriX
  4. Split RetriX (the front end) from LibretroRT (the cores converted to WinRT component and supporting framework), put LibretroRT in Nuget to make it easier for people to work on other front ends
Is it a lot? Yes. Can I really do it? I hope so, guess we'll see :)

Regarding your development steps: If you are looking for suggestions, I personally think you should continue working the psx emulation for now. Since this is a very requested feature on the xbox one right now and there is nothing currently like it on the xbox one (winpse10 is not working well at all).

As far as the stability goes, It is annoying, but it is still rare, so it is not like a game breaker right now.

As far as the UI, I can try and help you with that since I understand some basic aspects about your code right now when it comes to your front end. And I have already some experience with editing UI of other people (I fixed a big glitch with the ppsspp uwp a week ago). And maybe if @wiired24 is not busy he could help me too.

As far as proper signed certificate apps, me and wiired24 could help you with that because we know how to create appx file. it is only a temporarily solution, but it is still something until you get the proper funding

But as I said, this is just a suggestion. You are already doing an awesome job with the app, and I completely trust you. So do what you see fit.

If there is something I could research and help with, let me know. I am already researching a lot about uwp at the moment. so if you want you can pm any tutorials or topics you want me to research. I do not know if I can help with 3d acceleration or shaders, but I could try.

Also if you want, after you finish porting the ps1, you can port more emulators that do not require 3d acceleration until you figure out how to fix the problem with 3d acceleration. I know a couple of people here who really want mame or dosbox or commodore64. and right now none of these emulators exist on the xbox one.

I have no summer classes, so I kinda have no life lol. So I really could dedicate time to help you.

Update: I was talking to a friend of mine who has experience with porting apps to xbox one. And he was saying that if retrix only crashes on xbox one (if it doesn't crash on windows 10 for example). he said that this could be a problem of dev mode itself. as it is still kind of glitchy, and it still has very limited resources. So the crashes could be because retrix trying to take more resources than it is allowed in some instances.
 
Last edited by kingtut,

kingtut

Well-Known Member
Member
Joined
May 3, 2017
Messages
1,067
Trophies
0
Age
29
XP
1,354
Country
United States
same as all the others you can play the game for a few minutes but then it crashes
You know I just got an idea: but @Absestos should confirm whether or not it is a good idea.

What if we do like nesbox and release retrix on a website. similar to how nesbox does it and similar to how retroarch web player. This would be helpful for people who do not have dev mode to test it and play it. and maybe it would fix the crashing problem due to more resources being available.
 

dominater01

Well-Known Member
Member
Joined
Mar 13, 2009
Messages
1,278
Trophies
1
Age
33
XP
2,889
Country
United States
2a5auit.png
You know I just got an idea: but @Absestos should confirm whether or not it is a good idea.

What if we do like nesbox and release retrix on a website. similar to how nesbox does it and similar to how retroarch web player. This would be helpful for people who do not have dev mode to test it and play it. and maybe it would fix the crashing problem due to more resources being available.
if your talking about how he has nesbox embeded on a website i dont think it would be that easy for retrix todo also the nesbox on the site is different then the appx version

edit: the crashing might be a memory problem not sure if memory leak or memory overload, it doesnt crash if you dont move

@kingtut can you use visualstudio to check debug logs on xbox one if so can you try to diagnose the issue

edit 2: gotta error when playing the nes game yoshi after alittle bit of playing
 
Last edited by dominater01,
  • Like
Reactions: kingtut

kingtut

Well-Known Member
Member
Joined
May 3, 2017
Messages
1,067
Trophies
0
Age
29
XP
1,354
Country
United States
2a5auit.png

if your talking about how he has nesbox embeded on a website i dont think it would be that easy for retrix todo also the nesbox on the site is different then the appx version

edit: the crashing might be a memory problem not sure if memory leak or memory overload, it doesnt crash if you dont move

@kingtut can you use visualstudio to check debug logs on xbox one if so can you try to diagnose the issue

edit 2: gotta error when playing the nes game yoshi after alittle bit of playing

I will try, but for some reason, I am not able to compile the app on pc, I can only do it on xbox one.
 

dominater01

Well-Known Member
Member
Joined
Mar 13, 2009
Messages
1,278
Trophies
1
Age
33
XP
2,889
Country
United States
I will try, but for some reason, I am not able to compile the app on pc, I can only do it on xbox one.
maybe try building it as a debug instead of retail maybe then it'll install on the pc idk

edit: vs can just install directly to your pc instead of making an appx first
 
Last edited by dominater01,

wiired24

Developer
OP
Developer
Joined
Sep 3, 2013
Messages
1,118
Trophies
1
Age
29
Location
Dev_Home
XP
3,469
Country
United States
Hello everyone: I joined the forum yesterday and just found out about this thread.

First of all, I would like to thank everyone for the level of interest/support, and in particular I'd like to shout out to @wiired24, @kingtut and @ploggy for the awesome job they did helping people where I couldn't.

I started a gofundme campaign to raise money to buy the stuff I need for continued development, but I'm very much open to suggestions to alternatives if you know something that works better/with less hassles.

I think it's appropriate for me to give a bit of a status update and try to answer some of the doubts I've gleaned from reading so far.

Since releasing the version of Retrix shown on the video and managing to get BeetlePSX to compile to UWP, I had to find a solution to the fact that Libretro cores for newer systems try to access files directly.
This is a problem because UWP enforces sandboxing (apps only get access to the files that have been selected using Windows's file picker and nothing else) and because UWP does not work with file paths.
It took a while, but in the end I managed to come up with a way to virtualize file system access which both works and seems to be accepted by the Libretro maintainers (essential since the Libretro cores themselves need to be modified).
Hopefully this continues to be the case and I'll have a Libretro blessed way of porting cores to UWP going forward, since I do not really have the resources to maintain forks of Libretro cores.

I then had to work on the UI to allow installation of BIOS files for cores that need them, since those, just like ROMs, are copyrighted work and cannot be included with RetriX itself.

An early feature gain made because of this work is RetriX's new ability to run Mega CD games and ROMs in Zip files (this is handled by the front end, the core is unaware the data it is loading comes from RAM instead of a physical file).

I am aware that the in-game overlay doesn't work on Xbox: my plan to solve the issue would be to have a button combination (maybe start+menu?) that is unused in games and doesn't trigger the Xbox dash pause the game (the way RetriX pauses games independently of a game's own pause functionality) and bring up a modal menu with the same options as the overlay.
How exactly this should look/work is something is something I'd need an actual Xbox for to figure out: I need to be able to experience the dashboard and see how it interacts with games/apps run on the console to understand how to design the UI, even before testing and debugging on the actual device.

About the second issue, instability, the honest answer is that my options are limited: beyond the changes described above to support file system virtualization, I am doing my best not to touch the Libretro cores themselves and stay upstream (I lack the expertise and the time to maintain them; it's the reason why I use git submodules even though they can be a pain). It could be that the instability (so far I only had the GB/GBC core being unstable and unplayable) is caused by me getting the build configuration wrong or that it's an issue with the cores themselves.
The most I could do is to ask Libretro's members to help me set up a build, but I am not sure it would go down well: they are a very Linux centric community and helping me would not do anything for them. Keep in mind that sometimes Libretro being a Linux first project may cause Libretro cores to just not be portable to RetriX - some things refuse to build with Visual Studio's C/C++ compiler.

Development can move in a few directions from now on - I could:
  1. Continue the work I started to get PSX emulation working, with software rendering
  2. Look into developing the in game UI for the Xbox
  3. Do proper, official, signed binary releases to make RetriX easy to sideload for normal users
  4. Look into the stability issues, especially with the GB/GBC core, but I may be unable to fix them
Based on what I read so far, it seems the bigger issue would be the Xbox UI, since it stops people from using RetriX where they want to.
Beyond that, what I'd like to do is:
  1. Hardware acceleration for 3D cores (difficult, may not actually be possible or may be possible only for some cores - depends on how they use OpenGL ES and if those uses are covered by Microsoft's Angle for UWP.
  2. Shaders, at least something like hqnx to make 2D games look sharper
  3. More recent consoles, I'd love to be able to support as many systems as possible in RetriX
  4. Split RetriX (the front end) from LibretroRT (the cores converted to WinRT component and supporting framework), put LibretroRT in Nuget to make it easier for people to work on other front ends
Is it a lot? Yes. Can I really do it? I hope so, guess we'll see :)
'

@Absestos I agree with the motion that @kingtut made. PSX support is something alot of us are very eager to see. I would suggest continuing on that. The fact that you have gotten Retrix to the point where it is right now, and the fact that you haven't really had any help from the libretro crowd is amazing to me. I can imagine it's difficult taking emulator cores that were built with GCC and not intended for MSVC. It's made even more complicated by the fact that as you said almost all of the guys and gals working on libretro cores are stricly on linux and that's mainly what they care about. I will be throwing $15 your way soon to the gofundme campaign to help you with raising funds for development. I don't have alot of money right now or else I would donate more. As far as hardware acceleration and OpenGL ES goes if you could get that to be implemented and work properly then PS2 support would be a big possibility. I think that would be really cool to see in the future. To reiterate, I'd continue porting beetle psx to retrix and once Retrix has psx support then I would take a break from adding additional cores past that until the stability increases to where random crashes are less common. But it's ultimately up to you though.
 
  • Like
Reactions: kingtut

Absestos

Well-Known Member
Newcomer
Joined
Jun 24, 2017
Messages
73
Trophies
0
Website
www.aftnet.net
XP
288
Country
Italy
I have found a provisional solution for binary releases and from now on they will be posted on the project's GitHub page.
You can get the current RetriX version as compiled by me from the Releases section. Front page has been updated with installation instructions.

It's not an ideal way of doing things since it requires users to add the RetriX certificate as a trusted CA, but it is an improvement - the download will be from the project page, via SSL, and I'll be the one signing the packages themselves.
Once again, a huge thank you to @wiired24 and @kingtut for taking it upon themselves to build and distribute RetriX so far.
 

djxxx

Active Member
Newcomer
Joined
Jul 28, 2007
Messages
28
Trophies
0
XP
223
Country
Can some kind fellow help me on how to install roms to RetriX? A video tutorial or easy step by step tutorial would be appreciated...
 

djxxx

Active Member
Newcomer
Joined
Jul 28, 2007
Messages
28
Trophies
0
XP
223
Country
Looks like sending no donations as I can't get any help to see how the app runs......The scene these days sucks as no body helps out....Way back 20-30 years ago everybody stuck
together .....
 

Absestos

Well-Known Member
Newcomer
Joined
Jun 24, 2017
Messages
73
Trophies
0
Website
www.aftnet.net
XP
288
Country
Italy
Can some kind fellow help me on how to install roms to RetriX? A video tutorial or easy step by step tutorial would be appreciated...

There's no installing toms in RetriX: select the game system you want to play, then select the rom file from the picker that appears and you are good to go.
 

djxxx

Active Member
Newcomer
Joined
Jul 28, 2007
Messages
28
Trophies
0
XP
223
Country
When I select Nes Nintendo it says you haven't opened any files recently....I presume you have to have a Roms folder somewhere unless you have every Rom in the app which is doubtful
 

Site & Scene News

General chit-chat
Help Users
  • No one is chatting at the moment.
    SylverReZ @ SylverReZ: Sup