RPG Maker MV Repackaged Games

4.00 star(s) 1 Vote

kin-kun

Active Member
Modder
Jul 10, 2020
963
2,288
Good day sir!

I wanted to play Apostle on my linux machine but your port uses an older game version (1.05 vs 1.1.1). Is there anything significant I'd be missing from the game if I played or not?

Thank you.
Latest patch from Kagura is labeled v5 so I gave it a version 1.05. if there's a later version out there I can try updating to it, but IIRC 1.1.1 is 1.05.
 
Jul 16, 2020
34
60
Latest patch from Kagura is labeled v5 so I gave it a version 1.05. if there's a later version out there I can try updating to it, but IIRC 1.1.1 is 1.05.
The patch on Kagura is still v5 (no changelog whatsoever though), it's the DLSite that shows v1.1.1. If your port is the latest version then I will go ahead and play it. Thank you for your efforts!
 

Legal1709

Member
Aug 25, 2019
112
166
Hi good sir, I tried to play Bulma adventures 1 and 2 on Joiplay but for some reason I can't make it work, can you tell me why? Thank you
 
Mar 14, 2020
159
93
So I'm building the release of Island SAGA right now. That said I wanted to talk about how I was handling paths on Linux to run natively, how I'm doing it now and why.

As I point out in the nerd notes of my changelog, Linux is sensitive to file name case. While there's some tricks you can play with ext4 to make the filesystem sort of case insensitive, based on my limited research the requires an option when creating the filesystem. An option I neglected to add when building my raid array. Given that I really don't want to lose a lot of data (again) that is simply not an option.

Note: There is logic that limits this behavior to Linux only so Windows users won't see this behavior at all.
What I was doing was this:

On game startup, scan the entire game directory. Create a map between the lowercase filename and the case sensitive file name. When a request for a file comes in, check to see if it exists. If it does, great use it. If the file couldn't be found convert the name to lower case and ask the map what the real name should be. If the map didn't know, just pass along the request as it was, (and typically let the game crash.)​
Of course due to how RPG Maker MV encoding works, it couldn't be that simple. I had to look at file extensions and if it was one of the encoded types, switch that to the decoded extension in the map and result. I even made this work such that when not encoded, and the file on disk was a .webp, I would map the .png extension to it so play testing would just work.​

While not super efficient, with SSDs and how Linux file systems work this is pretty reasonable. That was until I started working on Island SAGA.

Island SAGA is a beast of a RPG Maker MV game. Unlike a game like Summer Memories which is pretty small and contains less than 7,000 files, Island SAGA hits you with over 14,000 files and they are not small. In my development environment this balloons to 36,000+ files due to source code control and other things I need. This means the files can be spread out on disk a lot, enough to negate the benefits of a SSD/RAID setup. Initially I didn't see these problems because filesystem caching would resolve thing quickly. But if I worked on other stuff for a while and came back, the first startup would take 2-3 minutes (before the loading screen showed up.)

After thinking about the causes for a while I came to the conclusion that my inefficient scan at startup was the cause. I went back to the drawing board.

Scanning the disk every time had to go, so I needed to have the map already built on startup. Well I could scan the filesystem and build up the map on first startup, but that's not exactly a great user experience. Besides I would have to be careful if I used full paths to look and rebuild the map if the files on disk changed or the user moved where the game was. What if I just built the map to begin with, and kept the paths relative to the game root? It wouldn't handle new files very well, so mods on top of my stuff would probably have trouble but I'm already making a set of breaking changes so unless someone took my stuff and modded that, they would break anyways.

So I took the map as it existed in my development environment and wrote it to disk. Yes it wouldn't work for encoded files, but I figured I'd take it one step at a time.

