RetroArch - Native CRT Support

The game mentioned by @anon24419061 Seiken Densetsu 3 would be a good one. I’ve not incorporated aspect scaling and width ignore yet. It will be interesting to know how it functions. With your config.

1 Like

Games that i know about that switches from 240p to 480i in gameplay to menu’s.

Ps1

Chrono Cross (Between gameplay to menu)

Einhander (between gameplay and config/gallery/ending credits)

Tobal No. 1 (between gameplay and FMV)

Tobal 2 (between gameplay and FMV)

Silent Hill (switches to 480i for the inventory screen)

Toaplan Shooting Battle

Dance Dance Revolution 4th, 5th, and Extra Mix

Thunder Force V

Omega Boost

N64

Killer Instinct Gold

Which emulator is everyone using for n64 and which plugins/settings? I’m having trouble getting anything (N64) to run with this build and feel like it must be down to a modeline misconfiguration.

EDIT - With parallel core d3d isn’t working at all and gl crashes on interlaced gfx if you choose 320x240.

@Retrorepair If your CPU is fast enough, try using angrylion gfx plugin with cxd4 RSP.

@Alphanu Re: switching too much, I was thinking about how we would ultimately handle this functionality in the config/menus and I figured a good solution could be to have 1 overall option (call it CRT Switch Res or something like that) that has 2 modes of behavior: super-res (horizontal res is locked to 2560 or whatever, vertical res changes when the game changes it [could be represented as a mask in the video_fullscreen_y config option, such as -1 since 0 is already taken]) and “original” (both horizontal and vertical res change when the game changes them; both video_fullscreen_x and video_fullscreen_y would be -1 in this case). So, the option would have OFF, Super-Res, and Original to choose from.

This would solve the issue @anon24419061 described without needing to change how you’re doing it or dig into each core and add core options to enable res-switching capability (i.e., adding set_geometry to run on every frame).

I think it would also be good to have a “double scan” toggle that just doubles the refresh rate values it matches against, for people using 31 khz PC monitors.

1 Like

(Bounty up to $100)

3 Likes

Here’s a couple extra videos of me testing

The only idea I still have that I think would be a good addition would be a way for you to define the horizontal super resolution you wish to use. This is handy because with CRT Emudriver you have full control over a resolutions overscan so you can set up systems like Genisis & SNES that don’t need a lot of overscan on something like 3840x240 and something like N64 on 2560x240 and adjust the porch values to include lots of overscan, I personally used this trick a lot to optimize different systems to my CRT.

Also @Alphanu I tried Seiken Densetsu 3 but as I’m using Super Resolutions there wasn’t any changing happening other than the refresh rate, after turning off onscreen notifications it’s nearly impossible to tell there was any switching happening at all. Definitely the desired results but if you’d like I can also test this game with Native res and it might be a little more informative?

I second this as well, but more so because depending on hardware your available resolutions will differ. For example, my monitor can’t go as wide as 3840, so I use 1920.

@Monroe88 - I tried using the “Config” method you were referring to here but it doesn’t quite resolve what I was getting at. I can set it to “Config” and the ratio to “4.0” - and it does match 1920x480 quite well, but saving those settings (for 480i content) and then switching the resolution to 1920x240 the ratio still has to be switched to 8.0 for all 240p content.

It works great with the integer shader, which is how my setup is running currently, but what I’m worried about is aspect ratios after a resolution switch like we’re doing here.

Do you have interger scaling on? I set my config aspect ratio to “16.0” and interger scaling on and it works properly now between 240p and 480i although it takes a moment to switch

The delay in switching was because of the external program I was using as a wrapper to change windows resolutions. This will no longer be that case, as I have now changed this method. I have rewritten the code and now all resolution switching is done from within RA. Its much soother and qucker.

4 Likes

Wow this is exciting news! Looking forward to it!

Ok so here is a video of the new switching method. It’s a much smoother transition. In some cases you can only just notice it.

I have my degree assignment due next week so there may not be many updates. However, I will work on it when I can.

@Rion @Monroe88 @hunterk @SkyHighGam3r @anon24419061

2 Likes

This is awesome! Good luck on your assignment!

That’s beautiful. I couldn’t even tell where the switches were transitioning.

Amazing work, absolutely amazing. Thank you very much. Looking forward for the next release.

Finally sat down to test everything with just the CRT hooked up - doesn’t seem like it wants to work with Custom Resolution Utility. At least, not if I’m setting everything up correctly. It’s entirely possible I’m not using CRU properly too, as I only recently found it.

If anyone else has it, it might be worth seeing if you get the same result - which is to say: Nothing happens. It’s a no go on my system - I’ll have to look into CRTEmuDriver to play with this.

1 Like

OK guys I’m attaching the latest version here. Included in the zip is both a native and surer version. Also @Retrorepair has done some testing and found that the incorporation of refresh switching has messed with the resolution switching.

So included are 2 versions if the normal version does not work correctly, this is due to the hz switch. So use the version labeled no_hz instead. This means that if you want to switch from pal to ntsc resolution you’ll have to manually switch from 50hz to 60hz. However, if you are just interested in ntsc this should not be a issue.

I thought as I am busy doing other things ATM I would release this version so you guys can do some extensive testing. Please let me know how you get on with it.

@hunterk Could you see if someone would like to add the options into the menu and send me over the source? Or if someone can guide me through it. I also think this will be the best method of implementation.

@Abwezi @Foxhole @SkyHighGam3r

1 Like

I added a bit to the bounty so it’s $115 now. I don’t currently have a 15KHz CRT setup so I can’t really test it though.

4 Likes

Thanks for the support. If you want play these consoles they way they were designed, get one :grin: it truly is the best experience. :sunglasses:

1 Like

I added $20 to the bounty. I should be able to test tonight when I get my vga to component transcoder. I’ll have to set up crt emudriver and what not. But it doesn’t look too difficult.

2 Likes

Sorry it took me a little while to get around to testing the new build you uploaded. It handles the switch from PS1 bios to game perfectly it seems but other than that I’m finding it’s not actually switching resolutions when it should, for me at least anyways. I’m using the Super Resolution build and have attemped to use both the hz and no hz builds but still it wasn’t functioning correctly for me. N64 games ran interlaced the entire time. Tekken 3 did correctly run interlaced but I noticed a lot of screen tearing even with Vsync on I’m not sure if it’s related at all or not. Lastly I re-tested Sonic 2 and no res switch happened despite the double field option having fixed my issue previosly.

One last thing I notice is even though the fullscreen function of retroarch itself can change the resolution of any monitor it’s pointed to in the config file, this build will only change the resolution of the current main display in windows

1 Like