Do you miss playing on classic Nintendo and Sega systems? Don't know what happened to your old Atari sold in the garage sale? Well, look no further to this one simple trick, you can start conquering your favorite games all over again, without having to blow into a cartridge that won't ever load. Follow me on this historical adventure of emulation in the modern age. The Raspberry Pi makes the perfect platform to play games from many different systems, old and new. Take some sweet Linux software, and pair it with a good set of controllers, and what you have is the ultimate mini emulation gaming system that is portable and fun to play.
Products Used:
RetroPie Kit - https://amzn.to/3cpbwQe
PlayStation to USB Adapter - https://amzn.to/3kLKaHg
8Bitdo Sn30 Pro+ Bluetooth Gamepad - https://amzn.to/32VFxnB
YouTube: https://www.youtube.com/watch?v=VIzTBbq8524
Presentation on how to chat with PDF using ChatGPT code interpreter
Play All The Games | RPi Emulator From Scratch - The Undercroft - May 2020
1.
2. Disclaimer
I am against piracy and do not support any manifestation of piracy
through emulation.
• You own a license for any ROM / image you download.
• You will NOT spread any of the files downloaded illegally.
• You will NOT use any files in order to make profits.
• You assume complete risk.
4. Agenda
• #whoami
• What is emulation
• History of emulation
• Legalities of emulation
• Emulation in the real world
• Build your own emulation pi
• Sourcing emulators and games
• Tips and Tricks for Fun and Profit
5. #whoami
• Masters of The Cybers from USF
• BS of IT from UCF
• DEF CON Security Goon
• OWASP Tampa Co-leader
• BSides Orlando Co-founder
• GuidePoint Security Splunk Dude
• SANS Certs and Stuff
• Undercroft Guild Master
7. What is an Emulator?
• Hardware or software that enables one computer system (host) to
behave like another computer system (guest)
• Typically enables the host system to run software or use peripheral
devices designed for the guest systems
• Video game console emulators are programs that allow a personal
computer or video game console to emulate another video game
console
8. How does it work?
• Code and data of a game are typically
supplied to the emulator
• ROM file (a copy of game cartridge data)
• ISO image (a copy of optical media)
• Created by either specialized tools for
game cartridges, or modified optical
drives reading the data
• Some emulators also require a BIOS
Image Source: infiniteneslives.com
9. Benefits of Emulation
• Most often used to play older 1980s to 2000s-era video games on
modern personal computers and more contemporary video game
consoles
• Playing Super Nintendo games on an Xbox
• Used to translate games into other languages
• Japanese only games in English
• Modify existing games
• Creation of new games for older systems
• Development process of "home brew"
Image Source: wikipedia.org
11. Early Emulation
• First freeware emulator software was NESticle
• Released in 1997 and ran in DOS and Windows 95
• NES emulator of choice for most of the late 1990’s
• Featured recordable playthrough
• Other NES emulators would follow
Image Source: wikipedia.org
12. Emulation Takeoff
• Other systems continued to follow,
Genesis, SNES, GB/Color, PS
• Snes9x released around the same
time, which is still used today
• PSEmu was one of the earliest
PlayStation emulators that could
run commercial games
Image Source: emulator-zone.com, megagames.com
13. MAME – Multiple Arcade Machine Emulator
• Free and open-source emulator designed to
recreate the hardware of arcade game systems
• The intention is to preserve gaming history by
preventing vintage games from being lost or
forgotten
• Now supports over 7,000 unique games
• Custom hardware to support buttons, coins,
and other inputs
• Custom frontend software, usually running
Windows or Linux
Image Source: pinterest.com
14. UltraHLE
• First successful Nintendo 64 emulator and pioneered a new approach
to emulation known as High Level Emulation (HLE)
• Instead of trying to emulate all components of a game console (such
as CPU) as accurately as possible, it tries to recognize what a game is
trying to achieve (like playing a sound) and emulates that function
• Very fast on basic hardware (1999), but only about 20 games were
playable.
• Discontinued within hours of release due to incessant user demand
15. Virtual Game Station
• Commercial PlayStation emulator for Macintosh
• First to run at full speed on modestly powerful
hardware (1999)
• Original 233 MHz iMac G3 with built-in ATi graphics
• Designed like the console – region locked and
copied games would not work, independent
NTSC or PAL versions
• Sony purchased the software and discontinued
it after a failed lawsuit but successful injunction
Image Source: wikipedia.org
16. Bleem!
• Commercial PlayStation emulator for PC and
Dreamcast (Bleemcast!)
• Sony pursued legal action against Bleem!
which was financially unable to defend itself
and was forced to go out of business
• Dreamcast version was limited to 3 games,
but improved graphics and increased
resolution
Image Source: wikipedia.org
17. Dolphin
• Free and open-source emulator for GameCube and Wii
• Released in 2003 and still developed today
• Its name refers to the development code name for the GameCube
• First to boot GameCube games, and later Wii games
• 100% legal and uses custom HLE BIOS
• Successfully able to boot ALL GameCube titles by 2016
18. Legalities and Fun Stuff
I am not an attorney and have no authority to give advice on legal matters.
Image Source: pinclipart.com
19. Basics
• Emulators themselves were never really illegal
• Unless they used some proprietary code
• Always the ROMs themselves, copies of games, that companies
fought hardest against
• Downloading of ROMs is illegal, sort of
• Using copyrighted code is illegal
• Copyrights last for 75 years
• But how can all of this still happen?
20. Fair Use – Gray Area
• If you already own an authentic cartridge, then wanting to
play it on another system should be okay, right?
• Is that game available on that other system?
• If you are keeping it to yourself, then there is no loss of
purchase, right?
• Rather than download the ROM, extract it using tools
• Similar to ripping a CD, which is broadly considered legal in the US
• It’s the concept of sharing the copy that becomes a problem
21. How Nintendo Really Feels
• How Does Nintendo Feel About the Emergence of Video Game
Emulators?
• The emulator promotes the play of illegal ROMs , NOT authentic games.
• Can I Download a Nintendo ROM from the Internet if I Already Own
the Authentic Game?
• The backup/archival copy exception is a very narrow limitation…
• …it is illegal to download and play a Nintendo ROM from the Internet.
• Making Old Games Available that are No Longer Being Sold?
• The problem is that it's illegal.
• Read More: https://www.nintendo.com/corp/legal.jsp
22. ROMs Crackdown
• In Late 2018, Nintento went after LoveRetro and LoveRoms, which
hosted classic games from Sega, Sony, Atari, and others.
• Ran by pair from Arizona.
• EmuParadise voluntarily removed ROMs from its website to avoid
litigation.
• Soon after, Nintendo launched its subscription service for the Switch
console to access some retro titles.
• LoveRetro and LoveRoms settled for $12M.
23. Leaked Nintendo Source Code
• Source code for Nintendo 64, GameCube, and Wii consoles leaked
this month!
• Could be used for improving emulators
• Would be illegal to use stolen code
• Dolphin Emulator team – “haven’t seen the leaks and don’t want to”
• Could be accused of using proprietary code and end the open source project
• Nintendo would need direct evidence of the leaked code appearing in
an emulator to have a strong infringement case
• Looking at the leak and using it isn’t enough because reverse
engineering code is legal in the US
25. Nintendo Virtual Console
• Originally released for the Wii, but present on the 3DS and Wii U
• Uses software emulation to allow the purchasing and playing of
games for old systems on this modern hardware
• Large collection of games spanning a wide variety of consoles
• NES, SNES, Game Boy, Game Boy Color, Nintendo 64, Game Boy Advance,
Nintendo DS, Sega’s Master System, Sega Genesis, TurboGrafx, Neo Geo, and
Commodore 64
26. Nintendo Classics
• Developed its own emulators for Virtual Console originally
• Also developed its own emulators for NES and SNES Classic mini-
consoles
• Devices run on a custom Linux build
• Hackable to add more games than stock 30 on NES and 21 on SNES
• Mini dedicated emulation systems
• Only play games from the system designed for
27. Microsoft Xbox
• Due to differences in hardware, the Xbox 360 is not natively
backwards compatible with original Xbox games
• Microsoft achieved backwards compatibility with popular titles through an
emulator
• Announced the Xbox One would be backwards compatible with Xbox
360 through emulation
• Xbox original titles would also be available for backwards compatibility
through emulation, but because the Xbox original runs on
the x86 architecture, CPU emulation is unnecessary, greatly improving
performance
28. Sony PlayStation
• PlayStation 3 uses software emulation to play original PlayStation
titles, and the PlayStation Store sells games that run through an
emulator within the machine
• PlayStation Classic retro console is found to run PCSX ReArmed
• ARM port of PCSX Reloaded, an offshoot of the original PCSX emulator, which
ceased development in 2003
• PCSX and its derivatives are open source under GPL
• Hackable to add more games than stock 20
30. Understanding the Stack
• Raspbian – Debian Linux-based operating system
• RetroPie – Multi-system software framework, providing
facilities for emulator launch and control, along with
configuration of common features such as screen
resolutions and controller setup
• EmulationStation – Graphical front-end allowing
selection of video game system emulators and games
• RetroArch – framework comprising numerous ‘cores’
emulating various consoles and home computers; the
cores are written utilising the Libretro API
Image Source: retroresolution.com
31. RetroArch VS RetroPie
• RetroArch is the Frontend for the Libretro API and makes a up a large
portion of the emulators included in RetroPie
• RetroArch and libretro provide a way to take an existing emulator and
load that emulator as a library or "core”
• RetroArch then handles the input (controls) and output (graphics and
audio) while the emulator core handles the emulation of the original
system
32. RetroPad
• When you configure your controller in
EmulationStation, the RetroPie setup
script automatically configures
RetroArch with the same controls
• RetroArch controls map real-world
controller buttons to a virtual
controller called a "RetroPad”
• A RetroPad has an ABXY layout like a
SNES controller plus four shoulder
buttons and dual analog sticks like a
Sony DualShock
Image Source: retropie.org.uk
33. Recipe for Success
• 1 Raspberry Pi
• Recommended 3B+ or 4B
• 1 Power Supply
• Make sure it has high enough amperage or you get
a little lightning bolt for under-current
• 1 Super Cool Case
• Some kind of enclosure
• 1 MicroSD Card
• Write RetroPie image to for OS
• 2 USB or Bluetooth Controllers
• PlayStation or Xbox controllers are great
Image Source: thepihut.com
34. Prepare SD Image for RetroPie
• Download RetroPie pre-made image
• https://retropie.org.uk/download/
• Flash to SD card using Etcher
• https://www.balena.io/etcher/
• Boot up for the first time!
Image Source: wikipedia.org
35. Configure WiFi & SSH
• Create a new file “wpa_supplicant.conf” on the boot partition of
the SD card
country=US
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="NETWORK-NAME”
psk="NETWORK-PASSWORD”
}
• Create a new blank file “SSH” on the boot partition of the SD card
38. Configure Controllers
• Press and hold “A” or “X” button to start mapping
• Each position is called out on the screen
• Press the corresponding button displayed
• The last will be a special hotkey button
• Used to launch the RetroArch game menu
• Usually “Select”
• Some Bluetooth controllers may require extra steps through the
RetroPie Setup Script
39. Set Cool Theme
• Theme library on the RetroPie website
• Download themes in menu:
• RetroPie Setup Script
• My Favorite: tronyfran
Image Source: retropie.org.uk
40. System Configurations
• Most configurations will be performed in the RetroPie Setup Script
• Bluetooth
• Additional emulators
• Additional ESthemes
• Splashscreens
• Updates
• RetroArch Configuration additional settings
• Netplay
• Cheats
42. One More Time!
• Due to the nature/complexity of Copyright/Intellectual Property
Rights Law, which differs significantly from Country to Country, ROMs
cannot be provided with RetroPie and must be provided by the user.
You should only have ROMs of games that you own.
44. Transferring ROMs
• There are three main methods of transferring roms:
1. USB – files copied to SD card of running system
2. SFTP/SCP – using SSH protocol to send files (default creds)
3. Samba Shares – locate a shared folder on your computer over the network
Image Source: retropie.org.uk
45. USB Method
• Create a folder called “retropie” on a USB stick with your computer
• Plug into the pi and wait for the light to stop blinking (or wait 30
seconds)
• Plug back into the computer and copy the rom files to their respective
console in “retropie/roms”
• Plug back into the pi
• Restart EmulationStation in menu
46. SFTP or SCP or Samba
• Login with default username “pi” and password “raspberry” (if
needed)
• Copy the rom files to their respective console in “RetroPie/roms”
• Restart EmulationStation in menu
47. BIOS Files
• Some systems require BIOS files
• PlayStation, Dreamcast, Genesis, Game Boy
• Most go into the “RetroPie/BIOS” directory, but check the docs
• Similar to finding ROMs, these are copyrighted and illegal to
download (you are on your own with this too)
48. Displaying Emulator Consoles
• When ROMs are added and EmulationStation is restarted, new
systems will appear on the home screen
• Not all consoles will appear with a ROM present, additional steps may
be required
• Some consoles, like Dreamcast, need to be installed using the
RetroPie Setup Script
• Emulators that start with “lr-” indicate LibRetro, while others are
standalone
51. External Storage
• Store larger games like disk ISOs for PlayStation and Dreamcast on a
NAS or USB device
• For USB, Disable USB ROM Service script, which copied the files from
the previous steps
• Both methods require the user to mount “/home/pi/RetroPie”
52. Handling of Saved Games
• Game memory cards are stored in files with the same name but
“.srm” extention
• If multiple games or disks can use the same save file, then use
symlinks to support additional games back to the save file
• Within “RetroPie/roms/gb”
• “Pokemon Blue.srm” & “Pokemon Red.srm”
• Remove “Pokemon Red.srm”
• ln -s "Pokemon Blue.srm" "Pokemon Red.srm"
• Same for multi-disk games such as Final Fantasy on PlayStation
53. Game Scraper
• Built-in EmulationStation feature to
add game box and info
• Reads file name and searches online
databases
• Download box art and makes ES very
pretty
Image Source: retropie.org.uk
54. Learn The Menus & Read The Docs
• There are many, many, many, configurations and options in RetroPie
• The main website offers great documentation and steps to perform
almost anything
• Check out YouTube for tutorials
• Don’t worry if you break it, just re-flash the card and try again
• All in the name of fun and games