Create and Fuck your AI Cum Slut -70% OFF
x

Tool Ren'Py UnRen for MacOS and Linux v0.8.2

5.00 star(s) 1 Vote

SteelyDan14

President of the "Free Roams Suck Society"
Modder
Donor
Jan 13, 2018
1,806
8,262
718
I run into an error when I tried to extract an RPA from a game created using the latest version of RenPy (3.4.1). Rpatool works fine when run directly from the game's folder.

However, UnRen works fine for games made with an older version of RenPy.

Is anyone else having this issue?

Code:
Please select > 1
  > Traceback (most recent call last):
  >   File "/home/cold/gamename/rpatool.py", line 7, in <module>
  >     import renpy.config
  >   File "/home/cold/gamename/renpy/config.py", line 1056, in <module>
  >     exception_handler: Callable[[renpy.error.TracebackException], bool] | None = None
  >                                  ^^^^^^^^^^^
  > AttributeError: module 'renpy' has no attribute 'error'
I use this for RPA extraction.



This way I can just extract the RPA files I want to extract. If you are having problems, you might try this.

Sorry... I am assuming you are using linux?
 
  • Crown
Reactions: skyrfen

Madeddy

Well-Known Member
Dec 17, 2017
1,016
735
244
using the latest version of RenPy (3.4.1).
Just for correctness, so its not sticking like this: Last Ren'Py is v8.4.1
AttributeError: module 'renpy' has no attribute 'error'
Yeah, the same. I tested for you with another game of the newer Ren'Py versions and got also this error. I looked a t the code and did find it uses a totally custom rpatool, i think its the version made by VepsrP and not working as intended.
Facts:
  1. Unren for linux/mac is unmaintained and hopelessly outdated
  2. rpa file unpacking is not always working anymore (reason?)
  3. rpyc file decompiling is not working for newer Ren'Py versions above v8.3.x

I attached you a older but mostly stable version of my own RPA unpacker. It works and needs min Python 3.6 :
python /home/USER/Code/rpakit.py -e /home/USER/Code/tst_apps/TEST_GAME

Some of the path-parts will naturally needed to be replaced by your systems state.
Good luck!
 
  • Like
Reactions: Sapient Monkey

Whinysteak

New Member
Nov 14, 2021
14
0
84
what is or is there a guide to how exactly i do this on a steam deck

edit: please be as specific as possible as im not tech savy at all
 

Madeddy

Well-Known Member
Dec 17, 2017
1,016
735
244
what is or is there a guide to how exactly i do this on a steam deck
Never heard of anyone using this on such a console and i have no idea if its possible at all. You need some Steamdeck nerds and ask them if you can run a shell script which needs also Python.

But that's neither here nor there, as this unren version for *nix OS very outdated is and not works for recent Ren'Py games ~ version8.3 and higher.
 

MrBlack ✌

Member
Jun 4, 2017
426
431
268
But that's neither here nor there, as this unren version for *nix OS very outdated is and not works for recent Ren'Py games ~ version8.3 and higher.
What is your definition of "works"?
This version, https://f95zone.to/threads/unren-for-macos-and-linux-v0-8-2.16887/post-9236030, works fine for me with every Ren'Py game that I download from this site.
Is your definition of "works" different from mine, or am I playing the wrong games? Nah, if it works, then they're the right games.
 

Madeddy

Well-Known Member
Dec 17, 2017
1,016
735
244
What is your definition of "works"?
Sigh. :censored:
1. I did not write it as you pretend. You even cited my REAL statement. Not nice.
2. I admit, i was not exact enough in my statement and it is a bit misleading. I appologise.
More precise now:
The state of `Unren for MAC and Linux`
  • The RPA unpacker works
  • Snipped embedding also
  • The decompiler is outdated; This (unren *nix) uses a modified unrpyc, which works for most apps up to Ren'Py v8.2.x. But not for newer Ren'Py versions.
The embedded decompiler variant is from summer 2023(!), consists of a Py3 port and some extra changes, made by two people for the users here and for fun. (the unrpyc main dev did not have time at this point to update unrpyc with py3 support and to support the pile of other changes in renpy)
 

RoughlySpecific

Active Member
May 27, 2020
706
930
269
what is or is there a guide to how exactly i do this on a steam deck

edit: please be as specific as possible as im not tech savy at all
Pretty sure the Deck should work same as other Linux distros. Just download the .sh file, then run it in the terminal.

