Originator [v0.3.06 Released]

AllTinker

Captain
NOTE: This is the original post (downloads at the bottom); just be aware that the blurb at the start is out-of-date in many ways. There is a changelog at the bottom of the post. Eventually I will set up a web page with a more up-to-date summary.:)

Hey all, here's an offshoot project I've been working on for the past few months, which has turned into its own monster... It's still very early days, but perhaps some folks may find it useful or interesting as-is - and it's the sort of thing that will probably never be truly "finished"; so I might as well release it now.

As some of you may know, I've been going through the process of a major Confederation rewrite; and in the process, building a code library which can also be used by/in collaboration with other projects (e.g. WC4 Remastered). The majority of my project time has been sunk into that library (called libOriginData), and I'll go into more detail about it once it's ready for a public release... But anyway, to test the library, and as a useful tool (for me, at least!) I've also been developing this software; Originator.

It's essentially just an integrated data viewer/exporter for a fairly broad set of supported games (obviously most of these are by Origin, but it also has some level of support for some spinoff/spiritually-related titles). I wouldn't call it a modding tool, per se, although it's primarily intended to help peek and prod around in the game data for reverse engineering and such. I don't have any plans on the horizon for writing back to game formats, although I do have some nebulous long-term ambitions specifically for mission viewing and editing.

In terms of games it "supports" (take this with a hefty grain of salt!), this is the current list:
  • Wing Commander (DOS / Kilrathi Saga / Demo / FM Towns / Sega CD)
  • Wing Commander II (DOS / Kilrathi Saga / Demo / FM Towns)
  • Wing Commander Academy (DOS)
  • Wing Commander Armada (DOS / FM Towns)
  • Wing Commander III (DOS / Kilrathi Saga / Demo / 3DO / Playstation)
  • Wing Commander IV (CD / DVD / Demo / Playstation)
  • Wing Commander Prophecy / Secret Ops (Retail / Original Prophecy Demo)
  • Wing Commander Arena (XBox 360)
  • Super Wing Commander (3DO)
  • Privateer
  • Privateer 2
  • Strike Commander
  • Pacific Strike
  • Wings of Glory
  • Bioforge
  • Starlancer / Freelancer
  • Origin FX Screen Saver
  • Space Rogue (PC / FM Towns)
  • Longbow / Longbow 2
  • Crusader No Remorse / No Regret
Some of these are barely supported beyond some container formats and maybe a couple of codecs; for some I am planning on expanding support quite drastically based on my own previous work (not all of which is represented in libOriginData or Originator yet), others I think of more as experimental stubs for consolidating or encouraging community efforts. Many of these games share an awful lot, so I thought I might as well drop in some support while I'm about it... There are some obvious omissions; the biggest of which is no doubt the Ultima series - those seem to have their own active communities/ecosystems which I don't feel is necessary to double-up on presently.

So right now, you can browse almost all containers, listen to most audio, including MIDI (MT-32 and General), view many images, and most later RealSpace engine models (some palette issues exist for WC4). There's an IFF viewer, and a fallback hex viewer if nothing else will view the content.

view-sample.pngview-image.pngview-model.png

For MIDI, Originator includes inbuilt Roland MT-32 emulation (requires ROMs), and SoundFont rendering (requires a SoundFont). It also supports outputting to software synths or real hardware if you have it.
Integrated Roland MT-32 emulation:
Inbuilt SoundFont rendering (using the Timbres of Heaven SoundFont):
Sending the MIDI to a Roland Sound Canvas.
Support for Adlib/OPL rendering is a pending priority; I need it for Confederation anyway... But there's a lot to figure out.

It can also play streaming audio (support for .STR/redbook/MGI pending), along with playing streaming video - although currently only Bioforge FLICs and WC4 PSX comms videos are viewable; WC3 XAN support is up next, with more to follow.

