Announcing na_game_tool 0.2.0

As hinted in my previous posts, I’ve released na_game_tool version 0.2.0. Of course it is available at its dedicated page (and now there’s a link to that page in the “Multimedia Projects” link category). Here I’d like to talk about what’s changed in it and in NihAV.

Probably the most important part is a support of a dozen new video formats—that’s the main task the tool should do after all. I’m not going to duplicate the changelog already presented at its page so those zero people who care may look there. But in the same time it’s worth nothing that I’ve move support for three obscure formats from NihAV (i.e. adapted the code from there and removed it from nihav-game crate). After all, I added support for some game formats there in the first place because I had no other place for that but I did that mainly to test whether I understood their workings right. Now as na_game_tool exists it’s much more appropriate place for such experiments. Maybe I’ll move more formats in the future but not those I care about (like Smacker or VMD) and I might still add new ones like game-specific AVI codec (like IPMA or KMVC).

Now I want to talk about less important technical details. One of the improvements I’m proud about is adding a better detection using regular expression on filename. It is described in a post about Nova Logic FMV formats and it solves a rather annoying problem of certain formats having different flavours that are impossible to detect from the file contents but the naming helps distinguish those.

Also I’ve fixed all spotted bugs in AVI output and added OpenDML support for writing large AVIs. This was needed because some Arxel Tribe games have 24-bit videos in 800×450 resolution and over a minute long so decoded raw AVIs exceed 2GB in certain cases (and intro and advertisement videos from Ur-Quan Masters approached 1GB limit, ending results in ~1.4GB AVI). Additionally I’ve added BMP format for image sequence writer (I don’t think anybody will use it but maybe it’ll come in handy one day for analysing frame palettes).

Having said that, I put the project on pause. As mentioned in the post dedicated to the first release of the tool, my intent is to make releases when it accumulates support for at least a dozen new formats (the ones moved from NihAV do not really count)—and I don’t expect to encounter enough games with undiscovered video formats in the near future. Not that I’d refuse to work on it if it’s not too annoying (see my previous post on Psygnosis games for an example of those) but it may take a year or more to collect enough formats (plus some time to reverse engineer them), so I’d rather concentrate on other things like documenting already implemented formats.

4 Responses to “Announcing na_game_tool 0.2.0”

  1. Paul says:

    Congratulations!

    Next neat ideas:

    Merge vgmstream audio formats into it and get benefits from Rust.
    Finish bink2 video support and binka new formats found in wild.
    Add support for all sequenced game audio formats on web.
    Add support for audio & video for all modern games.

    Now! Time to stop dreaming and get back to reality!

  2. Kostya says:

    Thanks for the ideas, but I think I weighted and rejected them some time ago.

    Rewriting vgmstream is rather pointless—I try to contribute things not done before and from what I heard this project works quite fine as it is.

    As for Bink2 (or binka), I have no interest for it—I’ve figured out how it works and fixing out small details was too tedious without any real reward (and I’m not talking about money here).

    Sequenced formats—there are other projects targeting that like AdPlug (the name comes from AdLib sound card).

    “Add support for audio & video for all modern games.” – you’ve said Bink 2 already and repeating won’t change anything (just look at yourself and explain why there’s no Bink 2 support in librempeg).

  3. Paul says:

    Repeating same thing over and over again make it real in near future.
    If you prefer no more my comments just say so, I will fulfill such wish.

  4. Kostya says:

    I’m saying that I tried it with you (repeatedly) and you still haven’t finished Bink 2 decoder either. Maybe it’s just a cursed format though.

Leave a Reply