4.60 star(s) 155 Votes

kin-kun

Active Member
Modder
Jul 10, 2020
963
2,390
If loadNormalBitmap is not the only function passing requests, that makes sense. The real sticking point is normalising the game files, regardless.

Since that's something that has to happen either way, it'd make more sense to parse the JSON files in a shell script, do a case insensitive match on them, and rename the file if it's not also a case-sensitive match.
Yeah, I started down that path, but it turns out that the packaging tool cares about case sensitivity on Linux. And you can create a Web/Linux version that's incompatible with Windows by having clashing file names.

In the end I found it easier to keep the files as is (so they didn't need to be renamed all the time as versions changed and if the file name is constructed by code, deal with that as well) and instead target the loading APIs with something that normalized the name and mapped that back to the case sensitive name.
 
  • Like
Reactions: scyne

JerryWn

New Member
Aug 5, 2021
3
1
If you guys are calling 'translations' DLC, patch v3 drops that. And it can work on non-Steam if you SAR byte-patch in-memory the actual installer. I bypassed the Steam requirement and ran the thing to test it, all English. *shrug*
Hello!I'd like to learn how to crack the DLCPatch program,because i need a chinese version of the DLCPatchInstaller,i have the same problem about it need be installed on the steam version of the game,could you give me some advise?Thank you very much!
 

BupoTiling03-Retired

Well-Known Member
Modder
Jul 21, 2018
1,341
1,891
Hello!I'd like to learn how to crack the DLCPatch program,because i need a chinese version of the DLCPatchInstaller,i have the same problem about it need be installed on the steam version of the game,could you give me some advise?Thank you very much!
Just look into the "Steam-only" DLC patcher's memory and look for a specific function (you'll see a function name as a string suggestive of a validating functionality).
 

JerryWn

New Member
Aug 5, 2021
3
1
Just look into the "Steam-only" DLC patcher's memory and look for a specific function (you'll see a function name as a string suggestive of a validating functionality).
Thanks for your advice! I've used a tool called "Ghidra", and i searched for function like "vali", but there seems have no matched function, what should i do? Or could i have a private message with you? Thank you again!
屏幕截图 2021-08-05 171653.png
 

scyne

Newbie
Dec 4, 2018
20
7
Yeah, I started down that path, but it turns out that the packaging tool cares about case sensitivity on Linux. And you can create a Web/Linux version that's incompatible with Windows by having clashing file names.

