Homebrew Unofficial 3DS RetroArch builds

justinweiss

Well-Known Member
Member
Joined
May 29, 2016
Messages
121
Trophies
0
Age
41
XP
1,439
Country
United States
I've also tried building the latest picaGL, but it forces me to compile with the latest 2.0.0 ctrulib.
Unfortunatly, RetroArch is far from being able to be build with the latest libraries.

BTW, I did ask about this again, and apart from the testing that would have to be done, it seems like the RetroArch project would be open to it, as long as someone could see it through. They would also not object to dropping some of the code to support very old 3DS versions, because all versions are exploitable and most of that code is no longer necessary.

Unfortunately, it looks like 2.0.0 is a bigger challenge than 1.6. I took a stab at it and am still slowly navigating through the crashes -- most are because RetroArch re-implemented ctrulib internals to support some advanced features, and those need to be brought back in sync with what ctrulib expects. Hoping that when that gets updated it will provide an opportunity to clean up a bunch of unnecessary duplicated code, and make it simpler to work with.

Edit: Spoke too soon! I got pcsx_rearmed running under 2.0, at least. Here's a new build if you want to give it a try. Keep in mind it may not be extremely stable, I did the bare minimum to get it running.
 

Attachments

  • pcsx_rearmed_libretro.zip
    1.8 MB · Views: 336
Last edited by justinweiss,

justinweiss

Well-Known Member
Member
Joined
May 29, 2016
Messages
121
Trophies
0
Age
41
XP
1,439
Country
United States
Just got all the cores to build. As far as I can tell there are no problems with cores in libctru 2.0 and the new devkitARM, given a couple patches. Although I've only done fairly light testing on the cores that changed and the ones I use most often so far.

@MrHuu If you poke around on my github, I have branches with the changes I've made so far if you'd like to try them with picaGL. My libretro-super has a 3ds recipe that points toward all my core branches. I'm hoping to get them PR-ready in the next few days. No idea what a timeline for merging would look like, but everything except the main RetroArch repo should work with both the old and new toolchains. I assume besides the testing that it would be a lot of work on the operations / buildbot side to migrate.
 
Last edited by justinweiss,

NanashiFinal13

Well-Known Member
Member
Joined
May 1, 2017
Messages
409
Trophies
0
Age
30
XP
2,725
Country
Argentina
BTW, I did ask about this again, and apart from the testing that would have to be done, it seems like the RetroArch project would be open to it, as long as someone could see it through. They would also not object to dropping some of the code to support very old 3DS versions, because all versions are exploitable and most of that code is no longer necessary.

Unfortunately, it looks like 2.0.0 is a bigger challenge than 1.6. I took a stab at it and am still slowly navigating through the crashes -- most are because RetroArch re-implemented ctrulib internals to support some advanced features, and those need to be brought back in sync with what ctrulib expects. Hoping that when that gets updated it will provide an opportunity to clean up a bunch of unnecessary duplicated code, and make it simpler to work with.

Edit: Spoke too soon! I got pcsx_rearmed running under 2.0, at least. Here's a new build if you want to give it a try. Keep in mind it may not be extremely stable, I did the bare minimum to get it running.
That build that you attached works pretty good. With the the correct configuration and the hi res downscaling enabled now Spyro 3 has no frame drops on scenaries that on previous version has 5-7 fps drop. (NTSC, 60 fps, no frameskip.)
 

DSoryu

GBA/NDS Maniac
Member
Joined
May 5, 2010
Messages
2,383
Trophies
2
Location
In my house
XP
4,861
Country
Mexico
Been testing the new PCSXREArmed you posted above and the only issue so far is that it crashes if you try to run the "Restart Retroarch" option. Performance-wise it has improved a tiny bit as it loads the roms faster, and the games I have tested so far have nearly the same performance as they did before. I expect some major changes once the picaGL driver is fully implemented, so keep the great work, I'm really looking forward to this!
 
Last edited by DSoryu,

justinweiss

