Page 11 of 22
Posted: 12 May 2006 19:20
by DaleStan
Which was the last version that worked?
From what directory are you running NFORenum?
What command line are you using?
If you can create a .renum directory in C:\ (you'll have to use the command line for this), that may hide the problem.
Failing that, typing set HOME=<directory> at the command line will work at least until you close that console, and possibly until your next reboot.
Posted: 12 May 2006 23:14
by DaleStan
Oh, and one more thing: What's the output of "dir /a C:\"?
Posted: 13 May 2006 10:40
by Jezulkim
DaleStan wrote:Which was the last version that worked?.
I don't know, since I didn't update the program for a while, until now. The version that's working for me is: v2.6.1
From what directory are you running NFORenum?
Running from "D:\Transport Tycoon\sprites"
What command line are you using?
None, I'm just dragging the file to the renum.exe. And because that didn't work I used: renum *.nfo That works but is much slower.
If you can create a .renum directory in C:\ (you'll have to use the command line for this), that may hide the problem.
This didn't help me, it still says the same.
Oh, and one more thing: What's the output of "dir /a C:\"?
Disc in drive C is LEVY1
Disc's serial number is 1C2F-19DE
Directory: C:\
... A bunch of files and folders were shown here ...
31 file(s) 2 806 256 bytes
10 directory(s) 979 865 600 bytes free
That was in finnish so I had to translate it.
Posted: 13 May 2006 15:51
by DaleStan
I ask a whole bunch of questions, and it turns out that the answer to the first one was what I needed.
I now have a theory, and if it is correct,
v2.6.4 will work, but
v2.8.0 will not. (Those are the .zip files. The .rars are here:
v2.6.4,
v2.8.0, and the bz2balls are here:
v2.6.4,
v2.8.0.)
Please confirm this.
I'm not sure how much help it will be, since I can currently only test on Linux and WinXP, but what version of Windows are you running? I'm assuming it's 98 or Me?
Posted: 13 May 2006 16:14
by Wile E. Coyote
DaleStan wrote:These are the list of things NFORenum will (sometimes) auto-correct:
Action 0 <num-props>
Action 0 <num-info>
House/industry tile extended format standard action 2 <num-sprites>
Variational action 2 <nvar>
Random action 2 <nrand>
Action 3 <num-cid>
Action 4 <num-ent>
Action 7/9 <varsize>
Action A <num-sets>
Action E <num>
Action 12 <num-def>
Did I miss anything?
I suggest to correct number of sprites to skip in actions 7/9 if it's greater than remaining to end of NFO (to appropriate number or maybe to 00).
Posted: 13 May 2006 16:29
by Jezulkim
I'm using 98.
DaleStan wrote:I now have a theory, and if it is correct, v2.6.4 will work, but v2.8.0 will not. (Those are the .zip files. The .rars are here: v2.6.4, v2.8.0, and the bz2balls are here: v2.6.4, v2.8.0.)
Please confirm this.
All those archives seem to be broken, I tried the winrar's repair function but that couldn't make them work. Anyways, I tried the version 2.8.6., and that gave me the same error as the latest nfo renum.
Posted: 13 May 2006 17:13
by DaleStan
Jezulkim wrote:All those archives seem to be broken,
They should be fixed now, but the fact that 2.8.6 also doesn't work basically tells me that my theory is correct.
I'll see if I can fix the problem. In the mean-time, if you can compile, please test the following calls:
Code: Select all
mkdir("C:/1");
mkdir("C:\\2");
mkdir("C:\\/3");
mkdir("C:\\\\4");
mkdir("C:\\windows/5");
mkdir("C:\\windows\\6");
mkdir("C:\\windows\\/7");
mkdir("C:\\windows\\\\8");
(or similar calls with the same slash order) and tell me which ones succeed and which ones fail.
(IIRC, you'll have to #include <direct.h> to compile.)
Wile E. Coyote wrote:I suggest to correct number of sprites to skip in actions 7/9 if it's greater than remaining to end of NFO (to appropriate number or maybe to 00).
That'll require multi-pass linting; something I don't have yet, but I'll add it to my TODO.
I can check that action 7/9 aren't skipping past the end of the file, though.
Posted: 13 May 2006 17:54
by Jezulkim
DaleStan wrote:
They should be fixed now, but the fact that 2.8.6 also doesn't work basically tells me that my theory is correct.
I'll see if I can fix the problem. In the mean-time, if you can compile,
It looks like your theory is correct, those two versions worked exactly like you said. And I can't compile, sorry.
Posted: 13 May 2006 20:03
by DaleStan
OK, here are two test binaries.
Can either of them successfully create C:\.renum? And if only one of them can, which one?
For those who are curious, I was attempting the equivalent of lines 3/7, and Win98 seems not to like that. 3.2.1a strips the trailing / or \ from the specified data directory, if it exists, while 3.2.1b appends a . after a trailing / or \.
Posted: 14 May 2006 08:54
by Jezulkim
This is great, both of those work nice and smooth

Posted: 14 May 2006 10:24
by Wile E. Coyote
DaleStan wrote:Take, for example, these sprites:
Code: Select all
1*0 02 00 00 00 00 00 00 01 00 02 00 03 00 04 00
2*0 02 00 10 81 7F 00 02 03 02 01 00 00 00 02 00 01 01
3*0 00 00 01 01 02 00 06 15 08 01
In sprite 1, there's no way of telling whether nument1 and nument2 are supposed to be 00 05, 01 04, 02 03, 03 02, 04 01, or 05 00.
In sprite 2, is that <nvar> == 1 with two extra bytes, or <nvar>==2 with a missing default?
In sprite 3, is that one property for two vehicles, or two properties for one vehicle?
DaleStan, what you think about specifying how to correct sprite (with switch)?
Also, might be useful to create multiple backups (if file.nfo.bak is allready present, to rename it to file.nfo.bak1 or so.)
(I just putting some ideas.)
Posted: 14 May 2006 17:12
by DaleStan
Wile E. Coyote wrote:DaleStan, what you think about specifying how to correct sprite (with switch)?
I like the idea, but I can't produce a useful format here.
Tell me more. What would you type, where would you type it, and what would the desired result be?
Wile E. Coyote wrote:Also, might be useful to create multiple backups
That it might; I'll look into it.
Posted: 15 May 2006 10:36
by Wile E. Coyote
I'm still thinking, nothing useful comes in mind

; I must have more time to see some cases; maybe to PM me various cases (if missing default in var actions 2 maybe to add option to put 00 00 as default, for example, altough it won't be useful allways).
Posted: 18 May 2006 05:54
by DaleStan
Thanks for the testing, Jezulkim. We again have an official version that will work on Win9x. (It can also put the .renum directory in Linux's /, just in case anyone thinks that's a good idea.)
Changelog:
v3.2.1 to v3.3.0
- Add an auto corrector, which will attempt to correct some portions of some pseudo-sprites when enabled. (See README)
- (bugfix) Specifying -f could potentially cause undefined behaviour.
- Allow + and - in more places on the commandline. Specifically, in eg
"-b convertonly+", rather than just "-b-".
- (devel, docs) fixed release scripts that caused breakage in the 3.2.1 docs, and repaired the breakage.
- Also check for embedded 00 bytes after the 01 and 1F control characters.
- Add a length-check for actions 7 and 9.
- Produce more useful and reliable messages when a file-system-related call fails.
- If the input file can't be deleted, report about that, instead of just reporting that the rename failed.
- Check that action 7/9 don't jump past the end of the file.
- (bugfix) Fix an issue creating the .renum folder on Win9x
- Update langs.dat for the new languages.
- (bugfix) Warn about action 4s that declare no texts, rather than dying.
Posted: 18 May 2006 14:20
by Wile E. Coyote
DaleStan, that's incredible!

I think this deserves version number 4.0.0 and name "NFO renumberer, linter and corrector".

I'm sorry I haven't ability to test it before.
Few more suggestions: to add 00 at the end of Action 4 and 8 or FF at the end of Action 6 if missing? And correct num entries in Actions 4 and 6.
Posted: 18 May 2006 17:12
by DaleStan
Wile E. Coyote wrote:Few more suggestions: to add 00 at the end of Action 4 and 8 or FF at the end of Action 6 if missing?
Shouldn't be too hard, but I can't do that right now.
quote="Wile E. Coyote"]And correct num entries in Actions 4...[/quote]
README wrote:Action 4 <num-ent>: Count of strings found in the action 4. This includes the last one, even if its terminating null is missing.
Wile E. Coyote wrote:... and 6.
Auto-correct what again?
Glad you like it. If you want to make it v4.0.0, just deUPX it, hunt for the string "3.3.0", and change it to "4.0.0". Optionally, reUPX it.
Posted: 18 May 2006 17:19
by Wile E. Coyote
DaleStan wrote:Wile E. Coyote wrote:And correct num entries in Actions 4...
README wrote:Action 4 <num-ent>: Count of strings found in the action 4. This includes the last one, even if its terminating null is missing.
Yes, I mean that, <if num-ent> isn't correct.
DaleStan wrote:Wile E. Coyote wrote:... and 6.
Auto-correct what again?
My mistake, sorry.

Posted: 18 May 2006 18:45
by DaleStan
And my point is that it does auto-correct action 4's nument. Or if it doesn't, I need to see a demonstrating sprite.
Posted: 18 May 2006 18:56
by Wile E. Coyote
Here it is:
Code: Select all
1 * 14 04 00 7F 01 00 "text1" 00 "text2" 00
It doesn't changed in case with 00 at the end or not, it reports "No more data was expected".
Posted: 18 May 2006 19:22
by DaleStan
It works for me. Are you sure you ran one of
Code: Select all
renum -a file.nfo
renum --auto-correct file.nfo
and not just