RetroBox - the game preservation machine

doogie

Trash Compacter
Original poster
Nov 28, 2016
43
129
More tuning, more adventures in shaders

In the process of implementing the more major changes I wanted for this second hardware revision, I've greatly simplified my RetroArch config strategy down to a general-purpose main retroarch.cfg, and per-system overrides to tailor the experience for each console or handheld.

One thing I quickly learned is that there is no one-size-fits-all CRT shader, but thankfully there's a ton of options!
Vastly oversimplified, and this is a very subjective thing based on your own personal nostalgia, I landed on this:
  • For very early consoles (1st- and 2nd-generation), crt-lottes looks more the part in my opinion; a little curvature is necessary with these games, though it would be better with a little more bloom/glow. Still evaluating.
  • For 3rd/4th generation consoles, crt-aperture or crt-hyllian look really good, whereas crt-royale in my opinion starts to blow out the bloom/glow too much (especially on text). NES/SNES games will start to look a little more like modern pixel art games, which may or may not be what you want, but everything looks crisp, yet still true to the original without any playability issues.
  • 5th gen consoles (N64, PSX, Saturn, 3DO...) benefit a little more from blur/glow/etc and less from really crisp scanlines - this is where crt-royale really starts to shine, especially at perfectly scaled 4K.
..keep in mind that this is, you know, just my opinion, man.
One of many helpful comparisons: http://filthypants.blogspot.com/2015/04/more-crt-shaders.html

I found the GLSL-based shaders to be slightly better performing than Cg, for now. I will keep an eye on the Slang shaders and Vulkan video driver, but the good news is this hardware should eat it up once Vulkan becomes more the norm for RetroArch. Stick to NVIDIA GPUs for this purpose. You will start hitting limitations or incompatibilities quickly with Intel or AMD, unfortunately.

Aside from all that, I made great progress on input with fewer hacks: the DirectInput reordering code I picked up here made a big difference towards making sure the Bliss-Box always ended up being player 1/2/3/4 and in the right port order, no matter what selection of controllers is plugged in.

Couple other tasks on the docket:
-Finish evaluating the higan core for SNES emulation, instead of bsnes-mercury-balanced
-LaunchBox will support Retro Achievements in its next release, 7.15! You better believe that's getting set up.
-Far East of Eden Zero, a very late Japan-only Super Famicom game with some interesting features (like a Real Time Clock, in the cartridge!), was fully translated, so I can't wait to get that rolling.

By the way, if you would like me to share my config files, I am happy to (I dunno if that's build log worthy?)
 

zovc

King of Cable Management
Jan 5, 2017
852
603
This project is so awesome and unique that I feel like you could dedicate an entire website/blog to it. You seem so passionate about the project and interested in sharing that I'm visualizing maintained sections for every console ever with your best recommendations and suggested tweaks for all of them. :)
 
  • Like
Reactions: doogie and Soul_Est

zovc

King of Cable Management
Jan 5, 2017
852
603
Hey! I'm going to be digesting your thoughts in here over the course of the week, but I think I'm looking to build a similar machine for my living room.

The "benchmark" I'm aiming for is "able to emulate Wii U," as I'm basically trying to replace the Wii U (and less so the PS4) in the living room at my place. It's hooked up to a decent 1080p 60" TV. (It's LG, I forget the exact model.) More than anything, I'm gunning for "value," but I would like to be able to run Breath of the Wild better than my Wii U runs it. (It's actually really rough in a lot of places.)

Oversampling to 4K would be a luxury, but I'm interested in it where it can be done. I'm also interested in my CPU being able to accurately emulate older consoles and have as good of a response time as my TV will allow. The project is sort of on hold because I was hoping to get a Coffee Lake i3 without a Z motherboard, but maybe after picking your brain I'll decide it is or isn't worth going that route!

Here are some specific questions:
  • Have you found a decent modern Dreamcast emulator? I remember NullDC working well, but the last time I looked into a Dreamcast emulator (especially through RetroArch), I couldn't seem to find any that worked well at all. I'd really love to have access to Power Stone (2) and one of my favorite games ever, Time Stalkers, in 1080p+.
  • I also have a soft spot for Gamecube and PS2, emulation for those two consoles seems pretty turnkey and solid--do you have any "life hacks" for making them even better? Earlier in this thread I mentioned the motion blur looking really, really rough on Shin Megami Tensei 3: Nocturne and it'd be great if there was some sort of solution.
  • What would you say is the best "value" CPU for emulating newer consoles? (Like Dreamcast, Gamecube, and PS2, but also Wii/U.) Is there a drastic difference between the value choice and top-of-the-line parts? Even when your target is ~60fps and a decent response time is your standard?
  • Is something like a 1050Ti good enough to push 1080p @60fps? My intuition tells me it probably could even oversample a lot of games to 4K, but I've never actually handled the card. Most of my emulation was done on a 980 and it generally knocked oversampling to 4K and beyond out of the park.
  • How much storage do you think I'd need to store "all the games?" From what I can tell, the entire game library of "before NES all the way to the end of the 16-bit era" has a pretty miniscule footprint since a lot of these games had less than Megabytes of storage on their media. But as you start moving into optical games, especially into the Wii/U era, games start taking up at least a Gig each... (before you "scrub" the image!) This is definitely a novelty question, but maybe I'd pursue it if I set aside enough money to throw at a NAS. lol
  • Have you found that accessing games over networked storage has had a negative effect on anything? Be it load times or other strange issues.
  • Finally, any suggestions for cases that take optical drives? Any suggestions for optical drives?