Well-Known Member
Member
Joined
May 29, 2016
Messages
121
Trophies
0
Age
41
XP
1,439
Country
United States
I have a new pcsx_rearmed dev build, attached.

This one:
- Enables threading for the 3ds builds
- Enables the threaded video graphics option
- Adds a dsp_thread audio driver, moving audio processing to a thread
- Enables threading for the spu in pcsx_rearmed
- Increases the file buffer size for 3ds (should make savestates faster)
- Increases the file buffer size for cd reads (may make cd access faster, but I can't tell the difference, maybe you will)

Keep in mind, so much threads will probably make this less stable than usual. Also, I don't _expect_ there to be problems with savestates, but because I would hate for a bug to break a save you care about, you may want to use a different slot than usual.

You can switch to the dsp_thread driver in the retroarch audio menu or the drivers menu. Threaded video is in the usual place, under retroarch video settings. Everything else should be automatic.

Enjoy, play with the settings, and let me know how it works for you.
 

Attachments

  • pcsx_rearmed_libretro.3dsx.zip
    1.8 MB · Views: 298
Last edited by justinweiss,

NanashiFinal13

Well-Known Member
Member
Joined
May 1, 2017
Messages
409
Trophies
0
Age
30
XP
2,725
Country
Argentina
I have a new pcsx_rearmed dev build, attached.

This one:
- Enables threading for the 3ds builds
- Enables the threaded video graphics option
- Adds a dsp_thread audio driver, moving audio processing to a thread
- Enables threading for the spu in pcsx_rearmed
- Increases the file buffer size for 3ds (should make savestates faster)
- Increases the file buffer size for cd reads (may make cd access faster, but I can't tell the difference, maybe you will)

Keep in mind, so much threads will probably make this less stable than usual. Also, I don't _expect_ there to be problems with savestates, but because I would hate for a bug to break a save you care about, you may want to use a different slot than usual.

You can switch to the dsp_thread driver in the retroarch audio menu or the drivers menu. Threaded video is in the usual place, under retroarch video settings. Everything else should be automatic.

Enjoy, play with the settings, and let me know how it works for you.
Great work! I cant thank you enough for all the work you do on PCSXREarmed.
With the new config, Legacy of Kain Soul Reaver runs at full speed (of course it has some framedrops, 1-2 frames, but its minimum) (ntsc) except on the opening scene, after Razier wakes up, when the voice speek to him, theres a very taxing effect, its like a blue whirl, that blue whirl drops the frame to 40, but that just for 2/5 seconds, so its not a big deal, at least for me, but now on portals and battle you gent 60 fps.
Also, Parasite Eve now doesn't have frame drops/suttering every time that a new sound plays.
Croc now runs at full speed (pal) without using any speed hack (gte regs uneeded, disable gte flags, disable smc checks).(The opening scene problem still persist)
Savestates are real fast now, that is really great.
The 3 games were tested a little more than 1 hour each without any issue (like crashing or things like that)
 

MarioKartFan

Well-Known Member
Member
Joined
Aug 27, 2019
Messages
596
Trophies
0
XP
2,319
Country
Algeria
I have a new pcsx_rearmed dev build, attached.

This one:
- Enables threading for the 3ds builds
- Enables the threaded video graphics option
- Adds a dsp_thread audio driver, moving audio processing to a thread
- Enables threading for the spu in pcsx_rearmed
- Increases the file buffer size for 3ds (should make savestates faster)
- Increases the file buffer size for cd reads (may make cd access faster, but I can't tell the difference, maybe you will)

Keep in mind, so much threads will probably make this less stable than usual. Also, I don't _expect_ there to be problems with savestates, but because I would hate for a bug to break a save you care about, you may want to use a different slot than usual.

You can switch to the dsp_thread driver in the retroarch audio menu or the drivers menu. Threaded video is in the usual place, under retroarch video settings. Everything else should be automatic.

Enjoy, play with the settings, and let me know how it works for you.

@justinweiss
You mad genius. You did it! You’ve eliminated dips, stutters and cracklings from some of my favorite games. Even THPS2, which has historically been one of the most taxing games, plays well on the N3DS. It seems the threaded dsp driver makes the biggest difference but I am also running with threaded video on.

Also, battles are now full speed on Suikoden II without disabling lighting, which is a first!

No crashes so far.

I have a new pcsx_rearmed dev build, attached.

This one:
- Enables threading for the 3ds builds
- Enables the threaded video graphics option
- Adds a dsp_thread audio driver, moving audio processing to a thread
- Enables threading for the spu in pcsx_rearmed
- Increases the file buffer size for 3ds (should make savestates faster)
- Increases the file buffer size for cd reads (may make cd access faster, but I can't tell the difference, maybe you will)

Keep in mind, so much threads will probably make this less stable than usual. Also, I don't _expect_ there to be problems with savestates, but because I would hate for a bug to break a save you care about, you may want to use a different slot than usual.

You can switch to the dsp_thread driver in the retroarch audio menu or the drivers menu. Threaded video is in the usual place, under retroarch video settings. Everything else should be automatic.

Enjoy, play with the settings, and let me know how it works for you.
 

MarioKartFan

Well-Known Member
Member
Joined
Aug 27, 2019
Messages
596
Trophies
0
XP
2,319
Country
Algeria
@justinweiss
You mad genius. You did it! You’ve eliminated dips, stutters and cracklings from some of my favorite games. It seems the threaded dsp driver makes the biggest difference but I am also running with threaded video on.

Battles are now full speed on Suikoden II without disabling lighting, which is a first!

The first battle in Final Fantasy IX no long stutters when loading or upon first strike!

Even THPS2, which has historically been one of the most taxing games, plays much better on the N3DS. Importantly there are no longer stutters when first loading sounds (like glass smashing or barrels falling).

No crashes so far.

With threaded DSP, the load screen stuttering sound / Dracula death sounds in Symphony of the Night are completely eliminated.

I noticed that Video Sync does not play nicely with Threaded Video. Games run too fast. This is a hypothetical issue for Symphony if the Night since the game runs smoother with Video Sync rather than Audio Sync.

I say “hypothetical” because performance is already so solid that it’s easy enough to turn off Threaded Video for that game and save it as a game override. For all other games, I just set it to Audio Sync rather than Video Sync and leave on Threaded Video.
 
Last edited by MarioKartFan,

justinweiss

Well-Known Member
Member
Joined
May 29, 2016
Messages
121
Trophies
0
Age
41
XP
1,439
Country
United States
The first battle in Final Fantasy IX no long stutters when loading or upon first strike!

I noticed that too! I'm pretty surprised, it's the first time I can remember getting completely smooth battle loading in a Square RPG.

I noticed that Video Sync does not play nicely with Threaded Video. Games run too fast.

Interesting, I also noticed this when I was working on the sound driver (since I had sync broken in that for a bit). Not sure why yet, although there's a giant comment in the ctr video driver about sync that I should get around to reading. May not be entirely compatible with the video threading yet.

BTW, it's seemed to me that some games run better with threaded video on / off and video sync on / off. May take some messing with those settings to see what works best for a particular game.

Also, with the dsp_thread driver, the latency setting might actually do something, so it's worth playing around with if you're getting skips.
 
Last edited by justinweiss,

wanderindirk

Active Member
Newcomer
Joined
Aug 29, 2014
Messages
43
Trophies
0
Age
31
XP
173
Country
Vietnam
I have a new pcsx_rearmed dev build, attached.

This one:
- Enables threading for the 3ds builds
- Enables the threaded video graphics option
- Adds a dsp_thread audio driver, moving audio processing to a thread
- Enables threading for the spu in pcsx_rearmed
- Increases the file buffer size for 3ds (should make savestates faster)
- Increases the file buffer size for cd reads (may make cd access faster, but I can't tell the difference, maybe you will)

Keep in mind, so much threads will probably make this less stable than usual. Also, I don't _expect_ there to be problems with savestates, but because I would hate for a bug to break a save you care about, you may want to use a different slot than usual.

You can switch to the dsp_thread driver in the retroarch audio menu or the drivers menu. Threaded video is in the usual place, under retroarch video settings. Everything else should be automatic.

Enjoy, play with the settings, and let me know how it works for you.

This is such an incredible build, thank you so much @justinweiss! In terms of substantial improvements, I'd rate it only second to the build that introduced the unai-renderer, that's how good it is. So much progress in the course of only one year.

Quick-saving is now as quick as quick-loading in the previous builds, and quick-loading is now very snappy.

In terms of speed and framerate, I've noticed a boost from anywhere between 5-20 fps in places where the games I've been testing have previously suffered from considerable drops and slowdowns. I can also see a noticeable difference when enabling hi-res downscaling now. FF8 still has some minor stutter (this has also improved though) when entering battle, but for example Shiva's summoning animation has gotten soo much smoother (enjoying almost a 20 fps boost at times). Particle effects are much less of a problem now.

Though more demanding games like MGS or Soul Reaver are still not quite there yet, they've also gotten so much more playable. To the extent that I no longer have to tinker with clockspeed when testing them.

PS: and not a single crash so far. The only problem I've encountered is I often have to hold the power button to shut down the system. No biggie though.
 
Last edited by wanderindirk,
  • Like
Reactions: Zense

NanashiFinal13

Well-Known Member
Member
Joined
May 1, 2017
Messages
409
Trophies
0
Age
30
XP
2,725
Country
Argentina
Skullmonkey now run at full speed (60 fps) without turning off lighting.
Bugs Bunny Lost in Time also runs at 60 fps (before this build, you need to set frameskip to 1 to achieve full speed)
 
  • Like
Reactions: Zense

wanderindirk

Active Member
Newcomer
Joined
Aug 29, 2014
Messages
43
Trophies
0
Age
31
XP
173
Country
Vietnam
is it hanging / not responding? Or do you mean in general, when you want to turn it off?
I have the habit of closing the program either by pressing Home and X, or by pressing the power button directly. Both would hang, the former when the screen is displaying the "closing software..." box, and the latter after the screens have turned black. This only happen after I'd loaded up at least one game. Closing by choosing the Quit Retroarch option is ok though I think.

Another minor problem is in some cases the effect of hi-res downscaling is irreversible even after turning off (the screen would have black lines that won't go away). But my guess is my .cfg file is somehow messed up, because I also use a fairly recent nightly (.cia version) in parallel to this build,
 
Last edited by wanderindirk,
  • Like
Reactions: justinweiss

justinweiss

Well-Known Member
Member
Joined
May 29, 2016
Messages
121
Trophies
0
Age
41
XP
1,439
Country
United States
I have the habit of closing the program either by pressing Home and X, or by pressing the power button directly.

Oh, thanks! That's helpful. I think I know what could be happening there, will check it out when I have a chance.

Another minor problem is in some cases the effect of hi-res downscaling is irreversible even after turning off

Yeah, this is a problem with the pixel skip setting it's using -- it's not automatically checked when the setting is changed, and may need the resolution to change before it updates. It should fix itself either after the in-game resolution changes, or the core restarts.
 
  • Like
Reactions: Zense

MarioKartFan

Well-Known Member
Member
Joined
Aug 27, 2019
Messages
596
Trophies
0
XP
2,319
Country
Algeria
This is such an incredible build, thank you so much @justinweiss! In terms of substantial improvements, I'd rate it only second to the build that introduced the unai-renderer, that's how good it is. So much progress in the course of only one year.

I totally agree. This is the biggest PSX release in the past year. While the UNAI tenderer generated a lot of news, its only now that I think you could reasonably state that full speed PSX is a reality on the 3DS. It was maddeningly close before, but the latest updates really push it over the line in so many cases.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    K3Nv2 @ K3Nv2: https://youtube.com/shorts/aHReK9x7e4E?si=PQEzHDwveOnAwiSY lol gang gang