alt.hn

6/30/2026 at 5:10:26 PM

Reverse-engineering Codemasters' BIGF archive format in Ruby

https://davidslv.uk/2026/06/30/reading-binary-in-ruby.html

by davidslv

7/4/2026 at 4:35:16 AM

Ruby's un/pack is of course heavily inspired by Perl's: https://perldoc.perl.org/functions/pack

However, slicing strings is a little easier syntax-wise than in Perl.

by tn1

7/4/2026 at 10:16:24 AM

Ruby is always a pleasure to use. Another very good language for parsing binary is Erlang/Elixir where you can pattern match against the raw bytes specifying sizes, endianess, etc and its all too well integrated in the language.

by dahrkael

7/4/2026 at 8:21:16 AM

What a fun article to read. This is such a cool showcase of the languages capabilities and standard library that comes with it. There is a gem named ”Ronin”, which is supposed to cover cases like this. But in your case, it doesn’t seem to be needed anyways.

by Alifatisk

6/30/2026 at 5:12:44 PM

Author here. This started as a hobby attempt to understand Codemasters' old driving AI, which had received quite a few interesting game reviews at the time. Which meant first reading their "BIGF" archive format. The surprise was Ruby: String#unpack is basically a fast, C-backed binary parser hiding in the stdlib, and the whole reader is dependency-free. Repo (MIT): https://github.com/davidslv/bigf

Honest note: AI-assisted throughout — I steered and verified every claim against the bytes. No game data committed; tests synthesise fixtures from the documented format.

by davidslv

7/4/2026 at 4:24:22 AM

Neat project. I just wrapped up a somewhat similar, but very limited project to rip assets from Multimedia Fusion 1.5 (.cca) files. I'll throw it up on Github one of these days...

The writeup and even your comment also scan as AI-written to me. Are they?

by fwipsy