What's new

Ghosts αSNES

Joined
Oct 17, 2023
Messages
1
Likes
0
I'm wondering how I would get started with printing this PCB and bringing the portable version to life!

I just don't know where to start... I have no PCB design work, but am pretty skilled at programming, so where would I start to get this thing running?
 

YveltalGriffin

First Wii U Trimmer
.
Joined
Jun 7, 2016
Messages
385
Likes
1,651
Location
South Florida
Portables
5
This project has been stalled for a long time due to RGB video woes. As @thedrew and @Y2K can attest, dealing with 240p RGBS video in a portable is an absolute NIGHTMARE. No 640x480 LCD driver boards support it, and all the existing video scaler solutions are problematic.

For context, I used Shinobi Scaler in the PS Hanami and was dismayed by the power consumption and heat output: 2.4W when running from 5V! It looks great, but it's a power hog. Also, it has some minor glitchiness and isn't super consistent. Sometimes it can't lock onto sync perfectly which results in noisy video that persists until a reboot. Also, the conversion chain when using Shinobi is absurd: analog RGBS > digital RGB inside TV5725 > analog VGA > digital RGB24 for LCD. That's THREE analog-digital conversions.

For a while I convinced myself that switching to the 2Chip and utilizing SNES-TST for pure digital video was the solution. But abandoning ALL of my existing αSNES work is just too hard to stomach, and I think the 2Chip chipset is really ugly and messy compared to the elegant 1Chip.

Recently, @thedrew did some undervolt testing with Shinobi Scaler and cut the power in half by running the 3.3V rail at 2.5V and the 1.8V rail at 1.5V. This is more reasonable, so I created Shinobi Scaler 2 to take advantage of his findings:

1722796685355.png


But this still doesn't solve the other issues of glitchiness, video noise, and needing WiFi to set up the dang thing! So I kept investigating.

I tested PixelFX's Retro GEM Shiny and think it's a great solution for the N64, PS1, PS2, and Dreamcast. But SNES support for the GEM (using a video ADC add-on) is months if not years away.

With how amazing my Retrotink 4K makes old consoles look, I decided to try out some of Mike Chi's cheaper offerings, starting with the RAD2X SNES cables. The RAD2X is essentially a miniaturized Retrotink 2X and uses an off-the-shelf ADC and HDMI transmitter to linedouble SNES RGBS to 480p HDMI.

IMG_20240804_125643.jpg
IMG_20240804_131512.jpg


(for those wondering, the interface between the ADC and HDMI transmitter is YCbCr, not 24-bit RGB, so a direct drive like the GEM is not possible.)

The output is integer scaled (512x448) in a 720x480 frame and looks quite nice on the ZJ050NA-08C LCD.

IMG_20240804_015231.jpg


The RAD2X draws about ~200mA @ 5V while running, which matches Shinobi Scaler 2. There are definitely additional power savings on the table from strategically replacing LDOs on the PCB with switchers. It's also ~1/3 the size of a Shinobi Scaler.

1722799498618.png

IMG_20240804_131351.jpg


The only thing it lacks is scanlines. But this is solvable too:
  • RetroTINK 2X-Pro can add scanlines, but only accepts YPbPr input. Not ideal for SNES
  • RetroTINK 2X-SCART can add scanlines and accepts RGBS directly! Perfect for SNES, but it's discontinued.
Thankfully used 2X-SCARTs pop up on eBay often, and the hardware is nearly identical to the still-available 2X-Pro. So my new plan is to acquire a 2X-SCART, reverse engineer the hardware and use that as the scaler solution for αSNES.

The conversion chain with a RetroTINK 2X-SCART will be: analog RGBS > digital YCbCr > digital HDMI > digital RGB24 for LCD. So only ONE analog-digital conversion, which is way, WAY better than Shinobi Scaler.
 
Last edited:
Joined
Apr 29, 2020
Messages
117
Likes
139
Awesome!! I am so thrilled that you are coming back to this project! Definitely looking forward to seeing what you come up with!
Once you RE the RetroTINK 2X-SCART, will we still need to buy one to make the build or will that not be necessary?
 

YveltalGriffin

First Wii U Trimmer
.
Joined
Jun 7, 2016
Messages
385
Likes
1,651
Location
South Florida
Portables
5
Yes, parts will need to be harvested from a 2X-SCART. The TINK's firmware is proprietary and protected, and I have no interest in cracking or cloning it
 
Last edited:

YveltalGriffin

