This is a follow up on my earlier posts of playing emulator games on ps3 with linux… (pt. 1, pt. 2)
As I said earlier, I wanted to do a clean install with the brand new Yellow Dog Linux 6.2 and that’s what I did. The installation wen’t fine, same as usual, and it took forever. Suprisingly the display was set correctly to 720p without any manual tweaking. At the time I thought it would be the ideal resolution for playing emulator games (from my earlier experiences). There were narrow black borders around the screen, but I can live with that. So the next step, once again, was to install the actual emulators.
I added the PS3Bodega repos as usual and installed following emulators: xe, vice and e-uae. At the time I did this, the YDL 6.2 repos were still missing content, so I had to manually add the dvd as a repository source (there were instructions on the YDL forums for that), but it should only be a temporary problem and not needed in the future. Also, the bluetooth is not currently working in YDL 6.2, but I hope that too will be fixed soon. With the bluetooth not working, you have to use a usb cord for plugging in your controller, but luckily that works out of the box.
All the emulators I tried worked just about the same as before. I knew I couldn’t run most of the them in full screen, because the fps would drop dramatically. Instead I wanted to try the scaling method. With scaling, you run the emulators at their native resolution, which is usually very low. This way the fps should be fine. The scaler is an external program, which is developed for the CELL processor, and it uses the additional SPE’s to do all the work. The main CPU (PPE), which is running the emulator and the operating system, is not stressed. In other words the scaler program magnifies part of the screen, so you can get a bigger picture without using the emulators full screen or double screen actions, which would stress the main cpu and make the fps drop. The scaling method works quite well, but unfortunately it’s not very user friendly.
Scaler
To install the scaler, as root, do:
yum install scaler
Scaler is the original scaler program, but there are some modifications available, like f-scaler, which provides some additional features. Scaler is a command-line program which takes two arguments: -s and -t. “s” is for the scale, it has to be an interger, usually something between 2 and 4. The “t” is for timeout, I usually set it far (like 100000) and kill the process manually. This is how I use the scaler:
- Start the emulator just as usual and load up the game you want to play
- Open terminal and start the scaler: “scaler -t 10000 -s 2″
- -> The display should now be scaled in the middle of the screen
- Press alt-tab to switch to the emulator game
- Use alt-mousedrag to center the window so you can see the whole screen.
- Play
- When finished, alt-tab change back to terminal and ctrl-c to kill the scaler process
Not very userfriendly as you can see…
You probably might want to try the different scale options of the scaler for each emulator. Unfortunately you have to use integers, which makes it a somewhat limited tool. You cannot give the scaler an option like -s 1.5. I also figured that 720p is not very ideal for screen resolution, when using scaler, because anything over scale option 2 usually gets too big. So I changed my resolution to 1080p to get me more leverage when using the scaler. As you’re not using the emulator to get full screen, it runs perfectly ok, even if the reolution is so big. With vice for example, I use the scale option 4.
You can also start the scaler along with the emulator or create a script for it. You do it like this: “scaler -t 10000 -s 2 & x64 && killall scaler”. So that would first run the scaler, then the emulator x64 (vice) and afterwards when you quit the emulator it would also kill the scaler. I found this to be quite unusable, as you need menus to load up the games etc, but if you can or want to load the game using command line options of your emulator, it might be good way to go. I think people use that when playing mame games for example.
Afterthoughts
So using the scaler in my opinion is currently the best way to play emulator games in (almost) fullscreen. It’s not as easy and userfriendly as I’d hope it to be, but considering the alternatives, well, it’s basically the only way. Scaler is very helpful as it is, but I would like to see following features in the future:
- A Graphical User Interface. Would make it a lot easier to use for newbies
- More scale options, not only integers. At least “half modes” like 2.5 needed.
- The scaler could automatically get the target window size and calculate the optimal scaling to reach fullscreen (dynamic scaling)
- Interactive scaling through hot-keys (like Ctrl+ would increase the scale and Ctrl- decrease)
I know those features will most probably never be implemented but one can always wish right?
EDIT: Implemented Scalergui. Check it out!
And here’s a little tip for those who want to use the xe multisystem emulator. It’s from YDL forum. I had some trouble when I wanted to use the controller to play games, but replacing these options to the configuration file(s) helped (~/.xe/rc/xerc):
# Joystick bindings Joy 1 up 4 Joy 1 down 6 Joy 1 left 7 Joy 1 right 5 Joy 1 start 3 Joy 1 select 0 Joy 1 button1 15 Joy 1 button2 12 Joy 1 button3 14 Joy 1 button4 13