Thursday, April 24, 2025

Fixing Chips, Pits, Scratches, and Cracks on a Sony Trinitron CRT with RainX windshield repair


 


So, a while back, I got a lovely Sony Trinitron TV with SVideo inputs.  Exactly the gaming machine I wanted.  Brought it home from FB marketplace only to find it had all these little black dots on it.   Looked into it, and my god, it looked like someone had dropped it on gravel or shot it with a BB gun.

Anyway, I just used RainX windshield repair on it and it fixed it right up.   

The video attached is long and boring.  And I'm just doing a photo dump here of how I did it.  Mostly posting to give people the courage that this is an easy afternoon fix.


Can you see the dots?


I circled them with a dry erase marker.


Cut up the sheets in the kit into tiny squares.  You just need to cover the actual damage, not a 2x2" square.

With the pieces cut, and the spots circled, I recommend cleaning with them high % Isopropyl Alcohol so the resin can get the best contact possible.



You really don't need the whole suction cup thing that comes in the kit.

Instead, just use this little push in thing to push the liquid in the cracks as far as possible.


That's it.  Just push the plastic onto the resin so there's a thin layer and you don't need to scrap as much off.
You can see in the video, I had like 20-30 of these spots to fix!

When I took it outside, I found some extra spots I missed in the sunlight.  The shadow really exposes them.

After filling in those extras, it was time for a cure!  Cure baby Cure!

Use the razor blade to clean it off OUTSIDE.  You get tons of little shavings everywhere.  You don't want that in the house.

The spots are still slightly visible... but don't fear!



With the power on in the house....

They are practically unnoticeable!  Certainly not anything you see while you're playing the game.

Success!  My CRT has been restored to glory.

Hacking a NES Zapper for easier long term play.

I've never been a fan of the NES Zapper.  It's heavy.  It's clunky.  The trigger pull is hard and after a lot of play time, your finger just feels terrible.

So, I decided to see if I could hack one.  Here's pictures of what I did...  

--------The Quicky tl;dr----------

tl;dr  ...  Open your zapper, add a spacer in the spot with the big blue bar.  This stops the "chachung" but still engages the microswitch.


That's it.  Cut some plastic or other material to just under 1/8" thick, put it right where the bar is, and you have a great zapper!

(Also, note that I like a light light gun, so I took out both weights and left off the decorative case on the outside of the zapper too.)

-----------MODDED ZAPPER IN ACTION------------

You can see it in action at the end of this video I made about fixing the Trinitron's pits and dings.  The last 4 minutes or so.



----------FULL NOTES-----------

Here's a bunch of pictures and some text of when I modified mine this way.

First, the mechanism...  The reason for the big "kachunk" is that Nintendo made a spring loaded contraption that when you put the trigger in, it slides a white slider across that moves to press a microswitch.

You can see here, that right _before_ the "chachung", the trigger slides to that little white dimple and the microswitch is engaged.
Then, AFTER the switch is engaged, but the trigger passes beyond the white dimple, the switch disengages, and the trigger is pulled all the way in with a huge, finger rattling "kah chung".  At the point, the switch is no longer engaged and you've wasted a lot of strength/motion just making that "pow" happen.


So, how can we deal with that.   First, when you open up the zapper, you'll find the optics, plus two weights.  PLEASE NOTE - I TOOK THIS WAY TOO FAR APART - GO TO THE END TO SEE HOW LITTLE YOU ACTUALLY NEED TO REMOVE.
The barrel weight is hollow so the sensor can shoot through it.  The grip one is solid.   Neither does anything but make the gun heavy.  For me, I like to play for hours.  A heavy gun is no fun for me.
The foam that helps make the weight not rattle around.

The trick for the trigger is to make it so it pulls in far enough to engage the switch, but so that it never actually pushes past the white dimple.

So, if you measure the back where the spring is, you can find some sort of plastic or other solid item of just the right size to go in.

About 1 3/16" long.
About 5/16 wide.

These next two pictures are the key pictures for measuring the thickness...  You need to make sure that the block you put in there is just enough to make the switch make contact.
Somewhere between 1/8" and 1/16" inch should do it.

Yup, 5/16" wide form this angle too.
I found a piece of plastic from some food container that had thin plastic (I think it was a 2 liter bottle), and I cut it down to the size and folded it over and over until the thickness was right.






I didn't take a good shot because the spring kept popping out.  But, if you drop it down between the black or orange trigger slider and the gray casing, it works perfect!



