Page 3 of 6

First look at the map format of Trackmania Turbo

Posted: 20 Mar 2016, 13:14
by Electron
First look at the map format of Trackmania Turbo

Note: TMT probably doesn't support the export and import of maps. Therefore, the following information is only theoretical.

1. Turbo used exactly the same map file format as TM1 and ManiaPlanet. Even the individual storage chunks have the same version numbers.
This was expected, because the campaign maps have been created using a development version of ManiaPlanet.

2. The collection ID of Lagoon is decimal 13, the value formerly assigned to the unreleased environment TrackMania Mountain (Valley is 11 and Canyon 12).
The Gbx Data Fetcher classes for MP can already be updated to reflect this.

3. The campaign maps were created with a multi-environment title called TMCE@nadeolabs.
The maps use the legacy Race mode (Trackmania\Race).
All referenced objects are of course part of the title (not embedded).

4. The user/computer created maps inside TMT are script based (Map type: TrackMania\RaceCE).
The ID of the used multi-environment title is TMTurbo@nadeolabs.
The map content (used blocks, order, coordinates, etc.) and all settings are stored via script as persistent metadata variables. Here it's worth a closer look.

Re: [GbxDump] GBX file header viewer application

Posted: 20 Mar 2016, 14:10
by Dommy
I'm sure there will be some community-made map converter. As map format remains the same, everything is just about removing incompatible blocks.

Anyway, that some interesting information there :thumbsup:

Side question: will the Dump support Gbx files from Turbo in near future? (or maybe it does even now)

Re: [GbxDump] GBX file header viewer application

Posted: 20 Mar 2016, 14:51
by Electron
domino54 wrote:I'm sure there will be some community-made map converter. As map format remains the same, everything is just about removing incompatible blocks.
I don't think so. In case of the campaign maps it makes no sense.
And in case of the user made tracks, here the metadata variables of a small Canyon map. Try to write a map script that interprets the data and builds the track using macro blocks...^^

Code: Select all

LibMapType_MapTypeVersion (Integer): 4
PartyEditor_AuthorCheckpointsTimes (Array): [11152, 19483, 27062, 35433, 42975, 51245]
PartyEditor_Setting_EditorLevel (Integer): 2
PartyEditor_MapName (Text): "8"
MapContent_MacroblockModelsNumIds (Array): ["Canyon\PartyEditor\RoadRace\Checkpoints\MultilapsRight\Air.Macroblock.Gbx"=>1, "Canyon\PartyEditor\RoadRace\Roads\Straight\Air.Macroblock.Gbx"=>2, "Canyon\PartyEditor\RoadRace\Turns\CurveIn\Air.Macroblock.Gbx"=>3, "Canyon\PartyEditor\RoadRace\Slopes\StraightLeft\Air.Macroblock.Gbx"=>4, "Canyon\PartyEditor\RoadRace\Turns\CurveInRight\Air.Macroblock.Gbx"=>5, "Canyon\PartyEditor\RoadRace\Roads\StraightWindows\Air.Macroblock.Gbx"=>6, "Canyon\PartyEditor\RoadRace\Turns\CurveOutRight\Air.Macroblock.Gbx"=>7, "Canyon\PartyEditor\RoadRace\Roads\StraightPaintRight\Air.Macroblock.Gbx"=>8, "Canyon\PartyEditor\RoadRace\Turns\CurveOut\Air.Macroblock.Gbx"=>9, "Canyon\PartyEditor\DecoExpert\Flying\Airship\Air.Macroblock.Gbx"=>10, "Canyon\PartyEditor\RoadRace\Checkpoints\CheckpointRight\Air.Macroblock.Gbx"=>11, "Canyon\PartyEditor\DecoExpert\Podium\Crane\Ground.Macroblock.Gbx"=>12]
MapContent_MacroblockModelId (Array): []
MapContent_MacroblockModelNumId (Array): [0=>1, 1=>2, 2=>3, 3=>5, 4=>5, 5=>6, 7=>8, 8=>7, 9=>7, 10=>9, 11=>2, 12=>10, 6=>11, 13=>12]
MapContent_MacroblockCoord (Array): [0=><16, 27, 16>, 1=><16, 27, 17>, 2=><16, 27, 18>, 3=><18, 26, 18>, 4=><18, 25, 16>, 5=><17, 25, 16>, 7=><15, 25, 16>, 8=><13, 25, 15>, 9=><13, 26, 13>, 10=><15, 27, 13>, 11=><16, 27, 15>, 12=><16, 30, 15>, 6=><16, 25, 16>, 13=><12, 23, 19>]
MapContent_MacroblockDir (Array): [0=>0, 1=>2, 2=>0, 3=>0, 4=>3, 5=>3, 7=>1, 8=>1, 9=>2, 10=>2, 11=>2, 12=>0, 6=>1, 13=>1]
PartyEditor_MapStyle (Integer): 1
MapContent_MacroblockType (Array): [0=>3, 1=>3, 2=>3, 3=>3, 4=>3, 5=>3, 7=>3, 8=>3, 9=>3, 10=>3, 11=>3, 12=>4, 6=>3, 13=>4]
MapContent_MacroblockOrder (Array): [0=>0, 1=>1, 2=>2, 3=>7, 4=>8, 5=>9, 7=>13, 8=>14, 9=>15, 10=>16, 11=>17, 12=>18, 6=>19, 13=>20]
MapContent_MaxOrder (Integer): 21
PartyEditor_MapStyleSelected (Boolean): True
PartyEditor_TrackbuilderVersion_Created (Text): "9.11.0"
PartyEditor_TrackbuilderVersion_Modified (Text): "9.11.0"
PartyEditor_HasCustomThumbnail (Boolean): False
PartyEditor_AchievementUnlocked (Boolean): True
domino54 wrote:Side question: will the Dump support Gbx files from Turbo in near future? (or maybe it does even now)
The latest build 1.56 is compatible. You can try it yourself. All TMT maps can be easily downloaded from the Nadeo cloud (at the moment - or they use a honeypot..).