You can dump raw files or IFF chunks to disk, or export various content (audio, images, models) to basic "modern" formats; e.g. .WAV, .PNG, .OBJ. There is also a "bulk export" mode which will let you export/dump content more efficiently. One of the more unique features (as far as I'm aware) is that I've figured out the Origin MIDI format enough that OMI MIDIs (e.g. WC1/2/Academy) will play from data, and you can export them to plain MIDI playable by a regular player (I believe previously the .MIDs were extracted by recording the MIDI data output by the running game).

There's an awful lot I'd like to (and plan to) implement; the pace will vary as time permits. The C++ source code for Originator and libOriginData will be available some time soon, once I've finished and documented the rest of the core framework. For what it's worth I've made sure Pedro can release the source if I get run over by a bus or whatever.

Anyway, keep in mind this is all very much work-in-progress, built with "tool code", and not intended as a particularly user-friendly application... I'm already aware of many issues and shortcomings, but do post about anything you run into.
:p
The answer to questions of "will it support X format" will probably be "yes" or at worst "hopefully!", but feel free to ask. :D It's currently for (64-bit) Windows only, but I do plan to release a Linux build down the road; maybe MacOS at some point - this will probably happen in the process of making sure Confederation runs on those platforms.

To emphasise the lack of user-friendliness - in lieu of proper documentation, here are some dot-point notes:
  • The program should detect many games automatically if they have been installed (e.g. via GOG, EA Play or Kilrathi Saga).
    • If it doesn't, and you think it should, let me know!
    • Similarly, if you have a version of a game which won't load (but should), I'm also keen to know!
  • Game paths can be reconfigured via App -> Configuration -> Game Paths.
    • Failing to load a game should present an error telling you which file is missing.
  • Individual packages may be loaded from the current directory via App -> Load Package..., however:
    • There are currently various restrictions on manually-loaded packages, since 1) Originator cannot determine which game they belong to, and 2) several data types require cross-referencing against data in other packages, which may not be loaded. This may be improved/resolved in a future release.
  • Originator will read most ISO disc image formats - for GOG/EA releases and console ports - if your image has multiple files or a different extension, rename the largest file to .IMG and it will probably work. The error upon trying to load a game will tell you what to name the files (which must be placed indata/).
  • To load Wing Commander Arena, rename the big file (the name of mine starts with 9D2C and ends in D858) to arena.xbla and place it in data/.
  • For Roland MIDI, CM-32L ROMs are preferred over MT-32, but either will work - place the ROMs in data/- named
    • CM32L_PCM.ROM / CM32L_CONTROL.ROM or
    • MT32_PCM.ROM / MT32_CONTROL.ROM
  • For inbuilt rendering of General MIDI, place .sf2 SoundFonts in data/.
    • I highly recommend the Timbres of Heaven SoundFont (4.0 is the latest version at time of writing) for premium quality.
    • The SC-55 SoundFont by JMSexton (~25MB) is much smaller and a half-decent representation of the Roland Sound Canvas.
  • All MIDI settings can be configured via App -> Configuration -> System.
  • There are multiple menus, so keep an eye out, e.g. for the IFF viewer there is the app menu, a menu for the file, and a menu for the current chunk!
There's probably a lot more I should mention, but this post is already way too long!

