GBX Data Fetcher module (Challenge/Map/Replay/Pack parsing)

Moderators: Xymph, NADEO

User avatar
Xymph
Posts: 1361
Joined: 15 Jun 2010, 20:35
Contact:

GBX Data Fetcher module (Challenge/Map/Replay/Pack parsing)

Post by Xymph » 20 Oct 2012, 20:28

The GBX Data Fetcher module, long covered on TM-Forum, provides PHP classes to process .Gbx files and allow PHP programmers to easily access the information in them. The recent v1.01 release of XASECO2 already included the initial version of a completely rewritten module that supported .Challenge.Gbx (TrackMania), .Map.Gbx (ManiaPlanet) and .Replay.gbx (both) files.

Now an updated module is available that handles .Pack.Gbx and .pak (ManiaPlanet) files as well, and it also includes various improvements such as reading only a small portion of the file's header so that memory consumption is minimized.

Lastly, my 'Extract GBX data' script that extracts and pretty-prints relevant info from all those file types has been fully rebuilt to use the GBX Data Fetcher module.

As usual, descriptions and download links can be found on the XAseco site.
Developer of XASECO for TMF/TMN ESWC & XASECO2 for TM²: see XAseco.org
Find your way around the Mania community from the TMN ESWC hub, TMF hub, TM² hub, and SM hub

User avatar
spaii
Posts: 1100
Joined: 19 Jun 2010, 00:04
Location: Rémy - France
Contact:

