Play All The Games | RPi Emulator From Scratch - The Undercroft - May 2020

Information about Play All The Games | RPi Emulator From Scratch - The Undercroft - May 2020

Published on June 26, 2020

Author: JonathanSinger5



1. 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.

2. Now that’s out of the way…

3. 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

4. #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

5. Basics of Emulation Pong 2600 5200 7800 Image Source:

6. 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

7. 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:

8. 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:

9. History of Emulation

10. 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:

11. 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:,

12. 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:

13. 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

14. 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:

15. 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:

16. 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

17. Legalities and Fun Stuff I am not an attorney and have no authority to give advice on legal matters. Image Source:

18. 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?

19. 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

20. 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:

21. 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.

22. 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

23. Emulation Applied Today Image Source:

24. 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

25. 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

26. 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

27. 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

28. Build Your Own Emulation Station Image Source:

29. 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:

30. 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

31. 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:

32. 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:

33. Prepare SD Image for RetroPie • Download RetroPie pre-made image • • Flash to SD card using Etcher • • Boot up for the first time! Image Source:

34. 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

35. Plug In & Power On!

36. Controllers Image Source:

37. 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

38. Set Cool Theme • Theme library on the RetroPie website • Download themes in menu: • RetroPie Setup Script • My Favorite: tronyfran Image Source:

39. 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

40. Sourcing Emulators & Games

41. 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.

42. Google • Really, you may find what you are looking for Image Source:

43. 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:

44. 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

45. 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

46. 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)

47. 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

48. Tips & Tricks Image Source:

49. YouTube Channels Modern Vintage Gamer Too Late Nate ETA PRIME Gaming Historian Image Source:

50. 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”

51. 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

52. 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:

53. 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

54. Questions? Image Source:

#whoami presentations

Zer 0 no zer(0 day)   dragon jar
25. 09. 2020

Zer 0 no zer(0 day) dragon jar

Related presentations

Other presentations created by JonathanSinger5