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
For a GUI, I suppose this could be done by creating a “frontend” for the scaler tool, but having keyboard shortcuts might be sufficient (see below).
I agree that non-integer scaling would be great, but apparently that is complicated due to the way the tool is programmed.
Dynamic scaling — this can (and has) been done using scripts. For example, with sdlmame we have a script (mame-scaler.sh) that uses output from sdlmame to get the game’s native resolution, and output from xdpyinfo to get your current screen resolution, then starts the scaler with the optimal resolution and lauches a patched version of sdlmame (which displays native resolution in full screen mode). See here:
http://pleasantfiction.ipower.com/bodega/viewtopic.php?p=1164#p1164
This can be done for other emulators as well, and is less complicated since consoles run at a fixed resolution, whereas sdlmame emulates many different games with different resolutions and screen rotations.
Interactive scaling — I use keyboard shortcuts to scale the screen to 2, 3 or 4x. See here:
http://pleasantfiction.ipower.com/bodega/viewtopic.php?p=735#p735
For me, an ideal scaler tool would work the same way the Zoom function works on the GameOS browser — smooth zoom in/out and panning controlled by the L/R analog sticks.
Thanks for the tips! The ability to use shortcuts should make things much smoother. Also, it’s awesome that someone has made a script for the dynamic scaling, even though it would be even better if the scaler could handle non-integer scaling. Good stuff anyways, especially for the MAME and other non-static resolution emulators. I think there isn’t currently much need for a GUI, with the limited features of the scaler, now that you can even use those shortcuts. But then again, you could make the GUI handle the keyboard shortcuts, so you wouldn’t need to do write the scripts manually and tinker with gconf-editor, and it would also work independent of desktop managers…
Say, there was QT libraries in PS3Bodega repos…. That should make a fun project
Is Linux on the ps3 worth it? I’m trying to decide between the Slim and the Original ps3, and it seems that a lot of people think that Linux can’t be used as media center or even for emulators like snes, n64.. etc in a reasonable way.
What do you think?
MKx: It really depends. If you have geeky tendencies and you’re willing to spend some time to learn about Linux, then yes. But if you’re looking for out-of-the-box experience, where everything just works you’re out of luck.
I wouldn’t use ps3 linux as media center, as the ps3′s own system already does a superb job with it (especially if you have computer running ps3 media server to stream video). In my opinion ps3 linux is too crippled for this. Some people might disagree.
Personally I have only used my ps3 linux to play emulator games and for that it’s ok. Complex emulators such as n64 and newer MAME games it’s no so good, since there isn’t 3D acceleration available. But for c64, megadrive, nes, snes and such it’s ok. And if playing emulator games with ps3 is your thing, Linux is the only way, since ps3 currently cannot be modded to run homebrew software.
Setting the system up is not easy and it takes time, but there are some interesting projects like zerogame http://blog.thezerogameproject.com/, that can do it for you almost automatically (running scalers etc). I set it up on my YDL 6.2, even though it’s not yet officially supported, but then again, I only used the basic installer script and emulator configurations and modified them to my personal needs. This is probably something that avarage ps3 linux user isn’t comfortable doing. Anyway, I think zerogame is the thing for people like me, who just like to play emulator games with their ps3′s and nothing else. Or at least then it will be, when it matures a bit.
Thanks for the informative reply bodhi. It makes things clearer.
Thanks for your visiting this http://www.glamoursell.com online free stuff online.
Sure an interesting article. Thanks
Post bookmarked and digged, I¡¯ll post my feedback on my profile asap
This is a good blog. Keep up all the work. I too love blogging and expressing my opinions. Thanks
Hi, thanks for your greeting share about this opportunity, i have been add your site to my bookmark, and i will subcribe your RSS to get update about your site, can i get some of your posting to post in my blogs, i think i can add some info to mine. Please be pleasure to visit my blog back, we can change each other. Thanks