Biku 1.2

What it does

screenshot

Before using!

The first time you start the program, make sure you have osu! closed. If you have installed in another location than Program Files/x86, you will prompted to select your osu! folder location. You don't have to insert a osu! API key when first asked, but for the best user experience it is recommended in doing so. (You can do it later)

More info here. Biku will store in the same path is located a file called biku-cache (it is a hidden file, so you won't see it unless have activated that on Win folder options). This file is for storing a minified osu!db with osu filehashes and filenames, also the location of the osu! folder and your osu! API key if you set it. Because biku-cache stores your osu! API key, DO NOT SHARE the file biku-cache.gob with ANYONE. (I know you probably won't anyways, but it's worth mentioning)

Download

v1.2: Fixed bug from v1.1.1 v.1.1.1: Added Appdata/Local/osu! to default locations v1.1: allow to select "All time" in time filter, and few optimisations v1.0.2: Take in account BeatmapDirectory from osu! settings, thanks to lubieerror for pointing it out and also solving it.

Save to file the stacktrace in case of panic/crash v1.0.1: Now it shows more accurate pp values (before it was off by ~5%) and fixed the grading system.

How it works

It gets the recent replays from the folder Data/r or scores.db located in the osu! folder. From each replay it calculates the pp for each one from its accuracy and combo. This is the final result:32bit version: biku-x86.exe 64bit version: biku.exe For calculating the pp it is needed the .osu file, and since the osu! replay file only saves the hash of the .osu file, it is needed to access to osu!db file and create a dictionary of .osu hashes. Because we don't want to interfere with osu!db while osu! is open, the biku-cache stores a minimal version of the osu!dbThe source can be found in github Virustotal scans 1 2 . Some AV says it is malicious code, don't know if your antivirus will detect it as a malware. In any case, these are false positives.