ECE497 Project - PS1 Emulator Console
Embedded Linux Class by Mark A. Yoder
Team members: Michael D. Rosier
This project sets up a ps1 console emulator onto the beaglebone and controls the games using a connected dualshock 3 controller. It will also be able to display onto monitors or TVs. The games played on the beaglebone are loaded from CD drive. In addition the PS3 controller can be connected via Bluetooth by using a Bluetooth dongle. I got the emulator to run on the beaglebone and display it onto a screen. I also got the bluetooth connection to the PS3 controller to work. running games straight from the cd drive didn't work, but I was able to download an convert the cds to bin/cue files which the emulator can run. In addition, the audio doesn't run very smoothly. It stops every so often even though the game itself is running smoothly. The overall console works and can run on its own. Even with the few problems I would say that the cd drive, bluetooth connection, display, and emulator all work effectively together as a ps1 emulator console.
this build consists of a few necessary components:
CD drive: (I would recommend because it doesn't need drivers and it's a cheaper option) https://www.amazon.com/gp/product/B00Y82T6SI/ref=oh_aui_detailpage_o01_s01?ie=UTF8&psc=1
Bluetooth dongle: (you can use any that work with linux but this is the one I used) https://www.amazon.com/gp/product/B009ZIILLI/ref=oh_aui_detailpage_o01_s00?ie=UTF8&psc=1
Powered 4-Port USB hub: (has to be USB 2.0 in order to work) you can find these in almost any large store: Best Buy, Target, Walmart, etc.
PS3 controller (not third party): (third party controllers do not work with this console) you can get Sony PS3 controllers at Gamestop and on Amazon.com.
PS1 Games: you can get PS1 games on Gamestop's store page and on Amazon.com.
Beaglebone Black: can be found on Digikey, Mouser, Adafruit, etc.
the approximate total cost is $120 + $5 per PS1 game
1) Flash an microSD card with the latest stable Debian image. this can be found here: https://beagleboard.org/latest-images
2) Attach all of your devices to the beaglebone and insert the microSD card. using a Linux OS or a Virtual Machine, connect to the beaglebone.
3) clone a Github directory called https://github.com/rosiermd12/Michael_Roiser_ECE434/hw11.git
4) once done downloading, run the setup.sh file. this file will download all the necessary packages and code, and set them up to run on boot up.
first you need to pair your PS3 controller:
to do this you should have your ps3 controller connect to your beaglebone black before start up. When the beaglebone leds start blinking at a constant rate, the controller is paired. for the beaglebone to reconize this change, you have to restart the system.
configuring controls for PCSX reARMed:
run the console with no cd in the cd drive. A menu should pop up with PCSX shown in the background. using the left ANALOG STICK, SELECT, and L3 to navigate the menu screen, select controls > player1 and edit each button by using SELECT and a button on your ps3 controller you want to bind it to. exit PCSX and reset the system with a game in the cd drive.
the way that this console runs games is by checking if you have the inserted PS1 game on your beaglebone. if not, then your beaglebone will download and convert to a bin/cue file. (NOTICE: this download will take a few minutes to finish so don't panic if you don't see anything on screen for a while). once done downloading the game should pop up on your connected screen.
Theory of Operation
An Emulator called PCSX reARMed (due to it being design for a arm processor) uses the built in gpu called neon to process the graphics. it is later displayed using a video driver called x11. The audio coming from the beagle bone also goes through a driver called ALSA. Combined with the PS3 controller which connects via bluetooth using a special driver called sixad to recognize and run the controller, and you get a PS1 console that runs PS1 games and and is controlled via buetooth.
1) find ps1 emulator that will work on arm processors
2) get emulator to work on my beaglebone
3) get cd drive to recognize ps1 cds.
4) connect ps3 controller via bluetooth
5) put code together to run independent of a computer
look into possible ways of running games from the cd so download time can be reduced
overall the PS1 emulator console works well. it is able to run independently from the computer and is capable of using a PS3 controller via bluetooth, and run PS1 game cds (after they are downloaded). As for possible work in the future, I would have to say that the audio output from the beaglebone needs to be improved. adding onto that, I think having communication to google cloud via Ethernet to document play time of each game would be interesting.
Embedded Linux Class by Mark A. Yoder