Version 0.2.02 (2023-12-25)
  • Improved the IFF parser to cope with various quirks and non-standard features (e.g. Privateer's "table" structures).
  • Quite broad support for "shape" images - although there are palettes remaining to hook up for numerous games, so colours may be wrong. The majority of my attention has currently been on Privateer, so most shape images should be correctly viewable/exportable. WC3 and 4 should also be correct.
  • Added configurable GUI scaling for accessibility/very high-resolution screens.
  • Switched to using Unifont for broad language support (tested with Japanese in FM Towns Wing Commanders); custom TTF/OTF fonts may also be added to data/fonts.zip and selected in configuration.
  • Added the beginnings of a text viewer; can view textual content in several games, including Privateer dialogues.
Version 0.2.03 (2024-01-01)
  • Improved the hex viewer; added hover highlighting between hex/character views, also fixed an issue with larger font sizes.
  • Added support for packed WC3 shapes (e.g. for cockpits), and more IFF-embedded shapes in general.
  • Added automatic decompression for IFF chunks (QFS/Deflate), which is especially relevant to Privateer 2. As usual there are many palettes still requiring hook-up logic, so colours will be wrong in many cases for several games (including P2).
  • Added "Experiments" (under "Tools") which I will be adding to over time. Currently the only experiment is a (quite rudimentary for now) "sector dump" tool for Privateer.
Version 0.2.03a (2024-01-05)
  • Added speech disk file detection for Strike Commander.
  • The underlying library now sorts game container contents alphabetically.
Version 0.2.04 (2024-01-14)
  • Added support for Wing Commander Prophecy bitmap images, including 15/16-bit and/or animated bitmaps.
  • Added MGI streaming music support for Wing Commander Prophecy.
  • Added support for streaming/extracting Red Book audio from ISOs, i.e. music from Wing Commander 1/2 and Space Rogue for FM Towns and Wing Commander for SEGA CD.
  • Added some basic search and data inspection tooling to the hex viewer.
  • Fixed a regression in WC3/4 for handling non-cumulative shapes.
Version 0.2.05 (2024-01-16)
  • Added an option for previewing with adjustment for VGA aspect ratio. Most (but not all) images will auto-sense and turn this on as appropriate.
  • Fixes for RealSpace models; textures and models now have the correct mirroring, texture coordinates are now wrapped and clamped, which prevents some glitchy rendering. The output is closer to the original for WC4 in terms of untextured surfaces.
  • Fixed an issue with WC4 credits text not being handled properly.
Version 0.2.06 (2024-01-25)
  • Some minor fixes, but mostly improvements to existing Realspace model support, including:
  • Support for TXMV (inbuilt shape) and TXMK (external PAK shapes) textures.
  • Added support for sprites along with loading/viewing untextured models.
  • Added a tool in the model viewer to select the current frame for animated textures.
  • Added TXM texture support for terrain, both standalone (WC4) and in PAKs (Strike Commander).
Version 0.3.00 (2024-01-31)
  • Added support for Prophecy / Secret Ops models, including triangulation of polygonal meshes.
  • Added support for Privateer 2 textures/models.
  • Added "Global Search" mode, which allows searching for text/hex across all loaded game files.
  • Disc images will be detected with .iso or .bin extensions, in addition to .img.
  • Added support for Pacific Strike text content decompression.
  • Fixed the solid backdrop scaling for VGA aspect mode.
  • Fixed 3DO STR container support.
  • Improvements to FLX container support.
  • Better support for partial palettes (mostly for Strike Commander).
  • Some palette hookups for Strike Commander (work in progress).
  • Fixed texture coordinates for OBJ export.
  • Improved generation of normals for 3D models.
  • Added support for Privateer 2's XMIDI music.
  • Fixed terrain elevation export for WC4; more general terrain support will happen later.
  • Some UI improvements, e.g. showing what's selected in tree navigation panes.
Version 0.3.01 (2024-02-01)
  • Hooked up Bioforge model viewing (animation viewing isn't currently implemented).
Version 0.3.02 (2024-02-04)
  • Fixed palettes for FM Towns Wing Commander Armada.
  • Removed hard requirement for Proving Grounds for PC Armada.
  • Privateer 2 palette improvements; proper base palette and BRender LUT usage.
  • Finished an initial pass on picking up the remaining Origin FX containers for Wing Commander 1/2.
  • More text support for Bioforge and Wing Commander 2 (PC & FM Towns versions).
  • Fixed a bug where changing the game path wasn't properly applying without restarting.
  • Added the ability to unload games and manually-loaded files.
  • Changing the path for a game optionally causes an automatic reload.
  • Added the ability to see/configure the names for disc/other image files for games which use them.
  • Added support for the Prophecy 3dfx Test.
  • Fixed Bioforge model axis orientation.
  • Added basic translation (lateral camera movement) to the model viewer - hold middle mouse.
  • Overhauled manual loading of files quite extensively.
    • Files can be attached to a loaded game, improving viewing support.
    • Files can be loaded from any drive/directory.
Version 0.3.03 (2024-02-06)
  • Fixed a couple of bugs in the loose file loading where it would fail to open containers/files.
  • The file opener now remembers the last path, with a "Home" button to return to the Originator working directory.
  • Added support for "inbuilt" external files; e.g. loading Kilrathi Saga saves from the Users directory.
  • Added a savegame viewer (WC1 only currently).
Version 0.3.04(a) (2024-02-22)
  • Expanded support for Privateer 2:
    • Support for major text formats.
    • IFF-nested FAT audio support.
    • "BASE" image support.
    • Palette hookups, multi-palette shape support.
  • Fixed a bug in QFS decompression when it was used within IFF files.
  • Wildcard loading support; required for games with user-defined save filenames.
  • Added IFF quirk for to properly parse the malformed WC3/4 save index IFFs.
  • Some minor progress on WC2 & WC4 savegames.
  • Added support for manual export of IFF shapes and BASE images.
  • Hex and text views now scroll to the top when loading new data.
  • .04a fixes a couple of Privateer 2 palettes/text issues.
Version 0.3.05 (2024-02-28)
  • More Privateer 2 text support.
  • Bioforge images, text and scripts (early work-in-progress).
  • Fixed image background clipping.
  • Wing Commander Arena model viewing.
Version 0.3.06 (2024-09-06)
  • Support for the demo version of Wing Commander Arena.
  • Support for Playstation's VAG audio format, used by Wing Commander 4 PSX.
  • Fixed terrain heightmap export for Wing Commander 4.
  • Some improvements to Shape parsing, fixing at least one regression with Wing Commander 3.
  • Hooked up texture / image / image set loading for Wing Commander: Secret Ops.
NOTE: If you get an error regarding MSVCP140.dll, you will need to install the latest Microsoft C++ 64-bit runtime (direct link).
 

Attachments

Last edited:
This looks promising.
However, I just tried to run it and got a System Error message
"The code execution cannot proceed because MSVCP140.dll was not found. Reinstalling the program may fix this problem."
After that another message:
"The code execution cannot proceed because VCRUNTIME140.dll was not found. Reinstalling the program may fix this problem."
After that another message:
"The code execution cannot proceed because VCRUNTIME140_1dll was not found. Reinstalling the program may fix this problem."
 
This looks promising.
However, I just tried to run it and got a System Error message
"The code execution cannot proceed because MSVCP140.dll was not found. Reinstalling the program may fix this problem."
After that another message:
"The code execution cannot proceed because VCRUNTIME140.dll was not found. Reinstalling the program may fix this problem."
After that another message:
"The code execution cannot proceed because VCRUNTIME140_1dll was not found. Reinstalling the program may fix this problem."
I've had that problem before with other software. It looks like you need to install Visual C++ Redistributed. You probably need the x64 package.

https://learn.microsoft.com/en-US/c...svc-170#visual-studio-2015-2017-2019-and-2022

Hope that helps and sorry if it doesn't. :P But I'm pretty sure. :D
 
I've had that problem before with other software. It looks like you need to install Visual C++ Redistributed. You probably need the x64 package.

Oh yes definitely, use to hit those types of errors all the time in linux wine before proton came onto the scene. :)
 
Yeah sorry, you will need the latest x64 C++ runtime - which Destro linked to - if you don't already have it. I'll add a note/link to the original post too.
 
Last edited:
Really good work! I'm really excited for the model viewer since there's never been a good one, and especially for Privateer 2 as some of the models in the 3D archive are corrupted (Heron).
 
I still need to bring over my old code for Privateer 2 and Prophecy models; shouldn't be too far off. :) I'll likely finish off support for earlier RealSpace models first (Strike Commander / Pacific Strike / Wings of Glory). Some Wings of Glory models do open, but they're apparently quite different to the later models, so most are messed up.

Speaking of Pacific Strike; it has one of the biggest technical mysteries I've come across thus far. It's quite possible I'm missing something obvious/simple, but the digital sound / voice samples for Pacific Strike seem to me to be compressed, and either the compression is something obscure not used anywhere else, or the data is also encrypted. Perhaps they encrypted the audio because the speech disk shipped before the actual game?
:p
I've tried brute-force XOR'ing the data (against a single byte) before decompression with no joy, and QuickBMS revealed nothing helpful in terms of identifying the compression algorithm. If anyone has the know-how and/or the interest, it's something of an interesting puzzle. I suspect it may require unwrapping and studying the disassembly for PACIFIC.EXE, but I'm trying to avoid doing that to stick to clean-room reverse engineering...
 
Last edited:
Thanks for making this! Really neat.

For Crusader stuff, you could reach out to Candy on the Echo Sector forums. He's very familiar with the Crusader assets. Reverse-engineered some parts of the game, including cutscenes. Additionally, there's an ancient utility called Crusader Explorer that might prove useful.

Also, for fellow Linux users, Originator works completely fine in Wine.
 
Here's some code for Privateer 2 data extraction: https://gitlab.com/thp/p2dump (based on discussions in this thread).

The models found on https://originalthp.solsector.net/p2models/ have been extracted using the above tool.

For rendering OPL2/OPL3 audio, DBOPL (GPL2) from DOSBox(-X) can be used: https://github.com/joncampbell123/dosbox-x/blob/master/src/hardware/dbopl.cpp or if that poses a problem, YMFM is a BSD-licensed implementation of various OPL cores, including OPL2 and OPL3: https://github.com/aaronsgiles/ymfm

Glueing together the OPL library with some sound output library (e.g. PortAudio) is simple, here's another code snipped I used in some unrelated project: https://gitlab.com/thp/oplfm/-/blob/master/src/stream.c (this is using a slightly older DOSBox OPL implementation called woodyopl, but you can just drop in dbopl or ymfm there) - that is, for situations where you do get OPL register writes from the game data files. If you just want to render MIDI data to OPL, oplfm does contain some code for this (using instrument mappings from Adlib Visual Composer, and limited to OPL-2), but it will not sound exactly how each game's audio framework maps MIDI data to OPL commands there.
 
Thanks for the links, always nice to have some more stuff to cross-reference against.

OPL-wise I've already integrated NukedOPL3, it's just not being used yet in Originator. For my previous Confederation work I'd been replaying DRO register op captures which I really didn't like doing, but it got things happening accurately. This time around I'm trying to do it properly and using the actual timbres (e.g. Wing Commander 1 stores these in WINGLDR.TIM). I've made some progress but there are still some things yet to figure out.

My plans for the Crusader games and the other "experimental" games are pretty vague; they may be left to others to fill in if and when the interest arises. We'll see! :)

The next version will have a few bugfixes and should have fairly broad "shape" image support across the supported games. It seems to have been a format used and abused over quite a lot of different projects.
 
Merry Christmas everyone! :) Here's a new update (v0.2.02 - attached to original post).