In the end I found it easier to keep the files as is (so they didn't need to be renamed all the time as versions changed and if the file name is constructed by code, deal with that as well) and instead target the loading APIs with something that normalized the name and mapped that back to the case sensitive name.
Huh, very interesting. I would have thought the difficulty would be where the web server tries to access the file system; normalising the path names in the application would still require normalisation in the file system.

ie, the RPGM web application tries to GET a folder/filename.ext, the web server tries to read folder/filename.ext in order to respond to the GET request, but can't read the file because the file system has it saved as FOLDER/Filename.EXT.

Anyway, I'm pretty sure now I misunderstood the context of the original problem . I should check to see what the mod actually does :oops:.
 

kin-kun

Active Member
Modder
Jul 10, 2020
963
2,390
Huh, very interesting. I would have thought the difficulty would be where the web server tries to access the file system; normalising the path names in the application would still require normalisation in the file system.

ie, the RPGM web application tries to GET a folder/filename.ext, the web server tries to read folder/filename.ext in order to respond to the GET request, but can't read the file because the file system has it saved as FOLDER/Filename.EXT.

Anyway, I'm pretty sure now I misunderstood the context of the original problem . I should check to see what the mod actually does :oops:.
If you're running nwjs directly then there isn't actually a web server involved, just Chromium loading local files. (Yes it is still a JavaScript get request, but it is handled by the browser.)

If instead a webserver is involved (like Apache) then you can use that to fix stuff up as needed (mod_speling) but some games don't play correctly and you lose out on local save files.

Furthermore if you're using ext4 and happen to have the right setup you can tell the OS to make a folder (and subfolders) case insensitive (but case preserving)

Turns out JoiPlay uses a similar method of path caching, while leaving the files alone so that patches/upgrades can be applied easily.
 
  • Like
Reactions: scyne

BupoTiling03-Retired

Well-Known Member
Modder
Jul 21, 2018
1,341
1,891
Thanks for your advice! I've used a tool called "Ghidra", and i searched for function like "vali", but there seems have no matched function, what should i do? Or could i have a private message with you? Thank you again!
That is not at all what I said to do... I don't teach anymore. I used to, but people are quite ungrateful to be taught how to fish, they just want the fish. I don't teach anymore.
 
  • Like
Reactions: JerryWn

BupoTiling03-Retired

Well-Known Member
Modder
Jul 21, 2018
1,341
1,891
Huh, very interesting. I would have thought the difficulty would be where the web server tries to access the file system; normalising the path names in the application would still require normalisation in the file system.

ie, the RPGM web application tries to GET a folder/filename.ext, the web server tries to read folder/filename.ext in order to respond to the GET request, but can't read the file because the file system has it saved as FOLDER/Filename.EXT.

Anyway, I'm pretty sure now I misunderstood the context of the original problem . I should check to see what the mod actually does :oops:.
Case-sensitivity. It sucks, but most developers are uneducated regarding filesystems and filesystem-access, their experiences usually limited to Windows. They don't realize that case-sensitive makes a difference. Even character-encoding for filenames makes a difference. It's like the CJK-days all over again.
 

AmazonessKing

Amazoness Entrepreneur
Aug 13, 2019
1,898
2,924
Question, is there a way to stop a sex scene before you run out of stamina?
EDIT: I found out you need to click on the player's portrait.
But I have yet another question: How do you capture a rarity 1 insect when you maxed the bug-catching thing already?
 
Last edited:

Walolo

Newbie
Oct 1, 2017
23
10
Question, is there a way to stop a sex scene before you run out of stamina?
EDIT: I found out you need to click on the player's portrait.
But I have yet another question: How do you capture a rarity 1 insect when you maxed the bug-catching thing already?
There's a tree near the river. From there you can catch rarity 1 and 2 bugs
 

scyne

Newbie
Dec 4, 2018
20
7
If you're running nwjs directly then there isn't actually a web server involved, just Chromium loading local files. (Yes it is still a JavaScript get request, but it is handled by the browser.)

If instead a webserver is involved (like Apache) then you can use that to fix stuff up as needed (mod_speling) but some games don't play correctly and you lose out on local save files.

Furthermore if you're using ext4 and happen to have the right setup you can tell the OS to make a folder (and subfolders) case insensitive (but case preserving)

Turns out JoiPlay uses a similar method of path caching, while leaving the files alone so that patches/upgrades can be applied easily.
Huh! Thanks for the info, I honestly didn't know. I just assumed there was a webserver running underneath, and Chromium was connected to it under the hood. In general I've been running RPGMaker M[VZ] games by directly hosting the www/index.html file myself, since it avoids running executable code I haven't written. Doesn't work with all RPGM games, of course, but enough.

Cheers again.
 

scyne

Newbie
Dec 4, 2018
20
7
Case-sensitivity. It sucks, but most developers are uneducated regarding filesystems and filesystem-access, their experiences usually limited to Windows. They don't realize that case-sensitive makes a difference. Even character-encoding for filenames makes a difference. It's like the CJK-days all over again.
Yeah. I've worked on enough cross-platform applications that it's always a big concern for me. Usually I tackle it by enforcing strict naming conventions across any application stack (which of course has other benefits).

As application development as become (paradoxically) both more complex and easier to do, I've found that it's quite common for people to be working in a context entirely devoid from some of the fundamental aspects of computing; the file system, the shell, and communication (mostly encoding — the good ol' CJK days). So these problems crop up a lot, especially in internally built enterprise software and home-made applications.

Luckily enough, I find helping/teaching/mentoring fun, so I usually enjoy helping to address such issues :).
 
4.60 star(s) 155 Votes