First Wii U Trimmer
.
Joined
Jun 7, 2016
Messages
385
Likes
1,651
Location
South Florida
Portables
5
My 2X-SCART arrived! I like the silk labels for the input pins. The PCB has a couple mystery ICs; one seems to be an LM1881, and another is probably a THS7374. Not sure what the others are yet, but it'll become clear once I generate a schematic. The FTDI chip can definitely be yeeted once I update the PIC to the latest firmware. Overall, the circuitry is extremely miniaturizable, which is exciting!

IMG_20240810_160857.jpg


Unsurprisingly, the video output is basically identical to the RAD2X.

IMG_20240810_163413.jpg


The scanline filter looks extremely good. Using a 2X-SCART is well worth it for this feature alone.

Scanlines disabled on the left, scanlines enabled on the right.
IMG_20240810_163428.jpg
IMG_20240810_164151.jpg


Close-up:
IMG_20240810_163440.jpg
IMG_20240810_163455.jpg


The only downside of enabling scanlines is the huge decrease in brightness that it causes. The 2X-SCART has no gamma boost options like the PixelFX products to compensate for this. My only hope is purchasing a high-brightness version of the 5" 640x480 LCD. The stock panel is a measly 250 nits, but 800nit versions exist and should be able to pump out enough light to make up for the doublestrike filter.
 

Shank

Moderator
Staff member
.
.
Joined
Jan 31, 2016
Messages
1,326
Likes
2,836
Portables
6
I wonder if you could "boost gamma" by replacing the 75 ohm termination resistors with lower value ones. Not sure if this would help, or just make things worse by clipping and blowing everything out. Guess it depends on how the 2x handles the input
 

YveltalGriffin

First Wii U Trimmer
.
Joined
Jun 7, 2016
Messages
385
Likes
1,651
Location
South Florida
Portables
5
I'm a little wary of messing with the video levels in case it impacts the colors or contrast. But I found a workaround for now. Increasing the backlight current by ~1.75x makes the brightness in scanline mode good enough.

IMG_20240810_212154.jpg


The stock boost converter is unhappy outputting this much current, but I can replace it with a better one in the final design. Hopefully this doesn't cook the panel LEDs long term
 

Y2K

"The PS1 Guy"
Staff member
.
.
Joined
Apr 14, 2022
Messages
181
Likes
400
Location
Chicago, IL
I'm a little wary of messing with the video levels in case it impacts the colors or contrast. But I found a workaround for now. Increasing the backlight current by ~1.75x makes the brightness in scanline mode good enough.

View attachment 34877

The stock boost converter is unhappy outputting this much current, but I can replace it with a better one in the final design. Hopefully this doesn't cook the panel LEDs long term
This is the true Manhattan Project.
 

YveltalGriffin

First Wii U Trimmer
.
Joined
Jun 7, 2016
Messages
385
Likes
1,651
Location
South Florida
Portables
5
After playing around with the Tink2X some more, I was pretty dissatisfied with it, for a couple reasons:
  • There's no way to tweak brightness or color saturation
  • You can't make the scanlines more or less intense
  • The output is integer scaled, which leaves large black borders (probably 1/4 of the screen goes unused)
  • RE'ing someone else's board, without knowing what their MCU firmware does, PLUS all the other compromises, is just dumb.
Despite being a bit jankier and having a longer signal chain, Shinobi Scaler 2 solves all of these issues. I'm still glad I experimented with the Retrotink products, and I think for consoles that output 320x240 like PS1, they're a great option. But for SNES, which is 256×224, Shinobi is way more flexible.

So, I bit the bullet and assembled a Shinobi 2!

IMG_20241027_121908.jpg
IMG_20241027_124356.jpg


I was having some issues talking to the ESP8285 at first. The CH343P's COM port was showing up, but esptool couldn't see the ESP8285. I thought maybe my auto-reset transistor circuit was messed up, so I bodged in a program mode button, and a POR cap just to be safe. I also stacked another resistor onto the 2.5V buck to make it output 3.1V temporarily, to rule out the undervolting.

IMG_20241027_141028.jpg
1730074179414.png


But it didn't do squat. In desperation, I even swapped out the ESP.

After looking at some other ESP8285 designs, it turns out I had mistakenly connected VDD_RTC (internal 1.1v reg) to all the other power pins. Sure enough, that side of the ESP was getting really hot. Surgery time!

IMG_20241027_144447.jpg
IMG_20241027_144727~2.jpg


After that, it programmed just fine!

IMG_20241027_175247.jpg
IMG_20241027_175459~2.jpg


I undid all my unnecessary bodges, and did some power tests with the PPK2.

IMG_20241027_193303.jpg


During these tests, I noticed that the screen was "wobbling" in a way that aligned with some nasty current transients on the PPK2 graph.


