Hi ports --

First, let me say that if it makes more sense to make this a separate port, we can do that too. This is a (big) diff to update games/renpy all the way up to its latest version. It depends on the pygame_sdl2 package previously sent.

Inspired by thfr@'s fnaify, I have included a small script call renpyify, which will replace pre-compiled versions of renpy (found often in commercial games) with a version of renpy suitable for OpenBSD use. I'm able to play all the commercial games (that I've tried) on GOG with this script, but there might exist games that the script doesn't work with. Would appreciate any feedback if you use the script.

I am able to run all the commercial and non-commercial games I've tried.

The caveat for this update is that I have tested the creating games functionality. I'm really only interested in renpy for playing games, not making them, but I realize that making them is a major part of the program. So if there are any creators out there, please let and let me know.

pamela@ tested an earlier version of this; I think she only tested game playing functionality as well.

OK? Thoughts? Comments?

~Brian

Index: Makefile
===================================================================
RCS file: /cvs/ports/games/renpy/Makefile,v
retrieving revision 1.14
diff -u -p -r1.14 Makefile
--- Makefile	12 Jul 2019 20:46:23 -0000	1.14
+++ Makefile	16 Feb 2020 20:34:23 -0000
@@ -2,11 +2,10 @@
 
 COMMENT =		visual novel engine
 
-V =			6.17.7
-MODPY_EGG_VERSION =	${V}.521
+V =			7.3.5
+MODPY_EGG_VERSION =	${V}.606
 DISTNAME =		renpy-${V}-source
 PKGNAME =		renpy-${V}
-REVISION =		3
 
 CATEGORIES =		games
 
@@ -15,8 +14,8 @@ HOMEPAGE =		https://www.renpy.org/
 # mostly MIT, some files LGPLv2.1+
 PERMIT_PACKAGE =		Yes
 
-WANTLIB +=		GLEW SDL avcodec avformat avresample avutil freetype
-WANTLIB +=		m png pthread swscale z ${MODPY_WANTLIB}
+WANTLIB += GLEW SDL2 avcodec avformat avresample avutil freetype
+WANTLIB += m png pthread swresample swscale z ${MODPY_WANTLIB}
 
 MASTER_SITES =		https://www.renpy.org/dl/${V}/
 EXTRACT_SUFX =		.tar.bz2
@@ -24,9 +23,10 @@ EXTRACT_SUFX =		.tar.bz2
 MODULES =		lang/python
 
 BUILD_DEPENDS =		devel/pygame \
+			games/pygame_sdl2 \
 			lang/cython
 
-RUN_DEPENDS =		devel/pygame \
+RUN_DEPENDS =		games/pygame_sdl2 \
 			x11/gnome/zenity
 
 # XXX enable fribidi support
@@ -35,6 +35,8 @@ LIB_DEPENDS =		graphics/ffmpeg \
 
 MAKE_ENV =		RENPY_DEPS_INSTALL=/usr::${LOCALBASE}::${X11BASE}
 
+CFLAGS +=		-I/usr/X11R6/include
+
 NO_TEST =		Yes
 
 WRKSRC =		${WRKDIST}/module
@@ -45,9 +47,16 @@ MODPY_ADJ_FILES =	../renpy.py
 pre-install:
 	${INSTALL_DATA_DIR} ${PREFIX}/share/renpy
 	cd ${WRKDIST} && \
-	cp -r launcher renpy templates the_question tutorial LICENSE.txt \
+	cp -r launcher renpy the_question tutorial LICENSE.txt \
 		${PREFIX}/share/renpy
 	${INSTALL_SCRIPT} ${WRKDIST}/renpy.py ${PREFIX}/share/renpy
 	${SUBST_PROGRAM} ${FILESDIR}/renpy ${PREFIX}/bin/renpy
+	${SUBST_PROGRAM} ${FILESDIR}/renpyify ${PREFIX}/bin/renpyify
+
+# This is for the renpyify script.
+#post-install:
+#	${INSTALL_DATA_DIR} ${PREFIX}/share/renpyify
+#	cd ${WRKDIST} && \
+#	cp -R renpy/* ${PREFIX}/share/renpyify
 
 .include <bsd.port.mk>
Index: distinfo
===================================================================
RCS file: /cvs/ports/games/renpy/distinfo,v
retrieving revision 1.3
diff -u -p -r1.3 distinfo
--- distinfo	21 Aug 2014 00:49:16 -0000	1.3
+++ distinfo	16 Feb 2020 20:34:23 -0000
@@ -1,2 +1,2 @@
-SHA256 (renpy-6.17.7-source.tar.bz2) = /vAd6eSCtz2dQJ3npDutpt0+KgVJuZ3UhzBjcRkO0Dg=
-SIZE (renpy-6.17.7-source.tar.bz2) = 17932988
+SHA256 (renpy-7.3.5-source.tar.bz2) = hNf0a1S5IEv0cs1TMgE4D/LIZpt5Z7LJjEuvvRwr2ao=
+SIZE (renpy-7.3.5-source.tar.bz2) = 68211972
Index: files/renpy
===================================================================
RCS file: /cvs/ports/games/renpy/files/renpy,v
retrieving revision 1.2
diff -u -p -r1.2 renpy
--- files/renpy	2 Feb 2013 08:14:49 -0000	1.2
+++ files/renpy	16 Feb 2020 20:34:23 -0000
@@ -1,3 +1,3 @@
 #!/bin/sh
 
-cd ${TRUEPREFIX}/share/renpy/ && ${MODPY_BIN} ./renpy.py "$@"
+cd ${TRUEPREFIX}/share/renpy && ${MODPY_BIN} ./renpy.py "$@"
Index: files/renpyify
===================================================================
RCS file: files/renpyify
diff -N files/renpyify
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ files/renpyify	16 Feb 2020 20:34:23 -0000
@@ -0,0 +1,24 @@
+#!/bin/ksh
+
+game=`pwd | xargs basename | sed -e 's,_, ,g' | cut -d - -f 1`
+pyname=`ls -1 *.py | head -n 1`
+
+printf "Ren'Py-ify $game..."
+
+if [ ! -f $pyname ] ; then
+  echo "Could not find game script!"
+  echo "Make sure you are in the game directory, then run renpyify again."
+  exit 1
+fi
+
+if [ ! -d renpy ] ; then
+  echo "Could not find renpy directory."
+  echo "Make sure you are in the game directory, then run renpyify again."
+  exit 1
+fi
+
+mv renpy renpy-orig
+cp -R ${TRUEPREFIX}/share/renpy/renpy renpy
+
+echo " done!"
+printf "Run \"python2 $pyname\" to play.\n"
Index: patches/patch-module_core_c
===================================================================
RCS file: patches/patch-module_core_c
diff -N patches/patch-module_core_c
--- patches/patch-module_core_c	1 Apr 2018 09:30:18 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,14 +0,0 @@
-$OpenBSD: patch-module_core_c,v 1.1 2018/04/01 09:30:18 landry Exp $
-
-Fix build with pygame 1.9.3
-
-Index: module/core.c
---- module/core.c.orig
-+++ module/core.c
-@@ -1,5 +1,6 @@
- #include "renpy.h"
- #include "IMG_savepng.h"
-+#define PYGAME_H
- #include <pygame/pygame.h>
- #include <stdio.h>
- #include <math.h>
Index: patches/patch-module_ffdecode_c
===================================================================
RCS file: patches/patch-module_ffdecode_c
diff -N patches/patch-module_ffdecode_c
--- patches/patch-module_ffdecode_c	19 Feb 2019 23:40:49 -0000	1.4
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,102 +0,0 @@
-$OpenBSD: patch-module_ffdecode_c,v 1.4 2019/02/19 23:40:49 sthen Exp $
-
-- Fix build with pygame 1.9.3
-- Update for newer FFmpeg API
-
-Index: module/ffdecode.c
---- module/ffdecode.c.orig
-+++ module/ffdecode.c
-@@ -19,10 +19,12 @@
-  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-  */
- 
-+#define NO_PYGAME_C_API
- #include <pygame/pygame.h>
- #include <math.h>
- #include <limits.h>
- #include <libavutil/avstring.h>
-+#include <libavutil/time.h>
- #include <libavformat/avformat.h>
- #include <libavcodec/avcodec.h>
- #include <libswscale/swscale.h>
-@@ -101,8 +103,8 @@ typedef struct VideoState {
-        compensation */
- 
- #ifndef HAS_RESAMPLE
--    uint8_t audio_buf1[(AVCODEC_MAX_AUDIO_FRAME_SIZE * 3) / 2] __attribute__ ((aligned (16))) ;
--    uint8_t audio_buf2[(AVCODEC_MAX_AUDIO_FRAME_SIZE * 3) / 2] __attribute__ ((aligned (16))) ;
-+    uint8_t audio_buf1[(192000 * 3) / 2] __attribute__ ((aligned (16))) ;
-+    uint8_t audio_buf2[(192000 * 3) / 2] __attribute__ ((aligned (16))) ;
- #else
-     uint8_t *audio_buf1;
- #endif
-@@ -627,13 +629,13 @@ static void alloc_picture(void *opaque, PyObject *pysu
- 
-     pixel = SDL_MapRGBA(surf->format, 1, 2, 3, 4);
-     if (bytes[0] == 4 && bytes[1] == 1) {
--        vp->fmt = PIX_FMT_ARGB;
-+        vp->fmt = AV_PIX_FMT_ARGB;
-     } else if (bytes[0] == 4 && bytes[1] == 3) {
--        vp->fmt = PIX_FMT_ABGR;
-+        vp->fmt = AV_PIX_FMT_ABGR;
-     } else if (bytes[0] == 1) {
--        vp->fmt = PIX_FMT_RGBA;
-+        vp->fmt = AV_PIX_FMT_RGBA;
-     } else {
--        vp->fmt = PIX_FMT_BGRA;
-+        vp->fmt = AV_PIX_FMT_BGRA;
-     }
- 
-     pixel = SDL_MapRGBA(surf->format, 0, 0, 0, 255);
-@@ -756,7 +758,7 @@ static int video_thread(void *arg)
-     double pts;
- 
-     for(;;) {
--        frame = avcodec_alloc_frame();
-+        frame = av_frame_alloc();
- 
-         while (is->paused && !is->videoq.abort_request) {
-             SDL_Delay(2);
-@@ -816,10 +818,10 @@ static int audio_decode_frame(VideoState *is, double *
-             int resample_changed, audio_resample;
- 
-             if (!is->frame) {
--                if (!(is->frame = avcodec_alloc_frame()))
-+                if (!(is->frame = av_frame_alloc()))
-                     return AVERROR(ENOMEM);
-             } else
--                avcodec_get_frame_defaults(is->frame);
-+                av_frame_unref(is->frame);
- 
-             if (flush_complete)
-                 break;
-@@ -836,7 +838,7 @@ static int audio_decode_frame(VideoState *is, double *
- 
-             if (!got_frame) {
-                 /* stop sending empty packets if the decoder is finished */
--                if (!pkt_temp->data && dec->codec->capabilities & CODEC_CAP_DELAY)
-+                if (!pkt_temp->data && dec->codec->capabilities & AV_CODEC_CAP_DELAY)
-                     flush_complete = 1;
-                 continue;
-             }
-@@ -1231,9 +1233,9 @@ static int stream_component_open(VideoState *is, int s
-     /* prepare audio output */
-     if (enc->codec_type == AVMEDIA_TYPE_AUDIO) {
-         if (enc->channels > 0) {
--            enc->request_channels = FFMIN(2, enc->channels);
-+            enc->request_channel_layout = av_get_default_channel_layout(FFMIN(2, enc->channels));
-         } else {
--            enc->request_channels = 2;
-+            enc->request_channel_layout = av_get_default_channel_layout(2);
-         }
-     }
- 
-@@ -1242,7 +1244,7 @@ static int stream_component_open(VideoState *is, int s
-     enc->debug = debug;
-     enc->workaround_bugs = workaround_bugs;
-     enc->idct_algo= idct;
--    if(fast) enc->flags2 |= CODEC_FLAG2_FAST;
-+    if(fast) enc->flags2 |= AV_CODEC_FLAG2_FAST;
-     enc->skip_frame= skip_frame;
-     enc->skip_idct= skip_idct;
-     enc->skip_loop_filter= skip_loop_filter;
Index: patches/patch-module_setup_py
===================================================================
RCS file: patches/patch-module_setup_py
diff -N patches/patch-module_setup_py
--- patches/patch-module_setup_py	1 Apr 2018 09:30:18 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,12 +0,0 @@
-$OpenBSD: patch-module_setup_py,v 1.2 2018/04/01 09:30:18 landry Exp $
-Index: module/setup.py
---- module/setup.py.orig
-+++ module/setup.py
-@@ -72,6 +72,7 @@ include("libavformat/avformat.h")
- include("libavcodec/avcodec.h")
- include("libswscale/swscale.h")
- include("GL/glew.h")
-+include("GL/glu.h")
- 
- library("SDL")
- library("png")
Index: patches/patch-module_subpixel_c
===================================================================
RCS file: patches/patch-module_subpixel_c
diff -N patches/patch-module_subpixel_c
--- patches/patch-module_subpixel_c	1 Apr 2018 09:30:18 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,15 +0,0 @@
-$OpenBSD: patch-module_subpixel_c,v 1.1 2018/04/01 09:30:18 landry Exp $
-
-Fix build with pygame 1.9.3
-
-Index: module/subpixel.c
---- module/subpixel.c.orig
-+++ module/subpixel.c
-@@ -7,6 +7,7 @@
-  */
- 
- #include "renpy.h"
-+#define NO_PYGAME_C_API
- #include <pygame/pygame.h>
- #include <stdio.h>
- #include <math.h>
Index: pkg/PLIST
===================================================================
RCS file: /cvs/ports/games/renpy/pkg/PLIST,v
retrieving revision 1.5
diff -u -p -r1.5 PLIST
--- pkg/PLIST	23 Apr 2018 22:47:41 -0000	1.5
+++ pkg/PLIST	16 Feb 2020 20:34:23 -0000
@@ -1,29 +1,54 @@
 @comment $OpenBSD: PLIST,v 1.5 2018/04/23 22:47:41 ajacoutot Exp $
 bin/renpy
+bin/renpyify
 lib/python${MODPY_VERSION}/site-packages/Ren_Py-${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info
-lib/python${MODPY_VERSION}/site-packages/_renpy.so
-lib/python${MODPY_VERSION}/site-packages/pysdlsound/
-lib/python${MODPY_VERSION}/site-packages/pysdlsound/__init__.py
-lib/python${MODPY_VERSION}/site-packages/pysdlsound/__init__.pyc
-lib/python${MODPY_VERSION}/site-packages/pysdlsound/sound.so
+@so lib/python${MODPY_VERSION}/site-packages/_renpy.so
+@so lib/python${MODPY_VERSION}/site-packages/_renpybidi.so
 lib/python${MODPY_VERSION}/site-packages/renpy/
+lib/python${MODPY_VERSION}/site-packages/renpy/audio/
+@so lib/python${MODPY_VERSION}/site-packages/renpy/audio/renpysound.so
 lib/python${MODPY_VERSION}/site-packages/renpy/display/
-lib/python${MODPY_VERSION}/site-packages/renpy/display/accelerator.so
-lib/python${MODPY_VERSION}/site-packages/renpy/display/render.so
+@so lib/python${MODPY_VERSION}/site-packages/renpy/display/accelerator.so
+@so lib/python${MODPY_VERSION}/site-packages/renpy/display/matrix.so
+@so lib/python${MODPY_VERSION}/site-packages/renpy/display/render.so
 lib/python${MODPY_VERSION}/site-packages/renpy/gl/
-lib/python${MODPY_VERSION}/site-packages/renpy/gl/gldraw.so
-lib/python${MODPY_VERSION}/site-packages/renpy/gl/glenviron_fixed.so
-lib/python${MODPY_VERSION}/site-packages/renpy/gl/glenviron_limited.so
-lib/python${MODPY_VERSION}/site-packages/renpy/gl/glenviron_shader.so
-lib/python${MODPY_VERSION}/site-packages/renpy/gl/glrtt_copy.so
-lib/python${MODPY_VERSION}/site-packages/renpy/gl/glrtt_fbo.so
-lib/python${MODPY_VERSION}/site-packages/renpy/gl/gltexture.so
-lib/python${MODPY_VERSION}/site-packages/renpy/style.so
-lib/python${MODPY_VERSION}/site-packages/renpy/styleclass.so
+@so lib/python${MODPY_VERSION}/site-packages/renpy/gl/gl.so
+@so lib/python${MODPY_VERSION}/site-packages/renpy/gl/gl1.so
+@so lib/python${MODPY_VERSION}/site-packages/renpy/gl/gldraw.so
+@so lib/python${MODPY_VERSION}/site-packages/renpy/gl/glenviron_fixed.so
+@so lib/python${MODPY_VERSION}/site-packages/renpy/gl/glenviron_limited.so
+@so lib/python${MODPY_VERSION}/site-packages/renpy/gl/glenviron_shader.so
+@so lib/python${MODPY_VERSION}/site-packages/renpy/gl/glrtt_copy.so
+@so lib/python${MODPY_VERSION}/site-packages/renpy/gl/glrtt_fbo.so
+@so lib/python${MODPY_VERSION}/site-packages/renpy/gl/gltexture.so
+lib/python${MODPY_VERSION}/site-packages/renpy/gl2/
+@so lib/python${MODPY_VERSION}/site-packages/renpy/gl2/gl2draw.so
+@so lib/python${MODPY_VERSION}/site-packages/renpy/gl2/gl2geometry.so
+@so lib/python${MODPY_VERSION}/site-packages/renpy/gl2/gl2shader.so
+@so lib/python${MODPY_VERSION}/site-packages/renpy/gl2/gl2texture.so
+@so lib/python${MODPY_VERSION}/site-packages/renpy/gl2/uguu.so
+@so lib/python${MODPY_VERSION}/site-packages/renpy/gl2/uguugl.so
+@so lib/python${MODPY_VERSION}/site-packages/renpy/parsersupport.so
+@so lib/python${MODPY_VERSION}/site-packages/renpy/pydict.so
+@so lib/python${MODPY_VERSION}/site-packages/renpy/style.so
+lib/python${MODPY_VERSION}/site-packages/renpy/styledata/
+@so lib/python${MODPY_VERSION}/site-packages/renpy/styledata/style_activate_functions.so
+@so lib/python${MODPY_VERSION}/site-packages/renpy/styledata/style_functions.so
+@so lib/python${MODPY_VERSION}/site-packages/renpy/styledata/style_hover_functions.so
+@so lib/python${MODPY_VERSION}/site-packages/renpy/styledata/style_idle_functions.so
+@so lib/python${MODPY_VERSION}/site-packages/renpy/styledata/style_insensitive_functions.so
+@so lib/python${MODPY_VERSION}/site-packages/renpy/styledata/style_selected_activate_functions.so
+@so lib/python${MODPY_VERSION}/site-packages/renpy/styledata/style_selected_functions.so
+@so lib/python${MODPY_VERSION}/site-packages/renpy/styledata/style_selected_hover_functions.so
+@so lib/python${MODPY_VERSION}/site-packages/renpy/styledata/style_selected_idle_functions.so
+@so lib/python${MODPY_VERSION}/site-packages/renpy/styledata/style_selected_insensitive_functions.so
+@so lib/python${MODPY_VERSION}/site-packages/renpy/styledata/styleclass.so
+@so lib/python${MODPY_VERSION}/site-packages/renpy/styledata/stylesets.so
 lib/python${MODPY_VERSION}/site-packages/renpy/text/
-lib/python${MODPY_VERSION}/site-packages/renpy/text/ftfont.so
-lib/python${MODPY_VERSION}/site-packages/renpy/text/textsupport.so
-lib/python${MODPY_VERSION}/site-packages/renpy/text/texwrap.so
+@so lib/python${MODPY_VERSION}/site-packages/renpy/text/ftfont.so
+@so lib/python${MODPY_VERSION}/site-packages/renpy/text/textsupport.so
+@so lib/python${MODPY_VERSION}/site-packages/renpy/text/texwrap.so
+share/doc/pkg-readmes/${PKGSTEM}
 share/renpy/
 share/renpy/LICENSE.txt
 share/renpy/launcher/
@@ -32,20 +57,38 @@ share/renpy/launcher/System Editor.edit.
 share/renpy/launcher/game/
 share/renpy/launcher/game/EasyDialogsResources.py
 share/renpy/launcher/game/EasyDialogsWin.py
-share/renpy/launcher/game/Roboto-Light.ttf
-share/renpy/launcher/game/Roboto-Regular.ttf
 share/renpy/launcher/game/ability.rpy
 share/renpy/launcher/game/about.rpy
 share/renpy/launcher/game/add_file.rpy
 share/renpy/launcher/game/android.rpy
+share/renpy/launcher/game/androidstrings.rpy
 share/renpy/launcher/game/archiver.rpy
+share/renpy/launcher/game/cacert.pem
 share/renpy/launcher/game/change_icon.py
+share/renpy/launcher/game/choose_directory.rpy
 share/renpy/launcher/game/choose_theme.rpy
+share/renpy/launcher/game/consolecommand.rpy
 share/renpy/launcher/game/distribute.rpy
 share/renpy/launcher/game/distribute_gui.rpy
+share/renpy/launcher/game/dmgcheck.rpy
 share/renpy/launcher/game/download.rpy
 share/renpy/launcher/game/editor.rpy
+share/renpy/launcher/game/entitlements.plist
+share/renpy/launcher/game/fonts/
+share/renpy/launcher/game/fonts/MTLc3m.ttf
+share/renpy/launcher/game/fonts/NanumGothic.ttf
+share/renpy/launcher/game/fonts/Naver Nanum Font License.txt
+share/renpy/launcher/game/fonts/Roboto-Light.ttf
+share/renpy/launcher/game/fonts/Roboto-Regular.ttf
+share/renpy/launcher/game/fonts/SourceHanSans-Light-Lite.ttf
 share/renpy/launcher/game/front_page.rpy
+share/renpy/launcher/game/gui7/
+share/renpy/launcher/game/gui7.rpy
+share/renpy/launcher/game/gui7/__init__.py
+share/renpy/launcher/game/gui7/code.py
+share/renpy/launcher/game/gui7/icon.png
+share/renpy/launcher/game/gui7/images.py
+share/renpy/launcher/game/gui7/parameters.py
 share/renpy/launcher/game/images/
 share/renpy/launcher/game/images/background.png
 share/renpy/launcher/game/images/checkbox_empty.png
@@ -57,6 +100,9 @@ share/renpy/launcher/game/images/scrollb
 share/renpy/launcher/game/images/vscrollbar_center.png
 share/renpy/launcher/game/images/window.png
 share/renpy/launcher/game/interface.rpy
+share/renpy/launcher/game/ios.rpy
+share/renpy/launcher/game/itch.rpy
+share/renpy/launcher/game/mobilebuild.rpy
 share/renpy/launcher/game/navigation.rpy
 share/renpy/launcher/game/new_project.rpy
 share/renpy/launcher/game/options.rpy
@@ -65,154 +111,228 @@ share/renpy/launcher/game/pefile.py
 share/renpy/launcher/game/preferences.rpy
 share/renpy/launcher/game/project.rpy
 share/renpy/launcher/game/renpy_public.pem
-share/renpy/launcher/game/script_version.rpy
 share/renpy/launcher/game/style.rpy
 share/renpy/launcher/game/tail.rpy
+share/renpy/launcher/game/testcases.rpy
 share/renpy/launcher/game/theme_data.rpy
 share/renpy/launcher/game/tkaskdir.py
 share/renpy/launcher/game/tl/
 share/renpy/launcher/game/tl/arabic/
-share/renpy/launcher/game/tl/arabic/about.rpy
-share/renpy/launcher/game/tl/arabic/add_file.rpy
-share/renpy/launcher/game/tl/arabic/android.rpy
-share/renpy/launcher/game/tl/arabic/choose_theme.rpy
 share/renpy/launcher/game/tl/arabic/common.rpy
-share/renpy/launcher/game/tl/arabic/distribute.rpy
-share/renpy/launcher/game/tl/arabic/distribute_gui.rpy
-share/renpy/launcher/game/tl/arabic/editor.rpy
-share/renpy/launcher/game/tl/arabic/front_page.rpy
-share/renpy/launcher/game/tl/arabic/interface.rpy
-share/renpy/launcher/game/tl/arabic/navigation.rpy
-share/renpy/launcher/game/tl/arabic/new_project.rpy
-share/renpy/launcher/game/tl/arabic/preferences.rpy
-share/renpy/launcher/game/tl/arabic/project.rpy
+share/renpy/launcher/game/tl/arabic/developer.rpy
+share/renpy/launcher/game/tl/arabic/error.rpy
+share/renpy/launcher/game/tl/arabic/gui.rpy
+share/renpy/launcher/game/tl/arabic/launcher.rpy
+share/renpy/launcher/game/tl/arabic/obsolete.rpy
+share/renpy/launcher/game/tl/arabic/options.rpy
+share/renpy/launcher/game/tl/arabic/screens.rpy
+share/renpy/launcher/game/tl/arabic/script.rpym
 share/renpy/launcher/game/tl/arabic/style.rpy
-share/renpy/launcher/game/tl/arabic/translations.rpy
-share/renpy/launcher/game/tl/arabic/updater.rpy
+share/renpy/launcher/game/tl/finnish/
+share/renpy/launcher/game/tl/finnish/common.rpy
+share/renpy/launcher/game/tl/finnish/developer.rpy
+share/renpy/launcher/game/tl/finnish/error.rpy
+share/renpy/launcher/game/tl/finnish/gui.rpy
+share/renpy/launcher/game/tl/finnish/launcher.rpy
+share/renpy/launcher/game/tl/finnish/obsolete.rpy
+share/renpy/launcher/game/tl/finnish/options.rpy
+share/renpy/launcher/game/tl/finnish/screens.rpy
+share/renpy/launcher/game/tl/finnish/style.rpy
 share/renpy/launcher/game/tl/french/
-share/renpy/launcher/game/tl/french/about.rpy
-share/renpy/launcher/game/tl/french/add_file.rpy
-share/renpy/launcher/game/tl/french/android.rpy
-share/renpy/launcher/game/tl/french/choose_theme.rpy
 share/renpy/launcher/game/tl/french/common.rpy
-share/renpy/launcher/game/tl/french/distribute.rpy
-share/renpy/launcher/game/tl/french/distribute_gui.rpy
-share/renpy/launcher/game/tl/french/editor.rpy
-share/renpy/launcher/game/tl/french/front_page.rpy
-share/renpy/launcher/game/tl/french/interface.rpy
-share/renpy/launcher/game/tl/french/navigation.rpy
-share/renpy/launcher/game/tl/french/new_project.rpy
-share/renpy/launcher/game/tl/french/preferences.rpy
-share/renpy/launcher/game/tl/french/project.rpy
+share/renpy/launcher/game/tl/french/developer.rpy
+share/renpy/launcher/game/tl/french/error.rpy
+share/renpy/launcher/game/tl/french/gui.rpy
+share/renpy/launcher/game/tl/french/launcher.rpy
+share/renpy/launcher/game/tl/french/obsolete.rpy
+share/renpy/launcher/game/tl/french/options.rpy
+share/renpy/launcher/game/tl/french/screens.rpy
+share/renpy/launcher/game/tl/french/script.rpym
 share/renpy/launcher/game/tl/french/style.rpy
-share/renpy/launcher/game/tl/french/translations.rpy
-share/renpy/launcher/game/tl/french/updater.rpy
 share/renpy/launcher/game/tl/german/
-share/renpy/launcher/game/tl/german/about.rpy
-share/renpy/launcher/game/tl/german/add_file.rpy
-share/renpy/launcher/game/tl/german/android.rpy
-share/renpy/launcher/game/tl/german/choose_theme.rpy
 share/renpy/launcher/game/tl/german/common.rpy
-share/renpy/launcher/game/tl/german/distribute.rpy
-share/renpy/launcher/game/tl/german/distribute_gui.rpy
-share/renpy/launcher/game/tl/german/editor.rpy
-share/renpy/launcher/game/tl/german/front_page.rpy
-share/renpy/launcher/game/tl/german/interface.rpy
-share/renpy/launcher/game/tl/german/navigation.rpy
-share/renpy/launcher/game/tl/german/new_project.rpy
-share/renpy/launcher/game/tl/german/preferences.rpy
-share/renpy/launcher/game/tl/german/project.rpy
-share/renpy/launcher/game/tl/german/strings.rpy
-share/renpy/launcher/game/tl/german/translations.rpy
-share/renpy/launcher/game/tl/german/updater.rpy
+share/renpy/launcher/game/tl/german/developer.rpy
+share/renpy/launcher/game/tl/german/error.rpy
+share/renpy/launcher/game/tl/german/gui.rpy
+share/renpy/launcher/game/tl/german/launcher.rpy
+share/renpy/launcher/game/tl/german/obsolete.rpy
+share/renpy/launcher/game/tl/german/options.rpy
+share/renpy/launcher/game/tl/german/screens.rpy
+share/renpy/launcher/game/tl/german/script.rpym
+share/renpy/launcher/game/tl/greek/
+share/renpy/launcher/game/tl/greek/Z_ReadMe.txt
+share/renpy/launcher/game/tl/greek/Z_changelog.txt
+share/renpy/launcher/game/tl/greek/common.rpy
+share/renpy/launcher/game/tl/greek/developer.rpy
+share/renpy/launcher/game/tl/greek/error.rpy
+share/renpy/launcher/game/tl/greek/gui.rpy
+share/renpy/launcher/game/tl/greek/launcher.rpy
+share/renpy/launcher/game/tl/greek/obsolete.rpy
+share/renpy/launcher/game/tl/greek/options.rpy
+share/renpy/launcher/game/tl/greek/screens.rpy
+share/renpy/launcher/game/tl/greek/style.rpy
+share/renpy/launcher/game/tl/indonesian/
+share/renpy/launcher/game/tl/indonesian/common.rpy
+share/renpy/launcher/game/tl/indonesian/developer.rpy
+share/renpy/launcher/game/tl/indonesian/error.rpy
+share/renpy/launcher/game/tl/indonesian/gui.rpy
+share/renpy/launcher/game/tl/indonesian/launcher.rpy
+share/renpy/launcher/game/tl/indonesian/obsolete.rpy
+share/renpy/launcher/game/tl/indonesian/options.rpy
+share/renpy/launcher/game/tl/indonesian/screens.rpy
+share/renpy/launcher/game/tl/indonesian/script.rpym
+share/renpy/launcher/game/tl/indonesian/style.rpy
+share/renpy/launcher/game/tl/italian/
+share/renpy/launcher/game/tl/italian/common.rpy
+share/renpy/launcher/game/tl/italian/developer.rpy
+share/renpy/launcher/game/tl/italian/error.rpy
+share/renpy/launcher/game/tl/italian/gui.rpy
+share/renpy/launcher/game/tl/italian/launcher.rpy
+share/renpy/launcher/game/tl/italian/obsolete.rpy
+share/renpy/launcher/game/tl/italian/options.rpy
+share/renpy/launcher/game/tl/italian/screens.rpy
+share/renpy/launcher/game/tl/italian/script.rpym
 share/renpy/launcher/game/tl/japanese/
-share/renpy/launcher/game/tl/japanese/MTLc3m-LICENSE
-share/renpy/launcher/game/tl/japanese/MTLc3m.ttf
-share/renpy/launcher/game/tl/japanese/about.rpy
-share/renpy/launcher/game/tl/japanese/add_file.rpy
-share/renpy/launcher/game/tl/japanese/android.rpy
-share/renpy/launcher/game/tl/japanese/choose_theme.rpy
 share/renpy/launcher/game/tl/japanese/common.rpy
-share/renpy/launcher/game/tl/japanese/distribute.rpy
-share/renpy/launcher/game/tl/japanese/distribute_gui.rpy
-share/renpy/launcher/game/tl/japanese/editor.rpy
-share/renpy/launcher/game/tl/japanese/front_page.rpy
-share/renpy/launcher/game/tl/japanese/interface.rpy
-share/renpy/launcher/game/tl/japanese/navigation.rpy
-share/renpy/launcher/game/tl/japanese/new_project.rpy
-share/renpy/launcher/game/tl/japanese/preferences.rpy
-share/renpy/launcher/game/tl/japanese/project.rpy
+share/renpy/launcher/game/tl/japanese/developer.rpy
+share/renpy/launcher/game/tl/japanese/error.rpy
+share/renpy/launcher/game/tl/japanese/gui.rpy
+share/renpy/launcher/game/tl/japanese/launcher.rpy
+share/renpy/launcher/game/tl/japanese/obsolete.rpy
+share/renpy/launcher/game/tl/japanese/options.rpy
+share/renpy/launcher/game/tl/japanese/screens.rpy
+share/renpy/launcher/game/tl/japanese/script.rpym
 share/renpy/launcher/game/tl/japanese/style.rpy
-share/renpy/launcher/game/tl/japanese/translations.rpy
-share/renpy/launcher/game/tl/japanese/updater.rpy
 share/renpy/launcher/game/tl/korean/
-share/renpy/launcher/game/tl/korean/NanumGothic.ttf
-share/renpy/launcher/game/tl/korean/Naver Nanum Font License.txt
-share/renpy/launcher/game/tl/korean/about.rpy
-share/renpy/launcher/game/tl/korean/add_file.rpy
-share/renpy/launcher/game/tl/korean/android.rpy
-share/renpy/launcher/game/tl/korean/choose_theme.rpy
 share/renpy/launcher/game/tl/korean/common.rpy
-share/renpy/launcher/game/tl/korean/distribute.rpy
-share/renpy/launcher/game/tl/korean/distribute_gui.rpy
-share/renpy/launcher/game/tl/korean/editor.rpy
-share/renpy/launcher/game/tl/korean/front_page.rpy
-share/renpy/launcher/game/tl/korean/interface.rpy
-share/renpy/launcher/game/tl/korean/navigation.rpy
-share/renpy/launcher/game/tl/korean/new_project.rpy
-share/renpy/launcher/game/tl/korean/preferences.rpy
-share/renpy/launcher/game/tl/korean/project.rpy
+share/renpy/launcher/game/tl/korean/developer.rpy
+share/renpy/launcher/game/tl/korean/error.rpy
+share/renpy/launcher/game/tl/korean/gui.rpy
+share/renpy/launcher/game/tl/korean/launcher.rpy
+share/renpy/launcher/game/tl/korean/obsolete.rpy
+share/renpy/launcher/game/tl/korean/options.rpy
+share/renpy/launcher/game/tl/korean/screens.rpy
+share/renpy/launcher/game/tl/korean/script.rpym
 share/renpy/launcher/game/tl/korean/style.rpy
-share/renpy/launcher/game/tl/korean/translations.rpy
-share/renpy/launcher/game/tl/korean/updater.rpy
+share/renpy/launcher/game/tl/malay/
+share/renpy/launcher/game/tl/malay/common.rpy
+share/renpy/launcher/game/tl/malay/developer.rpy
+share/renpy/launcher/game/tl/malay/error.rpy
+share/renpy/launcher/game/tl/malay/gui.rpy
+share/renpy/launcher/game/tl/malay/launcher.rpy
+share/renpy/launcher/game/tl/malay/options.rpy
+share/renpy/launcher/game/tl/malay/screens.rpy
+share/renpy/launcher/game/tl/malay/script.rpym
+share/renpy/launcher/game/tl/malay/style.rpy
+share/renpy/launcher/game/tl/piglatin/
+share/renpy/launcher/game/tl/piglatin/common.rpy
+share/renpy/launcher/game/tl/piglatin/developer.rpy
+share/renpy/launcher/game/tl/piglatin/error.rpy
+share/renpy/launcher/game/tl/piglatin/gui.rpy
+share/renpy/launcher/game/tl/piglatin/launcher.rpy
+share/renpy/launcher/game/tl/piglatin/obsolete.rpy
+share/renpy/launcher/game/tl/piglatin/options.rpy
+share/renpy/launcher/game/tl/piglatin/screens.rpy
+share/renpy/launcher/game/tl/piglatin/script.rpym
+share/renpy/launcher/game/tl/portuguese/
+share/renpy/launcher/game/tl/portuguese/about.rpy
+share/renpy/launcher/game/tl/portuguese/add_file.rpy
+share/renpy/launcher/game/tl/portuguese/android.rpy
+share/renpy/launcher/game/tl/portuguese/choose_directory.rpy
+share/renpy/launcher/game/tl/portuguese/choose_theme.rpy
+share/renpy/launcher/game/tl/portuguese/common.rpy
+share/renpy/launcher/game/tl/portuguese/distribute.rpy
+share/renpy/launcher/game/tl/portuguese/distribute_gui.rpy
+share/renpy/launcher/game/tl/portuguese/editor.rpy
+share/renpy/launcher/game/tl/portuguese/front_page.rpy
+share/renpy/launcher/game/tl/portuguese/interface.rpy
+share/renpy/launcher/game/tl/portuguese/ios.rpy
+share/renpy/launcher/game/tl/portuguese/navigation.rpy
+share/renpy/launcher/game/tl/portuguese/new_project.rpy
+share/renpy/launcher/game/tl/portuguese/preferences.rpy
+share/renpy/launcher/game/tl/portuguese/project.rpy
+share/renpy/launcher/game/tl/portuguese/style.rpy
+share/renpy/launcher/game/tl/portuguese/translations.rpy
+share/renpy/launcher/game/tl/portuguese/updater.rpy
 share/renpy/launcher/game/tl/russian/
-share/renpy/launcher/game/tl/russian/about.rpy
-share/renpy/launcher/game/tl/russian/add_file.rpy
-share/renpy/launcher/game/tl/russian/android.rpy
-share/renpy/launcher/game/tl/russian/choose_theme.rpy
 share/renpy/launcher/game/tl/russian/common.rpy
-share/renpy/launcher/game/tl/russian/distribute.rpy
-share/renpy/launcher/game/tl/russian/distribute_gui.rpy
-share/renpy/launcher/game/tl/russian/editor.rpy
-share/renpy/launcher/game/tl/russian/front_page.rpy
-share/renpy/launcher/game/tl/russian/interface.rpy
-share/renpy/launcher/game/tl/russian/navigation.rpy
-share/renpy/launcher/game/tl/russian/new_project.rpy
-share/renpy/launcher/game/tl/russian/preferences.rpy
-share/renpy/launcher/game/tl/russian/project.rpy
-share/renpy/launcher/game/tl/russian/style.rpy
-share/renpy/launcher/game/tl/russian/translations.rpy
-share/renpy/launcher/game/tl/russian/updater.rpy
+share/renpy/launcher/game/tl/russian/developer.rpy
+share/renpy/launcher/game/tl/russian/error.rpy
+share/renpy/launcher/game/tl/russian/gui.rpy
+share/renpy/launcher/game/tl/russian/launcher.rpy
+share/renpy/launcher/game/tl/russian/obsolete.rpy
+share/renpy/launcher/game/tl/russian/options.rpy
+share/renpy/launcher/game/tl/russian/screens.rpy
+share/renpy/launcher/game/tl/russian/script.rpym
+share/renpy/launcher/game/tl/simplified_chinese/
+share/renpy/launcher/game/tl/simplified_chinese/common.rpy
+share/renpy/launcher/game/tl/simplified_chinese/developer.rpy
+share/renpy/launcher/game/tl/simplified_chinese/error.rpy
+share/renpy/launcher/game/tl/simplified_chinese/gui.rpy
+share/renpy/launcher/game/tl/simplified_chinese/launcher.rpy
+share/renpy/launcher/game/tl/simplified_chinese/obsolete.rpy
+share/renpy/launcher/game/tl/simplified_chinese/options.rpy
+share/renpy/launcher/game/tl/simplified_chinese/screens.rpy
+share/renpy/launcher/game/tl/simplified_chinese/script.rpym
+share/renpy/launcher/game/tl/simplified_chinese/style.rpy
 share/renpy/launcher/game/tl/spanish/
-share/renpy/launcher/game/tl/spanish/about.rpy
-share/renpy/launcher/game/tl/spanish/add_file.rpy
-share/renpy/launcher/game/tl/spanish/android.rpy
-share/renpy/launcher/game/tl/spanish/choose_theme.rpy
 share/renpy/launcher/game/tl/spanish/common.rpy
-share/renpy/launcher/game/tl/spanish/distribute.rpy
-share/renpy/launcher/game/tl/spanish/distribute_gui.rpy
-share/renpy/launcher/game/tl/spanish/editor.rpy
-share/renpy/launcher/game/tl/spanish/front_page.rpy
-share/renpy/launcher/game/tl/spanish/interface.rpy
-share/renpy/launcher/game/tl/spanish/navigation.rpy
-share/renpy/launcher/game/tl/spanish/new_project.rpy
-share/renpy/launcher/game/tl/spanish/preferences.rpy
-share/renpy/launcher/game/tl/spanish/project.rpy
-share/renpy/launcher/game/tl/spanish/style.rpy
-share/renpy/launcher/game/tl/spanish/translations.rpy
-share/renpy/launcher/game/tl/spanish/updater.rpy
+share/renpy/launcher/game/tl/spanish/developer.rpy
+share/renpy/launcher/game/tl/spanish/error.rpy
+share/renpy/launcher/game/tl/spanish/gui.rpy
+share/renpy/launcher/game/tl/spanish/launcher.rpy
+share/renpy/launcher/game/tl/spanish/obsolete.rpy
+share/renpy/launcher/game/tl/spanish/options.rpy
+share/renpy/launcher/game/tl/spanish/screens.rpy
+share/renpy/launcher/game/tl/spanish/script.rpym
+share/renpy/launcher/game/tl/traditional_chinese/
+share/renpy/launcher/game/tl/traditional_chinese/common.rpy
+share/renpy/launcher/game/tl/traditional_chinese/developer.rpy
+share/renpy/launcher/game/tl/traditional_chinese/error.rpy
+share/renpy/launcher/game/tl/traditional_chinese/gui.rpy
+share/renpy/launcher/game/tl/traditional_chinese/launcher.rpy
+share/renpy/launcher/game/tl/traditional_chinese/obsolete.rpy
+share/renpy/launcher/game/tl/traditional_chinese/options.rpy
+share/renpy/launcher/game/tl/traditional_chinese/screens.rpy
+share/renpy/launcher/game/tl/traditional_chinese/script.rpym
+share/renpy/launcher/game/tl/traditional_chinese/style.rpy
+share/renpy/launcher/game/tl/turkish/
+share/renpy/launcher/game/tl/turkish/common.rpy
+share/renpy/launcher/game/tl/turkish/developer.rpy
+share/renpy/launcher/game/tl/turkish/error.rpy
+share/renpy/launcher/game/tl/turkish/gui.rpy
+share/renpy/launcher/game/tl/turkish/launcher.rpy
+share/renpy/launcher/game/tl/turkish/options.rpy
+share/renpy/launcher/game/tl/turkish/screens.rpy
+share/renpy/launcher/game/tl/turkish/script.rpym
+share/renpy/launcher/game/tl/vietnamese/
+share/renpy/launcher/game/tl/vietnamese/common.rpy
+share/renpy/launcher/game/tl/vietnamese/developer.rpy
+share/renpy/launcher/game/tl/vietnamese/error.rpy
+share/renpy/launcher/game/tl/vietnamese/gui.rpy
+share/renpy/launcher/game/tl/vietnamese/launcher.rpy
+share/renpy/launcher/game/tl/vietnamese/obsolete.rpy
+share/renpy/launcher/game/tl/vietnamese/options.rpy
+share/renpy/launcher/game/tl/vietnamese/screens.rpy
 share/renpy/launcher/game/translations.rpy
 share/renpy/launcher/game/updater.rpy
 share/renpy/launcher/game/util.rpy
+share/renpy/launcher/game/web.rpy
+share/renpy/launcher/game/webserver.py
 share/renpy/launcher/icon.icns
 share/renpy/launcher/project.json
+share/renpy/launcher/theme/
+share/renpy/launcher/theme/theme.rpy
+share/renpy/launcher/theme/theme_background.jpg
 share/renpy/renpy/
 share/renpy/renpy.py
 share/renpy/renpy/__init__.py
 share/renpy/renpy/__init__.pyc
+share/renpy/renpy/add_from.py
 share/renpy/renpy/angle/
 share/renpy/renpy/angle/__init__.py
 share/renpy/renpy/angle/gl.pxd
+share/renpy/renpy/angle/gl.pyx
 share/renpy/renpy/angle/glblacklist.py
 share/renpy/renpy/angle/gldraw.pxd
 share/renpy/renpy/angle/gldraw.pyx
@@ -226,38 +346,59 @@ share/renpy/renpy/ast.py
 share/renpy/renpy/atl.py
 share/renpy/renpy/audio/
 share/renpy/renpy/audio/__init__.py
+share/renpy/renpy/audio/androidhw.py
 share/renpy/renpy/audio/audio.py
+share/renpy/renpy/audio/ioshw.py
 share/renpy/renpy/audio/music.py
+share/renpy/renpy/audio/renpysound.pyx
 share/renpy/renpy/audio/sound.py
 share/renpy/renpy/bootstrap.py
 share/renpy/renpy/character.py
+share/renpy/renpy/color.py
 share/renpy/renpy/common/
 share/renpy/renpy/common/000atl.rpy
+share/renpy/renpy/common/000namespaces.rpy
 share/renpy/renpy/common/000statements.rpy
 share/renpy/renpy/common/000window.rpy
+share/renpy/renpy/common/00accessibility.rpy
+share/renpy/renpy/common/00achievement.rpy
 share/renpy/renpy/common/00action_audio.rpy
 share/renpy/renpy/common/00action_control.rpy
 share/renpy/renpy/common/00action_data.rpy
 share/renpy/renpy/common/00action_file.rpy
 share/renpy/renpy/common/00action_menu.rpy
 share/renpy/renpy/common/00action_other.rpy
+share/renpy/renpy/common/00audio.rpy
 share/renpy/renpy/common/00barvalues.rpy
 share/renpy/renpy/common/00build.rpy
 share/renpy/renpy/common/00compat.rpy
 share/renpy/renpy/common/00console.rpy
 share/renpy/renpy/common/00defaults.rpy
 share/renpy/renpy/common/00definitions.rpy
+share/renpy/renpy/common/00director.rpy
 share/renpy/renpy/common/00gallery.rpy
 share/renpy/renpy/common/00gamemenu.rpy
+share/renpy/renpy/common/00gamepad.rpy
 share/renpy/renpy/common/00gltest.rpy
+share/renpy/renpy/common/00gui.rpy
+share/renpy/renpy/common/00iap.rpy
+share/renpy/renpy/common/00icon.rpy
+share/renpy/renpy/common/00iconbutton.rpy
+share/renpy/renpy/common/00images.rpy
+share/renpy/renpy/common/00inputvalues.rpy
 share/renpy/renpy/common/00keymap.rpy
+share/renpy/renpy/common/00layeredimage.rpy
 share/renpy/renpy/common/00layout.rpy
 share/renpy/renpy/common/00library.rpy
 share/renpy/renpy/common/00mixers.rpy
 share/renpy/renpy/common/00musicroom.rpy
 share/renpy/renpy/common/00nvl_mode.rpy
 share/renpy/renpy/common/00obsolete.rpy
+share/renpy/renpy/common/00performance.rpy
+share/renpy/renpy/common/00placeholder.rpy
 share/renpy/renpy/common/00preferences.rpy
+share/renpy/renpy/common/00shaders.rpy
+share/renpy/renpy/common/00sideimage.rpy
 share/renpy/renpy/common/00splines.rpy
 share/renpy/renpy/common/00start.rpy
 share/renpy/renpy/common/00style.rpy
@@ -265,8 +406,11 @@ share/renpy/renpy/common/00stylepreferen
 share/renpy/renpy/common/00themes.rpy
 share/renpy/renpy/common/00updater.rpy
 share/renpy/renpy/common/00voice.rpy
+share/renpy/renpy/common/DejaVuSans-Bold.ttf
 share/renpy/renpy/common/DejaVuSans.ttf
 share/renpy/renpy/common/DejaVuSans.txt
+share/renpy/renpy/common/_OpenDyslexic3-Regular.ttf
+share/renpy/renpy/common/_OpenDyslexic3-Regular.txt
 share/renpy/renpy/common/_compat/
 share/renpy/renpy/common/_compat/gamemenu.rpym
 share/renpy/renpy/common/_compat/library.rpym
@@ -306,6 +450,9 @@ share/renpy/renpy/common/_outline/
 share/renpy/renpy/common/_outline/bar.png
 share/renpy/renpy/common/_outline/circle.png
 share/renpy/renpy/common/_outline/vbar.png
+share/renpy/renpy/common/_placeholder/
+share/renpy/renpy/common/_placeholder/boy.png
+share/renpy/renpy/common/_placeholder/girl.png
 share/renpy/renpy/common/_roundrect/
 share/renpy/renpy/common/_roundrect/rr12.png
 share/renpy/renpy/common/_roundrect/rr12g.png
@@ -321,6 +468,7 @@ share/renpy/renpy/common/_roundrect/rrvs
 share/renpy/renpy/common/_roundrect/rrvslider_empty.png
 share/renpy/renpy/common/_roundrect/rrvslider_full.png
 share/renpy/renpy/common/_roundrect/rrvslider_thumb.png
+share/renpy/renpy/common/_silence.ogg
 share/renpy/renpy/common/_theme_amie2/
 share/renpy/renpy/common/_theme_amie2/bar.png
 share/renpy/renpy/common/_theme_amie2/button.png
@@ -482,26 +630,33 @@ share/renpy/renpy/common/_theme_tv/tvsli
 share/renpy/renpy/common/_transparent_tile.png
 share/renpy/renpy/common/_tv_unsafe.png
 share/renpy/renpy/common/blindstile.png
+share/renpy/renpy/common/gamecontrollerdb.txt
 share/renpy/renpy/common/squarestile.png
 share/renpy/renpy/config.py
 share/renpy/renpy/curry.py
+share/renpy/renpy/debug.py
 share/renpy/renpy/defaultstore.py
 share/renpy/renpy/display/
 share/renpy/renpy/display/__init__.py
 share/renpy/renpy/display/accelerator.pyx
 share/renpy/renpy/display/anim.py
 share/renpy/renpy/display/behavior.py
+share/renpy/renpy/display/controller.py
 share/renpy/renpy/display/core.py
 share/renpy/renpy/display/dragdrop.py
 share/renpy/renpy/display/emulator.py
 share/renpy/renpy/display/error.py
 share/renpy/renpy/display/focus.py
+share/renpy/renpy/display/gesture.py
 share/renpy/renpy/display/im.py
 share/renpy/renpy/display/image.py
 share/renpy/renpy/display/imagelike.py
 share/renpy/renpy/display/imagemap.py
 share/renpy/renpy/display/joystick.py
 share/renpy/renpy/display/layout.py
+share/renpy/renpy/display/matrix.pxd
+share/renpy/renpy/display/matrix.pyx
+share/renpy/renpy/display/matrix_functions.pxi
 share/renpy/renpy/display/minigame.py
 share/renpy/renpy/display/module.py
 share/renpy/renpy/display/motion.py
@@ -515,8 +670,11 @@ share/renpy/renpy/display/render.pyx
 share/renpy/renpy/display/scale.py
 share/renpy/renpy/display/screen.py
 share/renpy/renpy/display/swdraw.py
+share/renpy/renpy/display/transform.py
 share/renpy/renpy/display/transition.py
+share/renpy/renpy/display/tts.py
 share/renpy/renpy/display/video.py
+share/renpy/renpy/display/viewport.py
 share/renpy/renpy/dump.py
 share/renpy/renpy/easy.py
 share/renpy/renpy/editor.py
@@ -527,7 +685,9 @@ share/renpy/renpy/game.py
 share/renpy/renpy/gl/
 share/renpy/renpy/gl/__init__.py
 share/renpy/renpy/gl/gl.pxd
-share/renpy/renpy/gl/glblacklist.py
+share/renpy/renpy/gl/gl.pyx
+share/renpy/renpy/gl/gl1.pxd
+share/renpy/renpy/gl/gl1.pyx
 share/renpy/renpy/gl/gldraw.pxd
 share/renpy/renpy/gl/gldraw.pyx
 share/renpy/renpy/gl/glenviron_fixed.pyx
@@ -537,6 +697,20 @@ share/renpy/renpy/gl/glrtt_copy.pyx
 share/renpy/renpy/gl/glrtt_fbo.pyx
 share/renpy/renpy/gl/gltexture.pxd
 share/renpy/renpy/gl/gltexture.pyx
+share/renpy/renpy/gl2/
+share/renpy/renpy/gl2/__init__.py
+share/renpy/renpy/gl2/gl2draw.pxd
+share/renpy/renpy/gl2/gl2draw.pyx
+share/renpy/renpy/gl2/gl2geometry.pxd
+share/renpy/renpy/gl2/gl2geometry.pyx
+share/renpy/renpy/gl2/gl2shader.pxd
+share/renpy/renpy/gl2/gl2shader.pyx
+share/renpy/renpy/gl2/gl2shadercache.py
+share/renpy/renpy/gl2/gl2texture.pxd
+share/renpy/renpy/gl2/gl2texture.pyx
+share/renpy/renpy/gl2/uguu.pyx
+share/renpy/renpy/gl2/uguugl.pxd
+share/renpy/renpy/gl2/uguugl.pyx
 share/renpy/renpy/lint.py
 share/renpy/renpy/loader.py
 share/renpy/renpy/loadsave.py
@@ -546,23 +720,41 @@ share/renpy/renpy/memory.py
 share/renpy/renpy/minstore.py
 share/renpy/renpy/object.py
 share/renpy/renpy/parser.py
+share/renpy/renpy/parsersupport.pyx
+share/renpy/renpy/performance.py
 share/renpy/renpy/persistent.py
 share/renpy/renpy/preferences.py
+share/renpy/renpy/pyanalysis.py
+share/renpy/renpy/pydict.pyx
 share/renpy/renpy/python.py
 share/renpy/renpy/savelocation.py
 share/renpy/renpy/screenlang.py
 share/renpy/renpy/script.py
+share/renpy/renpy/scriptedit.py
+share/renpy/renpy/six.py
 share/renpy/renpy/sl2/
 share/renpy/renpy/sl2/__init__.py
-share/renpy/renpy/sl2/pyutil.py
 share/renpy/renpy/sl2/slast.py
 share/renpy/renpy/sl2/sldisplayables.py
 share/renpy/renpy/sl2/slparser.py
+share/renpy/renpy/sl2/slproperties.py
 share/renpy/renpy/statements.py
 share/renpy/renpy/style.pxd
 share/renpy/renpy/style.pyx
-share/renpy/renpy/styleclass.pyx
+share/renpy/renpy/styledata/
+share/renpy/renpy/styledata/__init__.py
+share/renpy/renpy/styledata/styleclass.pyx
+share/renpy/renpy/styledata/stylesets.pyx
+share/renpy/renpy/styledata/styleutil.py
 share/renpy/renpy/substitutions.py
+share/renpy/renpy/test/
+share/renpy/renpy/test/__init__.py
+share/renpy/renpy/test/testast.py
+share/renpy/renpy/test/testexecution.py
+share/renpy/renpy/test/testfocus.py
+share/renpy/renpy/test/testkey.py
+share/renpy/renpy/test/testmouse.py
+share/renpy/renpy/test/testparser.py
 share/renpy/renpy/text/
 share/renpy/renpy/text/__init__.py
 share/renpy/renpy/text/extras.py
@@ -573,204 +765,394 @@ share/renpy/renpy/text/text.py
 share/renpy/renpy/text/textsupport.pxd
 share/renpy/renpy/text/textsupport.pyx
 share/renpy/renpy/text/texwrap.pyx
-share/renpy/renpy/translation.py
+share/renpy/renpy/translation/
+share/renpy/renpy/translation/__init__.py
+share/renpy/renpy/translation/dialogue.py
+share/renpy/renpy/translation/extract.py
+share/renpy/renpy/translation/generation.py
+share/renpy/renpy/translation/merge.py
+share/renpy/renpy/translation/scanstrings.py
 share/renpy/renpy/ui.py
 share/renpy/renpy/vc_version.py
 share/renpy/renpy/vc_version.pyc
 share/renpy/renpy/warp.py
-share/renpy/templates/
-share/renpy/templates/arabic/
-share/renpy/templates/arabic/game/
-share/renpy/templates/arabic/game/options.rpy
-share/renpy/templates/arabic/game/screens.rpy
-share/renpy/templates/arabic/game/script.rpy
-share/renpy/templates/arabic/game/tl/
-share/renpy/templates/arabic/game/tl/None/
-share/renpy/templates/arabic/game/tl/None/common.rpy
-share/renpy/templates/arabic/game/tl/None/screens.rpy
-share/renpy/templates/arabic/project.json
-share/renpy/templates/english/
-share/renpy/templates/english/README.html
-share/renpy/templates/english/game/
-share/renpy/templates/english/game/options.rpy
-share/renpy/templates/english/game/screens.rpy
-share/renpy/templates/english/game/script.rpy
-share/renpy/templates/english/project.json
-share/renpy/templates/french/
-share/renpy/templates/french/README.html
-share/renpy/templates/french/game/
-share/renpy/templates/french/game/options.rpy
-share/renpy/templates/french/game/screens.rpy
-share/renpy/templates/french/game/script.rpy
-share/renpy/templates/french/game/tl/
-share/renpy/templates/french/game/tl/None/
-share/renpy/templates/french/game/tl/None/common.rpy
-share/renpy/templates/french/game/tl/None/screens.rpy
-share/renpy/templates/french/project.json
-share/renpy/templates/japanese/
-share/renpy/templates/japanese/README.html
-share/renpy/templates/japanese/game/
-share/renpy/templates/japanese/game/options.rpy
-share/renpy/templates/japanese/game/screens.rpy
-share/renpy/templates/japanese/game/script.rpy
-share/renpy/templates/japanese/game/tl/
-share/renpy/templates/japanese/game/tl/None/
-share/renpy/templates/japanese/game/tl/None/MTLc3m-LICENSE
-share/renpy/templates/japanese/game/tl/None/MTLc3m.ttf
-share/renpy/templates/japanese/game/tl/None/common.rpy
-share/renpy/templates/japanese/game/tl/None/screens.rpy
-share/renpy/templates/japanese/project.json
-share/renpy/templates/korean/
-share/renpy/templates/korean/README.html
-share/renpy/templates/korean/game/
-share/renpy/templates/korean/game/options.rpy
-share/renpy/templates/korean/game/screens.rpy
-share/renpy/templates/korean/game/script.rpy
-share/renpy/templates/korean/game/tl/
-share/renpy/templates/korean/game/tl/None/
-share/renpy/templates/korean/game/tl/None/NanumGothic.ttf
-share/renpy/templates/korean/game/tl/None/Naver Nanum Font License.txt
-share/renpy/templates/korean/game/tl/None/common.rpy
-share/renpy/templates/korean/game/tl/None/screens.rpy
-share/renpy/templates/korean/project.json
-share/renpy/templates/russian/
-share/renpy/templates/russian/game/
-share/renpy/templates/russian/game/options.rpy
-share/renpy/templates/russian/game/screens.rpy
-share/renpy/templates/russian/game/script.rpy
-share/renpy/templates/russian/project.json
-share/renpy/templates/spanish/
-share/renpy/templates/spanish/README.html
-share/renpy/templates/spanish/game/
-share/renpy/templates/spanish/game/options.rpy
-share/renpy/templates/spanish/game/screens.rpy
-share/renpy/templates/spanish/game/script.rpy
-share/renpy/templates/spanish/game/tl/
-share/renpy/templates/spanish/game/tl/None/
-share/renpy/templates/spanish/game/tl/None/common.rpy
-share/renpy/templates/spanish/game/tl/None/screens.rpy
-share/renpy/templates/spanish/project.json
 share/renpy/the_question/
-share/renpy/the_question/README.html
+share/renpy/the_question/android-icon_background.png
+share/renpy/the_question/android-icon_foreground.png
 share/renpy/the_question/game/
-share/renpy/the_question/game/club.jpg
-share/renpy/the_question/game/illurock.ogg
-share/renpy/the_question/game/lecturehall.jpg
-share/renpy/the_question/game/meadow.jpg
-share/renpy/the_question/game/menu.jpg
-share/renpy/the_question/game/menu2.jpg
+share/renpy/the_question/game/gui/
+share/renpy/the_question/game/gui.rpy
+share/renpy/the_question/game/gui/bar/
+share/renpy/the_question/game/gui/bar/bottom.png
+share/renpy/the_question/game/gui/bar/left.png
+share/renpy/the_question/game/gui/bar/right.png
+share/renpy/the_question/game/gui/bar/top.png
+share/renpy/the_question/game/gui/button/
+share/renpy/the_question/game/gui/button/check_foreground.png
+share/renpy/the_question/game/gui/button/check_selected_foreground.png
+share/renpy/the_question/game/gui/button/choice_hover_background.png
+share/renpy/the_question/game/gui/button/choice_idle_background.png
+share/renpy/the_question/game/gui/button/hover_background.png
+share/renpy/the_question/game/gui/button/idle_background.png
+share/renpy/the_question/game/gui/button/quick_hover_background.png
+share/renpy/the_question/game/gui/button/quick_idle_background.png
+share/renpy/the_question/game/gui/button/radio_foreground.png
+share/renpy/the_question/game/gui/button/radio_selected_foreground.png
+share/renpy/the_question/game/gui/button/slot_hover_background.png
+share/renpy/the_question/game/gui/button/slot_idle_background.png
+share/renpy/the_question/game/gui/frame.png
+share/renpy/the_question/game/gui/game_menu.png
+share/renpy/the_question/game/gui/main_menu.png
+share/renpy/the_question/game/gui/namebox.png
+share/renpy/the_question/game/gui/notify.png
+share/renpy/the_question/game/gui/nvl.png
+share/renpy/the_question/game/gui/overlay/
+share/renpy/the_question/game/gui/overlay/confirm.png
+share/renpy/the_question/game/gui/overlay/game_menu.png
+share/renpy/the_question/game/gui/overlay/main_menu.png
+share/renpy/the_question/game/gui/phone/
+share/renpy/the_question/game/gui/phone/nvl.png
+share/renpy/the_question/game/gui/phone/overlay/
+share/renpy/the_question/game/gui/phone/overlay/game_menu.png
+share/renpy/the_question/game/gui/phone/overlay/main_menu.png
+share/renpy/the_question/game/gui/phone/textbox.png
+share/renpy/the_question/game/gui/scrollbar/
+share/renpy/the_question/game/gui/scrollbar/horizontal_hover_bar.png
+share/renpy/the_question/game/gui/scrollbar/horizontal_hover_thumb.png
+share/renpy/the_question/game/gui/scrollbar/horizontal_idle_bar.png
+share/renpy/the_question/game/gui/scrollbar/horizontal_idle_thumb.png
+share/renpy/the_question/game/gui/scrollbar/vertical_hover_bar.png
+share/renpy/the_question/game/gui/scrollbar/vertical_hover_thumb.png
+share/renpy/the_question/game/gui/scrollbar/vertical_idle_bar.png
+share/renpy/the_question/game/gui/scrollbar/vertical_idle_thumb.png
+share/renpy/the_question/game/gui/skip.png
+share/renpy/the_question/game/gui/slider/
+share/renpy/the_question/game/gui/slider/horizontal_hover_bar.png
+share/renpy/the_question/game/gui/slider/horizontal_hover_thumb.png
+share/renpy/the_question/game/gui/slider/horizontal_idle_bar.png
+share/renpy/the_question/game/gui/slider/horizontal_idle_thumb.png
+share/renpy/the_question/game/gui/slider/vertical_hover_bar.png
+share/renpy/the_question/game/gui/slider/vertical_hover_thumb.png
+share/renpy/the_question/game/gui/slider/vertical_idle_bar.png
+share/renpy/the_question/game/gui/slider/vertical_idle_thumb.png
+share/renpy/the_question/game/gui/textbox.png
+share/renpy/the_question/game/gui/window_icon.png
+share/renpy/the_question/game/illurock.opus
+share/renpy/the_question/game/images/
+share/renpy/the_question/game/images/bg club.jpg
+share/renpy/the_question/game/images/bg lecturehall.jpg
+share/renpy/the_question/game/images/bg meadow.jpg
+share/renpy/the_question/game/images/bg uni.jpg
+share/renpy/the_question/game/images/sylvie blue giggle.png
+share/renpy/the_question/game/images/sylvie blue normal.png
+share/renpy/the_question/game/images/sylvie blue smile.png
+share/renpy/the_question/game/images/sylvie blue surprised.png
+share/renpy/the_question/game/images/sylvie green giggle.png
+share/renpy/the_question/game/images/sylvie green normal.png
+share/renpy/the_question/game/images/sylvie green smile.png
+share/renpy/the_question/game/images/sylvie green surprised.png
 share/renpy/the_question/game/options.rpy
+share/renpy/the_question/game/screens.rpy
 share/renpy/the_question/game/script.rpy
-share/renpy/the_question/game/sylvie2_giggle.png
-share/renpy/the_question/game/sylvie2_normal.png
-share/renpy/the_question/game/sylvie2_smile.png
-share/renpy/the_question/game/sylvie2_surprised.png
-share/renpy/the_question/game/sylvie_giggle.png
-share/renpy/the_question/game/sylvie_normal.png
-share/renpy/the_question/game/sylvie_smile.png
-share/renpy/the_question/game/sylvie_surprised.png
-share/renpy/the_question/game/uni.jpg
+share/renpy/the_question/game/tl/
+share/renpy/the_question/game/tl/None/
+share/renpy/the_question/game/tl/None/common.rpym
+share/renpy/the_question/game/tl/french/
+share/renpy/the_question/game/tl/french/common.rpy
+share/renpy/the_question/game/tl/french/options.rpy
+share/renpy/the_question/game/tl/french/screens.rpy
+share/renpy/the_question/game/tl/french/script.rpy
+share/renpy/the_question/game/tl/korean/
+share/renpy/the_question/game/tl/korean/common.rpy
+share/renpy/the_question/game/tl/korean/options.rpy
+share/renpy/the_question/game/tl/korean/screens.rpy
+share/renpy/the_question/game/tl/korean/script.rpy
+share/renpy/the_question/game/tl/malay/
+share/renpy/the_question/game/tl/malay/common.rpy
+share/renpy/the_question/game/tl/malay/options.rpy
+share/renpy/the_question/game/tl/malay/screens.rpy
+share/renpy/the_question/game/tl/malay/script.rpy
+share/renpy/the_question/game/tl/russian/
+share/renpy/the_question/game/tl/russian/common.rpy
+share/renpy/the_question/game/tl/russian/options.rpy
+share/renpy/the_question/game/tl/russian/screens.rpy
+share/renpy/the_question/game/tl/russian/script.rpy
+share/renpy/the_question/game/tl/simplified_chinese/
+share/renpy/the_question/game/tl/simplified_chinese/options.rpy
+share/renpy/the_question/game/tl/simplified_chinese/screens.rpy
+share/renpy/the_question/game/tl/simplified_chinese/script.rpy
+share/renpy/the_question/game/tl/spanish/
+share/renpy/the_question/game/tl/spanish/common.rpy
+share/renpy/the_question/game/tl/spanish/options.rpy
+share/renpy/the_question/game/tl/spanish/screens.rpy
+share/renpy/the_question/game/tl/spanish/script.rpy
+share/renpy/the_question/game/tl/traditional_chinese/
+share/renpy/the_question/game/tl/traditional_chinese/options.rpy
+share/renpy/the_question/game/tl/traditional_chinese/script.rpy
 share/renpy/the_question/icon.icns
 share/renpy/the_question/icon.ico
+share/renpy/the_question/ios-icon.png
+share/renpy/the_question/ios-launchimage.png
 share/renpy/the_question/project.json
 share/renpy/tutorial/
-share/renpy/tutorial/README.html
 share/renpy/tutorial/game/
-share/renpy/tutorial/game/arrow.png
-share/renpy/tutorial/game/band.jpg
-share/renpy/tutorial/game/cache/
-share/renpy/tutorial/game/cache/im-97355fbfe11cfbf399bd634f191bba56.png
-share/renpy/tutorial/game/cave.jpg
-share/renpy/tutorial/game/click.wav
-share/renpy/tutorial/game/concert1.jpg
-share/renpy/tutorial/game/concert2.jpg
-share/renpy/tutorial/game/concert3.jpg
-share/renpy/tutorial/game/demo_character.rpy
-share/renpy/tutorial/game/demo_dynamic.rpy
-share/renpy/tutorial/game/demo_imageops.rpy
-share/renpy/tutorial/game/demo_layers.rpy
-share/renpy/tutorial/game/demo_minigame.rpy
-share/renpy/tutorial/game/demo_nvlmode.rpy
-share/renpy/tutorial/game/demo_persistent.rpy
-share/renpy/tutorial/game/demo_text.rpy
-share/renpy/tutorial/game/demo_transform.rpy
-share/renpy/tutorial/game/demo_transitions.rpy
-share/renpy/tutorial/game/demo_ui.rpy
-share/renpy/tutorial/game/demos.rpy
-share/renpy/tutorial/game/editor.rpy
-share/renpy/tutorial/game/eileen_concerned.png
-share/renpy/tutorial/game/eileen_happy.png
-share/renpy/tutorial/game/eileen_orb.png
-share/renpy/tutorial/game/eileen_side.png
-share/renpy/tutorial/game/eileen_vhappy.png
+share/renpy/tutorial/game/01director_support.rpy
+share/renpy/tutorial/game/01example.rpy
 share/renpy/tutorial/game/examples.rpy
 share/renpy/tutorial/game/exclamation.png
-share/renpy/tutorial/game/id_circleiris.png
-share/renpy/tutorial/game/id_circlewipe.png
-share/renpy/tutorial/game/id_dream.png
-share/renpy/tutorial/game/id_teleport.png
-share/renpy/tutorial/game/imagemap_ground.jpg
-share/renpy/tutorial/game/imagemap_hover.jpg
+share/renpy/tutorial/game/gui/
+share/renpy/tutorial/game/gui.rpy
+share/renpy/tutorial/game/gui/bar/
+share/renpy/tutorial/game/gui/bar/bottom.png
+share/renpy/tutorial/game/gui/bar/left.png
+share/renpy/tutorial/game/gui/bar/right.png
+share/renpy/tutorial/game/gui/bar/top.png
+share/renpy/tutorial/game/gui/button/
+share/renpy/tutorial/game/gui/button/check_foreground.png
+share/renpy/tutorial/game/gui/button/check_selected_foreground.png
+share/renpy/tutorial/game/gui/button/choice_hover_background.png
+share/renpy/tutorial/game/gui/button/choice_idle_background.png
+share/renpy/tutorial/game/gui/button/hover_background.png
+share/renpy/tutorial/game/gui/button/idle_background.png
+share/renpy/tutorial/game/gui/button/quick_hover_background.png
+share/renpy/tutorial/game/gui/button/quick_idle_background.png
+share/renpy/tutorial/game/gui/button/radio_foreground.png
+share/renpy/tutorial/game/gui/button/radio_selected_foreground.png
+share/renpy/tutorial/game/gui/button/slot_hover_background.png
+share/renpy/tutorial/game/gui/button/slot_idle_background.png
+share/renpy/tutorial/game/gui/frame.png
+share/renpy/tutorial/game/gui/main_menu.jpg
+share/renpy/tutorial/game/gui/namebox.png
+share/renpy/tutorial/game/gui/notify.png
+share/renpy/tutorial/game/gui/nvl.png
+share/renpy/tutorial/game/gui/overlay/
+share/renpy/tutorial/game/gui/overlay/confirm.png
+share/renpy/tutorial/game/gui/overlay/game_menu.png
+share/renpy/tutorial/game/gui/overlay/main_menu.png
+share/renpy/tutorial/game/gui/phone/
+share/renpy/tutorial/game/gui/phone/nvl.png
+share/renpy/tutorial/game/gui/phone/overlay/
+share/renpy/tutorial/game/gui/phone/overlay/game_menu.png
+share/renpy/tutorial/game/gui/phone/overlay/main_menu.png
+share/renpy/tutorial/game/gui/phone/textbox.png
+share/renpy/tutorial/game/gui/scrollbar/
+share/renpy/tutorial/game/gui/scrollbar/horizontal_hover_bar.png
+share/renpy/tutorial/game/gui/scrollbar/horizontal_hover_thumb.png
+share/renpy/tutorial/game/gui/scrollbar/horizontal_idle_bar.png
+share/renpy/tutorial/game/gui/scrollbar/horizontal_idle_thumb.png
+share/renpy/tutorial/game/gui/scrollbar/vertical_hover_bar.png
+share/renpy/tutorial/game/gui/scrollbar/vertical_hover_thumb.png
+share/renpy/tutorial/game/gui/scrollbar/vertical_idle_bar.png
+share/renpy/tutorial/game/gui/scrollbar/vertical_idle_thumb.png
+share/renpy/tutorial/game/gui/skip.png
+share/renpy/tutorial/game/gui/slider/
+share/renpy/tutorial/game/gui/slider/horizontal_hover_bar.png
+share/renpy/tutorial/game/gui/slider/horizontal_hover_thumb.png
+share/renpy/tutorial/game/gui/slider/horizontal_idle_bar.png
+share/renpy/tutorial/game/gui/slider/horizontal_idle_thumb.png
+share/renpy/tutorial/game/gui/slider/vertical_hover_bar.png
+share/renpy/tutorial/game/gui/slider/vertical_hover_thumb.png
+share/renpy/tutorial/game/gui/slider/vertical_idle_bar.png
+share/renpy/tutorial/game/gui/slider/vertical_idle_thumb.png
+share/renpy/tutorial/game/gui/startextbox.png
+share/renpy/tutorial/game/gui/textbox.png
+share/renpy/tutorial/game/gui/window_icon.png
+share/renpy/tutorial/game/images/
+share/renpy/tutorial/game/images/bar empty hover.png
+share/renpy/tutorial/game/images/bar empty idle.png
+share/renpy/tutorial/game/images/bar full hover.png
+share/renpy/tutorial/game/images/bar full idle.png
+share/renpy/tutorial/game/images/bar thumb hover.png
+share/renpy/tutorial/game/images/bar thumb idle.png
+share/renpy/tutorial/game/images/bg cave.jpg
+share/renpy/tutorial/game/images/bg panorama.webp
+share/renpy/tutorial/game/images/bg pong field.png
+share/renpy/tutorial/game/images/bg washington.jpg
+share/renpy/tutorial/game/images/bg whitehouse.jpg
+share/renpy/tutorial/game/images/button glossy hover.png
+share/renpy/tutorial/game/images/button glossy idle.png
+share/renpy/tutorial/game/images/check_foreground.png
+share/renpy/tutorial/game/images/check_selected_foreground.png
+share/renpy/tutorial/game/images/concert1.png
+share/renpy/tutorial/game/images/concert2.png
+share/renpy/tutorial/game/images/concert3.png
+share/renpy/tutorial/game/images/eileen concerned.png
+share/renpy/tutorial/game/images/eileen happy.png
+share/renpy/tutorial/game/images/eileen vhappy.png
+share/renpy/tutorial/game/images/hover_background.png
+share/renpy/tutorial/game/images/idle_background.png
+share/renpy/tutorial/game/images/imagedissolve circleiris.png
+share/renpy/tutorial/game/images/imagedissolve circlewipe.png
+share/renpy/tutorial/game/images/imagedissolve dream.png
+share/renpy/tutorial/game/images/imagedissolve teleport.png
+share/renpy/tutorial/game/images/imagemap ground.png
+share/renpy/tutorial/game/images/imagemap hover.png
+share/renpy/tutorial/game/images/imagemap volume hover.png
+share/renpy/tutorial/game/images/imagemap volume idle.png
+share/renpy/tutorial/game/images/imagemap volume insensitive.png
+share/renpy/tutorial/game/images/imagemap volume selected_hover.png
+share/renpy/tutorial/game/images/imagemap volume selected_idle.png
+share/renpy/tutorial/game/images/launcher distribute.png
+share/renpy/tutorial/game/images/launcher step1.webp
+share/renpy/tutorial/game/images/launcher step2.webp
+share/renpy/tutorial/game/images/launcher step3.webp
+share/renpy/tutorial/game/images/launcher step4.webp
+share/renpy/tutorial/game/images/launcher step5.webp
+share/renpy/tutorial/game/images/launcher translate.png
+share/renpy/tutorial/game/images/logo base.png
+share/renpy/tutorial/game/images/logo bw.png
+share/renpy/tutorial/game/images/logo solid.png
+share/renpy/tutorial/game/images/lucy happy.png
+share/renpy/tutorial/game/images/lucy mad.png
+share/renpy/tutorial/game/images/magic.png
+share/renpy/tutorial/game/images/ninepatch paper.png
+share/renpy/tutorial/game/images/ninepatch.png
+share/renpy/tutorial/game/images/popup hrpprefs.png
+share/renpy/tutorial/game/images/popup prefs.png
+share/renpy/tutorial/game/images/popup save.png
+share/renpy/tutorial/game/images/spotlight.png
+share/renpy/tutorial/game/indepth_character.rpy
+share/renpy/tutorial/game/indepth_displayables.rpy
+share/renpy/tutorial/game/indepth_minigame.rpy
+share/renpy/tutorial/game/indepth_style.rpy
+share/renpy/tutorial/game/indepth_text.rpy
+share/renpy/tutorial/game/indepth_transitions.rpy
+share/renpy/tutorial/game/indepth_translations.rpy
 share/renpy/tutorial/game/keywords.py
-share/renpy/tutorial/game/logo.png
-share/renpy/tutorial/game/logo32.png
-share/renpy/tutorial/game/logobw.png
-share/renpy/tutorial/game/logosolid.png
-share/renpy/tutorial/game/lucy_happy.png
-share/renpy/tutorial/game/lucy_mad.png
-share/renpy/tutorial/game/lucy_orb.png
-share/renpy/tutorial/game/magic.png
-share/renpy/tutorial/game/mjcprefs.jpg
-share/renpy/tutorial/game/new_sfont.png
+share/renpy/tutorial/game/oa4_launch.webm
 share/renpy/tutorial/game/options.rpy
-share/renpy/tutorial/game/pong.png
-share/renpy/tutorial/game/pong_ball.png
-share/renpy/tutorial/game/pong_beep.wav
-share/renpy/tutorial/game/pong_boop.wav
-share/renpy/tutorial/game/pong_field.png
-share/renpy/tutorial/game/prefs.png
-share/renpy/tutorial/game/punch.wav
+share/renpy/tutorial/game/pong_beep.opus
+share/renpy/tutorial/game/pong_boop.opus
+share/renpy/tutorial/game/punch.opus
 share/renpy/tutorial/game/renpyallstars.ogg
-share/renpy/tutorial/game/sakura.png
-share/renpy/tutorial/game/save.png
 share/renpy/tutorial/game/screens.rpy
 share/renpy/tutorial/game/script.rpy
-share/renpy/tutorial/game/shuttle.ogv
-share/renpy/tutorial/game/spotlight.png
-share/renpy/tutorial/game/star.png
 share/renpy/tutorial/game/sunflower-slow-drag.ogg
 share/renpy/tutorial/game/target1.png
 share/renpy/tutorial/game/target2.png
+share/renpy/tutorial/game/testcases.rpy
 share/renpy/tutorial/game/tl/
-share/renpy/tutorial/game/tl/japanese/
-share/renpy/tutorial/game/tl/japanese/MTLc3m-LICENSE
-share/renpy/tutorial/game/tl/japanese/MTLc3m.ttf
-share/renpy/tutorial/game/tl/japanese/common.rpy
-share/renpy/tutorial/game/tl/japanese/demo_character.rpy
-share/renpy/tutorial/game/tl/japanese/demo_dynamic.rpy
-share/renpy/tutorial/game/tl/japanese/demo_imageops.rpy
-share/renpy/tutorial/game/tl/japanese/demo_layers.rpy
-share/renpy/tutorial/game/tl/japanese/demo_minigame.rpy
-share/renpy/tutorial/game/tl/japanese/demo_nvlmode.rpy
-share/renpy/tutorial/game/tl/japanese/demo_persistent.rpy
-share/renpy/tutorial/game/tl/japanese/demo_text.rpy
-share/renpy/tutorial/game/tl/japanese/demo_transform.rpy
-share/renpy/tutorial/game/tl/japanese/demo_transitions.rpy
-share/renpy/tutorial/game/tl/japanese/demo_ui.rpy
-share/renpy/tutorial/game/tl/japanese/screens.rpy
-share/renpy/tutorial/game/tl/japanese/script.rpy
-share/renpy/tutorial/game/tl/japanese/style.rpy
-share/renpy/tutorial/game/tl/japanese/tutorial_atl.rpy
-share/renpy/tutorial/game/tl/japanese/tutorial_playing.rpy
-share/renpy/tutorial/game/tl/japanese/tutorial_quickstart.rpy
-share/renpy/tutorial/game/tl/japanese/tutorial_sprite.rpy
-share/renpy/tutorial/game/tl/japanese/tutorial_video.rpy
+share/renpy/tutorial/game/tl/None/
+share/renpy/tutorial/game/tl/None/common.rpym
+share/renpy/tutorial/game/tl/french/
+share/renpy/tutorial/game/tl/french/01example.rpy
+share/renpy/tutorial/game/tl/french/common.rpy
+share/renpy/tutorial/game/tl/french/indepth_character.rpy
+share/renpy/tutorial/game/tl/french/indepth_displayables.rpy
+share/renpy/tutorial/game/tl/french/indepth_minigame.rpy
+share/renpy/tutorial/game/tl/french/indepth_style.rpy
+share/renpy/tutorial/game/tl/french/indepth_text.rpy
+share/renpy/tutorial/game/tl/french/indepth_transitions.rpy
+share/renpy/tutorial/game/tl/french/indepth_translations.rpy
+share/renpy/tutorial/game/tl/french/options.rpy
+share/renpy/tutorial/game/tl/french/screens.rpy
+share/renpy/tutorial/game/tl/french/script.rpy
+share/renpy/tutorial/game/tl/french/tutorial_atl.rpy
+share/renpy/tutorial/game/tl/french/tutorial_director.rpy
+share/renpy/tutorial/game/tl/french/tutorial_distribute.rpy
+share/renpy/tutorial/game/tl/french/tutorial_nvlmode.rpy
+share/renpy/tutorial/game/tl/french/tutorial_playing.rpy
+share/renpy/tutorial/game/tl/french/tutorial_quickstart.rpy
+share/renpy/tutorial/game/tl/french/tutorial_screen_displayables.rpy
+share/renpy/tutorial/game/tl/french/tutorial_screens.rpy
+share/renpy/tutorial/game/tl/french/tutorial_video.rpy
+share/renpy/tutorial/game/tl/korean/
+share/renpy/tutorial/game/tl/korean/01example.rpy
+share/renpy/tutorial/game/tl/korean/common.rpy
+share/renpy/tutorial/game/tl/korean/indepth_character.rpy
+share/renpy/tutorial/game/tl/korean/indepth_displayables.rpy
+share/renpy/tutorial/game/tl/korean/indepth_minigame.rpy
+share/renpy/tutorial/game/tl/korean/indepth_style.rpy
+share/renpy/tutorial/game/tl/korean/indepth_text.rpy
+share/renpy/tutorial/game/tl/korean/indepth_transitions.rpy
+share/renpy/tutorial/game/tl/korean/indepth_translations.rpy
+share/renpy/tutorial/game/tl/korean/options.rpy
+share/renpy/tutorial/game/tl/korean/screens.rpy
+share/renpy/tutorial/game/tl/korean/script.rpy
+share/renpy/tutorial/game/tl/korean/tutorial_atl.rpy
+share/renpy/tutorial/game/tl/korean/tutorial_director.rpy
+share/renpy/tutorial/game/tl/korean/tutorial_distribute.rpy
+share/renpy/tutorial/game/tl/korean/tutorial_nvlmode.rpy
+share/renpy/tutorial/game/tl/korean/tutorial_playing.rpy
+share/renpy/tutorial/game/tl/korean/tutorial_quickstart.rpy
+share/renpy/tutorial/game/tl/korean/tutorial_screen_displayables.rpy
+share/renpy/tutorial/game/tl/korean/tutorial_screens.rpy
+share/renpy/tutorial/game/tl/korean/tutorial_video.rpy
+share/renpy/tutorial/game/tl/piglatin/
+share/renpy/tutorial/game/tl/piglatin/01example.rpy
+share/renpy/tutorial/game/tl/piglatin/common.rpy
+share/renpy/tutorial/game/tl/piglatin/indepth_character.rpy
+share/renpy/tutorial/game/tl/piglatin/indepth_displayables.rpy
+share/renpy/tutorial/game/tl/piglatin/indepth_minigame.rpy
+share/renpy/tutorial/game/tl/piglatin/indepth_style.rpy
+share/renpy/tutorial/game/tl/piglatin/indepth_text.rpy
+share/renpy/tutorial/game/tl/piglatin/indepth_transitions.rpy
+share/renpy/tutorial/game/tl/piglatin/indepth_translations.rpy
+share/renpy/tutorial/game/tl/piglatin/options.rpy
+share/renpy/tutorial/game/tl/piglatin/screens.rpy
+share/renpy/tutorial/game/tl/piglatin/script.rpy
+share/renpy/tutorial/game/tl/piglatin/tutorial_atl.rpy
+share/renpy/tutorial/game/tl/piglatin/tutorial_director.rpy
+share/renpy/tutorial/game/tl/piglatin/tutorial_distribute.rpy
+share/renpy/tutorial/game/tl/piglatin/tutorial_nvlmode.rpy
+share/renpy/tutorial/game/tl/piglatin/tutorial_playing.rpy
+share/renpy/tutorial/game/tl/piglatin/tutorial_quickstart.rpy
+share/renpy/tutorial/game/tl/piglatin/tutorial_screen_displayables.rpy
+share/renpy/tutorial/game/tl/piglatin/tutorial_screens.rpy
+share/renpy/tutorial/game/tl/piglatin/tutorial_video.rpy
+share/renpy/tutorial/game/tl/russian/
+share/renpy/tutorial/game/tl/russian/01example.rpy
+share/renpy/tutorial/game/tl/russian/common.rpy
+share/renpy/tutorial/game/tl/russian/indepth_character.rpy
+share/renpy/tutorial/game/tl/russian/indepth_displayables.rpy
+share/renpy/tutorial/game/tl/russian/indepth_minigame.rpy
+share/renpy/tutorial/game/tl/russian/indepth_style.rpy
+share/renpy/tutorial/game/tl/russian/indepth_text.rpy
+share/renpy/tutorial/game/tl/russian/indepth_transitions.rpy
+share/renpy/tutorial/game/tl/russian/indepth_translations.rpy
+share/renpy/tutorial/game/tl/russian/options.rpy
+share/renpy/tutorial/game/tl/russian/screens.rpy
+share/renpy/tutorial/game/tl/russian/script.rpy
+share/renpy/tutorial/game/tl/russian/tutorial_atl.rpy
+share/renpy/tutorial/game/tl/russian/tutorial_director.rpy
+share/renpy/tutorial/game/tl/russian/tutorial_distribute.rpy
+share/renpy/tutorial/game/tl/russian/tutorial_nvlmode.rpy
+share/renpy/tutorial/game/tl/russian/tutorial_playing.rpy
+share/renpy/tutorial/game/tl/russian/tutorial_quickstart.rpy
+share/renpy/tutorial/game/tl/russian/tutorial_screen_displayables.rpy
+share/renpy/tutorial/game/tl/russian/tutorial_screens.rpy
+share/renpy/tutorial/game/tl/russian/tutorial_video.rpy
+share/renpy/tutorial/game/tl/spanish/
+share/renpy/tutorial/game/tl/spanish/01example.rpy
+share/renpy/tutorial/game/tl/spanish/common.rpy
+share/renpy/tutorial/game/tl/spanish/indepth_character.rpy
+share/renpy/tutorial/game/tl/spanish/indepth_displayables.rpy
+share/renpy/tutorial/game/tl/spanish/indepth_minigame.rpy
+share/renpy/tutorial/game/tl/spanish/indepth_style.rpy
+share/renpy/tutorial/game/tl/spanish/indepth_text.rpy
+share/renpy/tutorial/game/tl/spanish/indepth_transitions.rpy
+share/renpy/tutorial/game/tl/spanish/indepth_translations.rpy
+share/renpy/tutorial/game/tl/spanish/options.rpy
+share/renpy/tutorial/game/tl/spanish/screens.rpy
+share/renpy/tutorial/game/tl/spanish/script.rpy
+share/renpy/tutorial/game/tl/spanish/tutorial_atl.rpy
+share/renpy/tutorial/game/tl/spanish/tutorial_director.rpy
+share/renpy/tutorial/game/tl/spanish/tutorial_distribute.rpy
+share/renpy/tutorial/game/tl/spanish/tutorial_nvlmode.rpy
+share/renpy/tutorial/game/tl/spanish/tutorial_playing.rpy
+share/renpy/tutorial/game/tl/spanish/tutorial_quickstart.rpy
+share/renpy/tutorial/game/tl/spanish/tutorial_screen_displayables.rpy
+share/renpy/tutorial/game/tl/spanish/tutorial_screens.rpy
+share/renpy/tutorial/game/tl/spanish/tutorial_video.rpy
 share/renpy/tutorial/game/tower_clock.ogg
 share/renpy/tutorial/game/tutorial_atl.rpy
+share/renpy/tutorial/game/tutorial_director.rpy
+share/renpy/tutorial/game/tutorial_director.rpym
+share/renpy/tutorial/game/tutorial_distribute.rpy
+share/renpy/tutorial/game/tutorial_nvlmode.rpy
 share/renpy/tutorial/game/tutorial_playing.rpy
 share/renpy/tutorial/game/tutorial_quickstart.rpy
-share/renpy/tutorial/game/tutorial_sprite.rpy
+share/renpy/tutorial/game/tutorial_screen_displayables.rpy
+share/renpy/tutorial/game/tutorial_screens.rpy
 share/renpy/tutorial/game/tutorial_video.rpy
-share/renpy/tutorial/game/washington.jpg
-share/renpy/tutorial/game/whitehouse.jpg
 share/renpy/tutorial/project.json
Index: pkg/README
===================================================================
RCS file: pkg/README
diff -N pkg/README
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ pkg/README	16 Feb 2020 20:34:23 -0000
@@ -0,0 +1,10 @@
+$OpenBSD$
+
++-----------------------------------------------------------------------
+| Running ${PKGSTEM} on OpenBSD
++-----------------------------------------------------------------------
+
+Ren'Py
+======
+If you cannot get a game to work, try running the `renpyify` script in
+the game's main directory (the one with the renpy/ subdirectory in it).

Reply via email to