Don't just look at it. That would give me a headache as wellNekoMaster wrote:all I got was confusion and a hurting head

Just start from the top and write the purpose down for every single byte you encounter in the code (a byte being a group of two hex numbers).
Allow me to do the first part for you. Just try and follow me and do the next line yourself. Post that here and then someone can check/correct that before you proceed to the next. Before you even know it you'll be doing it all by yourself.
--Start of explanation bit of http://www.tt-forums.net/download/file.php?id=112550 --
Code: Select all
// Automatically generated by GRFCODEC. Do not modify!
// (Info version 7)
// Format: spritenum pcxfile xpos ypos compression ysize xsize xrel yrel
Code: Select all
// Initial sprite with line count. Leave it empty because NFORenum will fix it for you.
Code: Select all
-1 * 0 00 00 00 00
The very first sprite of each is always a dword value representing the amount of sprites in the file. Again nforenum can fill that in for you, so we set it to 0 for now. Because it's a dword, it uses four bytes, so that's four times 00.
Code: Select all
-1 * 0 08 07 05 "NT" 01 "Narro guage/tram trains" 00 "Drawn by Nekomaster\nCoded by DJ Nekkid\nReleased under GPL v2 or later" 00
Again it starts with -1 * 0. Then theres the number 08, indicating that this sprites is an Action 08. This should tell you to open the NewGRF Specification on the Action8 page.
The action 8 specifies the NFO version used, the ID of the grf, the grfs title and its description. After the 08 there's one byte indicating the grf version. In this case that's 07. Grf version 7 is the current version. After the grf version there's four bytes indicating the GRFID. This is a somewhat unique value. It's a convention to use the first two bytes for the creator's initials in ASCII code. The last two bytes should be numbers, typically the first number identifying which of the author's sets this is, and the second number being a version number. DJNekkid didn't completely stick to that convention. You might want to replace the 05 "NT" 01 with "NM" 01 01. NM being your initials (each letter is one byte) and 01 01 being the first version of your first grf.
After that follows the grf's title. This is a zero-terminated string. I.e. you write the string between quotes and put a 00 after it so that it's known where the string ends. After the title comes the description, again zero-terminated.
These two are a bit more advanced. I suggest to skip those and only try to understand them when you understand the rest of the file.-1 * 9 0D 9E 08 9E FF 08 00 00 00 // Draw all 32 px in the depot view
-1 * 9 0D 8E \D= FF 00 02 00 00 00 // Drop 2px in depot view
This one's for you!-1 * 0 04 01 7F 01 00 "Krauss Maffei ML4000" 00
Note: If I break table: too bad. PHP has a wordwrap() function you know...