Thanks!
 

doogie

Trash Compacter
Original poster
Nov 28, 2016
43
129
Hey! I'm going to be digesting your thoughts in here over the course of the week, but I think I'm looking to build a similar machine for my living room.

Awesome!!! Trying to answer all your questions as best I can:

Dreamcast: Short of it is, I keep a real Dreamcast around, still. Redream is, in my opinion, the one to watch if you're building a couch gaming machine. Otherwise it's a bit hit-and-miss and depends highly on the game; you will likely have to run some mix of Demul and NullDC.
Gamecube (and Wii): Dolphin is an amazing emulator for Wii and GC. There's an up-and-coming libretro version of Dolphin, but I wouldn't use it quite yet. What I do for this right now is:

You should still be able to buy Smash Bros edition Gamecube controllers. I use Controller Companion to help automate the UI elements of Dolphin. I configure the emulator itself in Portable mode, set it all up via config files and/or Remote Desktop and then all of the settings carry over to the account that runs Big Box. Plus, backups then become super simple, just grab Dolphin's directory. Game compatibility is so darn near 100% with Dolphin that it didn't make sense anymore for me to keep a GC or Wii in operation.

PS2: PCSX2 and a similar strategy to Dolphin, however I find game compatibility to be a whole lot more troublesome. This is one to watch for sure, but for now I keep a real PS2 around.

I have not gotten into Wii U yet however I have seen Cemu do amazing things - exactly what you describe, essentially, making the games look far better than they ever did on the real thing. I will update if/when I start down this path..amazing progress has been made this year!

Best all-around "value" CPU? i3-7350K would give you outstanding performance with little sacrifices at 1080p. The i7-8700 is overkill - I want to build this machine and have it run for several years.

1050 Ti? You bet, I ran one in Retrobox "v1", and now a friend is running that iteration very happily at 1080p/60fps. It will eek out 4K for some of the older consoles (4th gen and older), but will have a tougher time getting into PSX/N64 and so on at 4K. 1080p, on the other hand, was no sweat.

Storage capacity? This really depends on your intent; how many systems, are you going worldwide, are you compressing everything, etc..I go with a highly curated collection. I sadly only speak English (and poorly at that), so I stuck with games that were released in the US, along with a handful of games that have excellent translations (Mother 3 comes to mind). I try to stick to games I will actually play. You're right, though, that earlier systems (pre-optical) take up very little space. You can store just about everything made for consoles/handhelds thru 5th generation in about 1.5TB.

In short, though, if you completely fill a 2TB disk, you probably have more games than you could ever play in 3 lifetimes. Things get complicated on the other hand if you get into MAME and games that require giant CHD (hard disk images) files. Like I said, it completely depends on what you want to do.

Accessing games over NAS? Have had great luck with it - nothing bad to report. This is on a wired gigabit network with a pretty stout NAS, but it shouldn't be a problem for most setups so long as the NAS isn't crazy busy dealing with other transfers.

Optical drives? Well, I just built a retro system (circa 1999 Pentium III/3dfx Voodoo2 SLI, super legit, if you ask me) in a Silverstone GD09, which has a 5.25" bay, but it's pretty darn large for an HTPC-class case. Silverstone also makes a 7L case with room for a slim optical drive, the ML06. I put Kodi machines in these at one time and really liked them. I don't have any specific preferences for optical drives these days; I ran exclusively Plextor for a number of years however the quality on those seems to have waned.
 

doogie

Trash Compacter
Original poster
Nov 28, 2016
43
129
What do Super Nintendo games look like scaled up to 2633x2160?
RetroArch 1.6.8 / higan core / crt-aperture (GLSL)

Embiggen to show detail..I'm pretty pleased with this. Crisp scanlines, less blur - text looks great, and the feel is a bit more like the modern pixel art games, though still true to the original.





 

EdZ

Virtual Realist
May 11, 2015
1,578
2,107
Something appears to have gone a bit wrong with that shader, it looks to be doubling up on the output lines (writing odd-even interlacing) rather than overlaying them (odd-odd as intended) leaving things looking looking blocky rather than smooth due to the loss of the inter-line and intra-line blending effect. Looks like its missing subpixel separation too, though often that isn't as effective too for proper colour blending without NTSC processing (though for games developed for PAL, or not developed with NTSC's colour deficiencies in mind, omitting NTSC processing would be preferable).
 

doogie

Trash Compacter
Original poster
Nov 28, 2016
43
129
At first I thought it might be imgur screwing with my giant images, but upon closer inspection............you're definitely right on the money. I can't believe I didn't see the improper line spacing. We are however dealing with NTSC games here and thus don't want to mess with the color space any more than we have to.

