I think the build is just for Win PC but playable through emulator on Linux.hi sorry to ask am trying to run your game on linux however i cant seem to run it due to the file wont load after download
I think the build is just for Win PC but playable through emulator on Linux.hi sorry to ask am trying to run your game on linux however i cant seem to run it due to the file wont load after download
i may have made a mistake switching to linux if thats the case , my pc is from 2014 and well it wasnt going to update no more and i felt like saving it then to see it being uselessI think the build is just for Win PC but playable through emulator on Linux.
The game works on Linux, I'm running it. It's extremely rare I've encountered a Renpy game on here that doesn't work on Linux FYI, and I've played at least an hundred.i may have made a mistake switching to linux if thats the case , my pc is from 2014 and well it wasnt going to update no more and i felt like saving it then to see it being useless
you have thats so strange 3 times i tried to extract and i get a message as if the file is not there what link you usedThe game works on Linux, I'm running it. It's extremely rare I've encountered a Renpy game on here that doesn't work on Linux FYI, and I've played at least an hundred.
Try extracting the zip from from CLI, use the unzip command.
From Mega.you have thats so strange 3 times i tried to extract and i get a message as if the file is not there what link you used
You must be registered to see the links-You must be registered to see the links- MEGA -You must be registered to see the links
cd ~/Downloads
unzip Theater_Of_Sinners-0.2.alpha-pc.zip
unzip -t Theater_Of_Sinners-0.2.alpha-pc.zip
also to perform a verification of the archive.#!/bin/bash
########################################################################
# Sandboxes RenPy games on Linux, disabling network access and a few other security enhancements.
# Also runs the game through gamescope for FSR scaling.
# Requires firejail, gamescope, xrandr to be installed.
# Optionally requires rpatool to find the game resolution (for FSR).
# Put your games in $HOME/Games/renpy
# Make this script executable (chmod u+x run.sh).
# Put this script (run.sh) in the game folder, where the py, sh and exe file is.
# Double click it to run the game.
#
# To get a normal a cursor in gamescope, instead of a X, put it here: ~/.local/share/gamescope_cursor.png
# You can use this one for example : https://github.com/black7375/Breeze-Cursors-for-Windows/raw/master/Sources/normal.png
#
# License: GNU General Public License 3.0 or later
########################################################################
scriptName="$(basename "$0")"
for program in firejail gamescope xrandr; do
if ! which $program &> /dev/null; then
echo "Script '$scriptName' requires $program."
exit 1
fi
done
# Attempts to find the game's resolution for gamescope's FSR. If it fails, 1920x1080 will be used.
# If this fails. you can also use rpatool to extract the rpa file containing the images to determine the resolution.
find_game_res() {
rpatool="$(which rpatool)"
if [[ ! -f $rpatool ]]; then
rpatool="$(realpath ../rpatool)"
[[ ! -f $rpatool ]] && echo "Could not find rpatool!" && return
fi
gRes=$(grep -r "gui\.init([0-9]" &> /dev/stdout | head -n1)
if [[ $gRes =~ "binary file matches" ]]; then
archive=$(realpath "$(echo "$gRes" | cut -d: -f2 | xargs)")
[[ ! -f $archive ]] && return
curDir="$(realpath .)"
tmpDir="$(mktemp -d)"
cd "$tmpDir" || return
"$rpatool" -x "$archive"
gRes=$(grep -r "gui\.init([0-9]" &> /dev/stdout | head -n1)
rm -rf "$tmpDir"
cd "$curDir" || return
fi
if [[ $gRes =~ gui\.init\([0-9] ]]; then
gWidth="$(echo "$gRes" | grep -Po "\(\d+" | cut -d\( -f2)"
gHeight="$(echo "$gRes" | grep -Po "\d+\)" | cut -d\) -f1)"
sed -i "s/^gWidth=[0-9]*/gWidth=$gWidth/" "$0"
sed -i "s/^gHeight=[0-9]*/gHeight=$gHeight/" "$0"
sed -i "s/^gameName=.*/gameName=$gameBaseName/" "$0"
echo "Found game resolution ${gWidth}x${gHeight}."
fi
}
[[ -d $1 ]] && cd "$1"
if [[ ! -d renpy ]]; then
echo "Script '$scriptName' is in wrong directory, put in a renpy game (the renpy folder must exist)."
exit 1
fi
dRes=$(xrandr | grep -m1 "\*" | grep -Po "\d+x\d+")
if [[ -n $dRes ]]; then
dWidth=$(echo "$dRes" | cut -d x -f1)
dHeight=$(echo "$dRes" | cut -d x -f2)
fi
[[ -z $dWidth ]] && dWidth=2560
[[ -z $dHeight ]] && dHeight=1440
gameExec="$(find . -maxdepth 1 -type f \( -name '*.sh' ! -name "$scriptName" \))"
if [[ ! -f $gameExec ]]; then
echo "Failed to find game executable."
exit 1
fi
gameBaseName="$(basename "$gameExec" .sh)"
gameName=x
gWidth=0
gHeight=0
if [[ ! $gameName == $gameBaseName ]]; then
find_game_res
if [[ $gWidth == 0 ]] || [[ $gHeight == 0 ]]; then
echo "Failed to find game's native resolution, falling back to 1920x1080."
gWidth=1920
gHeight=1080
fi
fi
chmod u+x "$gameExec"
chmod u+x "lib/linux-x86_64/$gameBaseName"
echo "Starting game."
MANGOHUD=1 ENABLE_VKBASALT=1 gamescope \
--nested-width $gWidth --nested-height $gHeight \
--output-width $dWidth --output-height $dHeight \
--fullscreen \
--nested-refresh 30 --nested-unfocused-refresh 5 \
--fsr-upscaling \
--sharpness 20 \
--cursor $([[ -f ~/.local/share/gamescope_cursor.png ]] && echo ~/.local/share/gamescope_cursor.png || echo /dev/null) \
-- \
firejail \
--nogroups --net=none --nodbus --nou2f --private-dev --private-tmp --seccomp \
--whitelist=~/.renpy --noblacklist=~/.renpy \
--whitelist=~/.config/renpy --noblacklist=~/.config/renpy \
--whitelist=~/Games/renpy --noblacklist=~/Games/renpy \
"$gameExec"
exit "$?"
you have thats so strange 3 times i tried to extract and i get a message as if the file is not there what link you used
You must be registered to see the links-You must be registered to see the links- MEGA -You must be registered to see the links
ill look into it thanks am new to linux so i havent used a terminal beforeFrom Mega.
Like I wrote, try from from CLI.
Open gnome-terminal or whichever terminal you have installed, then type :
cd ~/Downloads
Press Enter.
Type:
unzip Theater_Of_Sinners-0.2.alpha-pc.zip
Press Enter.
If there's a error with the archive that will tell you.
You can useunzip -t Theater_Of_Sinners-0.2.alpha-pc.zip
also to perform a verification of the archive.
No worries.ill look into it thanks am new to linux so i havent used a terminal before
Well, that's fair. it's your game, you should make it how you imagine it.I actually like all mighty super villains. I imagine myself doing a game where the MC's try to escape a terrible fate while growing slowly into despair seeing nothing they do work against the all mighty evil in front of them. Like the first Saw movie for instance. I could team Rebeca and Paula up against Paula's mother and make such a game =D Maybe I make an spin off.
Paula will get depth in season two part one. From a character development point of view, first season is Rebeca / Agnes spotlight . Season two is for Paula / Olivia to shine.
She is 15 !!! Sorry, no Agnes daughter =D She will appear again though.Well, that's fair. it's your game, you should make it how you imagine it.
Hey, perhaps Agnes's daughter can make an appearance too. Every good game benefits from having a skinny teen getting corrupted in it.
Yes. It's planned. An event selection look alike together with the 'seen-label' function from Ren'Py. The issue is that events tend to play different based on levels, stats, etc. I have seen before that some galleries ask you for which stats the characters had when doing the event but I am no so fond of it. I'd like the gallery to separate the different options, but I didn't structure it that well... every variation of an event should be on its own label. Long story short... yes... there will be gallery of some sort.I already said it in the review, but I think this game would benefit greatly from a replay option. From the structure of the game, I think it would be a really easy thing to do.
I mean a "gallery" where you can see past scenes again, I don't know if I'm explaining myself.
Hey there. I didn't do any android port myself. You have port thanks to an awesome user that did it. I think he post it in the beginning of the thread, so maybe you can ping him.Hey am curious about the android version of this game where can I find it it's not available?
Hey there ! The middle photo is somehow the look I am looking for a comic like thingy with the story of the mother of Paula. Is that AMD only ? Do you know anything about that technique ? Like if it is something I could post-process all images in say... a python script ?If it helps you or anyone else, I run all RenPy games through a script which sandboxes them and disables internet connectivity.
It also scales them using FSR, here's the script if you want it:
Edit: I've attached comparison screenshots, default (off.png), FSR scaling (fsr.png), FSR scaling + vkBasalt (fsr_vkbasalt.png). Easier to see the difference if you have them at their original resolution.Bash:#!/bin/bash ######################################################################## # Sandboxes RenPy games on Linux, disabling network access and a few other security enhancements. # Also runs the game through gamescope for FSR scaling. # Requires firejail, gamescope, xrandr to be installed. # Optionally requires rpatool to find the game resolution (for FSR). # Put your games in $HOME/Games/renpy # Make this script executable (chmod u+x run.sh). # Put this script (run.sh) in the game folder, where the py, sh and exe file is. # Double click it to run the game. # # To get a normal a cursor in gamescope, instead of a X, put it here: ~/.local/share/gamescope_cursor.png # You can use this one for example : https://github.com/black7375/Breeze-Cursors-for-Windows/raw/master/Sources/normal.png # # License: GNU General Public License 3.0 or later ######################################################################## scriptName="$(basename "$0")" for program in firejail gamescope xrandr; do if ! which $program &> /dev/null; then echo "Script '$scriptName' requires $program." exit 1 fi done # Attempts to find the game's resolution for gamescope's FSR. If it fails, 1920x1080 will be used. # If this fails. you can also use rpatool to extract the rpa file containing the images to determine the resolution. find_game_res() { rpatool="$(which rpatool)" if [[ ! -f $rpatool ]]; then rpatool="$(realpath ../rpatool)" [[ ! -f $rpatool ]] && echo "Could not find rpatool!" && return fi gRes=$(grep -r "gui\.init([0-9]" &> /dev/stdout | head -n1) if [[ $gRes =~ "binary file matches" ]]; then archive=$(realpath "$(echo "$gRes" | cut -d: -f2 | xargs)") [[ ! -f $archive ]] && return curDir="$(realpath .)" tmpDir="$(mktemp -d)" cd "$tmpDir" || return "$rpatool" -x "$archive" gRes=$(grep -r "gui\.init([0-9]" &> /dev/stdout | head -n1) rm -rf "$tmpDir" cd "$curDir" || return fi if [[ $gRes =~ gui\.init\([0-9] ]]; then gWidth="$(echo "$gRes" | grep -Po "\(\d+" | cut -d\( -f2)" gHeight="$(echo "$gRes" | grep -Po "\d+\)" | cut -d\) -f1)" sed -i "s/^gWidth=[0-9]*/gWidth=$gWidth/" "$0" sed -i "s/^gHeight=[0-9]*/gHeight=$gHeight/" "$0" sed -i "s/^gameName=.*/gameName=$gameBaseName/" "$0" echo "Found game resolution ${gWidth}x${gHeight}." fi } [[ -d $1 ]] && cd "$1" if [[ ! -d renpy ]]; then echo "Script '$scriptName' is in wrong directory, put in a renpy game (the renpy folder must exist)." exit 1 fi dRes=$(xrandr | grep -m1 "\*" | grep -Po "\d+x\d+") if [[ -n $dRes ]]; then dWidth=$(echo "$dRes" | cut -d x -f1) dHeight=$(echo "$dRes" | cut -d x -f2) fi [[ -z $dWidth ]] && dWidth=2560 [[ -z $dHeight ]] && dHeight=1440 gameExec="$(find . -maxdepth 1 -type f \( -name '*.sh' ! -name "$scriptName" \))" if [[ ! -f $gameExec ]]; then echo "Failed to find game executable." exit 1 fi gameBaseName="$(basename "$gameExec" .sh)" gameName=x gWidth=0 gHeight=0 if [[ ! $gameName == $gameBaseName ]]; then find_game_res if [[ $gWidth == 0 ]] || [[ $gHeight == 0 ]]; then echo "Failed to find game's native resolution, falling back to 1920x1080." gWidth=1920 gHeight=1080 fi fi chmod u+x "$gameExec" chmod u+x "lib/linux-x86_64/$gameBaseName" echo "Starting game." MANGOHUD=1 ENABLE_VKBASALT=1 gamescope \ --nested-width $gWidth --nested-height $gHeight \ --output-width $dWidth --output-height $dHeight \ --fullscreen \ --nested-refresh 30 --nested-unfocused-refresh 5 \ --fsr-upscaling \ --sharpness 20 \ --cursor $([[ -f ~/.local/share/gamescope_cursor.png ]] && echo ~/.local/share/gamescope_cursor.png || echo /dev/null) \ -- \ firejail \ --nogroups --net=none --nodbus --nou2f --private-dev --private-tmp --seccomp \ --whitelist=~/.renpy --noblacklist=~/.renpy \ --whitelist=~/.config/renpy --noblacklist=~/.config/renpy \ --whitelist=~/Games/renpy --noblacklist=~/Games/renpy \ "$gameExec" exit "$?"
This is the best news I’ve heard in a while! Though I’m sorry you won’t be able to work on the rest until October, a Paula event is a sweet little treat. Can’t wait.View attachment 1988654
Paula "So, when are you finishing 0.2.Final and start working on MY update."
Dev "Here... look at the dev plan..."
View attachment 1988667
Paula "What !!?!?!? You won't be working on the Theater until mid October !?!?!"
Dev "Yeah... sorry... I am away of my PC until then and working with the laptop is a real pain."
Dev "I'll be working on a short story though... more on that later."
View attachment 1988670
Paula "But... BUT..."
View attachment 1988677
Paula "I am calling my agent !"
Dev "Wait ! Don't call anyone ! You are getting an event in 0.2.Final !!"
View attachment 1988679
Paula "Ok. I am going to let it pass this time. But do NOT forget who is the star."
-------
So... 0.2.Final almost ready. Coming later this week and yes...
It will contain a Paula event for Mr. Smith level 4. So if you got this photo...
View attachment 1988680
You will be able to play the additional event.
View attachment 1988681
Paula "Shit... another old bastard event."
Most of the look comes from a shader calledHey there ! The middle photo is somehow the look I am looking for a comic like thingy with the story of the mother of Paula. Is that AMD only ? Do you know anything about that technique ? Like if it is something I could post-process all images in say... a python script ?
Thx !
#!/bin/bash
# License GPLv3 or later
cleanup() {
exit 0
}
trap cleanup EXIT
inPath="$(realpath "$1")"
if [[ ! $1 =~ images/?$ ]] || [[ ! -d "$inPath" ]]; then
echo "Pass the path to the images folder as first argument. i.e.: $0 /home/example/SomeGame/game/images"
exit 1
fi
for image in $(find "$inPath" -type f -iregex ".*\.\(jpg\|png\|webp\)$"); do
outPath=$(echo "$(dirname "$image")" | sed "s%game/images%game/images_out%")
mkdir -p "$outPath"
imgName="$outPath/"$(basename "$image")""
imgName="$(echo "$imgName" | sed "s/\.[a-zA-Z]*$/.png/")"
rm -f "$imgName"
ENABLE_VKBASALT=1 gamescope --fullscreen -- timeout 1.5 ffplay -noborder "$image" &
spectacle --background --nonotify --fullscreen --output "$imgName" --delay 800
done