What you will need (not included):
A CRT monitor supporting your desired input connection.
The correct cables for your preferred connection.
A Raspberry Pi 2, 3 or Zero WH (with headers)
A good quality power supply and USB cable. I can't stress this enough. If in doubt, buy the official 2.5A adaptor.
The instructions assume basic familiarity with the Raspberry Pi (e.g., making SD card images, setting up a network, transferring files).
The instructions also assume basic familiarity with your video equipment (e.g., connecting the cables, configuring the inputs to the right mode).
Alternatively you can download Mike Chi's latest pre-made Lakka image for RPi 2/3/3B+/Zero here. Put your ROMS on a USB stick and you should be good to go
*Note Mike's Lakka image can't be expanded to fill an SD card, and requires users to use a USB storage (or SMB network drive) solution.
Copy it over to your SD card, add games and play!
Disclaimer: RetroPie/Lakka of course belongs to the creators and I thank them for their hard work. Mike takes absolutely no credit besides modifying the config files. I do NOT supply or link to ROMs or any other copyrighted material.
RetroPie image for PAL is supplied here by Shane (Vykyan)
Advanced Display Modes (Lakka)
The Lakka image has per-configured timing for other modes in addition to 240p. To use them, insert the imaged SD card to your computer. Open the config.txt file. You will find this block of settings: hdmi_timings=2048 1 180 202 300 240 1 3 5 14 0 0 0 60 0 42954545 1 #240p - NTSC perfect clock based on SNES/NES timings #hdmi_timings=2048 1 180 202 300 480 1 6 10 28 0 0 0 60 0 85909090 1 #480p #hdmi_timings=2048 1 180 202 300 240 1 3 5 14 0 0 0 120 0 85909090 1 #240p at 120Hz #hdmi_timings=2048 1 40 442 200 240 1 3 10 8 0 0 0 120 0 85909090 1 #240p at 120 Hz. modified timings for Apple 21in CRT #hdmi_timings=1280 1 80 72 216 720 1 5 3 22 0 0 0 60 0 74239049 1 #720p
Remove the # symbol in front of the line corresponding to the mode you wish to use. Make sure there is a # sign in front of all the other lines.
The 240p 120Hz mode is suitable for VGA monitors. Running at a vertical refresh of 120Hz allows the monitor to display 240p while maintaining a 31.5kHz horizontal sync. This is great to get real scanlines without using a shader which throws away half the screen brightness. A side benefit of 120Hz is that you get lower lag. To reduce motion judder, go into the video settings and set set Vertical Sync Swap Interval to 2 from the default setting of 1. Also if you're using a VGA monitor, don't forget to slide the sync switch from CSYNC to HV.
The 720p and 480p modes should work with both VGA monitors, HD CRTs and multiformat PVMs/BVMs. For VGA monitors, don't forget to set the sync switch to HV. For PVMs/BVMs either use component video or use a VGA->BNC and set the sync switch to CSYNC. For HD CRTs, use the component video output.
If you're in 720p or 480p, you'll need to go into the video settings and adjust the vertical viewport so that the display fills the screen.
Of course, S-Video and Composite will only work in 240p.