Closed ghost closed 3 years ago
How do you launch the game?
I made a launcher that points to DDLC.sh in my MAS directory so that I can launch the game directly from my desktop - it's the linux equivalent of a shortcut.
I hate RenPy
Lol I feel you - but maybe this will help? Out of curiosity I tried setting up a test install using my current setup plus an older version of AHC, and running the game both with the launcher and directly from DDLC.sh.
So when I use the launcher and try to update, I get the same error I noted above. But when I launch the game directly from DDLC.sh, I can in fact open the submods menu and I see an exclamation mark beside AHC. I get the option to update using the Submod Updater Plugin. I selected update all with available updates, and then when prompted I restarted and AHC was updated.
I know. It's a RenPy issue, sometimes it just can't get the filepaths to its scripts right. It seems enough to make a new shortcut on windows, so it actually runs the game from the right folder, but I have no idea how to fix it on linux with your launcher and w/o changing my code.
Because of the birthday, I can't fix and test it right now, so it will probably take 1-3 days.
Ah, darn - was hoping maybe it wasn't RenPy but just my crummy laptop.
I can try making a new launcher and trying different configurations, see what happens. No harm in playing around. The launcher is a default built-in thing - right click on my desktop and select 'create launcher'. I will also try moving the launcher from my desktop into the MAS folder and see what happens. No rush no worries, thanks for looking into this!
OK so after playing around a bit I've discovered a few things. Creating the Submods/Submod Updater Plugin folder in my home directory and populating it with only the 4 images seems to work regardless of how I launch the game.
When I right click on my desktop and select 'create launcher' I get 3 options for which type of launcher I want. I usually select 'Application' because I can then run whatever I point it to without having to confirm whether I want to view or run the file - but that option gives the error. Making a new Application launcher doesn't make it work correctly as it does in Windows. Moving the launcher into the main game directory didn't work either. The second option is 'Application in terminal' which I didn't try because I don't want the terminal. 3rd option is 'Location', so I tried that. Choosing that 3rd Location option means that I have to confirm whether I want to run or display DDLC.sh, same as if I clicked it from within the main directory, but it allows me to update using the submod updater, and without having the additional Submod folder in my home directory.
So it seems there are a few workarounds available if it's too much of a PITA or if RenPy doesn't want to play nice with us.
@d3adpan ^ if you want to give it a try
Looks like it worked to me! I loaded the game with the launcher and no Submods folder in the home directory. Ran the updates no problems. I took the raw and the new beta image from your link and placed them appropriately. Thank you!
Closing as fixed in the last release.
When I try to update my submods from the menu I get the following error. It seems that perhaps it is looking in the wrong place for the file? It seems like it is looking in home/d3adpan/Submods/Submod Updater Plugin rather than home/d3adpan/MAS/game/Submods/Submod Updater Plugin for the necessary files?
I'm sorry, but an uncaught exception occurred.
While loading <'Image' u'/home/d3adpan/Submods/Submod Updater Plugin/indicator_update_available.png'>: File "renpy/common/00gamemenu.rpy", line 173, in
$ ui.interact()
File "game/Submods/Utilities/better_loading.rpy", line 50, in bl_load
raise IOError("Couldn't find file '%s'." % name)
IOError: Couldn't find file '/home/d3adpan/Submods/Submod Updater Plugin/indicator_update_available.png'.
-- Full Traceback ------------------------------------------------------------
Full traceback: File "/home/d3adpan/00gamemenu.rpyc", line 173, in script File "/home/d3adpan/MAS/renpy/ast.py", line 814, in execute renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store) File "/home/d3adpan/MAS/renpy/python.py", line 1719, in py_exec_bytecode exec bytecode in globals, locals File "renpy/common/00gamemenu.rpy", line 173, in
$ ui.interact()
File "/home/d3adpan/MAS/renpy/ui.py", line 285, in interact
rv = renpy.game.interface.interact(roll_forward=roll_forward, kwargs)
File "/home/d3adpan/MAS/renpy/display/core.py", line 2526, in interact
repeat, rv = self.interact_core(preloads=preloads, trans_pause=trans_pause, kwargs)
File "/home/d3adpan/MAS/renpy/display/core.py", line 2883, in interact_core
self.draw_screen(root_widget, fullscreen_video, (not fullscreen_video) or video_frame_drawn)
File "/home/d3adpan/MAS/renpy/display/core.py", line 1955, in draw_screen
renpy.config.screen_height,
File "renpy/display/render.pyx", line 427, in renpy.display.render.render_screen (gen/renpy.display.render.c:6806)
rv = render(root, width, height, 0, 0)
File "renpy/display/render.pyx", line 196, in renpy.display.render.render (gen/renpy.display.render.c:2978)
rv = d.render(widtho, heighto, st, at)
File "/home/d3adpan/MAS/renpy/display/layout.py", line 693, in render
surf = render(child, width, height, cst, cat)
File "renpy/display/render.pyx", line 110, in renpy.display.render.render (gen/renpy.display.render.c:3440)
cpdef render(d, object widtho, object heighto, double st, double at):
File "renpy/display/render.pyx", line 196, in renpy.display.render.render (gen/renpy.display.render.c:2978)
rv = d.render(widtho, heighto, st, at)
File "/home/d3adpan/MAS/renpy/display/transition.py", line 353, in render
return render(self.new_widget, width, height, st, at)
File "renpy/display/render.pyx", line 110, in renpy.display.render.render (gen/renpy.display.render.c:3440)
cpdef render(d, object widtho, object heighto, double st, double at):
File "renpy/display/render.pyx", line 196, in renpy.display.render.render (gen/renpy.display.render.c:2978)
rv = d.render(widtho, heighto, st, at)
File "/home/d3adpan/MAS/renpy/display/layout.py", line 693, in render
surf = render(child, width, height, cst, cat)
File "renpy/display/render.pyx", line 110, in renpy.display.render.render (gen/renpy.display.render.c:3440)
cpdef render(d, object widtho, object heighto, double st, double at):
File "renpy/display/render.pyx", line 196, in renpy.display.render.render (gen/renpy.display.render.c:2978)
rv = d.render(widtho, heighto, st, at)
File "/home/d3adpan/MAS/renpy/display/layout.py", line 693, in render
surf = render(child, width, height, cst, cat)
File "renpy/display/render.pyx", line 110, in renpy.display.render.render (gen/renpy.display.render.c:3440)
cpdef render(d, object widtho, object heighto, double st, double at):
File "renpy/display/render.pyx", line 196, in renpy.display.render.render (gen/renpy.display.render.c:2978)
rv = d.render(widtho, heighto, st, at)
File "/home/d3adpan/MAS/renpy/display/screen.py", line 623, in render
child = renpy.display.render.render(self.child, w, h, st, at)
File "renpy/display/render.pyx", line 110, in renpy.display.render.render (gen/renpy.display.render.c:3440)
cpdef render(d, object widtho, object heighto, double st, double at):
File "renpy/display/render.pyx", line 196, in renpy.display.render.render (gen/renpy.display.render.c:2978)
rv = d.render(widtho, heighto, st, at)
File "/home/d3adpan/MAS/renpy/display/layout.py", line 693, in render
surf = render(child, width, height, cst, cat)
File "renpy/display/render.pyx", line 110, in renpy.display.render.render (gen/renpy.display.render.c:3440)
cpdef render(d, object widtho, object heighto, double st, double at):
File "renpy/display/render.pyx", line 196, in renpy.display.render.render (gen/renpy.display.render.c:2978)
rv = d.render(widtho, heighto, st, at)
File "/home/d3adpan/MAS/renpy/display/layout.py", line 1081, in render
st, at)
File "renpy/display/render.pyx", line 110, in renpy.display.render.render (gen/renpy.display.render.c:3440)
cpdef render(d, object widtho, object heighto, double st, double at):
File "renpy/display/render.pyx", line 196, in renpy.display.render.render (gen/renpy.display.render.c:2978)
rv = d.render(widtho, heighto, st, at)
File "/home/d3adpan/MAS/renpy/display/layout.py", line 853, in render
surf = render(d, rw, height - y, cst, cat)
File "renpy/display/render.pyx", line 110, in renpy.display.render.render (gen/renpy.display.render.c:3440)
cpdef render(d, object widtho, object heighto, double st, double at):
File "renpy/display/render.pyx", line 196, in renpy.display.render.render (gen/renpy.display.render.c:2978)
rv = d.render(widtho, heighto, st, at)
File "/home/d3adpan/MAS/renpy/display/layout.py", line 1081, in render
st, at)
File "renpy/display/render.pyx", line 110, in renpy.display.render.render (gen/renpy.display.render.c:3440)
cpdef render(d, object widtho, object heighto, double st, double at):
File "renpy/display/render.pyx", line 196, in renpy.display.render.render (gen/renpy.display.render.c:2978)
rv = d.render(widtho, heighto, st, at)
File "/home/d3adpan/MAS/renpy/display/layout.py", line 1497, in render
cwidth, cheight = sizeit('c', width, height, 0, 0)
File "/home/d3adpan/MAS/renpy/display/layout.py", line 1492, in sizeit
rend = render(pos_d[pos], width, height, st, at)
File "renpy/display/render.pyx", line 110, in renpy.display.render.render (gen/renpy.display.render.c:3440)
cpdef render(d, object widtho, object heighto, double st, double at):
File "renpy/display/render.pyx", line 196, in renpy.display.render.render (gen/renpy.display.render.c:2978)
rv = d.render(widtho, heighto, st, at)
File "/home/d3adpan/MAS/renpy/display/viewport.py", line 259, in render
surf = renpy.display.render.render(self.child, child_width, child_height, st, at)
File "renpy/display/render.pyx", line 110, in renpy.display.render.render (gen/renpy.display.render.c:3440)
cpdef render(d, object widtho, object heighto, double st, double at):
File "renpy/display/render.pyx", line 196, in renpy.display.render.render (gen/renpy.display.render.c:2978)
rv = d.render(widtho, heighto, st, at)
File "/home/d3adpan/MAS/renpy/display/layout.py", line 895, in render
surf = render(d, width - x, rh, cst, cat)
File "renpy/display/render.pyx", line 110, in renpy.display.render.render (gen/renpy.display.render.c:3440)
cpdef render(d, object widtho, object heighto, double st, double at):
File "renpy/display/render.pyx", line 196, in renpy.display.render.render (gen/renpy.display.render.c:2978)
rv = d.render(widtho, heighto, st, at)
File "/home/d3adpan/MAS/renpy/display/layout.py", line 895, in render
surf = render(d, width - x, rh, cst, cat)
File "renpy/display/render.pyx", line 110, in renpy.display.render.render (gen/renpy.display.render.c:3440)
cpdef render(d, object widtho, object heighto, double st, double at):
File "renpy/display/render.pyx", line 196, in renpy.display.render.render (gen/renpy.display.render.c:2978)
rv = d.render(widtho, heighto, st, at)
File "/home/d3adpan/MAS/renpy/display/layout.py", line 853, in render
surf = render(d, rw, height - y, cst, cat)
File "renpy/display/render.pyx", line 110, in renpy.display.render.render (gen/renpy.display.render.c:3440)
cpdef render(d, object widtho, object heighto, double st, double at):
File "renpy/display/render.pyx", line 196, in renpy.display.render.render (gen/renpy.display.render.c:2978)
rv = d.render(widtho, heighto, st, at)
File "renpy/display/accelerator.pyx", line 108, in renpy.display.accelerator.transform_render (gen/renpy.display.accelerator.c:2027)
cr = render(child, widtho, heighto, st - self.child_st_base, at)
File "renpy/display/render.pyx", line 196, in renpy.display.render.render (gen/renpy.display.render.c:2978)
rv = d.render(widtho, heighto, st, at)
File "/home/d3adpan/MAS/renpy/display/layout.py", line 318, in render
surf = render(self.child, width, height, st, at)
File "renpy/display/render.pyx", line 110, in renpy.display.render.render (gen/renpy.display.render.c:3440)
cpdef render(d, object widtho, object heighto, double st, double at):
File "renpy/display/render.pyx", line 196, in renpy.display.render.render (gen/renpy.display.render.c:2978)
rv = d.render(widtho, heighto, st, at)
File "/home/d3adpan/MAS/renpy/display/layout.py", line 1224, in render
return renpy.display.render.render(self.child, w, h, st, at)
File "renpy/display/render.pyx", line 110, in renpy.display.render.render (gen/renpy.display.render.c:3440)
cpdef render(d, object widtho, object heighto, double st, double at):
File "renpy/display/render.pyx", line 196, in renpy.display.render.render (gen/renpy.display.render.c:2978)
rv = d.render(widtho, heighto, st, at)
File "/home/d3adpan/MAS/renpy/display/image.py", line 387, in render
return wrap_render(self.target, width, height, st, at)
File "/home/d3adpan/MAS/renpy/display/image.py", line 208, in wrap_render
rend = render(child, w, h, st, at)
File "renpy/display/render.pyx", line 110, in renpy.display.render.render (gen/renpy.display.render.c:3440)
cpdef render(d, object widtho, object heighto, double st, double at):
File "renpy/display/render.pyx", line 196, in renpy.display.render.render (gen/renpy.display.render.c:2978)
rv = d.render(widtho, heighto, st, at)
File "renpy/display/accelerator.pyx", line 108, in renpy.display.accelerator.transform_render (gen/renpy.display.accelerator.c:2027)
cr = render(child, widtho, heighto, st - self.child_st_base, at)
File "renpy/display/render.pyx", line 196, in renpy.display.render.render (gen/renpy.display.render.c:2978)
rv = d.render(widtho, heighto, st, at)
File "/home/d3adpan/MAS/renpy/display/im.py", line 473, in render
im = cache.get(self)
File "/home/d3adpan/MAS/renpy/display/im.py", line 200, in get
surf = image.load()
File "/home/d3adpan/MAS/renpy/display/im.py", line 524, in load
surf = renpy.display.pgrender.load_image(renpy.loader.load(self.filename), self.filename)
File "game/Submods/Utilities/better_loading.rpy", line 50, in bl_load
raise IOError("Couldn't find file '%s'." % name)
IOError: Couldn't find file '/home/d3adpan/Submods/Submod Updater Plugin/indicator_update_available.png'.
Linux-5.8.9-050809-generic-x86_64-with-debian-bullseye-sid Ren'Py 6.99.12.4.2187 Monika After Story 0.11.5