Go into the desktop mode. Right-click the file and then select "run in terminal". When it runs, drag the folder of the Ren'py game you want to extract on top of the terminal window.

EDIT:
The Steam Deck runs Arch Linux with other stuff on top (simplified). Generally, the instructions for Arch Linux work for the Steam Deck, with occasional differences. (Some parts of the system are locked down, and the system is not updated in sync with Arch. Therefore, there is a lot of stuff that works on Arch but does not work on the Steam Deck.

If Unren complains about the Steam Deck having the wrong Python version, for example, I would personally not bother trying to fix it. If you want to go that route, "venv" will probably work on the Steam Deck.
 
Last edited:
  • Like
Reactions: its_not_real

keyNinja

New Member
Feb 21, 2023
11
6
62
If Unren complains about the Steam Deck having the wrong Python version, for example, I would personally not bother trying to fix it. If you want to go that route, "venv" will probably work on the Steam Deck.
But venv will not change the python version ionly libraries that are installed.

Most of the time a python binary comes bundled with the games (usually at a path like this: lib/py3-linux-x86_64)

Just use this python interpretreter to run unren.
Or if you want a easier solution uv, should run work without issue on the deck. and this allows you to change your python version while still allowing system updates.
 
  • Like
Reactions: RoughlySpecific

RoughlySpecific

Active Member
May 27, 2020
706
930
269
But venv will not change the python version ionly libraries that are installed.
Must have mixed something up from when I had to switch python version a year or so ago. Didn’t think much on it. (Something something miniconda, something something venv, and that’s all I remember.)

Standalone is better for this. Or ideally, it just runs by default.
 

its_not_real

Newbie
Game Developer
May 14, 2023
98
265
169
A bit of necro bump.

Using venv creates a virtual environment, but for that to be to a specific version of python you first need to use for example pyenv (conda is a "noob friendly" way of doing that) and THEN activate the python module venv.

DO NOT BLINDLY FOLLOW THESE INSTRUCTIONS, THINGS MIGHT BE VERY DIFFERENT ON YOUR SYSTEM AND CAN CAUSE ISSUES FOR YOU!!
Here is how you can do it on arch (probably not 1 to 1 applicable to steam deck since steamOS is an atomic version of arch but other similar methods are probably possible but maybe not recommended).

Code:
# first update your system
sudo pacman -Syu

# install pyenv
sudo pacman -S pyenv

# edit .bashrc and/or .zshrc (or your shell config) and add:
export PYENV_ROOT="$HOME/.pyenv"
eval "$(pyenv init -)"

# restart your shell, close the terminal and open a new or just initialize the shell again, for example for bash you can just type:
bash

# list current used python
python --version

# list available python versions that can be installed, scroll with arrows/PgUp/PgDn, press "q" to exit
pyenv install --list | less

# install preferred version, let's use 3.10 as example (will install latest version of 3.10, ie 3.10.19 but you can also specify exactly what version, like 3.10.10)
pyenv install 3.10

# now enter the directory you want the specific python to be used in
cd /path/to/directory

# list used version of python (should show "system (set by /home/<username>/.pyenv/version)")
pyenv version

# show available python versions via pyenv
pyenv versions

# use specific version of python you installed
pyenv local 3.10

# activate venv module in python (the second venv is the directory name you want to use, could be anything but most users prefer venv or a hidden directory .venv)
python -m venv venv

# check your $PATH
echo $PATH

# activate the venv
. ./venv/bin/activate

# check what python version is used
python -version
pyenv version

# now chek your path again and notice it now has the path to the venv in the beginning (/path/to/the/directory/you/installed/in)
echo $PATH

# deactivate python version when done (DO NOT FORGET TO DO THIS or the python version inside the venv will be used!!!)
deactivate

# check $PATH again and notice it is back to what it was before you activated the venv
echo $PATH
I use to activate/deactivate automatically when I enter/exit a directory with a venv setup.
I know myself and I WILL forget to deactivate... xD

After a venv is activated, you can use pip to install python packages without risking messing with your systems python, it will get installed to the version you venv:d. :)

Again, make sure you understand what you are doing before messing with things like this. It can be done very similar on a debian based system using apt to install.
 
  • Like
Reactions: RoughlySpecific
5.00 star(s) 1 Vote