1730075188657.png


Those spikes are nearly 300mA! I immediately suspected the Wi-Fi block of the ESP8285, so I changed line 7211 of the Arduino sketch to disable Wi-Fi and the web UI entirely.

1730075251577.png


I also rewired my setup to use CSYNC (it was using CVBS as sync before. oops) and added a 68uF electrolytic cap to the output of the 2.5V regulator. These things not only fixed the wobble, but also eliminated the transients and reduced the power consumption by 150mW!

1730075546211.png


Here are the final power consumption numbers when scaling 240p->480p, with Wi-Fi disabled. This is the total input power to Shinobi Scaler 2, and doesn't include the screen or anything else.
  • 247mA @ 5V = 1.235W
  • 286mA @ 4.2V = 1.20W
  • 320mA @ 3.7V = 1.18W
  • 359mA @ 3.3V = 1.18W
  • 393mA @ 3.0V = 1.18W
The original Shinobi Scaler used 650mA @ 3.3V (2.15W). So this is a monumental improvement! With a small heatsink, the board only gets warm, instead of hot enough to burn you like Shinobi 1. I now feel comfortable integrating it into αSNES! Special thanks to @thedrew for doing initial GBS-8200 undervolt testing and inspiring me to revise Shinobi.

With some small code tweaks, I can switch between two video profiles on the fly using a pushbutton. One profile will be what's shown in this post (non-integer scale, screen filled) and another will be integer-scaled with scanlines. This way I get the best of both worlds and can toggle between them depending on the game. Also, Shinobi 2 takes ~8 seconds to boot up, so I will have to delay the LCD and SNES turning on for at least that long to avoid blue screen / video dropouts.

Shinobi Scaler 2 will be finalized and moved to the main repo branch on GitHub soon™.
 
Last edited:

thedrew

.
.
Joined
Sep 27, 2016
Messages
454
Likes
1,029
Woah, this is fantastic! Would the switching between modes using a push button feature potentially be open sourced too? That's an awesome feature:D
 

YveltalGriffin

First Wii U Trimmer
.
Joined
Jun 7, 2016
Messages
385
Likes
1,651
Location
South Florida
Portables
5
I've been working on the αSNES case CAD a little bit. The top IO is all done!

asnes_io.png


The triggers and controls are mostly done, too. I'm using a single flex PCB for each side, with 0.8mm FR4 stiffener to form a poor man's rigid-flex PCB. The flexes will connect to the mainboard via ZIFs.

1730944342349.png

1730938923762.png
1730938929900.png

1730944306634.png


The triggers are similar to the PS Hanami's and pivot on captive 2mm stainless steel rods. I haven't decided on the placement for Start and Select, but I'm leaning towards DS Lite style buttons.

1730942973663.png


SFC carts fit snugly into the rear shell!

IMG_20241101_190713.jpg
IMG_20241101_190747.jpg


The fully integrated mainboard is going to be very tricky to route, but I think it's doable. 6 or 8 layers and JLC's tightest specs will be necessary to route everything optimally. The LCD and cart slot will also require custom flexes.

layout_planning.png


My work is cut out for me, but it's worth it to achieve the super thin form factor: less than 17mm in the middle section!

1730944263705.png


Last thing: when skimming through the GBS Control code, I found numerous second-long HARDCODED DELAYS that happen on startup.

1730944466662.png
1730944487314.png


Apparently they're Wi-Fi related. As I mentioned in my previous post, Shinobi 2 currently takes 8 seconds to start showing video. These hardcoded delays are clearly partially at fault for that. My Wifi-disabled GBS Control fork will strip out ALL such delays, as well as all the OLED communication, to decrease time-to-picture as much as possible.
 
Last edited:
Joined
Apr 29, 2020
Messages
117
Likes
139
Keep up the incredible work!

If someone were to build a version without the integrated everdrive, would it be as "easy" as not populating that part of the pcb?
What material are you planning to use for the final shell?
 

YveltalGriffin

First Wii U Trimmer
.
Joined
Jun 7, 2016
Messages
385
Likes
1,651
Location
South Florida
Portables
5
If someone were to build a version without the integrated everdrive, would it be as "easy" as not populating that part of the pcb?
Pretty much. The Everdrive and cart slot will both be connected to the cartridge bus via autodirectional level shifters. The housekeeping MCU will toggle the OE pins of the shifters to "activate" one or the other. With the Everdrive not populated, the switch will effectively disable the cart slot. It won't have any other ill effects.

What material are you planning to use for the final shell?
Probably PCBWay resin, although I'm designing it like it'll be FDM printed, which may be a mistake...
 
Top