This first attempt wasn't encouraging. The resulting JSON file was 14 megabytes. That's not awesome. I suppose it is all text and I could use compression. But looking at drops off at about 750,000 bytes. Having a file of 14,000,000+ bytes means the lz-string might actually take longer to load than looking at the filesystem. Well, the author did say for larger items you should use LZMA, so I pulled in the . And using LZMA shrunk that file from 14,299,926 bytes to 908,193 bytes which is about 6% of the original size. Experiments showed I could load this in around 800 milliseconds, (0.8 seconds) but then the result still needed to be parsed.

Looking at my file map I saw that my .git directory was being included, as well as a bunch of stuff for my builds. So I targeted the www directory exclusively. (Yes, this has a problem with the scenario folder in Dieselmine games, but that's something I could fix later.) I also started to use compact output for the JSON. Finally, I limited the map to files that have an uppercase letter in them. Coupled with lzma, this brought down the JSON archive size to 58,126 bytes for development, 23,834 bytes for production use. (The development version still has to map .webp to .png files.)

I finally had my solution. Wrap it up in a python script and you get:
Python:
#!/usr/bin/env python3
import json
import lzma
import os
from pathlib import PurePosixPath

real_path = []
# Set the directory you want to start from
rootDir = 'www'
base = PurePosixPath("/")
for dir_name, _, fileList in os.walk(rootDir):
    for file_name in fileList:
        real_path.append(base.joinpath(dir_name, file_name))

file_map={}
enc_file_map={}
for path in real_path:
    p = PurePosixPath(path)
    inputSuffix = p.suffix
    if(inputSuffix == ".webp"):
        inputSuffix = ".png"
    p_str = str(p.parent.joinpath(str(p.stem)+inputSuffix))
    p_str_lc = p_str.lower()
    if p_str_lc in file_map:
        print("Upper case/lower case collision with %s" % p_str)
        exit(1)
    else:
        if(p_str_lc != p_str):
            enc_file_map[p_str_lc]=p_str
            file_map[p_str_lc] = str(p)
        elif(p.suffix == ".webp"):
            file_map[p_str_lc] = str(p)
my_filters = [
    {"id": lzma.FILTER_LZMA1, "preset": 2}
]

with lzma.open("pathdata.xz", "w",format=lzma.FORMAT_ALONE, filters=my_filters) as f:
    f.write(bytes(json.dumps(file_map, separators=(',', ':')), "utf-8"))

with lzma.open("pathdata.enc.xz", "w",format=lzma.FORMAT_ALONE, filters=my_filters) as f:
    f.write(bytes(json.dumps(enc_file_map, separators=(',', ':')), "utf-8"))
The only issues are:
  1. If someone is using the Turkish language set (or other language that does this) the javascript toLower() function may result in a filename that doesn't match
    • Turns out the letter 'I' doesn't become 'i' in Turkish, instead it becomes ı
  2. Windows won't handle the webp mapping for a playtest
    • The core needs to change to fix this, so it isn't any different than before
There are more changes I want to make to Island SAGA, but I want to make sure that the existing changes are working properly first

Falk man I downloaded both the JoiPlay and windows compressed version 1.0.5.03 and when I launch the game it shows failed to load windows.png...and when I put any random image with that name it shows me different image failed to load and then different image failed to load and then different image and so on...
 

kin-kun

Active Member
Modder
Jul 10, 2020
963
2,288
Falk man I downloaded both the JoiPlay and windows compressed version 1.0.5.03 and when I launch the game it shows failed to load windows.png...and when I put any random image with that name it shows me different image failed to load and then different image failed to load and then different image and so on...
Double check you don't have an app updates pending, like webview.
 

Somethingwierd

New Member
Nov 22, 2019
3
1
I've been trying to play apostle on joiplay but keep getting an error

Type error: cannot read properties of undefined (reading canvas)

I played island saga ok other than the problems called out in your changelog but apostle I can't get past the title screen
 

bsnook981

Newbie
Aug 10, 2018
36
19
Hi,

I've been trying to play Roundscape Adorevia 5.8b on Joiplay and been having some issues.

One problem, is that it is damn laggy. You can hardly move in the bigger cities and no setting changes seem to make a difference.

The main issue, however, is the black screens that I get on some maps. One being Ornesse north. It still allows movement and all, but you can't see anything. I vaguely remember Joiplay having a compatibility download for this in the past, but now that it doesn't I don't know what to do. While researching, I've been told that the issue might be that the fade to black doesn't fade out on many of the maps.

I know that this might be a big ask, but if you have the time, I'd really appreciate it.
 
  • Like
Reactions: orbzzz

kin-kun

Active Member
Modder
Jul 10, 2020
963
2,288
I've been trying to play apostle on joiplay but keep getting an error

Type error: cannot read properties of undefined (reading canvas)

I played island saga ok other than the problems called out in your changelog but apostle I can't get past the title screen
If you're using WebGL, this usually means the WebView needs an update. Otherwise, I don't think I can help too much, unfortunately I don't have enough control of JoiPlay

Hi,

I've been trying to play Roundscape Adorevia 5.8b on Joiplay and been having some issues.

One problem, is that it is damn laggy. You can hardly move in the bigger cities and no setting changes seem to make a difference.

The main issue, however, is the black screens that I get on some maps. One being Ornesse north. It still allows movement and all, but you can't see anything. I vaguely remember Joiplay having a compatibility download for this in the past, but now that it doesn't I don't know what to do. While researching, I've been told that the issue might be that the fade to black doesn't fade out on many of the maps.

I know that this might be a big ask, but if you have the time, I'd really appreciate it.
I've been meaning to work on that game, just haven't gotten around to it yet.

Can you provide new links for this game? In my case I need the Windows one.
You might check out my profile. Maybe you can find something there, or ask someone who got a copy.

Updated Bound by Love to v1.05.01
 
  • Like
Reactions: cdvz23

broice

New Member
Jan 8, 2022
1
0
Hi Kind sir! May i know when will the port for Karryn's Prison be completed? Been looking around and found that you're working on this and I'm hyped! Been looking forward to play this on android. Thank you in advance!
 

Yui Kozuka

Member
Dec 19, 2021
124
22
kin-kun can you added x-ray and longer penis for cervix penetrate in summer Memories Plus?
I know that crazy, I hope you can consider it in next update.
Thanks for listening
 

kin-kun

Active Member
Modder
Jul 10, 2020
963
2,288
Hi Kind sir! May i know when will the port for Karryn's Prison be completed? Been looking around and found that you're working on this and I'm hyped! Been looking forward to play this on android. Thank you in advance!
Yo kin-kun, can you take a look at this game here: https://f95zone.to/threads/tales-of...uild-1-crimsondelightgames.79920/post-5575515

Somehow it doesn't work on Ubuntu 20.04 but works fine with Wine. Under Ubuntu the game starts, but the screen stays black. I did some debugging and found the plugin which cause the black screen - SRD_GameUpdate. The plugin ARP_Commandicons seems to be another troublemaker.
kin-kun can you added x-ray and longer penis for cervix penetrate in summer Memories Plus?
I know that crazy, I hope you can consider it in next update.
Thanks for listening
Sorry, I've been collaborating with someone on a project for a few weeks, which makes decoding RPGMaker MV games so much faster and easier. I'll look at these as soon as I have time.
 

Kiugra

Newbie
Aug 23, 2020
56
15
Hi friend, just for curiosity, what is the next games or game that you will release a Joiplay version ?
 

54ub

New Member
May 25, 2021
5
0
Hi, why can't I change the in-game image by replacing the file with the same name, I'm new to rpg maker.
 

cold_arctus

Devoted Member
Sep 25, 2018
8,945
10,819
Can I change the image by decrypting it and then encrypting it again,
Yes. However, you don't need to encrypt the images again if you set "hasEncryptedImages" in system.json from true to false..
"hasEncryptedImages":false,"hasEncryptedAudio":false
can you show me how to do it?
This should answer all your questions.
 
4.00 star(s) 1 Vote