So recently I bought a game on Steam called Puyo Puyo Tetris. It's a crossover between... well... Puyo Puyo and Tetris! I've had a few good matches here and there with some friends and the game lets you save good matches as replays. With replays, you can go and rewatch gameplay at a later time. You can also slow down or speed up the gameplay as you wish when playing them back.
Okay that's a pretty useful feature right? Well it is useful until you hit the absurd 50 replay limit. For a PC port, I would've expected something like in Quake or Half-Life where the replays are stored in a separate file (and in an unlimited quantity), but unfortunately that isn't the case here. Nope, we're stuck with 50.
Well I happened to be bored and had a really good cup of coffee, so I hacked something up to make this possible. Introducing CN_PPTRM (Clara Nguyen's Puyo Puyo Tetris Replay Manager). This is a tool that artificially removes the 50 replay limit by letting you extract the replays from your save. Nifty huh?
How it works
First, we need to understand how Puyo Puyo Tetris stores data. The replays
are stored in
data.bin... all 50 of them. And all 50 of those
are in a fixed spot in that file. That file is constructed to never change
size either. This explains why the limit is hardcoded. CN_PPTRM takes
advantage of this simple format and just jumps straight to where the replay
is stored to extract it. The game does not have any checksums to check if a
replay is legitimate or not. So we are able to extract replays from the
save, as well as import replays into it and it'll work.
"How does it remove the 50 replay limit?"
Well, it "artificially" does. The save will always have the 50 replay limit. But you can choose which 50 replays you want to store in it. The others are stored on your hard drive. Makes sense?
"Your program exports 'DEM' files. What are those?"
It stands for "Demo". In games like Quake, Half-Life, and Counter-Strike, the concept of recording inputs to play back in the future is called Demo Recording. So I named this based on that. Those games actually have entire communities driven on posting these kinds of files due to their small filesize (usually Kilobytes or just a few Megabytes). Puyo Puyo Tetris replays are around 91 KB in size, and can be compressed down to 6-12 KB. My program will do that compression for you via Gzip.
"Why can't I just record and delete?"
Fair point! That is a solution (it’s what everyone is doing, including me). If you are a YouTuber that only cares to upload, this tool won’t help you. This is only for those who wish to archive in the most efficient way possible (a few KB per match as opposed to a huge video file of potentally hundreds of MB). It also allows you to go back at a later time and record the gameplay at whatever resolution and framerate you wish.
Source Code & Download
This software is open source and I don't really care how people use it. You
can get the source code from the
repository. You can also get a compiled Windows binary from the
Releases tab. This is pre-release software.
Use it at your own risk and please back up
using it. Enjoy!