Remember, just put your plastic spacer right where the blue bar is in this picture...  BE SURE TO PUT THE SPRING BACK!  I don't have that in these pictures because it likes to pop out.




Finally... Don't do this...  I took the whole thing out of the gun, broke a wire I had to resolder, etc...
No no no...
INSTEAD... leave the whole gray unit in the gun, and just take off the gray faceplate.


And remember, the big extra shell on the outside is also extra weight.  I never put them back on.  Just leave it like this.


Wednesday, February 12, 2025

Notes from Setting Up PS2 HDD FHDM on Fat PlayStation 2 for FMCB

 Ugh, well, there were a million wrong turns here.  Trying to recall and document what I finally actually did to the best of my ability.

Years ago I set up a FreeMCBoot Memory card for a slim.  It works fine and still works.  Forget how I did that.  I think with the DVD lid hack maybe?  Cause I didn't buy a preconfigured Memory card. 

I also set up a cheap ass Goodwill router and one of my ancient USB harddrives attached to it for a SMB solution.  Worked fine on regular games.  Stuttered and was generally horrible on Guitar Hero.  

So, decided to use the PS2 Fat with a Network Adapter and the old harddrive solution.  I used an OEM network adapter and a classic old 200GB IDE harddrive, (i.e.) not a fancy new SATA one.