Re: [GbxDump] GBX file header viewer application

Posted: 02 Apr 2016, 21:41
by Electron
Version 1.57 of GbxDump is available for download.
This release includes some changes introduced by Trackmania Turbo:

Support for version 18 NadeoPak packages (*.Pack.Gbx, *.pak)
The unencrypted file header has not changed compared to version 17.

Support for version 8 ItemModel description chunk
Chunk 2E001003 was supplemented by one byte. So far, the value is always 3. The meaning is still unknown.

Added three new Item type values (Decal, Group, Turret)
Decal can already be seen in the Item Editor of ManiaPlanet (but not selectable).
Group seems to be very specific.
Turret is also strange because like Group either statically nor dynamically.

Added two new GBX class names (UserProfile, UserFileList)
Only the names have been added. The file header contains no user data.

Re: [GbxDump] GBX file header viewer application

Posted: 26 Apr 2016, 17:47
by nazgulaars
Electron wrote:Version 1.57 of GbxDump is available for download.
I'ts not open source ? Do you have a working link of the description of a gbx file header, the old site tm-wiki.org where you could find the description of a gbx header metadata does not seem to work and i need this information to develop an open source tool for trackmania's players.

Thanks for your help.

Re: [GbxDump] GBX file header viewer application

Posted: 26 Apr 2016, 18:28
by Xymph
Archive.org is your friend. :)

Re: [GbxDump] GBX file header viewer application

Posted: 26 Apr 2016, 18:31
by nazgulaars
Xymph wrote:Archive.org is your friend. :)
Forgot about this site, thanks :)

Re: [GbxDump] GBX file header viewer application

Posted: 25 May 2017, 05:35
by eyebo
GbxDump has been extremely useful to me, especially recently with having to check map version information because of the switch to ManiaPlanet 4 and the big push to convert all the maps on Mania Exchange to the newest LM version.

Also it's been useful in checking whether replays are valid due to recent bugs with autosaves.

Just wanted to drop a thanks here. Your work is appreciated Electron! :thx:

Re: [GbxDump] GBX file header viewer application

Posted: 16 Jul 2017, 19:15
by Electron
Version 1.59 of GbxDump is available for download.

· Added full support of the NadeoPak header (if not encrypted)
Some smaller TitleImpostors packages are not encrypted. With these files the complete header can be read out (and the contents can be unpacked with third-party tools).

· Added full support of the Collection header
*Collection.Gbx files were formerly part of the installation. Nowadays, they are hidden in the PAK archives.

· Added support for the EProdState enumeration in the Item header
Possible values are Aborted, GameBox, DevBuild or Release.

· Added support for the GameSkin chunk in the Item header
· Added support for the GameSkin class as part of the Plug engine
· Added support for old serialized version 2 identifiers (CMwId) used in Virtual Skipper 2
______________________________________________
Version 1.60 of GbxDump is available for download.

· Added the bit field names of the Collector description flag
Used by Block, Macroblock, Object, Item, Vehicle and Decoration objects.

· Unsupported files are now displayed as hex dump
To analyze corrupted files, files without header and files with wrong extension, the beginning of these files is now displayed as hex dump.

Re: [GbxDump] GBX file header viewer application

Posted: 20 Mar 2018, 22:25
by Electron
The GbxDump source code is now available as open source on GitHub:
https://github.com/Electron-x/GbxDump