This section contains some of the projects I did that I think are worth showcasing, not limited to software :)

bubblesub

Since aegisub, “the” program for anime subtitles, didn't actually fit my needs, I ended up creating my own subtitle editor that works with ASS/SSA subtitles. It features video preview, spectrogram, video band, frame synchronization, slow playback with pitch correction and advanced plugin system.

  • Python
  • PyQt5
  • numpy
  • Pillow
  • mpv
  • FFMS2
  • FFTW
  • GNU/Linux

https://github.com/rr-/bubblesub

Tomb1Main

An open-source reimplementation of Tomb Raider I (1996) that adds a bunch of new features to the game, such as enemy healthbars or fly cheat, and fixes many of the original game bugs. Currently it has reverse engineered everything from the TombATI implementation apart from the rendering code.

  • C
  • DirectX
  • reverse engineering

https://github.com/rr-/Tomb1Main

DRM and TCT video frontends for mpv

At some point my notebook hard-drive was broken and I had to boot it from a USB stick. To save resources, I didn't use X and instead booted straight into Linux console. This notebook, however, was primarily used to play anime, and at the time the video player of my choice, mpv, required X or Wayland server to be running. So I coded two video outputs for it: DRM (that lets you play videos on Linux systems without having to run X server) and TCT (that lets you play media in your terminal with much better fidelity than libcaca).

https://github.com/mpv-player/mpv

CRC manipulator

A utility that lets you manipulate CRC32 (and few CRC16) checksums of your files by appending a few special bytes at the end. The motivation for this project is largely in the anime fansubbing scene – releases there often have checksums in their names, and this tool was created to let the groups change these checksums into any numbers they wish to.

  • C++
  • QT
  • multiplatform

https://github.com/rr-/pycrcmanip

Knytt Underground maps

Knytt Underground is a great 2D platformer with a massive world and very memorable characters. The exploration had proved to be challenging, so I decided to create a map of it. (The image to the side shows less than 2% of the entire map.)

  • Python
  • reverse engineering

https://github.com/rr-/kug-mapper

Coding for Tsujidou-san no Jun'ai Road

Tsurezure Scans, a group that creates fan translations of games and manga, had invited me to work with them on translating “Tsujidou-san no Jun'ai Road”. I managed to reverse engineer the game to the extent that was necessary for the project, while the other two guys translated the entire thing. The project was a success and the game saw a popularity boost in the West.

https://github.com/rr-/tsujidou

Progress Quest: the CLI edition

I've ported Progress Quest, a popular zero-player RPG, to run in a terminal. The gist of the game is that once the player has set up their artificial character, there is no user interaction at all; the game “plays” itself, with the human player as spectator. This has led me to think that rather than a web-browser, the ideal environment for such a game is a text console, so that the game can be easily run on servers and thus have very long uptimes.

https://github.com/rr-/pq-cli

arc_unpacker

A huge data mining tool that extracts media from various Japanese games of the visual novel genre; supports over 450 games. Over time, the project became very popular, which was reflected in the ever-increasing demand from the community to support new games. At the same time, the high technical skills needed to analyze and reverse the algorithms used in these games meant that there was no one there to help. Eventually I ceased to enjoy working on it and decided to abandon it.

  • C++17
  • multiplatform
  • reverse engineering

https://github.com/vn-tools/arc_unpacker

szurubooru

A web gallery with users and a robust permission system. Supports tagging, tag suggestions and implications, videos, sticky annotations, detecting visually similar images, rating, favoriting, rich search system, solid API and more. Although I don't use it myself anymore, I managed to build a strong enough community around this project that it now lives on, maintained by its community. At that time, I didn't use any particular framework and went with an inhouse solution for both the frontend and the backend, but from the perspective of time I would probably go with Django and react.

  • Python
  • WSGI
  • Pillow
  • ES6
  • Docker
  • PostgreSQL
  • elasticsearch

https://github.com/rr-/szurubooru

MALgraph

A statistics service for MyAnimeList users that let you show, among other things, the distribution of your ratings, what decades you like the most, anime recommendations and even achievements. Co-developed with this guy. Once very popular (many users posted a badge of their rating distribution on their profiles), abandoned after MyAnimeList shut down their APIs.

  • PHP
  • CSS
  • Javascript
  • JQuery
  • SQLite
  • Apache
  • mod_rewrite