Jump to content


Photo

Valid resource reference characters?


8 replies to this topic

#1 Calhavintas

Calhavintas

    Chaotic Good Mage

  • Members
  • 19 posts
  • Gender:Male
  • Location:Northern Germany

Posted 18 August 2017 - 03:12 AM

Hi there,

 

does somebody know which characters exactly are usable by the engine(s) as a resource reference?

 

Are there differences in the different engine versions?

 

Are there characters that should be avoided at all?

 

 

Have a nice day :)



#2 Jarno Mikkola

Jarno Mikkola

    The Imp

  • Modders
  • 6205 posts
  • Gender:Male
  • Location:The town where the dead haven't keeled over, yet. In Finland.

Posted 18 August 2017 - 03:56 AM

Well, this isn't a strait answer, but if you go on and look here, the community has created a user/project based user prefix resource character pool that has all the characters you should be able to use. This is still the same with the extended character encoding that you can use to translate... aka there's no putting ö's, ä's, å's, etc to the file names, as the OS'es can't handle it the same way, for all. Translating with them can be done, so long as the .tra files are encoded with the intended codex.

 

This will rarely rise an issue, but there's one mod that breaks this ruleset and that's the Infinity Animations. That require the user to use the latin based US_english codex, even during file extraction, which is where big problems raise.

Also the exclamation mark is used as a negation in scripts and other processes ... so it's usage has limits in file names ... aka you can't really use "!a" as a prefix to script combat...


Edited by Jarno Mikkola, 18 August 2017 - 04:08 AM.

Welcome to the sanity, you are free to search for the limit, it's out there, we drew it in the sand.
Here's how to install all the ... mods you ever really could want to Infinity Engine games. I removed the stable word from there as Roxanne began to add BS mods that are likely to break compatibility from the BWS.

#3 qwerty1234567

qwerty1234567
  • Members
  • 188 posts

Posted 18 August 2017 - 05:22 AM

stick with ascii, or you have any reason not to?


bad jarno, go away!


#4 kjeron

kjeron
  • Members
  • 66 posts

Posted 18 August 2017 - 06:59 AM

There is at least one resource field that fails if it contains lowercase letters.

It's fine for the actual filename to have lowercase letters, just the reference used within files needs be uppercase.



#5 Calhavintas

Calhavintas

    Chaotic Good Mage

  • Members
  • 19 posts
  • Gender:Male
  • Location:Northern Germany

Posted 18 August 2017 - 07:12 AM

Hey, thanks for the answers.

 

I don't want to mod anything. I'm writing an interpreter for the infinity file formats at the moment and couldn't find any reference regarding valid characters that the engines work with.

This interpreter should be as strict as possible (regarding validation), but it should allow all cases that the engines can handle :)

 

For example: the full ascii character set is not usable as it contains non-printable characters. In addition the following characters are not allowed: : ? \ / | * < >

and the following names are not allowed/should not be used:

CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9


Edited by Calhavintas, 18 August 2017 - 07:19 AM.


#6 lynx

lynx
  • Modders
  • 2990 posts
  • Gender:Male
  • Location:Ljubljana, Slovenija

Posted 18 August 2017 - 08:37 AM

How come you're writing yet another interpreter?


GemRB - IE anywhere.
Mages needed! Looking for Planescape: Torment testers
Market android version IS NOT SUPPORTED ANYMORE: reported bugs will be ignored! Still looking for builders ...

#7 Calhavintas

Calhavintas

    Chaotic Good Mage

  • Members
  • 19 posts
  • Gender:Male
  • Location:Northern Germany

Posted 18 August 2017 - 11:12 AM

For different reasons. I was searching for a hobby project, wanted to learn something new and (if the status of the project is usable) try to give something to the community that one or the other will find helpful.

The goals for this are purely based on libraries and tools for infinity engine based games.

 

Currently, i didn't found a object oriented cross-platform library only version, that can handle all aspects of all the underlying formats (creating, reading, updating, deleting) including their substructures


Edited by Calhavintas, 18 August 2017 - 11:47 AM.


#8 lynx

lynx
  • Modders
  • 2990 posts
  • Gender:Male
  • Location:Ljubljana, Slovenija

Posted 18 August 2017 - 12:41 PM

Well, it's your time, it just seems pointless so late in the game. DLTCEP has it in C or C++ (eye bleeding though and intertwined with win api), NI in Java, gemrb in C++, iesh in Python and then weidu and various tools with just a few bits/formats. I don't know NI's codebase, so excluding it, the closest thing I know to your library & OO criteria is iesh (infinity module), which fits both. It's not as complete as the standard editors though, but has been great for scripted exploration and dumping binary formats to human readable text (great for diffs).


GemRB - IE anywhere.
Mages needed! Looking for Planescape: Torment testers
Market android version IS NOT SUPPORTED ANYMORE: reported bugs will be ignored! Still looking for builders ...

#9 Avenger

Avenger
  • Modders
  • 3710 posts
  • Gender:Male
  • Location:Hungary

Posted 19 August 2017 - 10:12 PM

Hey, thanks for the answers.

 

I don't want to mod anything. I'm writing an interpreter for the infinity file formats at the moment and couldn't find any reference regarding valid characters that the engines work with.

This interpreter should be as strict as possible (regarding validation), but it should allow all cases that the engines can handle :)

 

For example: the full ascii character set is not usable as it contains non-printable characters. In addition the following characters are not allowed: : ? \ / | * < >

and the following names are not allowed/should not be used:

CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9

You can freely use those strings as resref. The full filenames are always resref + resourcetype The sucky windows OS will never encounter bare resrefs. 

 

ielister is C++ and it has the basic fileformat stuff. It is just a resource viewer. 


Edited by Avenger, 19 August 2017 - 10:16 PM.




Reply to this topic



  


1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users