GRF coding
Line 8: | Line 8: | ||
*[http://www.ttdpatch.net/grfcodec/ GRFCodec] | *[http://www.ttdpatch.net/grfcodec/ GRFCodec] | ||
*[http://users.tt-forums.net/dalestan/nforenum/ NFORenum] | *[http://users.tt-forums.net/dalestan/nforenum/ NFORenum] | ||
− | *A coder's text editor (preferably something more advanced than notepad, since you'll want to be doing some formatting to make your | + | *A coder's text editor (preferably something more advanced than notepad, since you'll want to be doing some formatting to make your NFO readable. NOT a rich text editor like wordpad). |
*A graphics program of your choice that can manipulate .pcx and/or .png files. | *A graphics program of your choice that can manipulate .pcx and/or .png files. | ||
*[http://wiki.ttdpatch.net/tiki-index.php?page=NewGraphicsSpecs The Book] | *[http://wiki.ttdpatch.net/tiki-index.php?page=NewGraphicsSpecs The Book] | ||
Line 17: | Line 17: | ||
*Copy trg1r.grf to this directory (and, if you like, the other default grfs) and decompile them with grfcodec. ('''grfcodec -d trg1r.grf -p2'''). | *Copy trg1r.grf to this directory (and, if you like, the other default grfs) and decompile them with grfcodec. ('''grfcodec -d trg1r.grf -p2'''). | ||
**Resist the temptation to decode any other grf and have a look at what comes out. It will not be useful to you at this point. Believe me. | **Resist the temptation to decode any other grf and have a look at what comes out. It will not be useful to you at this point. Believe me. | ||
− | *Install | + | *Install NFOrenum into <grfcodec directory>/SPRITES, which should have been created when you decoded trg1r.grf. |
And you're ready to go! | And you're ready to go! | ||
+ | |||
+ | ==Getting started== | ||
+ | Every grf file comes from an NFO file; the NFO file is, in essence, the source code of the grf. NFO files contain series of hex digits; however; don't let this put you off, as you can use comments, formatting, escape codes and quoted strings to make your NFO more human-readable. | ||
+ | |||
+ | Let's begin your first NFO file. Open your text editor and create a new file. Save it in <grfcodec directory>/SPRITES as '''<filename>.nfo''' | ||
+ | |||
+ | There are two things every NFO file must contain, other than the sprite lines that actually have data for vehicles or other features. They are the header, and the action 8. | ||
+ | |||
+ | ===The header=== | ||
+ | |||
+ | The header tells grfcodec how to encode the NFO. It looks like this: | ||
+ | |||
+ | <pre> | ||
+ | // Automatically generated by GRFCODEC. Do not modify! | ||
+ | // (Info version 7) | ||
+ | // Format: spritenum pcxfile xpos ypos compression ysize xsize xrel yrel | ||
+ | </pre> | ||
+ | |||
+ | You can copy and paste that, or alternatively you can let NFOrenum put the header in the first time you renum your file. |
Revision as of 08:46, 7 May 2007
Writing NFO for smarties. Because you're not as dumb as you think you are.
Okay, welcome to my basic tutorial for coding grf sets. To begin with, I will concentrate on trains, because that is what most people want to start with. However, what you learn here can easily be transferred across to coding any other sort of graphics.
Contents |
What you will need
- A recent (ie, nightly) build of TTDPatch or, if you must, OpenTTD.
- GRFCodec
- NFORenum
- A coder's text editor (preferably something more advanced than notepad, since you'll want to be doing some formatting to make your NFO readable. NOT a rich text editor like wordpad).
- A graphics program of your choice that can manipulate .pcx and/or .png files.
- The Book
- A computer running Windows, and/or the ability to translate what I say in Windows-speak into the language of your operating system. Creating and testing grfs on non-Windows systems may have additional challenges.
Getting set up
- Install grfcodec into a directory under/near your TTD directory.
- Copy trg1r.grf to this directory (and, if you like, the other default grfs) and decompile them with grfcodec. (grfcodec -d trg1r.grf -p2).
- Resist the temptation to decode any other grf and have a look at what comes out. It will not be useful to you at this point. Believe me.
- Install NFOrenum into <grfcodec directory>/SPRITES, which should have been created when you decoded trg1r.grf.
And you're ready to go!
Getting started
Every grf file comes from an NFO file; the NFO file is, in essence, the source code of the grf. NFO files contain series of hex digits; however; don't let this put you off, as you can use comments, formatting, escape codes and quoted strings to make your NFO more human-readable.
Let's begin your first NFO file. Open your text editor and create a new file. Save it in <grfcodec directory>/SPRITES as <filename>.nfo
There are two things every NFO file must contain, other than the sprite lines that actually have data for vehicles or other features. They are the header, and the action 8.
The header
The header tells grfcodec how to encode the NFO. It looks like this:
// Automatically generated by GRFCODEC. Do not modify! // (Info version 7) // Format: spritenum pcxfile xpos ypos compression ysize xsize xrel yrel
You can copy and paste that, or alternatively you can let NFOrenum put the header in the first time you renum your file.