sabato 24 agosto 2013

5 different ways to track frames-per-second


Hi guys! This is a tutorial about tracking some frames-per-second when running your favourite games. This tutorial will cover tracking FPS on native Linux games (2 ways to do that), on Crossover, on Wine and on PlayOnLinux!
On Windows, there's an easy way to do that, and that's using Fraps, which is an amazing program. Unfortunately, on Linux there's no program like Fraps, but don't desperate, i have the solution for you!
Why do you have to track FPS? The answer is pretty simple, sometimes you want to check the performances of the game on your OS, maybe changing some options to improve those performances and make the game run better than before.
So, let's begin with...

Crossover:

First of all, launch the program and go into the "manage bottles" section.
Now, select a bottle and click on "run command..."



In this section, select the right command (the main executable of the game), click on "debug options", then "create log file", and write "+fps" inside the "other:" blank line.



Then, click on "run". At this moment, the program will ask you where to put the log file you're about to create, so choose the folder you prefer and give a name to the file (for example: NBA 2K13.log).
Play the game as usual. The more you play it, the more it will be accurate.
When you go back to the desktop, double-click on the log you've created.



This is the only way to do that. You can't track FPS in-game, but you can get informations about the lowest and the highest FPS you get inside the game, and an average value of them (the average value is the number which is repeated more times).

PlayOnLinux:

Launch the program, click on a shortcut and then on "configure".
As you can see, there's a "debug flags" line. Write "fps" inside that, and close the window.



Now, instead of running the game with the "run" command, click on "run debug".
It will open a window, the debug window, where FPS are tracked.
Play the game as usual. The more you play it, the more it will be accurate.
When you go back to the desktop, the window is still opened.



You can choose to check your FPS inside the window, or open the log file. If you want to do that, click on "find this log file", it will open a folder (/home/yourusername/.PlayOnLinux/wineprefix/nameoftheshortcut/), and it will tell you that the log file is called "playonlinux.log". Open that file, and you've done it!



This is the only way to do that. You can't track FPS in-game, but you can get informations about the lowest and the highest FPS you get inside the game, and an average value of them (the average value is the number which is repeated more times).

Wine:

Open the terminal inside the main directory of the game.
Then, run this command "WINEDEBUG=fps wine ./mainexecutableofthegame.exe 2>&1 | tee /dev/stderr | grep --line-buffered "^trace:fps:" | osd_cat".



The game will open, and you will see in the left-upper part of the screen, the FPS you're getting while playing.



This is an easy way to track your FPS, but nothing will be saved inside a file.
If you want to save your performances inside a file, you have to run this command instead of the previous one: "WINEDEBUG=fps wine ./mainexecutableofthegame.exe &> /home/yourusername/Desktop/nameofthelog.log | tee /dev/stderr | grep --line-buffered "^trace:fps:" | osd_cat"



The game will run, you will NOT see the FPS while playing the game, but they will be saved inside a file. Close the game, go to the desktop, open the file and...



Native Linux client (debug console method):

This method works only if the game you're running provides a debug console.
In general, you can search "nameofthegame show fps" on Google to find out if you can track FPS in your game without external tricks.
For example, Half-Life provides a debug console which can be shown with the "\" button.
The command to show FPS inside the game is "cl_showfps 1"



Close the console, and this is the result..



Nothing will be saved inside a file and there's no way to do that.

Native Linux client (Mumble method):

If your game does not provide a console or any way to show FPS, Mumble is what you wish for.
Mumble is a teamspeak-like program, which provides some overlay options, including FPS tracking.
First of all, install it with the command "sudo apt-get install mumble".



Now, if you use a 32-bit version of Ubuntu, you can easily skip the next 3 steps.
But, if you use a 64-bit version of Ubuntu, you may have some library issues. Here's the way to solve those problems.
Open this link: "rpmfind.net/linux/rpm2html/search.php?query=libmumble.so.1".
Download the file "mumble-plugins-1.2.4-0.20120422.1.i586.rpm".



Extract it with the archive manager to your desktop folder.



Now, open a terminal inside the extracted /home/yourusername/Desktop/usr/lib/mumble/ folder.
Run the command "sudo cp .* /usr/lib32"



Then, finally open the program. Open "settings -> overlay". Click on "show FPS counter" and check if "enable overlay" is ON.



DO NOT CLOSE MUMBLE. This is very important, do not close it. Leave it open (you can reduce it if you want).
Open a terminal inside the folder of the game you want to play.
Type this command "mumble-overlay ./executableofthegame"



The game will run.



And then, you will see your FPS counter in the left-upper part of the screen (yeah, just like FRAPS).
Nothing will be saved inside a file and there's no way to do that.

So, if you enjoyed this tutorial, or you have some other tips, or you want to ask me anything, feel free to send me an email or just answer this post, i will always answer you!

4 commenti:

  1. https://github.com/nickguletskii/GLXOSD
    is the answer

    RispondiElimina
    Risposte
    1. No it's not.
      GLXOSD can track FPS of native Linux games only.
      I tried with several Wine and Crossover games, and it didn't work...
      But thanks for the tip anyway!

      Elimina
  2. "WINEDEBUG=fps wine ./mainexecutableofthegame.exe 2>&1 | tee /dev/stderr | grep --line-buffered "^trace:fps:" | osd_cat"
    I think there is a small typo in here, it should be a "+" before "fps".
    Like: WINEDEBUG=+fps wine

    RispondiElimina
    Risposte
    1. Yes, it should work if you use wine without GUI. Thanks a lot :)

      Elimina