Back to the drawing board here, but that's why we test. I've obviously looked at way too many configuration variations today..

edit=turned out it was a core setting in higan - internal resolution. I had it set wrong and guess what, there goes your integer scale. Too much time spent messing around with settings today.
 
Last edited:

EdZ

Virtual Realist
May 11, 2015
1,578
2,107
We are however dealing with NTSC games here and thus don't want to mess with the color space any more than we have to.
To be honest this depends on the game. If you look at some games where textures have almost bizarrely alternating colour shifts every pixel in a line (visible as rapidly alternating columns), and sometimes in alternating lines (to create a chequerboard), that's where the artist has used the NTSC's foibles (per-line colour shift inversion, 'rogue' pixels where colour phase switches within the same line) as a feature rather than a bug in order to achieve blended colours outside the normally available palette (and to keep colour consistent between lines). Not all game do this because it's obviously a huge pain to tweak, and the trick only 'works' on NTSC (PAL and SECAM lack the shift so would 'correctly' see colour shifts on alternating lines) so mean sprites aren't directly portable. Of course, games that do not exploit this effect look FAR better without NTSC or composite filtering applied.

Sadly, the biggest trove of knowledge on the creation of (and mechanics behind) CRT-effect filters I ever encountered was on the old byuu.org forums, which are now long defunct and not properly browsable on Archive.org (you can get to a page, but you cannot move between pages).
 
  • Like
Reactions: doogie and Soul_Est

doogie

Trash Compacter
Original poster
Nov 28, 2016
43
129
When is a console not a console?

Reasonably satisfied with the couch gaming side of things, in the background I've been looking for ways to (gracefully) switch between "couch" mode and "keyboard/mouse/monitor" mode, in order to handle older PC games, DOSBox, Amiga emulation, Atari ST..you name it. The biggest part of that challenge perhaps is how to automate the personality switch.

We could easily just build another Retrobox, but the truth is we've got a whole lot of hardware here (and hey, DDR4? you seen the prices on this sh*% lately??), so that would be a waste. Fun, but a waste.

So the idea is this:
  • Connect the Retrobox to both a TV (over HDMI) and a monitor (over DP).
  • Powered on and with no special intervention, the machine should automatically log on the "console" profile and boot Kodi, displayed on the TV.
  • If Kodi quits, the current behavior is to start explorer.exe. I could add an option in Kodi to simply log out the account instead.
  • Back at the lockscreen, I could use a keyboard and mouse to log on with a different account, and (on logon) run a script that swaps the primary display over to the monitor. Now we've got a "normal" PC.
I'm not the only person that wants something like this - looks like many people are gaming on a TV, and doing PC sorts of things on their monitors. So, there's several utilities that seem like they'll handle this just fine - Display Changer II is what I'll be experimenting with first.

edit:
Wow, easy design change there. If you are considering something like this, go for it.
 
Last edited:

doogie

Trash Compacter
Original poster
Nov 28, 2016
43
129
My very own SKYREACH 4 MINI showed up, and the build is done! Here it is (mammoth Caselabs SMA8 for scale)..



Not much else to say - Josh has made this chassis incredibly easy to build in, and as you can see the results are stunning. Back to gaming!
 

Soul_Est

SFF Guru
SFFn Staff
Feb 12, 2016
1,536
1,928
When is a console not a console?

Reasonably satisfied with the couch gaming side of things, in the background I've been looking for ways to (gracefully) switch between "couch" mode and "keyboard/mouse/monitor" mode, in order to handle older PC games, DOSBox, Amiga emulation, Atari ST..you name it. The biggest part of that challenge perhaps is how to automate the personality switch.

We could easily just build another Retrobox, but the truth is we've got a whole lot of hardware here (and hey, DDR4? you seen the prices on this sh*% lately??), so that would be a waste. Fun, but a waste.

So the idea is this:
  • Connect the Retrobox to both a TV (over HDMI) and a monitor (over DP).
  • Powered on and with no special intervention, the machine should automatically log on the "console" profile and boot Kodi, displayed on the TV.
  • If Kodi quits, the current behavior is to start explorer.exe. I could add an option in Kodi to simply log out the account instead.
  • Back at the lockscreen, I could use a keyboard and mouse to log on with a different account, and (on logon) run a script that swaps the primary display over to the monitor. Now we've got a "normal" PC.
I'm not the only person that wants something like this - looks like many people are gaming on a TV, and doing PC sorts of things on their monitors. So, there's several utilities that seem like they'll handle this just fine - Display Changer II is what I'll be experimenting with first.

edit:
Wow, easy design change there. If you are considering something like this, go for it.
Did something similar with my ThinkPad X201 regarding Steam Big PIcture. SteamOS came with a very handy script for setting up displays which I then adapted to my use. It would either output to LVDS, HDMI, or VGA depending on the display connected, if any.

My very own SKYREACH 4 MINI showed up, and the build is done! Here it is (mammoth Caselabs SMA8 for scale)..



Not much else to say - Josh has made this chassis incredibly easy to build in, and as you can see the results are stunning. Back to gaming!
Agreed. Only thing I am truly concerned about are import fees.