Re: GBX Data Fetcher module (Challenge/Map/Replay/Pack parsi

Post by spaii » 20 Oct 2012, 20:47

Nice Xymph :thumbsup:

Do you plan to parse metadata included in a map like in Platform or Stunters title pack ?

User avatar
Xymph
Posts: 1361
Joined: 15 Jun 2010, 20:35
Contact:

Re: GBX Data Fetcher module (Challenge/Map/Replay/Pack parsi

Post by Xymph » 20 Oct 2012, 22:36

spaii wrote:Do you plan to parse metadata included in a map like in Platform or Stunters title pack ?
I dunno... what data do you mean exactly?

Try running the script and point out what's missing, based on what's currently known about the Pack structure, because I don't see any data I could extract but didn't.
Developer of XASECO for TMF/TMN ESWC & XASECO2 for TM²: see XAseco.org
Find your way around the Mania community from the TMN ESWC hub, TMF hub, TM² hub, and SM hub

User avatar
spaii
Posts: 1100
Joined: 19 Jun 2010, 00:04
Location: Rémy - France
Contact:

Re: GBX Data Fetcher module (Challenge/Map/Replay/Pack parsi

Post by spaii » 20 Oct 2012, 23:24

I allready running your script with one map, and i didn't see any metadata value.

i'll try to explain this. (and sorry if it's not clear, i'm french ;))

With maniascript, we can store metadata into a map.

For example in Stunters title pack, i store MapTimeLimit, MapGameType, ObjectiveAuthor and MapEditionTime.

maniascript example for MapTimeLimit in the map editor :
declare metadata Integer MapTimeLimit for Map = 60000; // if not exist, Initialise MapTimeLimit to 60sec.
MapTimeLimit = 30000; // For a 30 secs map

When player save the map, this value is stored in the map too.
Then, i can call and use this value in the multiplayer mode.

It works with Integer, Boolean and String, not tested with an array.

You can download this map : http://tm.mania-exchange.com/tracks/25782/bidule-1

When i search in a text editor for "MapTimeLimit ", i found it. But, i don't know how to obtain value stored in MapTimeLimit I think it is compressed or encoded, or both.

I hope I explained the problem.

The big question for me : is this possible to obtain metadata values stored in a map ?

I started to search and allways see the link you put on your post.
As you work on this type of project (which is excellent :thumbsup: ), I think you will find it easier.

Thank you very much ;)
Last edited by spaii on 21 Oct 2012, 12:29, edited 1 time in total.

User avatar
Electron
Posts: 743
Joined: 15 Jun 2010, 18:02
Contact:

Re: GBX Data Fetcher module (Challenge/Map/Replay/Pack parsi

Post by Electron » 21 Oct 2012, 12:10

Maps are made of an uncompressed header part and a LZO compressed data section. The metadata is stored in the compressed data block (chunk 03043044).
A am not aware of a PHP library that can uncompress LZO compressed data.
The GBX Data Fetcher module and my Gbx file dumper application parses the uncompressed header only.
Image
TM²: TrackMania Telemetry Monitor version 1.2

User avatar
Xymph
Posts: 1361
Joined: 15 Jun 2010, 20:35
Contact:

Re: GBX Data Fetcher module (Challenge/Map/Replay/Pack parsi

Post by Xymph » 21 Oct 2012, 14:11

Thanks for the explanation.
spaii wrote:The big question for me : is this possible to obtain metadata values stored in a map ?
No. As Electron already pointed out, we can process only the map header, and anything stored in the data section cannot be extracted via PHP because of the compression/encryption stuff. That goes for replays and packs too.
Developer of XASECO for TMF/TMN ESWC & XASECO2 for TM²: see XAseco.org
Find your way around the Mania community from the TMN ESWC hub, TMF hub, TM² hub, and SM hub

User avatar
Xymph
Posts: 1361
Joined: 15 Jun 2010, 20:35
Contact:

Re: GBX Data Fetcher module (Challenge/Map/Replay/Pack parsi

Post by Xymph » 10 Apr 2013, 07:00

The GBX Data Fetcher module has been improved, adding UTF-8 decoding of parsed XML chunk's elements and stripping UTF-8 BOMs from various string fields. It can be downloaded from my Scripts & Tools page.
Developer of XASECO for TMF/TMN ESWC & XASECO2 for TM²: see XAseco.org
Find your way around the Mania community from the TMN ESWC hub, TMF hub, TM² hub, and SM hub

User avatar
Xymph
Posts: 1361
Joined: 15 Jun 2010, 20:35
Contact:

Re: GBX Data Fetcher module (Challenge/Map/Replay/Pack parsi

Post by Xymph » 09 Jun 2013, 15:29

The GBX Data Fetcher module has been improved again, incorporating the latest insights from the Wiki about version-dependent processing of Challenge/Map and Pack files, and adding more lookback strings. It can be obtained from the usual place.
Developer of XASECO for TMF/TMN ESWC & XASECO2 for TM²: see XAseco.org
Find your way around the Mania community from the TMN ESWC hub, TMF hub, TM² hub, and SM hub

User avatar
Xymph
Posts: 1361
Joined: 15 Jun 2010, 20:35
Contact:

Re: GBX Data Fetcher module (Challenge/Map/Replay/Pack parsi

Post by Xymph » 06 Jul 2013, 17:48

A few minor adjustments to the GBX Data Fetcher module make it handle the newly released TrackMania² Valley better. Get it from the usual place. :)
Developer of XASECO for TMF/TMN ESWC & XASECO2 for TM²: see XAseco.org
Find your way around the Mania community from the TMN ESWC hub, TMF hub, TM² hub, and SM hub

User avatar
Xymph
Posts: 1361
Joined: 15 Jun 2010, 20:35
Contact:

GBX Data Fetcher module (Challenge/Map/Replay/Pack parsing

Post by Xymph » 09 Jun 2014, 09:35

A new release of the GBX Data Fetcher module is now online, improving the PHP classes that process Challenge/Map, Replay and Pack files. This update extends GBXPackFetcher with Included Packs info, adds a few more fields to all main classes, and generally improves GBX processing. The related 'Extract GBX data' script has been enhanced to output the new fields and Included Packs list too. As always both are available for download from the Scripts & Tools page of XAseco.org.

Edit: the module has been updated to v2.8 with a minor bug fix.
Developer of XASECO for TMF/TMN ESWC & XASECO2 for TM²: see XAseco.org
Find your way around the Mania community from the TMN ESWC hub, TMF hub, TM² hub, and SM hub

Post Reply

Return to “General Tools”

Who is online

Users browsing this forum: No registered users and 1 guest