This requires the use of a IDE to USB adapter.  I am old, so I already had a BIG UGLY EXTERNAL USB case to put the drive in.  (Also, side note, it was a Firewire era case, and someday if I care I'll go ahead and find a proper cable and see if maybe I can hook it up as the message boards seem to indicate OPL can use Firewire connected drives now...)

Once I finally got it going, it was great.  Here was my journey as best I can remember.

PREFACE: The Way to use Github is to go to the releases, and then download the main file/zip.  Sometimes you simply need to download the source as a zip and the file you need is actually there, not in a full release...  I highly recommend only getting these tools from the author's sites on their githubs...

First,  PFS-BatchKit-Manager ended up being the main tool I used.  (https://github.com/GDX-X/PFS-BatchKit-Manager)

For a command line, it's an amazing program.  It _was_ a bit confusing, TBH as a few functions are really buried away.  And a few things just aren't obvious or well connected in just how FreeMCBoot and OPL work and interact.  AND, while the devs are all great and have capable work, the PS2 coding community has never all really wrapped it into a beautiful bow.  You are really hacking together a lot of pieces which works to varying degrees and with various version to version compatibility issues.  (AS ALWAYS, ALL RESPECT TO ALL DEVS AS WITHOUT YOU, I'M LOOKING AT AN UNHACKED PS2.  THIS IS NOT CRITICISM AS I KNOW EVERYONE IS JUST A PERSON HACKING FOR FREE FOR THE LOVE OF DOING IT.)

So, PFS-BatchKit-Manager is what gets you set up with a working harddrive (HDD).  The how-to instructions in the readme are straight up awesome and work great.

Please note: While the "How To Install" instructions give you all the files you need to write to your USB drive, you don't actually need to do everything it says if you want to use a different guide after you use it to do a basic format of the drive.  i.e.  If you stop here...

  1. In PFS BatchKit Manager Go to > HDD Management
  2.  Choose option 8 Hack your HDD To PS2 Format (This is only intended to be used as an entry point for the PS2.)

Then, you could follow _any_ guide that tells you how to install an HDD from a Memory Card/USB _also_.   Not saying there's anything wrong with the guide.  But, like all things hacking PS2...  You have a million paths to get there.

The next thing to know is that while FreeHDBoot and FreeMCBoot are the exact same interface... the difference is that FreeHDBoot on an internal HDD suffers because it leverages a custom Playstation 2 partitioning format.  You will find a whole bunch of great guides explaining this.  And some ones as wordy as mine going through a million steps and discussions.

So, while your next steps, using PFS-BatchKit-Manager's supplied files and scripts after step 2, or using whatever the current method of formatting/reformatting the HDD and installing FHDB and OPL are...  Remember that your next steps, whether you let PFS's scripts do it or not, are always going to be...

I don't want to tell you what is best above.  PFS does it.  and... After I screwed up things unrelated to it, I did it myself with the raw tools too. 

One thing is for certain though.  BEFORE YOU DO ANYTHING ELSE... 

  1. Fix the OPL to point to __common.
  2. And then go in and add OPL to FMCB's list of applications.


First the __common.  This note in PFR-BatchKit-Manager's help file about the config file is cryptic and important... 

How to install PS2 Games

NOTE: Before installing your games, it is strongly recommended to define your OPL resource partition or create the +OPL partition. I recommend using the __common partition by default.

 What this means is this...  Remember I said the file structure and partitioning of the HDD is weird.  You can't normally mount the drive in windows, and you can't just drag and drop PS2 DVD iso game files to it.

YOU WILL NEED TO EITHER USE A PROGRAM LIKE PFR-BatchKit-Manager, OR, figure out how to get networking going (I never could for many reasons) OR get very very used to transferring things to and from the USB thumb drive and even maybe editing files in the Configurator.

Because of this... Even if your Install of OPL creates a +OPL partition... don't use it.  Use the __Common...  as PFR's author recommends.

Lots of places dance around how to do this, but I'm going to make it very clear.

  • The file is called conf_hdd.cfg.
  • The exact text inside needs to be:  hdd_partition=__common
    • You can edit this inside of the PS2. OR You can edit this on your PC and put it on the USB drive.  Use a basic text editor.  I always prefer Notepad++.
  •  This file needs to go in this folder: hdd0:__common/OPL/conf_hdd.cfg
  • You have to use the wlaunchELF or ulaunchELF interface to do this. One important note here is that "Browser" is how the PS2 looks at memory cards.  "FileBrowser" is what you need here, and is inside the Launcher app.  It may have various names depending on how you installed it.  (See the "MENU" section 2 paragraphs down for more of that.)  Your x and o keys will swap depending on which interface and how you got in there.  It's all frustrating and confusing in these interfaces.  LOOK FOR THE KEY ON THE BOTTOM LEFT FOR WHAT IS "OK".  Once you get there, R1 opens a copy/paste/rename menu.  You need to "mark" the file before this.  When you want to edit on the PS2, pressing OK to select the file opens a text editor with a million hidden little menus and such.  You don't need to "mark" the file before editing.  GOOD LUCK.  lol.  I prefer editing on the PC first.

What this does is point your OPL to use the files on __common INSTEAD of +OPL.  You don't need _another_ partition on the drive, and they're getting away from the separate OPL folder.  Just don't do it.  You already have space reserved in the partition that holds __common.

Second is adding OPL to the MENU of applications.  This is one of the craziest and most confusing steps of PS2 hacking. 

People will try to convince you to use the "Browser" with HSSOSD.  It is slow and the icons are ugly and tiny, IMHO.  Don't fall into the trap.  Yes, you can set it up.  Yes, you can make it pretty.  But I prefer OPL.
 

YOU want to use OPL.  But, OPL doesn't always show up by default in FHDB after you install it.  Neither does any other app...  YOU NEED TO ADD IT TO THE APPLICATION MENU.

You do this by 

  • going to the Free HDBoot Configurator and 
  • going to Configure OSDSYS Options
  • Navigate to Configure Item 1.
  • Scroll left/right in this field to an Item # you want to overwrite or modify or create in a blank.
  • This is super confusing because not _all_ items are displayed, and some that are there are _not_ displayed.  I think this is because it only shows 1. All mandatory items like Browser all the time and they can't be changed and 2. Hides items where it can't find the item it's supposed to show.
  • I also found the interface lets you copy and move items (L2/R2 - read the bottom of the screen).  This can be helpful.  I put OPL to the top above xLAUNCHELF, and named it "PLAY GAMES (OPL)".  So it isn't so damn cryptic for non-geeks, and it is also visible by default on boot.
    • To do this, copy whatever Item 1 is, and paste it in a blank spot.  Then you can Modify Item 1 the way you want.
  • The thing you'll notice here is that you can map to ANY .elf file AND that it can be in ANY location.  It doesn't care, and I don't have any advice OTHER than to get OPL onto the HDD.
  •  In fact, as I was trying to get networking to work, at one point, I had like 5 versions of OPL saved out...
  • Some installers put 2 versions of LaunchELF in the menu for you... One for normal and one for HDD... There's no magic here...  If you open up their configs, you will see they have fallbacks set up... what does that mean?  It means you can cascade where/how it looks for files.  This is in case you have a need to have things to Memory Card if present, USB if present, and HDD as a fall back.  This is much like the boot sequence on a PC where you normally go to HDD, but if you plug something in, you want it to use what you plugged in.  YOU DON'T NEED 3 THINGS if you're just pointing to something on the HDD and don't need a fall back.
  • Once you're done... SAVE YOUR CONFIG TO THE HDD with  "Save CNF to hdd0"  IF YOU DON'T DO THIS YOU LOSE ALL YOUR WORK.

NOW, you should be able to reboot and open OPL and see that you have no games when you open it.

HERE'S WHERE I CRIED BECAUSE I COULDN'T GET THE "Make your PC read/write to your PS2 HDD" NETWORK GUIDES TO EVER WORK. I got close a million times.  There are a million things described.  But for me.  For either HDL or for NBD servers, I had varying degrees of failure and success just getting the server to start.  (This is with OPL version 1.1.0 being current release and 1.2 being in various beta states in Feb 2025.)  YOU SHOULD BE ABLE TO USE ONE OF THE METHODS.  I NEVER WAS ABLE.  BUT, HERE'S A ROCK SOLID WAY TO MANUALLY, PHYSICALLY, ADD FILES, CONFIGS, ART, AND OPL THEMES.

(I will not be documenting all the ways I failed because so many message board posts include people saying "well it worked for me" with people having the same problem.  But no solutions.  I only know 1 thing...  unless you have a reason to... DO NOT CHANGE THE DEFAULT SERVER SETTINGS for IP and such.  I got smart and thought I could set those to my regular network, but what that does is just get everything confused.  I only had success having them pointing away from my current router.) 

(Also, SMB refers to the PS2 reading files stored on an external SMB drive on your network.  SMB file saving is a COMPLETELY DIFFERENT THING than having your HDD in your PS2 be read by your PC.)

Now that you're ready to just give up on Network manually add files...

Here's how I MANUALLY added PS2 ISO's.

  • PREFACE - .iso's HAVE to be set up for the HDD in their own special partitions.  LET AN APP DO THIS FOR YOU.
  • First, download the PS2 games you want.  (And of course legally own a physical copy of.)
    • I do not cover Playstation 1 games and POPSTARTER here.  They use a different process, and I already have a hacked playstation.
    • Remember kids, as of this writing, googling "ROMS Megathread" and using the github site that comes up is the best way to find games.  (that of course you legally own a physical copy of).
  • Next, open the compressed file.
  • If it's an .iso, you're good.  Just drag to the DVD folder.
  • If it's a bin/cue file, you'll want to get an app like an old 5.x version of WinISO.  Use the convert function.  Find the bin file.  Save it as the exact same name with the .iso extension.  Now it's an ISO (even though it was really a CD in real life, it now is a DVD for the purposes of OPL's naming convention.)
  • I never tried any formats other than iso. 
  • Put all the .iso's in the PC's "DVD" folder where you are staging all your roms.
  • I messed around a bunch with OPL Manager (https://oplmanager.com/).  It is a very cool piece of software.  Most importantly, it has a great database connection for downloading the artwork.  And sometimes for downloading CFG files.  
    • It also really really wants you to rename your files.  And that interface is odd and painful at times.  And, I think, mostly unnecessary.  And it forces the names to be the 32 characters that OPL shows visually... but doesn't tell you how many characters over the limit you are.
  •  WHAT I USED was PFS-BatchKit-Manager again.
  • So, REMOVE your HDD from your PS2, cause you cried and the ethernet server method never worked for you.
  • Connect it back to your PC.
  • Use PFS-BatchKit-Manager's PS2 upload functionality.  Let it do everything it suggests.  Go eat lunch.  Come back after a while.
  • Then, try to use PFS-BatchKit-Manager's functionality to upload Art and Config files.  It's buried under "OPL management" as the CFG files and the ART files are used by OPL.  In that menu, you have to use " [1] Transfer OPL Resources".  It uses the folders alongside your DVD folder.
  • Once they're all uploaded, safely remove your USB from the PC, remove the drive from the USB, reinstall in your PS2, and .... configure some more OPL stuff below!
  • A NOTE:  ALL of the various utilities create the same kind of CFG and ART files. And, you do NOT need a special partition or any special tools to update or change these.  The naming convention is the code name SUSS_123_56 of the game.  You can obtain and load these in any way you want.  At one point, I filled in some missing ones using a transfer from the USB drive to the right folder.  And your use of +OPL and __common as the folder locations can be switched and moved around.  You can use the FileBrowser interface in xLauncherElf to do all this.

CONFIGURING OPL to actually show and play the games.

 This is actually much more confusing than it needs to be.  IDK why.  But it is.

First, you have to know that OPL turns off all the stuff you want by default.  So, I am getting bored of typing, but know these truths.

  • You can get themes here at ps2-home...  https://www.ps2-home.com/forum/search.php?keywords=&terms=all&author=&attr_id=13&sc=1&sf=all&sr=topics&sk=i&sd=a&st=0&ch=-1&t=0&submit=Search 
    • You transfer themes just like you transfer CFG and ART files.  Either use PFS-Batchkit or transfer using a USB thumb drive.
  • You have to turn ON hdd access in the interface by setting the hdd to "AUTO".  If you don't want other menu items you're not using, turn those off.
  • You also have to turn ON the usage of artwork.
  • Unless you're using blue tooth to connect to a PS3/4 controller, it seem to be best just to turn off PADEMU as that seems to be the #1 issue when you read about "why my game freezes" questions.
  • Every time you set something, you need to make sure to click "OK" and then to save your settings.
  • I do all my game renaming right in OPL.  I tried to figure out just how to rename things in OPL Manager and PFR-Batchkit on the PC, and it was just too painful when I couldn't get the network interfaces to work.  OPL's rename interface is weird cause you can't move the cursor left/right, but other than that works fine.  But also, the naming of the files themselves is not the naming in the config file which is not the naming the OPL shows in the main menu interface.  (The name in the config is for OPL's info page...)
  • OPL on most games lets you reset back to OPL by pressing select, start, R1, R2, L1, and L2 all at the same time.
  • USE THE COMPATIBILITY SETTINGS THAT PEOPLE SUGGEST ON THE WEB when you have weird stuff happen.  Most likely, the reason your game isn't working is because one of those boxes needs to be checked, or, as said above, PADEMU or VMC causes problems.  (I just use a regular memory card...)

I'm sure there's steps I've forgotten, but this was how I did it.  My apologies on this guide being sucky and horrible.  I just needed to brain dump on what I did and what tools I used to set up my PS2 HDD.

Sunday, August 11, 2024

How to set up a self booting dedicated Moonlight (Sunshine client of Nvidia's GameStream) on a Raspberry Pi 3B+

8/11/2024:  This guide shows you how to set up a Raspberry Pi 3B+ (and older?) to stream your desktop PC from anywhere on your home network to any TV in your house using Gamestream/Sunshine via Moonlight.

I use this so I can run full speed games and full sound applications and full video streaming from my main PC to my various TV's around the house and (shhhhh) to a monitor on KVM on my work from home desk setup.  Basically, these little ancient Pi 3B+'s are more than powerful enough to run full speed 1080p Moonlight.  Especially with wired ethernet.

---------------------------

Disclaimer: I am not an expert.  I'm bad at Linux.  I figured this out reading lots and lots of README's and proper wiki and FAQ's and TONS and TONS of message board posts.  The three main links you need:

https://www.raspberrypi.com/software/ - Bullseye 32 Bit Lite
https://www.raspberrypi.com/documentation/computers/configuration.html - How to use Raspi-Config
https://github.com/moonlight-stream/moonlight-embedded/wiki/Packages - Commandlines to install Moonlight.
https://github.com/moonlight-stream/moonlight-embedded/wiki/Usage - Commands for using moonlight.
https://www.makeuseof.com/what-is-systemd-launch-programs-raspberry-pi/ - Basics on how to set a SYSTEMD service to autoboot.

---------------------------
If you want to speed run this guide and are fluent in Linux/Raspian, try the following shorthand steps.  (HOWEVER, I have no idea what updates will be made by the Moonlight Embedded devs and Raspian devs, so please read the verbose version after this and use the hyperlinks in it if you want to be sure it's all still valid.)

  1. Install Bullseye 32 bit lite with Raspberry Pi Imager on a 4GB or higher USB device.  Make sure to set localization and, if using wifi, your wifi credentials with OS Customization.
  2. Plug in Keyboard, Mouse, and xBox controller to USB ports on Pi.
  3. Run first boot, and at the command line
  4. curl -1sLf 'https://dl.cloudsmith.io/public/moonlight-game-streaming/moonlight-embedded/setup.deb.sh' | distro=raspbian sudo -E bash
  5. sudo apt install moonlight-embedded
  6. sudo apt update
  7. sudo apt upgrade
  8. sudo nano /boot/config.txt and change "dtoverlay" to be dtoverlay=vc4-fkms-v3d
  9. sudo raspi-config and turn on 
    1. autologin, 
    2. Network at boot, and 
    3. set the GPU Memory to 256.
    4. If it doesn't reboot for you, do another sudo reboot
  10. Pair Moonlight with: moonlight pair.  (You'll need to get the Pair code from your PC running Sunshine.)
  11. Test moonlight with: moonlight stream -1080 -app "Desktop"
  12. Exit moonlight with: Shift-Ctrl-Option-Q
  13. Establish SYSTEMD service file:
    sudo nano /lib/systemd/system/moonlight.service
  14. Text of moonlight.service should read:

  15. [Unit]
    Description=StartMoonlight
    After=network.target

    [Service]
    ExecStart=moonlight stream -1080 -app "Desktop"
    #Restart=always
    User=pi

    [Install]
    WantedBy=multi-user.target

    (Note, the Restart=always is just needed if you want to auto-restart due to some kind of failure.  The # in front means it is disabled/commented out.)

  16. Test with: sudo systemctl start moonlight.service
  17. Quit Moonlight with Shift-Ctrl-Alt-Q.
  18. Now, we need to enable the service to run on every reboot with: 
    sudo systemctl enable moonlight.service
  19. And now, do a sudo reboot
  20. Enjoy your autobooting moonlight Raspberry Pi3+!

---------------
Below is my patented horribly wordy, document for myself by typing outloud and probably never going back and editing guide to setting up Moonlight on an ancient, dusty Raspberry Pi 3B+!  Worked for me as of 8/11/24.

Background: Ok, so, I had this set up and working great... and then my card died magically one day... AND I realized I had forgot to back it up and make a standard image for myself.  It's not too hard to set up, except the Autoboot isn't obvious and various Reddit threads via Google searching give too many options.  This will be the 3rd or 4th time I've done it without documenting the steps because of setting up various versions on different dedicated and PINN implementations.   And, there are lots of help files I used along the way, so since I have to look it all up again, I figured I should document this time!

You can set this up as one of your PINN OS's if you want, or just as a straight full OS.  The whole build fits on a 4GB SD card or USB drive (I'm gonna see if it fits on a 1GB drive someday, since I have a bunch of 1 GB USB thumbdrives laying around).  And also, since it's essentially a dumb client to your PC with no involvement on your end other than turning it on, and doesn't do any read/write cycles really... you can run it with the Pi as a physically switched on/off device.

Yes... Essentially, what I do is just turn on my Pi, set my TV to the Pi's in port... and the mouse, keyboard, and xBox controller just "work" like I'm on my actual PC.  With wired ethernet, it's almost just like you're at your regular gaming PC.   (Even on wireless, the streaming speed and lag is remarkably good.)

Quite honestly, I'm blown away at how good this works.

What does this build get you?

  1. Install of Bullseye lite (Legacy 32 Bit version) of Raspbian OS for Raspberry Pi 3B+ (YMMV on other Pi's) using Raspberry Pi Imager (https://www.raspberrypi.com/software/).
  2. Install of Moonlight Embedded.  (https://github.com/moonlight-stream/moonlight-embedded)
    1. Must use the "Embedded" version on this age/vintage of Raspberry Pi.
  3. Command lines to configure Moonlight.
  4. Command lines to set up Moonlight to autoboot.
  5. I don't offer advice on how to set up Sunshine (Main site: https://app.lizardbyte.dev/Sunshine/ Download link as of today: https://app.lizardbyte.dev/Sunshine/?lng=en-US#Download  Github as of today: https://github.com/LizardByte/Sunshine) or Gamestream, but I must say that setting up Sunshine on my Windows PC's was one of the easiest, "set and forget" and "completely negligible impact on performance" things I've set up.  The only thing weird about it is it goes through a web browser for the interface.  Don't let that throw you.  It works fine, but if you're a person like me who keeps 8 billion tabs in 3 million windows open in my browser, it can become odd to wait for your browser to open up.



Alright...  Here's the verbose steps...
  1. Grab an SD card or USB card...  I will assume you have some familiarity with Raspberry Pi Imager and that you have a 4GB or bigger SD card or USB card.  
    1. I highly recommend testing said card with h2testw or similar.  The official site for h2testw is https://www.heise.de/.  As of this writing, the h2testw download page is https://www.heise.de/download/product/h2testw-50539.  Please note that h2testw is wonderful for testing and seeing real world speed with the simple idea of writing over your whole card and then reading it back for errors.  HOWEVER, I have found that it _won't_ detect when super cheap chinese knockoff cards have issues with holding the 10k and 100k and more files you might like to have on an emulation system.  This is because it only stores 10-100 or so files on a typical USB drive or card.
    2. If you plan to boot from USB, 2 lessons learned... 
      1. There's thorough but somewhat confusing documentation here:  https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#usb-boot-modes
      2. This Instructable cuts directly to what you actually need to do:  https://www.instructables.com/Booting-Raspberry-Pi-3-B-With-a-USB-Drive/
      3. Often, you need to use a powered USB hub to put enough power to some USB drives.  I've needed a powered USB hub to be consistent with a 128GB drive that had a huge old LED on it, and also a 256GB SSD in a USB enclosure.  Other USB zip drives work fine.  YMMV.

  2. In Raspberry Pi Imager, choose your Pi 3 from the list, and then choose the older Bullseye Lite 32bit.  Other lite versions can work, but the good ol 32bit is all we want and need here.

  3. Then, pick your storage, and when it asks you to do the customizations, I highly recommend doing that.  Yes, you can use Raspi-Config to do it yourself or to change anything.  But it's tedious setting your localizations that way, so please do that here.   (One thing to consider... If you plan on using only wired... consider NOT putting in your wireless even though you can.  No point in confusing the damn thing.)

    (Choose "Edit Settings" and then "Yes". )
    (If you want SSH enabled by default, make sure to do that under services)



  4. Ok, now you should have a bootable plain jane install...  One that you can either plug an mouse and keyboard in directly to in order to configure.  Or one that you can SSH / Terminal into use the settings you put in on the OS customization step.  Run the machine for the first time.

  5. Optional: If you're using SSH, figure out your IP address or use raspberry.local and get a terminal.  Example, since I'm using my MacBook to write and take screenshots, I went to my wireless router's device list, and found the raspberrypi and the IP, and then at the command line of terminal, you just type "ssh 192.168.1.xxx", accept the fingerprint, mess up the password, get the password right finally, and you're in!  Please note the note below... don't use the default password!


  6. Now, we install Moonlight.  Unless you're really into code and compiling, just do the "package" version of the instructions: https://github.com/moonlight-stream/moonlight-embedded/wiki/Packages

    NOTE: please use what they say on the proper github... but, for documentation sake, you can see them in the screenshot here...  First step is the curl instruction that does all the prelim setup.

    Then the next step... actually install moonlight-embedded... make sure you answer "y" for yes, and then be patient for a while...

    Now, twiddle your thumbs even more as you get everything updated...  Again, another "y" for you here...

  7. Ok, so you've rebooted, and now it wants you to login.  Yuck.  We want this thing to autoboot.  So, 
    1. log in (or SSH in), and then type "sudo raspi-config".
    2. Select "System Options".
    3. Choose "Boot / Auto Login".
    4. Choose "Console Autologin".
  8. Next, we are going to tell it to wait for the network connection on boot.  This is important, I think, because with an autoboot of moonlight, you want the network connection going before it actually tries to launch and connect.
    1. Select "System Options" again.
    2. Choose "Network at Boot".  And tell it YES, you want to wait.
  9. Next Raspi-Config option... we need to dedicate lots more GPU Memory, so,
    1. Select "Performance Options" this time.
    2. Go to "GPU Memory".
    3. Type in 256.
  10. Good optional Raspi-Config option... if you'd like... Go to the optional and "Expand Filesystem".  That's a standard RetroPi thing, and not necessarily necessary on this build.  But, you might as well...
  11. Other Raspi-Config options are really cool.  And if you didn't localize your keyboard and such with the Pi Imager, do that now to prevent headaches.  But, I won't be covering them here as we don't need to deal with them.  One thing that is kinda cool is that Moonlight does work and look great on a CRT if you want to use the composite output.  It's not perfect, but it's a pretty quick and dirty way to output a modern Windows PC to a classic CRT Retro Television.  Just make sure to tweak your Moonlight settings.

  12. Go ahead and exit RASPI-CONFIG and reboot.

  13. Now, you'll need to fix your graphics.  
    1. There is a separate section on here about needing to update via rpi-update first.  I didn't have this issue.  I did it once on one Pi and I didn't like what it did, but I forget why.  The trick to the fix if you don't run it and break your system....is that every PC/OS flavor and text editor can read and edit the config.txt file on your card if you didn't do the rpi-update and need to.  (OR, you can start all over again and just repeat these steps in this guide again...)
    2. So, either way, you need to change the graphics driver in config.txt.  If you've never used nano before, here's what you do.
    3. Enter "sudo nano /boot/config.txt"
    4. Use your arrow keys to navigate to the right section, and add an "f" to the dtoverlay string.  (This is the part you'd revert back to by removing the "f" if you, for some reason, needed to do the rpi-update step.)

    5. Then press "Control x" to exit.  Press "y" to save.  And press "ENTER" to confirm the file name.
    6. And, give it the old "sudo reboot".

  14. Now we configure MOONLIGHT EMBEDDED!
    1. Use the commands here to get yourself going: https://github.com/moonlight-stream/moonlight-embedded/wiki/Usage
    2. If you've used the graphical interface of Moonlight before, these commands roughly correlate to the UI you're used to.
    3. First we start by Pairing to the target PC.  
      1. REMINDER: This guide is intended to set you up with a single, auto-booting install to one PC.  Turn on Pi, Pi Boots, you see your remote computer.  ... You may not want that... If so, you can stop here and just always do command lines from now on.
      2. Type "Moonlight Pair", and if you're only running one Sunshine computer on your network, it should find it on the network, and give you a PIN to enter on that Sunshine computer.  Enter it, and Moonlight is happy at the command line.
        (If you forgot, the default password for sunshine is sunshine...)

  15. So now, you can try your first shot at streaming. 
    1. Default is the Steam application.  But, that's not what I like, I like the default Desktop, as you can then just use all of windows and then just launch Steam from the desktop like normal.
    2. Type in the following command line: moonlight stream -1080 -app "Desktop".
      1. Note, on the graphical interface, I often like to double the bitrate that's suggested.  You can do that here with "-bitrate <bitrate> Specify the bitrate in Kbps".  But... I forget here what that standard is because it wants it in Kbps and not Mbps and I'm just too lazy writing this right now to play with that.  It's not really important what I do as you can always play with the command lines until you get it right for yourself and your situation.
    3. And, if you did everything right, you should be off to the races and live and streaming your Sunshine hosted system as if you were right there at the PC (or whatever you put in for the -app parameter.
    4. Remember, Shift-Ctrl-Option-Q is how you quit out of Moonlight to get back to the command line.   If you're using a remote terminal, you don't need to worry as "sudo reboot" also lets you reboot.  Hey, for fun, you can Moonlight to your computer running the remote terminal and run terminal virtually which is super cool of course!

  16. Now, it's the part that I always need to look up and mess up...  Autobooting.  The reason I always mess this up is that there are MULTIPLE methods of automating start-up tasks.  (Example: Great encyclopedic articles like this (read, but don't try to use because it's not a code/example type article): https://www.dexterindustries.com/howto/run-a-program-on-your-raspberry-pi-at-startup/)  A few are deprecated but people love them anyway.  And a few are XWindows specific and don't apply here (I'm looking at you, autostart).  
    1. My best success is SYSTEMD.  #4 on the cool article I've crossed out above.  SYSTEMD, from what I've read, is the current modern and standard default way to launch things.   The problem is it's amazingly powerful and configurable to the point of not being easy obvious.  And, it also suffers from having a folder location change for the settings from version to version.  Joy.
    2. So, here's the straightforward steps I took to make it work.  (Many thanks to this page for having a very simple/clear "hello world" example that I modified just slightly.  https://www.makeuseof.com/what-is-systemd-launch-programs-raspberry-pi/)
    3. First, we create a service for moonlight launching: 
      sudo nano /lib/systemd/system/moonlight.service

    4. Then, we enter the following as the contents
      [Unit]
      Description=StartMoonlight
      After=network.target

      [Service]
      ExecStart=moonlight stream -1080 -app "Desktop"
      #Restart=always
      User=pi

      [Install]
      WantedBy=multi-user.target

      (Note, the Restart=always is just needed if you want to auto-restart due to some kind of failure.  The # in front means it is disabled/commented out.)

    5. Now, Control X, Yes, and Enter to save.
    6. Test it at the command line if you like with: 
      sudo systemctl start moonlight.service

    7. Remember, you can quit Moonlight with Shift-Ctrl-Alt-Q.
    8. Now, we need to enable the service to run on every reboot with: 
      sudo systemctl enable moonlight.service

    9. And now, do a sudo reboot.  And with any luck, you're done!
Hopefully, this all worked!  I'm NOT A LINUX EXPERT AND LEARNED ALL THIS BY THE HELP FILES OF THE REFERENCED AUTHORS AND A THOUSAND MESSAGE BOARDS.   THANK YOU.   If anything here is wrong, or needs edited, please let me know.  Thanks!

Fixing Chips, Pits, Scratches, and Cracks on a Sony Trinitron CRT with RainX windshield repair

  So, a while back, I got a lovely Sony Trinitron TV with SVideo inputs.  Exactly the gaming machine I wanted.  Brought it home from FB mark...