Here's a quick list of changes:
  • Improved the IFF parser to cope with various quirks and non-standard features (e.g. Privateer's "table" structures).
  • Quite broad support for "shape" images - although there are palettes remaining to hook up for numerous games, so colours may be wrong. The majority of my attention has currently been on Privateer, so most shape images should be correctly viewable/exportable. WC3 and 4 should also be correct.
  • Added configurable GUI scaling for accessibility/very high-resolution screens.
  • Switched to using Unifont for broad language support (tested with Japanese in FM Towns Wing Commanders); custom TTF/OTF fonts may also be added to data/fonts.zip and selected in configuration.
  • Added the beginnings of a text viewer; can view textual content in several games, including Privateer dialogues.
  • Many other changes and improvements, most importantly a new "about" screen.
    :D
I still have a lot of palettes to hook up for shapes - e.g. for Strike Commander/Pacific Strike/Wings of Glory - I'll be working on finishing that before moving on. After that is probably expanding the 3D model and movie support.
 
Extracting Privateer data... very interesting indeed.
Even though LOAF has some extracted sector data, I would be keen to find out, if there is some hidden data because of the hidden jump points I've not been able to find again so far. The dialogues can be read right from the TRE file and I've inspected the HEX sector data up and down but so far no luck. I was able to manipulate all the nav points (remove asteroids, change jump targets and so on)... but I did not find the extra hidden jump points. Only the two in Eden and Rikel... but not the one in Perry and the another sector that I had found more than ten years ago.
So please keep us updated.
 
I quickly wrote some code to extract the complete set of Privateer/RF jump points, at least as far as I understand the data at this point. I can't 100% guarantee there isn't some other mechanism which adds jump points at runtime, but I haven't found any evidence that there is such a thing either...

Code:
[00] 17_AR
 -> [31] New Caledonia
 -> [56] Telar

[01] 41-GS
 -> [55] Surtur

[02] 44-P-IM
 -> [50] Rikel
 -> [33] New Constantinople

[03] Aldebran
 -> [33] New Constantinople
 -> [17] Hind's Variable N.

[04] Auriga
 -> [32] Newcastle

[05] Blockade Point Alpha
 -> [47] Ragnarok
 -> [22] Tr'Pakh

[06] Blockade Point Charlie
 -> [55] Surtur
 -> [18] Hyades

[07] Blockade Point Tango
 -> [26] Lisacc
 -> [36] Nitir
 -> [24] Mah'Rahn

[08] Capella
 -> [12] Crab-12
 -> [54] Sherwood
 -> [15] Famine
 -> [35] Nexus

[09] Castor
 -> [21] Junction

[10] CM-N1054
 -> [46] Pyrenees

[11] CMF-A
 -> [57] Tingerhoff
 -> [36] Nitir

[12] Crab-12
 -> [31] New Caledonia
 -> [08] Capella

[13] Death
 -> [43] Pestilence
 -> [15] Famine

[14] DN-N1912
 -> [17] Hind's Variable N.

[15] Famine
 -> [13] Death
 -> [54] Sherwood
 -> [08] Capella

[16] Freyja
 -> [49] Regallis
 -> [46] Pyrenees

[17] Hind's Variable N.
 -> [14] DN-N1912
 -> [03] Aldebran

[18] Hyades
 -> [06] Blockade Point Charlie
 -> [23] Sumn-Kp'ta

[19] 119CE
 -> [67] XXN_1927
 -> [21] Junction
 -> [38] Padre
 -> [41] Pentonville

[20] J900
 -> [21] Junction
 -> [56] Telar

[21] Junction
 -> [20] J900
 -> [35] Nexus
 -> [09] Castor
 -> [33] New Constantinople
 -> [19] 119CE
 -> [40] Pender's Star

[22] Tr'Pakh
 -> [23] Sumn-Kp'ta
 -> [05] Blockade Point Alpha

[23] Sumn-Kp'ta
 -> [22] Tr'Pakh
 -> [18] Hyades

[24] Mah'Rahn
 -> [07] Blockade Point Tango

[25] KM_252
 -> [35] Nexus

[26] Lisacc
 -> [07] Blockade Point Tango

[27] Manchester
 -> [34] New Detroit

[28] Metsor
 -> [67] XXN_1927
 -> [32] Newcastle

[29] Midgard
 -> [42] Perry
 -> [50] Rikel

[30] ND-57
 -> [34] New Detroit

[31] New Caledonia
 -> [45] Prasepe
 -> [00] 17_AR
 -> [12] Crab-12
 -> [54] Sherwood

[32] Newcastle
 -> [28] Metsor
 -> [04] Auriga
 -> [33] New Constantinople
 -> [42] Perry

[33] New Constantinople
 -> [64] Varnus
 -> [34] New Detroit
 -> [02] 44-P-IM
 -> [21] Junction
 -> [32] Newcastle
 -> [03] Aldebran
 -> [67] XXN_1927

[34] New Detroit
 -> [52] Saxtogue
 -> [48] Raxis
 -> [67] XXN_1927
 -> [27] Manchester
 -> [50] Rikel
 -> [30] ND-57
 -> [42] Perry
 -> [33] New Constantinople

[35] Nexus
 -> [21] Junction
 -> [57] Tingerhoff
 -> [08] Capella
 -> [25] KM_252

[36] Nitir
 -> [42] Perry
 -> [07] Blockade Point Tango
 -> [11] CMF-A

[37] Oxford
 -> [52] Saxtogue
 -> [53] Shangri La
 -> [67] XXN_1927

[38] Padre
 -> [19] 119CE

[39] Palan
 -> [57] Tingerhoff
 -> [66] Xytani

[40] Pender's Star
 -> [21] Junction
 -> [58] Troy

[41] Pentonville
 -> [19] 119CE

[42] Perry
 -> [47] Ragnarok
 -> [36] Nitir
 -> [29] Midgard
 -> [32] Newcastle
 -> [34] New Detroit
 -> [55] Surtur
 -> [57] Tingerhoff

[43] Pestilence
 -> [13] Death
 -> [65] War

[44] Pollux
 -> [54] Sherwood

[45] Prasepe
 -> [31] New Caledonia

[46] Pyrenees
 -> [16] Freyja
 -> [58] Troy
 -> [10] CM-N1054

[47] Ragnarok
 -> [05] Blockade Point Alpha
 -> [42] Perry

[48] Raxis
 -> [34] New Detroit

[49] Regallis
 -> [16] Freyja
 -> [58] Troy
 -> [54] Sherwood

[50] Rikel
 -> [34] New Detroit
 -> [29] Midgard
 -> [02] 44-P-IM

[51] Rygannon
 -> [66] Xytani

[52] Saxtogue
 -> [34] New Detroit
 -> [37] Oxford

[53] Shangri La
 -> [37] Oxford

[54] Sherwood
 -> [31] New Caledonia
 -> [49] Regallis
 -> [44] Pollux
 -> [15] Famine
 -> [08] Capella

[55] Surtur
 -> [06] Blockade Point Charlie
 -> [42] Perry
 -> [01] 41-GS

[56] Telar
 -> [00] 17_AR
 -> [63] Valhalla
 -> [20] J900

[57] Tingerhoff
 -> [11] CMF-A
 -> [39] Palan
 -> [42] Perry
 -> [35] Nexus

[58] Troy
 -> [46] Pyrenees
 -> [40] Pender's Star
 -> [49] Regallis
 -> [65] War

[59] Delta
 -> [51] Rygannon

[60] Gamma
 -> [61] Beta

[61] Beta
 -> [59] Delta

[62] Delta Prime
 -> [60] Gamma

[63] Valhalla
 -> [56] Telar

[64] Varnus
 -> [33] New Constantinople

[65] War
 -> [43] Pestilence
 -> [58] Troy

[66] Xytani
 -> [51] Rygannon
 -> [39] Palan

[67] XXN_1927
 -> [37] Oxford
 -> [34] New Detroit
 -> [33] New Constantinople
 -> [28] Metsor
 -> [19] 119CE

[68] Test Bed
Code:
[00] 17_AR
 -> [31] New Caledonia
 -> [56] Telar

[01] 41-GS
 -> [55] Surtur

[02] 44-P-IM
 -> [50] Rikel
 -> [33] New Constantinople

[03] Aldebran
 -> [33] New Constantinople
 -> [17] Hind's Variable N.

[04] Auriga
 -> [32] Newcastle

[05] Blockade Point Alpha
 -> [47] Ragnarok
 -> [22] Tr'Pakh

[06] Blockade Point Charlie
 -> [55] Surtur
 -> [18] Hyades

[07] Blockade Point Tango
 -> [26] Lisacc
 -> [36] Nitir
 -> [24] Mah'Rahn

[08] Capella
 -> [12] Crab-12
 -> [54] Sherwood
 -> [15] Famine
 -> [35] Nexus

[09] Castor
 -> [21] Junction

[10] CM-N1054
 -> [46] Pyrenees

[11] CMF-A
 -> [57] Tingerhoff
 -> [36] Nitir

[12] Crab-12
 -> [31] New Caledonia
 -> [08] Capella

[13] Death
 -> [43] Pestilence
 -> [15] Famine

[14] DN-N1912
 -> [17] Hind's Variable N.

[15] Famine
 -> [13] Death
 -> [54] Sherwood
 -> [08] Capella

[16] Freyja
 -> [49] Regallis
 -> [46] Pyrenees

[17] Hind's Variable N.
 -> [14] DN-N1912
 -> [03] Aldebran

[18] Hyades
 -> [06] Blockade Point Charlie
 -> [23] Sumn-Kp'ta

[19] 119CE
 -> [67] XXN_1927
 -> [21] Junction
 -> [38] Padre
 -> [41] Pentonville

[20] J900
 -> [21] Junction
 -> [56] Telar

[21] Junction
 -> [20] J900
 -> [35] Nexus
 -> [09] Castor
 -> [33] New Constantinople
 -> [19] 119CE
 -> [40] Pender's Star

[22] Tr'Pakh
 -> [23] Sumn-Kp'ta
 -> [05] Blockade Point Alpha

[23] Sumn-Kp'ta
 -> [22] Tr'Pakh
 -> [18] Hyades

[24] Mah'Rahn
 -> [07] Blockade Point Tango

[25] KM_252
 -> [35] Nexus

[26] Lisacc
 -> [07] Blockade Point Tango

[27] Manchester
 -> [34] New Detroit

[28] Metsor
 -> [67] XXN_1927
 -> [32] Newcastle

[29] Midgard
 -> [42] Perry
 -> [50] Rikel

[30] ND-57
 -> [34] New Detroit

[31] New Caledonia
 -> [45] Prasepe
 -> [00] 17_AR
 -> [12] Crab-12
 -> [54] Sherwood

[32] Newcastle
 -> [28] Metsor
 -> [04] Auriga
 -> [33] New Constantinople
 -> [42] Perry

[33] New Constantinople
 -> [64] Varnus
 -> [34] New Detroit
 -> [02] 44-P-IM
 -> [21] Junction
 -> [32] Newcastle
 -> [03] Aldebran
 -> [67] XXN_1927

[34] New Detroit
 -> [52] Saxtogue
 -> [48] Raxis
 -> [67] XXN_1927
 -> [27] Manchester
 -> [50] Rikel
 -> [30] ND-57
 -> [42] Perry
 -> [33] New Constantinople

[35] Nexus
 -> [21] Junction
 -> [57] Tingerhoff
 -> [08] Capella
 -> [25] KM_252

[36] Nitir
 -> [42] Perry
 -> [07] Blockade Point Tango
 -> [11] CMF-A

[37] Oxford
 -> [52] Saxtogue
 -> [53] Shangri La
 -> [67] XXN_1927

[38] Padre
 -> [19] 119CE

[39] Palan
 -> [57] Tingerhoff
 -> [66] Xytani

[40] Pender's Star
 -> [21] Junction
 -> [58] Troy

[41] Pentonville
 -> [19] 119CE

[42] Perry
 -> [47] Ragnarok
 -> [36] Nitir
 -> [29] Midgard
 -> [32] Newcastle
 -> [34] New Detroit
 -> [55] Surtur
 -> [57] Tingerhoff

[43] Pestilence
 -> [13] Death
 -> [65] War

[44] Pollux
 -> [54] Sherwood

[45] Prasepe
 -> [31] New Caledonia

[46] Pyrenees
 -> [16] Freyja
 -> [58] Troy
 -> [10] CM-N1054

[47] Ragnarok
 -> [05] Blockade Point Alpha
 -> [42] Perry

[48] Raxis
 -> [34] New Detroit

[49] Regallis
 -> [16] Freyja
 -> [58] Troy
 -> [54] Sherwood

[50] Rikel
 -> [34] New Detroit
 -> [29] Midgard
 -> [02] 44-P-IM
 -> [68] Eden

[51] Rygannon
 -> [66] Xytani

[52] Saxtogue
 -> [34] New Detroit
 -> [37] Oxford

[53] Shangri La
 -> [37] Oxford

[54] Sherwood
 -> [31] New Caledonia
 -> [49] Regallis
 -> [44] Pollux
 -> [15] Famine
 -> [08] Capella

[55] Surtur
 -> [06] Blockade Point Charlie
 -> [42] Perry
 -> [01] 41-GS

[56] Telar
 -> [00] 17_AR
 -> [63] Valhalla
 -> [20] J900

[57] Tingerhoff
 -> [11] CMF-A
 -> [39] Palan
 -> [42] Perry
 -> [35] Nexus

[58] Troy
 -> [46] Pyrenees
 -> [40] Pender's Star
 -> [49] Regallis
 -> [65] War

[59] Delta
 -> [51] Rygannon

[60] Gamma
 -> [61] Beta

[61] Beta
 -> [59] Delta

[62] Delta Prime
 -> [60] Gamma

[63] Valhalla
 -> [56] Telar

[64] Varnus
 -> [33] New Constantinople

[65] War
 -> [43] Pestilence
 -> [58] Troy

[66] Xytani
 -> [51] Rygannon
 -> [39] Palan

[67] XXN_1927
 -> [37] Oxford
 -> [34] New Detroit
 -> [33] New Constantinople
 -> [28] Metsor
 -> [19] 119CE

[68] Eden
 -> [63] Valhalla
 -> [50] Rikel

[69] Test Bed

Not sure if that helps at all.

Next version isn't too far away, hopefully this weekend; quite a few fixes and improvements, and I want to add support for exporting known IFF chunks via the Bulk Exporter (currently it misses quite a few Privateer images for instance, which currently need to be extracted manually one-by-one), along with hopefully some more hooking up of palettes...
 
Happy New Year! Here's a new update; v0.2.03 - attached to original post. Here's the main changes:
  • Improved the hex viewer; added hover highlighting between hex/character views, also fixed an issue with larger font sizes.
  • Added support for packed WC3 shapes (e.g. for cockpits), and more IFF-embedded shapes in general.
  • Added automatic decompression for IFF chunks (QFS/Deflate), which is especially relevant to Privateer 2. As usual there are many palettes still requiring hook-up logic, so colours will be wrong in many cases for several games (including P2).
  • Added "Experiments" (under "Tools") which I will be adding to over time. Currently the only experiment is a (quite rudimentary for now) "sector dump" tool for Privateer.
I haven't done the IFF chunk support for the Bulk Exporter yet; hopefully in the next release!
 
Last edited:
Hello there AllTinker! So I recently downloaded this, because how could anyone not!?! I have encountered a possible glitch / error, and not sure if it’s just me or not. When I link to Prophecy and Secret Ops, it shows up just fine, but when I go digging for the models, I find the .iff for the models, but it only gives me hex for them, and doesn’t allow for the traditional export. Is this something that is still being worked on?
 
There's a lot still to do. Prophecy/Secret Ops has audio support (but lacking MGI) and the beginnings of image support, but no model/texture support just yet.

There should be another release soon (hopefully this weekend), so I'll see if I can get to some Prophecy stuff. :) I want to get back to working on Confederation soon; it shares the base library with Originator (which pretty much just implements the UI+export functions) so the progress it at least somewhat shared.
 
Last edited:
I have vague long-term plans for at least some targeted editing; e.g. missions, savegames for a subset of games.

I don't want to rule out more generic support completely, but right now I'm entirely focussed on reading; mostly because that's what Confederation (and WC4 Remake) needs. :)
 
Last edited:
Back
Top