Skip to content

Latest commit

 

History

History
391 lines (280 loc) · 13.9 KB

MANUAL.md

File metadata and controls

391 lines (280 loc) · 13.9 KB

Some License Nonsense

RetroCRT :: Utility suite to configure RetroPie for a CRT

Copyright (C) 2022 Duncan Brown (https://github.com/xovox)

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.

Updating Resolution

Currently there isn't an automated method for doing this.

There are two files that are used: ** low_res handles the boot & ES menu resolution ** super_res handles the emulation resolution

There are also alternate video modes in that directory that you can copy on top of what's there, or you can save your own. You're able to reset them via the RetroCRT setup system.

These are saved in the following directory:

/boot/retrocrt/video_timings/

Gotchas

Always Run RetroCRT Setup after RetroPie-Setup or OS Updates!

This could help avoid bricking your RetroPie installation!

Garbled Colors

You'll need to update /boot/config.txt and set the following to 519 for RetroTink & 0 for all other platforms.

dpi_output_format=0

becomes

dpi_output_format=519

Installation

Pre-Built Images

The release page has pre-built images

Manual Installation

I'm assuming you're able to SSH in, or have a monitor & keyboard. I typically connect my Pi via Ethernet when I'm first

You can also do the initial configuration with a monitor hooked up to HDMI.

Update Raspberry Pi OS

sudo apt-get update
sudo apt-get -y dist-upgrade

Update RetroPie

cd $HOME/RetroPie-Setup
sudo ./retropie_setup.sh
  • Option U "Update"
  • "Yes" to update installed packages
  • Update underlying OS packages
  • Wait for everything to finish
  • DO NOT REBOOT

Install & Configure RetroCRT

The install/config script is very straight forward and verbose

cd &&
git clone https://github.com/xovox/RetroCRT &&
cd RetroCRT &&
./retrocrt_setup.sh

Reboot!

sudo reboot

You should now be greeted by EmulationStation all ready to go!

Customizing

Splash Images

Currently broken! See issue #29 in our issue tracker.

We check for several images to display as a splash before loading our game. In my example, we're loading mspacman.zip under FBA/FBN. These are all in descending order of preference.

/home/pi/RetroPie/media/fba/images/mspacman-splash.png    <- custom splash image
/home/pi/RetroPie/media/fba/images/mspacman-splash.jpg    <- custom splash image
[preview image from gamelist.xml]
/home/pi/RetroPie/fba/images/default-splash.png     <- platform-wide splash
/home/pi/RetroPie/fba/images/default-splash.jpg     <- platform-wide splash
/home/pi/RetroPie/splashscreens/default-splash.png  <- system-wide splash
/home/pi/RetroPie/splashscreens/default-splash.jpg  <- system-wide splash

How Everything Works

Setup/Installation/Configuration

This happens in two stages

  • retrocrt_setup.sh
    • This prompts the user for information & then generates our configuration file
  • RetroCRT.yml
    • This is an Ansible playbook that reads the configuration & applies changes

Upgrading

Browse to the RetroPie screen in EmulationStation & select RetroCRT where it will prompt you to upgrade..

This is currently not inside of RetroPie-Setup!

Configuration Files

Some of this info is outdated & will be updated in the next major release

  • /boot/retrocrt/retrocrt.txt
    • This is the configuration file generated by retrocrt_setup.sh
  • RetroCRT/retrocrt_resolutions.csv
    • This contains per-game monitor resolution & orientation information
  • RetroCRT/retrocrt_timings/
    • This directory contains display resolutions that we dynamically switch to
  • /boot/retrocrt/wpa_supplicant.conf(.txt)
    • Define your WiFi configuration & country code, then RetroCRT will enable WiFi for you
    • If the file doesn't exist, re-run RetroCRT configurator with updates

Scripts

Some of this info is outdated & will be updated in the next major release

  • /home/pi/scripts/runcommand-onstart.d/
    • files/runcommand-onstart.d/01-splash.sh
      • This displays a splash screen
    • files/runcommand-onstart.d/75-set_screen_resolution.sh
      • This changes the screen resolution, typically to 1920x240
    • files/runcommand-onstart.d/99-retrocrtdebug.sh
      • This logs debug info to /dev/shm

Changing Screen Resolution

Some of this info is outdated & will be updated in the next major release

This happens before loading a game, and after the game exits.

RetroCRT/retrocrt_resolutions.csv
RetroCRT/files/runcommand-onend.d/99-set_screen_resolution.sh
RetroCRT/retrocrt_timings/

Generating RetroArch Configuration

We generate a per-game configuration for RetroArch to give it the following:

  • Screen horizontal & Vertical resolutions
  • Screen orientation
  • Any offsets for games that run > 240p
RetroCRT/files/runcommand-onstart.d/50-gen_ra_config.sh
RetroCRT/retrocrt_resolutions.csv

Reporting Issues

GitHub.com has built-in issue tracking, that's probably best.

If you don't want to sign up for GitHub.com, join our Facebook group and post questions or issues there.

Troubleshooting

Most issues can be solved by re-running the installer via the RetroPie menu. This will apply, or re-apply, all necessary changes. Simply select 'RetroCRT' from the RetroPie section of EmulationStation.

Possibly more information can be found in TROUBLESHOOTING.md.

DIY

I'm assuming you're able to SSH in, or have a monitor & keyboard. I typically connect my Pi via Ethernet when I'm first configuring it for ease.

You can also do the initial configuration with a monitor hooked up to HDMI.

  • Enabling SSH on the official Raspbian docs.
    • This is best solved by putting your SD card in another machine and creating an empty file called 'ssh' in the boot partition.
  • Wireless Connectivity is an option, but I prefer wired for simplicity.
  • SSH Clients

You can cut & paste this into your terminal.

cd &&
git clone https://github.com/xovox/RetroCRT &&
cd RetroCRT &&
/bin/bash ./retrocrt_setup.sh

Hardware Compatibility

If you're looking to connect your Raspberry Pi running RetroPie to an old school CRT set. You're going to need a few things.

Resources

Lowest End, Composite (Not Currently Supported)

NOTE: This method isn't yet supported by RetroCRT, but it will be.

You're going to need a cable with a 3.5mm (1/8th in) connector cable on one end and video/sound connectors on the other end. There are many cables that look exactly the same on the outside, but are wired differently on the inside.

  • OS Configuration Required

    • Standard Raspberry Pi distros support it out of the box, with configuration
    • RetroCRT will support this out of the box in the future
  • Software That Supports Connection

    • All Raspberry Pi distros
  • Hardware Required

  • Advantages

    • Low cost of entry
    • You can use 480i for menus
    • You can use 240p for games
    • Looks decent on small screens
    • Incredibly common on most CRTs
  • Disadvantages

    • Luma (light) and Chroma (color) are both carried on the same signal, so they interfere with each other
    • This is the lowest quality video output you can get on the Pi
    • This is prone to dot crawl

Mid-Range, S-Video (Not Currently Supported)

S-Video is a decent step up from Composite. You're separating Luma and Chroma which gives you far less interference, and better color depth.

  • OS Configuration Required

    • Customized Raspberry Pi OSs with specific timings set for S-Video, as well as setting video output over GPIO
  • OS Support

  • Hardware

  • Advantages

    • Better colors than composite
    • Less interference
    • Better clarity than component
    • Fairly common on CRTs
  • Disadvantages

    • Not natively supported by a Raspberry Pi
    • Additional hardware is required

Lower High-Range, Component/YPbPr

Component video actually encompases many video formats, but in NA it typically refers to a specific type of video called YPb/Pr... sort of the way we call all facial tissue Kleenex.

This format separates the red and blue signals from luma, and derives the green signal based on the red, blue, and luma signals.

  • OS Configuration Required

    • Customized Raspberry Pi OS with specific timings set for component, as well as setting video output over GPIO
  • OS Support

  • Hardware Required

  • Advantages

    • Output at 240p
    • Output at 480p, or 720p possible on HDTVs
    • Very high color depth and clarity
    • Fairly common on higher-end CRTs, which are very cheap/free by now
    • Cheap cables
  • Disadvantages

    • Requires moderately expensive hardware
    • Stuck at 240p or lower on standard CRTs
    • Fairly pricy hardware is required

Upper High-Range, RGB

  • Software Required

    • Customized Raspberry Pi OS with specific timings set for RGB, as well as setting video output over GPIO
  • OS Support

  • Hardware Required

    • Not region specific
    • RGB SCART CRT TV
    • RGB monitor (typical VGA)
    • RGB modded CRT TV
    • Professional RGB CRTs, typically used in media creation
    • The affordable Gert/VGA 666 gives you 18-bit (262,144) color.
    • The more expensive RetroTink Ultimate gives you 24-bit (16,777,216) color.
    • The awesome pi2jamma for a drop-in solution for RGB arcade cabinets
    • The awesome pi2jscart for RGB scart connections
  • Advantages

    • Fairly cheap hardware available
    • Incredible color depth, accuracy, and clarity. At, or near, arcade quality.
    • Inexpensive and open-sourced hardware is required
    • SCART is common in many countries
    • Many CRTs can be modded to accept this signal
    • Not affected by PAL/NTSC/SECAM regions
    • Can be used with a VGA CRT
  • Disadvantages

    • CRTs with OEM RGB support can be very expensive in the Americas
    • Full 24-bit color depth requires moderately expensive hardwwre
    • SCART isn't generally available in the Americas
    • Can be difficult to find and modify a CRT

Troubleshooting

See the troubleshooting doc.

Footnotes

I am not affiliated with Mike Chi & RetroTink.

                                                       .
                                                       ;\
                                                      /  \
                                                      `.  i          ,^^--.
                                                   ___  i  \        /      \              ,',^-_
                                                  /   \ !   \       |       |            / /   /
                                                  \   /  \   \      |       ;      ,__. |    ,'
                                                   4 |    \   `.    |      /      (    `   __>
                                                 ,_| |_.   \    `-__>      >.      `---'\ /
                                                /,.   ..\   `.               `.         | |
                                                U |   | U     `.               \    ,--~   ~--.
--~~~~--_       _--~~~~--_       _--~~~~--_       _--~~~~--_    \  _--~~~~--_   \  /_--~~~~--_ \
         `.   ,'          `.   ,'          `.   ,'          `.  |,'          `.  \,'          `.
           \ /              \ /              \ /              \ /              \ /              \

| |