Ancurio / mkxp

Free Software implementation of the Ruby Game Scripting System (RGSS)
GNU General Public License v2.0
513 stars 131 forks source link

[Physfs]Use of shared RPGMaker XP ressources #148

Closed psykauze closed 3 years ago

psykauze commented 8 years ago

Some games need the "shared" ressources from RPG Maker XP Runtime.

The issue is, when mkxp does not find one ressource (audio or sprite) it crash.

Due to license restrictions, mkxp can't share the RPG Maker XP ressources but I'm thinking of two kind of solutions: 1) Have a script for downloading the RPXP runtime and extracting the shared ressources. 2) Make opensource replacements for all the ressources.

Also, mkxp (probably PhysFS) should check the file in this order: 1) Directory files (shared by the game itself) 2) Inside the rgss file 3) Into the RPG Maker XP runtime shared directory. (or the opensource replacement directory)

Regards.

Ancurio commented 8 years ago

The issue is, when mkxp does not find one ressource (audio or sprite) it crash.

Yes, that's identical to RMXP Player.exe.

1) Have a script for downloading the RPXP runtime and extracting the shared ressources.

I believe installing the RTP requires you to accept an EULA, which you can only do when manually running the installer.

2) Make opensource replacements for all the ressources.

That would be a nice thing, but it's outside the scope of both my abilities and the mkxp project. If you find a project like this, please let me know!

Also, mkxp (probably PhysFS) should check the file in this order: 1) Directory files (shared by the game itself) 2) Inside the rgss file 3) Into the RPG Maker XP runtime shared directory. (or the opensource replacement directory).

I believe this is the wrong order, as rgssad archives always have precedence (due to Script.rxdata alone). Other than that, this order is currently implemented in mkxp.

psykauze commented 8 years ago

I believe this is the wrong order, as rgssad archives always have precedence (due to Script.rxdata alone). Other than that, this order is currently implemented in mkxp.

Yeah, you're right. I've just checked and the correct order is RGSSAD then local dir then RTP ressources.

I believe installing the RTP requires you to accept an EULA, which you can only do when manually running the installer.

There is no EULA at installation, but there is one before the download (http://www.rpgmakerweb.com/download/additional/run-time-packages#rpg-maker-xp). Maybe the script should show the EULA and ask to the user if he accept it before downloading. But, should the script download the EULA from the website or can it be included directly in the script ?

Note: Until mkxp can run RPG Maker VX and ACE, the script should also detect the engine and download the correct RTP.

Ancurio commented 3 years ago

Closing this to declutter. Personally, I'm of the opinion that RTP installation should be handled similarly to how it's done on Windows, ie. you either bundle all required RTP assets directly with your game, or you instruct your users to install it manually. An automatic RTP download script that ideally skips wine-execution of the installer would be nice, but it's out of scope for this project.