Compare commits

...

10 Commits

Author SHA1 Message Date
Tom Rothamel 40cefb1db6 Manually merge #2036 into maint branch. 2019-10-17 19:34:05 -04:00
Tom Rothamel 3a3443ac3b Bump version. 2019-10-16 21:58:01 -04:00
Tom Rothamel e75d5d0ca2 Update changelog and sponsors. 2019-10-16 21:42:36 -04:00
Andy_kl 4a1fe5f4a1 Rework presplash processing 2019-10-15 20:37:51 -04:00
Tom Rothamel 56987e4029 lint: Fix error when adding additional information.
Fixes #2040.
2019-10-15 20:37:37 -04:00
Maxwell Paul Brickner ce71caef97 Updated URL to avoid redirect to HTTPS version
Updated URL in readme to use HTTPS instead of HTTP to avoid redirect to HTTPS version.
2019-10-15 20:37:22 -04:00
Tom Rothamel ff07cf4903 Check in entitlements.plist. 2019-10-15 20:36:04 -04:00
Tom Rothamel 93f2ec7a7d Add the audio directory to the launcher and new games. 2019-10-15 20:35:51 -04:00
Tom Rothamel 7754db33f9 Fix reference to self and not renpy.config. 2019-10-15 20:34:25 -04:00
Tom Rothamel e7a7277a91 Add config.exception_handler.
This allows creators to replace Ren'Py's exception handling with
a system of their own design.
2019-10-15 20:32:39 -04:00
15 changed files with 285 additions and 216 deletions
+1 -1
View File
@@ -104,7 +104,7 @@ Building
Building the documentation requires Ren'Py to work. You'll either need to
link in a nightly build, or compile the modules as described above. You'll
also need the `Sphinx <http://sphinx-doc.org/>`_ documentation generator.
also need the `Sphinx <https://www.sphinx-doc.org>`_ documentation generator.
If you have pip working, install Sphinx using::
pip install -U sphinx
+8
View File
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
<true/>
</dict>
</plist>
+1 -1
View File
@@ -195,8 +195,8 @@ screen front_page_project:
textbutton _("game") action OpenDirectory("game")
textbutton _("base") action OpenDirectory(".")
textbutton _("images") action OpenDirectory("game/images")
textbutton _("audio") action OpenDirectory("game/audio")
textbutton _("gui") action OpenDirectory("game/gui")
# textbutton _("save") action None style "l_list"
vbox:
if persistent.show_edit_funcs:
+5 -3
View File
@@ -36,10 +36,12 @@ def generate_gui(p):
CodeGenerator(p).copy_script("script.rpy")
CodeGenerator(p).copy_files()
images = os.path.join(p.prefix, "images")
for dn in [ "images", "audio" ]:
if not os.path.exists(images):
os.mkdir(images)
fulldn = os.path.join(p.prefix, dn)
if not os.path.exists(fulldn):
os.mkdir(fulldn)
def generate_gui_command():
+1 -1
View File
@@ -40,7 +40,7 @@ except ImportError:
vc_version = 0
# The tuple giving the version number.
version_tuple = (7, 3, 4, vc_version)
version_tuple = (7, 3, 5, vc_version)
# The name of this version.
version_name = "The world (wide web) is not enough."
+3
View File
@@ -1006,6 +1006,9 @@ depth_size = None
# A list of screens to remove when the context is copied.
context_copy_remove_screens = [ "notify" ]
# An exception handling callback.
exception_handler = None
del os
del collections
+14 -37
View File
@@ -25,7 +25,6 @@
from __future__ import print_function
import threading
import pygame_sdl2
import os.path
import sys
@@ -36,28 +35,9 @@ import renpy
# The window.
window = None
# Should the event thread keep running?
keep_running = False
# The start time.
start_time = time.time()
PRESPLASHEVENT = pygame_sdl2.event.register("PRESPLASHEVENT")
def run_event_thread():
"""
Disposes of events while the window is running.
"""
pygame_sdl2.time.set_timer(PRESPLASHEVENT, 20)
while keep_running:
pygame_sdl2.event.wait()
pygame_sdl2.time.set_timer(PRESPLASHEVENT, 0)
def start(basedir, gamedir):
"""
Called to display the presplash when necessary.
@@ -95,7 +75,7 @@ def start(basedir, gamedir):
window = pygame_sdl2.display.Window(
sys.argv[0],
img.get_size(),
(sw, sh),
flags=pygame_sdl2.WINDOW_BORDERLESS,
pos=(x, y))
@@ -104,23 +84,24 @@ def start(basedir, gamedir):
window.get_surface().blit(img, (0, 0))
window.update()
global event_thread
event_thread = threading.Thread(target=run_event_thread)
event_thread.daemon = True
event_thread.start()
global start_time
start_time = time.time()
def pump_window():
if window is None:
return
for ev in pygame_sdl2.event.get():
if ev.type == pygame_sdl2.QUIT:
raise renpy.game.QuitException(relaunch=False, status=0)
def end():
"""
Called just before we initialize the display to hide the presplash.
"""
global keep_running
global event_thread
global window
if renpy.emscripten:
@@ -132,23 +113,19 @@ def end():
if window is None:
return
keep_running = False
event_thread.join()
window.destroy()
window = None
def sleep():
"""
Sleep to the end of config.minimum_presplash_time.
Pump window to the end of config.minimum_presplash_time.
"""
if not (window or renpy.mobile):
return
remaining = start_time + renpy.config.minimum_presplash_time - time.time()
end_time = start_time + renpy.config.minimum_presplash_time
if remaining > 0:
time.sleep(remaining)
while end_time - time.time() > 0:
pump_window()
+9 -2
View File
@@ -583,10 +583,17 @@ class Context(renpy.object.Object):
short, full, traceback_fn = renpy.error.report_exception(e, editor=False)
try:
handled = False
if self.exception_handler is not None:
self.exception_handler(short, full, traceback_fn)
elif renpy.display.error.report_exception(short, full, traceback_fn):
raise
handled = True
elif renpy.config.exception_handler is not None:
handled = renpy.config.exception_handler(short, full, traceback_fn)
if not handled:
if renpy.display.error.report_exception(short, full, traceback_fn):
raise
except renpy.game.CONTROL_EXCEPTIONS as ce:
raise ce
except Exception as ce:
+3 -2
View File
@@ -71,10 +71,11 @@ added = { }
# occurs.
def add(msg):
def add(msg, *args):
if not msg in added:
added[msg] = True
print(unicode(msg).encode('utf-8'))
msg = unicode(msg) % args
print(msg.encode('utf-8'))
# Tries to evaluate an expression, announcing an error if it fails.
+4
View File
@@ -47,6 +47,10 @@ def log_clock(s):
if renpy.android and not renpy.config.log_to_stdout:
print(s)
# Pump the presplash window to prevent marking
# our process as unresponsive by OS
renpy.display.presplash.pump_window()
last_clock = now
+24 -4
View File
@@ -38,6 +38,8 @@ import re
import sys
import time
import renpy.six as six
import renpy.audio
##############################################################################
@@ -788,10 +790,10 @@ class CompressedList(object):
old_end += 1
# Now that we have this, we can put together the object.
self.pre = list.__getslice__(old, 0, old_start)
self.pre = list.__getitem__(old, slice(0, old_start))
self.start = new_start
self.end = new_end
self.post = list.__getslice__(old, old_end, len_old)
self.post = list.__getitem__(old, slice(old_end, len_old))
def decompress(self, new):
return self.pre + new[self.start:self.end] + self.post
@@ -815,8 +817,11 @@ class RevertableList(list):
list.__init__(self, *args)
__delitem__ = mutator(list.__delitem__)
__delslice__ = mutator(list.__delslice__)
if six.PY2:
__delslice__ = mutator(list.__delslice__)
__setitem__ = mutator(list.__setitem__)
if six.PY2:
__setslice__ = mutator(list.__setslice__)
__iadd__ = mutator(list.__iadd__)
__imul__ = mutator(list.__imul__)
append = mutator(list.append)
@@ -835,7 +840,16 @@ class RevertableList(list):
return newmethod
__add__ = wrapper(list.__add__)
__getslice__ = wrapper(list.__getslice__)
if six.PY2:
__getslice__ = wrapper(list.__getslice__)
def __getitem__(self, index):
rv = list.__getitem__(self, index)
if isinstance(index, slice):
return RevertableList(rv)
else:
return rv
def __mul__(self, other):
if not isinstance(other, int):
@@ -845,6 +859,12 @@ class RevertableList(list):
__rmul__ = __mul__
def copy(self):
return self[:]
def clear(self):
self[:] = []
def _clean(self):
"""
Gets a clean copy of this object before any mutation occurs.
+4
View File
@@ -268,6 +268,10 @@ class Script(object):
import emscripten
emscripten.sleep(0)
# Pump the presplash window to prevent marking
# our process as unresponsive by OS
renpy.display.presplash.pump_window()
self.load_appropriate_file(".rpyc", ".rpy", dir, fn, initcode)
# Make the sort stable.
+25
View File
@@ -2,6 +2,31 @@
Full Changelog
==============
.. _renpy-7.3.5:
7.3.5
=====
Fixes
-----
On desktop platforms, the presplash screen has been reworked so that it
will not cause the window to become nonresponsive if clicked.
The iOS port has been updated to include modules that have been newly
added to Ren'Py, allowing the compilation of iOS apps.
Other Changes
-------------
The ``audio`` directory, which automatically defines
names in the :ref:`audio namespace <audio-namespace>`, has been made
visible in the launcher, and is added to newly-createrd projects.
The new :var:`config.exception_handler` callback allows an application to
replace Ren'Py's exception handling system in its entirety.
.. _renpy-7.3.4:
7.3.4
+15
View File
@@ -1025,6 +1025,21 @@ Rarely or Internally Used
A list of layers that are cleared when entering a new context.
.. var:: config.exception_handler = None
If not None, this should be a function that takes three arguments:
* A string giving the text of a traceback, abbreviated so that it only includes
creator-written files.
* The full text of the traceback, including both creator-written and Ren'Py
files.
* The path to a file containing a traceback method.
This function can present the error to a user in any way fit. If it returns True,
the exception is ignored and control is transferred to the next statement. If it
returns False, the built-in exception handler is use. This function may also call
:func:`renpy.jump` to transfer control to some other label.
.. var:: config.fade_music = 0.0
This is the amount of time in seconds to spend fading the old
+168 -165
View File
@@ -2,251 +2,254 @@
<li> 017Bluefield (7.1.27.2)
<li> __skwrl__ (6.99.14.37.3.0)
<li> Adia Alderson (6.99.137.1.2)
<li> Aleema (6.99.137.3.3)
<li> Aleema (6.99.137.3.4)
<li> <a href="http://alexdodge.net/" rel="nofollow">Alex Dodge</a> (6.99.147.3.0)
<li> <a href="https://rabidb.com/" rel="nofollow">AlexSSZ</a> (6.99.137.3.3)
<li> <a href="https://alic-szecsei.com" rel="nofollow">Alic Szecsei</a> (6.99.14.37.3.3)
<li> <a href="https://rabidb.com/" rel="nofollow">AlexSSZ</a> (6.99.137.3.4)
<li> <a href="https://alic-szecsei.com" rel="nofollow">Alic Szecsei</a> (6.99.14.37.3.4)
<li> Almost Human (7.27.3.0)
<li> Almost Human (7.3.07.3.3)
<li> Amelia Aronsohn (7.3.07.3.3)
<li> Ana Raffali (7.27.3.3)
<li> Andurin (7.1.27.3.3)
<li> Anne Camlin (7.07.3.3)
<li> Almost Human (7.3.07.3.4)
<li> Amelia Aronsohn (7.3.07.3.4)
<li> Ana Raffali (7.27.3.4)
<li> Andurin (7.1.27.3.4)
<li> Anne Camlin (7.07.3.4)
<li> <a href="https://lemmasoft.renai.us/forums/viewtopic.php?f=51&t=34131" rel="nofollow">AR09FQF-AQ09FRF</a> (6.99.14.17.0)
<li> Ariane Barnes (7.3.07.3.3)
<li> Asatiir (6.99.137.0)
<li> Ashley (7.3.07.3.3)
<li> Ashley (7.3.07.3.4)
<li> <a href="https://www.renpy.org/agegate?url=https://www.patreon.com/ASLPro3D" rel="nofollow">ASLPro3D</a> (7.07.3.0)
<li> <a href="https://www.atwistedspirit.com/" rel="nofollow">ATwistedSpirit</a> (7.17.3.3)
<li> <a href="https://www.atwistedspirit.com/" rel="nofollow">ATwistedSpirit</a> (7.17.3.4)
<li> <a href="https://patchworkprincess.moe/" rel="nofollow">Azura (Vanessa Parker)</a> (7.07.1)
<li> <a href="https://www.youtube.com/channel/UC3Xm0sk-rRCtD-yVp64WPWQ" rel="nofollow">BadGamer</a> (6.99.14.37.3.0)
<li> Balrog Gaming (7.3.07.3.3)
<li> Balrog Gaming (7.3.07.3.4)
<li> Barry B (7.3.3)
<li> Belfort and Bastion (6.99.137.1)
<li> Biotikos Development (6.99.137.3.3)
<li> Biotikos Development (6.99.137.3.4)
<li> Bob (6.99.137.0)
<li> <a href="https://bobcgames.itch.io" rel="nofollow">Bob Conway</a> (6.99.14.17.3.3)
<li> Bob Reus (7.17.3.3)
<li> bob_xxii (7.27.3.3)
<li> Booom313's tinker corner (6.99.147.3.3)
<li> Boreas Bear (6.99.137.3.3)
<li> <a href="http://boyslaughplus.moe" rel="nofollow">Boys Laugh +</a> (6.99.137.3.3)
<li> <a href="https://bobcgames.itch.io" rel="nofollow">Bob Conway</a> (6.99.14.17.3.4)
<li> Bob Reus (7.17.3.4)
<li> bob_xxii (7.27.3.4)
<li> Booom313's tinker corner (6.99.147.3.4)
<li> Boreas Bear (6.99.137.3.4)
<li> <a href="http://boyslaughplus.moe" rel="nofollow">Boys Laugh +</a> (6.99.137.3.4)
<li> Brett Douglas (6.99.146.99.14.3)
<li> <a href="https://briankellum.net" rel="nofollow">Brian Kellum</a> (7.3.07.3.3)
<li> Brimney (6.99.137.3.3)
<li> <a href="https://www.renpy.org/agegate?url=https://www.brunimultimedia.com" rel="nofollow">Bruni Multimedia</a> (6.99.147.3.3)
<li> <a href="https://briankellum.net" rel="nofollow">Brian Kellum</a> (7.3.07.3.4)
<li> Brimney (6.99.137.3.4)
<li> <a href="https://www.renpy.org/agegate?url=https://www.brunimultimedia.com" rel="nofollow">Bruni Multimedia</a> (6.99.147.3.4)
<li> <a href="http://www.bura.cl" rel="nofollow">BURA</a> (6.99.13)
<li> Cameron Woodard (6.99.14.37.3.3)
<li> Cameron Woodard (6.99.14.37.3.4)
<li> Cara Hillstock (6.99.137.3.3)
<li> Cara Hillstock (7.3.3)
<li> Cara Hillstock (7.3.37.3.4)
<li> <a href="https://www.catmpro.com/" rel="nofollow">CatMoun-P</a> (7.3.07.3.3)
<li> <a href="https://www.celebrityhunter.com.br" rel="nofollow">Celebrity Hunter</a> (7.17.3.3)
<li> Charlene Gilbert (6.99.137.3.3)
<li> <a href="https://www.celebrityhunter.com.br" rel="nofollow">Celebrity Hunter</a> (7.17.3.4)
<li> Charlene Gilbert (6.99.137.3.4)
<li> <a href="http://charliethegoldfish.com" rel="nofollow">Charlie Francis Cassidy</a> (6.99.137.3.3)
<li> Chekhov's Ghost (7.17.2)
<li> Cherry Kiss Games (6.99.14.17.3.3)
<li> Cherry Kiss Games (6.99.14.17.3.4)
<li> Christopher S. Ma (7.3.0)
<li> Chrysoula Tzavelas (6.99.137.3.3)
<li> <a href="https://cloverfirefly.itch.io" rel="nofollow">cloverfirefly</a> (6.99.137.3.3)
<li> Chrysoula Tzavelas (6.99.137.3.4)
<li> <a href="https://cloverfirefly.itch.io" rel="nofollow">cloverfirefly</a> (6.99.137.3.4)
<li> Clyde Duensing III (7.3.07.3.3)
<li> Clyde Duensing III (7.3.3)
<li> CobaltCore (7.1.17.3.3)
<li> CobraPL (7.17.3.3)
<li> <a href="https://www.renpy.org/agegate?url=https://obscurasoft.com/" rel="nofollow">Coming Out On Top</a> (6.99.137.3.3)
<li> <a href="http://www.computerart.club/" rel="nofollow">computerart.club</a> (6.99.147.3.3)
<li> CookieNomNom (7.1.17.3.3)
<li> Crazy Cactus (6.99.14.37.3.3)
<li> <a href="https://www.renpy.org/agegate?url=http://cricketbat.me" rel="nofollow">cricketbat_</a> (7.07.3.3)
<li> Clyde Duensing III (7.3.37.3.4)
<li> CobaltCore (7.1.17.3.4)
<li> CobraPL (7.17.3.4)
<li> <a href="https://www.renpy.org/agegate?url=https://obscurasoft.com/" rel="nofollow">Coming Out On Top</a> (6.99.137.3.4)
<li> <a href="http://www.computerart.club/" rel="nofollow">computerart.club</a> (6.99.147.3.4)
<li> CookieNomNom (7.1.17.3.4)
<li> Crazy Cactus (6.99.14.37.3.4)
<li> <a href="https://www.renpy.org/agegate?url=http://cricketbat.me" rel="nofollow">cricketbat_</a> (7.07.3.4)
<li> <a href="http://cultofape.com" rel="nofollow">CultOfApe</a> (6.99.147.0)
<li> Culture4Jam (6.99.137.3.3)
<li> Culture4Jam (6.99.137.3.4)
<li> Dan Gretton (7.3.07.3.4)
<li> Daniel Burns (7.17.2)
<li> <a href="https://www.renpy.org/agegate?url=http://www.darkministry.net" rel="nofollow">Dark Ministry</a> (7.27.3.0)
<li> <a href="http://dark-aii.net" rel="nofollow">Dark-Aii</a> (6.99.14.16.99.14.3)
<li> DarkDrake1371 (7.3.07.3.3)
<li> <a href="http://www.darksirengames.com" rel="nofollow">DarkSirenGames</a> (6.99.137.3.3)
<li> Darryl Taylor (7.07.3.3)
<li> David Koster (6.99.147.3.3)
<li> David Yingling (6.99.14.17.3.3)
<li> Dee (7.17.3.3)
<li> <a href="http://www.darksirengames.com" rel="nofollow">DarkSirenGames</a> (6.99.137.3.4)
<li> Darryl Taylor (7.07.3.4)
<li> David Koster (6.99.147.3.4)
<li> David Yingling (6.99.14.17.3.4)
<li> Dee (7.17.3.4)
<li> Denny Cheng (6.99.14.27.3.3)
<li> Dharker Studios Ltd (6.99.136.99.14, 7.1.17.3.3)
<li> DJ_Light (7.3.3)
<li> Drake Wells (7.3.07.3.3)
<li> <a href="http://coriginate.com" rel="nofollow">Ds110</a> (6.99.137.3.3)
<li> DuoDevelopers (7.1.17.3.3)
<li> DV Enterprises Development (7.3.3)
<li> Dharker Studios Ltd (6.99.136.99.14, 7.1.17.3.4)
<li> DinoMan21779 (7.3.37.3.4)
<li> DJ_Light (7.3.37.3.4)
<li> Drake Wells (7.3.07.3.4)
<li> <a href="http://coriginate.com" rel="nofollow">Ds110</a> (6.99.137.3.4)
<li> DuoDevelopers (7.1.17.3.4)
<li> DV Enterprises Development (7.3.37.3.4)
<li> E. William Brown (6.99.137.3.0)
<li> <a href="https://twitter.com/WC_EchoFrost" rel="nofollow">EchoFrost (Watercress)</a> (6.99.14.27.2)
<li> Eileen Koven (7.3.07.3.3)
<li> <a href="https://www.youtube.com/c/ElaineDoesCoding" rel="nofollow">ElaineDoesCoding</a> (7.07.3.3)
<li> Eileen K (7.3.07.3.4)
<li> <a href="https://www.youtube.com/c/ElaineDoesCoding" rel="nofollow">ElaineDoesCoding</a> (7.07.3.4)
<li> eric chi hung ng (7.07.3.0)
<li> Ertal Games (7.1.17.3.3)
<li> Euan 'Xolf' Robertson (6.99.137.3.3)
<li> Euan 'Xolf' Robertson (6.99.137.3.4)
<li> Eve Hallows (6.99.136.99.14)
<li> Exiscoming (6.99.147.3.3)
<li> Fulcrum-E (6.99.147.3.3)
<li> Exiscoming (6.99.147.3.4)
<li> Fulcrum-E (6.99.147.3.4)
<li> Fuseblower (7.07.2)
<li> George (7.17.3.3)
<li> George (7.17.3.4)
<li> <a href="http://www.gtbono.com" rel="nofollow">Giovanni Tempobono</a> (7.17.1.2)
<li> <a href="https://goldengamebarn.com/" rel="nofollow">Golden Game Barn</a> (6.99.137.3.3)
<li> <a href="https://twitter.com/goodtalesvn" rel="nofollow">Good Tales</a> (7.17.3.3)
<li> Great Chicken Studio (6.99.147.3.3)
<li> Grimiku (7.07.3.3)
<li> <a href="https://goldengamebarn.com/" rel="nofollow">Golden Game Barn</a> (6.99.137.3.4)
<li> <a href="https://twitter.com/goodtalesvn" rel="nofollow">Good Tales</a> (7.17.3.4)
<li> Great Chicken Studio (6.99.147.3.4)
<li> Grimiku (7.07.3.4)
<li> Gunso (6.99.137.2)
<li> HAG Productions (7.1.17.3.3)
<li> <a href="http://www.hanakogames.com/" rel="nofollow">Hanako Games</a> (7.3.3)
<li> <a href="http://hanb.jp" rel="nofollow">HanbitGaram (MOEWORK Entertainment)</a> (7.17.3.3)
<li> HAG Productions (7.1.17.3.4)
<li> <a href="http://www.hanakogames.com/" rel="nofollow">Hanako Games</a> (7.3.37.3.4)
<li> <a href="http://hanb.jp" rel="nofollow">HanbitGaram (MOEWORK Entertainment)</a> (7.17.3.4)
<li> Happimochi (6.99.136.99.14)
<li> HopesGaming (7.1.17.3.3)
<li> HopesGaming (7.1.17.3.4)
<li> <a href="https://ijemin.com" rel="nofollow">I_Jemin</a> (6.99.137.0)
<li> Ianvs (7.3.3)
<li> <a href="https://www.irinakuksova.ie" rel="nofollow">Irina Kuksova</a> (7.3.07.3.3)
<li> <a href="https://irredeemable.net/" rel="nofollow">Irredeemable Games</a> (6.99.147.3.3)
<li> J. C. Holder (6.99.137.3.3)
<li> Ianvs (7.3.37.3.4)
<li> <a href="https://www.irinakuksova.ie" rel="nofollow">Irina Kuksova</a> (7.3.07.3.4)
<li> <a href="https://irredeemable.net/" rel="nofollow">Irredeemable Games</a> (6.99.147.3.4)
<li> J. C. Holder (6.99.137.3.4)
<li> James Tyner (6.99.137.1)
<li> JeongPyo Lee (6.99.137.3.3)
<li> Joanna B (6.99.137.3.3)
<li> JoeBanks (7.17.3.3)
<li> Jonas Kyratzes (7.1.17.3.3)
<li> jonnymelabo (6.99.137.3.3)
<li> Joseph Denicola (7.27.3.3)
<li> JeongPyo Lee (6.99.137.3.4)
<li> Joanna B (6.99.137.3.4)
<li> JoeBanks (7.17.3.4)
<li> Jonas Kyratzes (7.1.17.3.4)
<li> jonnymelabo (6.99.137.3.4)
<li> Joseph Denicola (7.27.3.4)
<li> Josh Kaplan (6.99.136.99.14.2)
<li> Kampmichi (7.1.17.3.3)
<li> Katryna Starks (7.2.17.3.3)
<li> Kayde Initials (6.99.137.3.3)
<li> Keul (7.3.3)
<li> <a href="http://kexboy.com" rel="nofollow">KEXBOY</a> (6.99.137.3.3)
<li> Kikai Digital (7.07.3.3)
<li> <a href="http://www.gamesbykinmoku.com" rel="nofollow">Kinmoku</a> (6.99.137.3.3)
<li> <a href="http://krsm94.web.fc2.com/" rel="nofollow">Klast Halc (crAsm)</a> (6.99.14.27.3.3)
<li> Kosmos Games (6.99.147.3.3)
<li> Kampmichi (7.1.17.3.4)
<li> Katryna Starks (7.2.17.3.4)
<li> Kayde Initials (6.99.137.3.4)
<li> Keul (7.3.37.3.4)
<li> <a href="http://kexboy.com" rel="nofollow">KEXBOY</a> (6.99.137.3.4)
<li> Kikai Digital (7.07.3.4)
<li> <a href="http://www.gamesbykinmoku.com" rel="nofollow">Kinmoku</a> (6.99.137.3.4)
<li> <a href="http://krsm94.web.fc2.com/" rel="nofollow">Klast Halc (crAsm)</a> (6.99.14.27.3.4)
<li> Kosmos Games (6.99.147.3.4)
<li> <a href="https://de.koubaibu.tech/" rel="nofollow">Koubaibu Technology Group</a> (7.17.1.2)
<li> Kraig Halfpap (6.99.14.27.3.3)
<li> L C (7.27.3.3)
<li> <a href="https://www.renpy.org/agegate?url=https://la-cucaracha-studios.itch.io/" rel="nofollow">La Cucaracha Studios</a> (7.1.27.3.3)
<li> lain105/EckoMars (6.99.137.3.3)
<li> <a href="http://waltz.moe/portfolio/" rel="nofollow">Laiska</a> (7.27.3.3)
<li> LateWhiteRabbit (6.99.147.3.3)
<li> <a href="https://lernakow.itch.io" rel="nofollow">Lernakow</a> (6.99.14.37.3.3)
<li> L C (7.27.3.4)
<li> <a href="https://www.renpy.org/agegate?url=https://la-cucaracha-studios.itch.io/" rel="nofollow">La Cucaracha Studios</a> (7.1.27.3.4)
<li> lain105/EckoMars (6.99.137.3.4)
<li> <a href="http://waltz.moe/portfolio/" rel="nofollow">Laiska</a> (7.27.3.4)
<li> LateWhiteRabbit (6.99.147.3.4)
<li> <a href="https://lernakow.itch.io" rel="nofollow">Lernakow</a> (6.99.14.37.3.4)
<li> LewdKitty (7.07.2)
<li> LewdKitty (7.2.17.3.3)
<li> <a href="https://www.renpy.org/agegate?url=https://www.lewdlab.com/" rel="nofollow">Lewdlab</a> (6.99.14.17.3.3)
<li> <a href="https://lemmasoft.renai.us/forums/viewtopic.php?f=66&t=48011&p=482643" rel="nofollow">Lezalith</a> (7.17.3.3)
<li> LewdKitty (7.2.17.3.4)
<li> <a href="https://www.renpy.org/agegate?url=https://www.lewdlab.com/" rel="nofollow">Lewdlab</a> (6.99.14.17.3.4)
<li> <a href="https://lemmasoft.renai.us/forums/viewtopic.php?f=66&t=48011&p=482643" rel="nofollow">Lezalith</a> (7.17.3.4)
<li> Lictor (6.99.14.27.1.2)
<li> Lingrimm (7.3.3)
<li> Little Napoleon (7.17.3.3)
<li> Lingrimm (7.3.37.3.4)
<li> Little Napoleon (7.17.3.4)
<li> <a href="http://trash.moe/" rel="nofollow">Lore</a> (6.99.137.3.3)
<li> Luke Jackson (6.99.137.3.3)
<li> Luke Jackson (6.99.137.3.4)
<li> <a href="http://luscious-spirit-studios.tumblr.com/" rel="nofollow">Luscious Spirit Studios</a> (6.99.137.3.0)
<li> <a href="https://www.renpy.org/agegate?url=https://www.patreon.com/Luxee" rel="nofollow">Luxee</a> (6.99.14.37.3.3)
<li> Maeve Bandruid (6.99.137.3.3)
<li> <a href="https://www.renpy.org/agegate?url=https://www.patreon.com/manitu" rel="nofollow">MANITU Games CO.</a> (6.99.137.3.3)
<li> <a href="https://manorstories.fr" rel="nofollow">ManorStories</a> (6.99.147.3.3)
<li> <a href="http://www.marionettecode.com/" rel="nofollow">Marionette</a> (6.99.147.3.3)
<li> Mary Macapagal (7.3.3)
<li> <a href="https://www.renpy.org/agegate?url=https://www.patreon.com/Luxee" rel="nofollow">Luxee</a> (6.99.14.37.3.4)
<li> Maeve Bandruid (6.99.137.3.4)
<li> <a href="https://www.renpy.org/agegate?url=https://www.patreon.com/manitu" rel="nofollow">MANITU Games CO.</a> (6.99.137.3.4)
<li> <a href="https://manorstories.fr" rel="nofollow">ManorStories</a> (6.99.147.3.4)
<li> <a href="http://www.marionettecode.com/" rel="nofollow">Marionette</a> (6.99.147.3.4)
<li> Mary Macapagal (7.3.37.3.4)
<li> Matthew (7.2)
<li> Matthew (7.3.37.3.4)
<li> Matthew Preston (7.2)
<li> Matthew Preston (7.27.3.3)
<li> Matthew Preston (7.27.3.4)
<li> MAW.3D.Art (6.99.13)
<li> Max J Sher (6.99.137.3.3)
<li> MCatter Dev (7.17.3.3)
<li> <a href="https://meagantrott.com" rel="nofollow">Meagan Trott</a> (6.99.137.3.3)
<li> <a href="http://metasepia.icecavern.net" rel="nofollow">Metasepia Games</a> (6.99.137.3.3)
<li> Meyvol (6.99.14.17.3.3)
<li> Max J Sher (6.99.137.3.4)
<li> MCatter Dev (7.17.3.4)
<li> <a href="https://meagantrott.com" rel="nofollow">Meagan Trott</a> (6.99.137.3.4)
<li> <a href="http://metasepia.icecavern.net" rel="nofollow">Metasepia Games</a> (6.99.137.3.4)
<li> Meyvol (6.99.14.17.3.4)
<li> <a href="https://store.steampowered.com/developer/mia" rel="nofollow">Mia Blais-Côté</a> (7.3.07.3.3)
<li> Michael Lewis (7.27.3.3)
<li> Michael Simon (7.1.17.3.3)
<li> Michaela Laws (6.99.137.3.3)
<li> Michael Lewis (7.27.3.4)
<li> Michael Simon (7.1.17.3.4)
<li> Michaela Laws (6.99.137.3.4)
<li> <a href="http://www.milkteestudios.com" rel="nofollow">Milktee Studios</a> (7.07.1)
<li> Miss Skizzors (7.07.3.3)
<li> Miss Skizzors (7.07.3.4)
<li> <a href="https://moonlitworks.com/" rel="nofollow">Moonlit Works</a> (7.07.3.0)
<li> <a href="https://mrvaldez.ph/" rel="nofollow">MrValdez</a> (7.07.3.3)
<li> <a href="https://mrvaldez.ph/" rel="nofollow">MrValdez</a> (7.07.3.4)
<li> <a href="https://ms45.itch.io" rel="nofollow">Ms .45</a> (6.99.13)
<li> <a href="https://www.patreon.com/muplur" rel="nofollow">MUPLUR</a> (7.3.07.3.3)
<li> nasredin (6.99.14.37.3.3)
<li> <a href="https://www.patreon.com/muplur" rel="nofollow">MUPLUR</a> (7.3.07.3.4)
<li> nasredin (6.99.14.37.3.4)
<li> Natalie Van Sistine (7.07.3.3)
<li> <a href="https://cafe.naver.com/vmo.cafe" rel="nofollow">Naver cafe VMO</a> (7.17.3.3)
<li> <a href="https://cafe.naver.com/vmo.cafe" rel="nofollow">Naver cafe VMO</a> (7.17.3.4)
<li> <a href="http://cafe.naver.com/vmo" rel="nofollow">NaverCafe VMO</a> (6.99.137.1)
<li> Neigan (7.0)
<li> Nicholas Swenson (6.99.147.3.3)
<li> <a href="https://www.patreon.com/nikraria" rel="nofollow">nikraria</a> (6.99.137.3.3)
<li> Nicholas Swenson (6.99.147.3.4)
<li> <a href="https://www.patreon.com/nikraria" rel="nofollow">nikraria</a> (6.99.137.3.4)
<li> Nova Alamak (6.99.14.37.3.3)
<li> <a href="http://devety.com" rel="nofollow">Oleksii olety Kyrylchuk</a> (6.99.14.16.99.14.2)
<li> Panda Penguin Games (7.27.3.3)
<li> Panda Penguin Games (7.27.3.4)
<li> Panthera Morag (6.99.137.2)
<li> Patchwork Princess (7.17.3.0)
<li> Patricia (6.99.137.1.1)
<li> Paul Birchenough (7.3.0)
<li> <a href="http://peachpattch.com/" rel="nofollow">peachpattch</a> (6.99.147.3.3)
<li> Pete Goodwin (7.3.07.3.3)
<li> philat (6.99.14.17.3.3)
<li> Pi3shark (7.27.3.3)
<li> plasterbrain (6.99.137.3.3)
<li> <a href="http://peachpattch.com/" rel="nofollow">peachpattch</a> (6.99.147.3.4)
<li> Pete Goodwin (7.3.07.3.4)
<li> philat (6.99.14.17.3.4)
<li> Pi3shark (7.27.3.4)
<li> plasterbrain (6.99.137.3.4)
<li> Ploppertje (6.99.136.99.14.3)
<li> Podge (6.99.137.3.3)
<li> Prometheus (7.3.3)
<li> Podge (6.99.137.3.4)
<li> Prometheus (7.3.37.3.4)
<li> Puriwit Sesupaponphong (6.99.13)
<li> Puriwit Sesupaponphong (6.99.137.1)
<li> Pyonkotchi (7.17.3.3)
<li> Pyonkotchi (7.17.3.4)
<li> Pólyí Konrád (7.17.1.1)
<li> <a href="http://www.cottoncandycyanide.com/" rel="nofollow">Quantum Suicide</a> (7.17.2)
<li> <a href="http://razzartvisual.com/" rel="nofollow">Razz</a> (6.99.137.3.3)
<li> <a href="http://razzartvisual.com/" rel="nofollow">Razz</a> (6.99.137.3.4)
<li> <a href="https://twitter.com/ragnarhomsar" rel="nofollow">Realga</a> (7.07.1)
<li> <a href="http://redlotusdesignz.com" rel="nofollow">Red Lotus Designz</a> (7.3.07.3.3)
<li> René Dudfield (6.99.137.3.3)
<li> Richard (6.99.147.3.3)
<li> <a href="http://redlotusdesignz.com" rel="nofollow">Red Lotus Designz</a> (7.3.07.3.4)
<li> René Dudfield (6.99.137.3.4)
<li> Richard (6.99.147.3.4)
<li> <a href="http://impqueen.com/" rel="nofollow">Rinmaru</a> (6.99.137.3.0)
<li> Rizia Praja (6.99.14.17.3.3)
<li> Robyn Rosenfeld (7.1, 7.27.3.3)
<li> Rizia Praja (6.99.14.17.3.4)
<li> Robyn Rosenfeld (7.1, 7.27.3.4)
<li> <a href="http://sunkoiwish.com/" rel="nofollow">Royce A Xaiyeon</a> (6.99.137.2)
<li> Rui Jiang (7.3.07.3.3)
<li> <a href="https://ub4q.itch.io/" rel="nofollow">ruqiyah</a> (7.3.3)
<li> Rui Jiang (7.3.07.3.4)
<li> <a href="https://ub4q.itch.io/" rel="nofollow">ruqiyah</a> (7.3.37.3.4)
<li> Ryan Whited (6.99.147.1)
<li> <a href="https://saiffyros.wordpress.com/" rel="nofollow">Saiffyros</a> (6.99.147.3.3)
<li> <a href="https://saiffyros.wordpress.com/" rel="nofollow">Saiffyros</a> (6.99.147.3.4)
<li> Sam Yang (6.99.137.3.0)
<li> scandis (7.3.3)
<li> scandis (7.3.37.3.4)
<li> Simply Aria (6.99.147.2)
<li> <a href="https://www.skybeargames.com" rel="nofollow">Sky Bear Games</a> (7.3.07.3.3)
<li> <a href="http://sleepyagents.co.uk" rel="nofollow">Sleepy Agents</a> (6.99.137.3.3)
<li> Snowlocke (7.07.3.3)
<li> <a href="https://www.skybeargames.com" rel="nofollow">Sky Bear Games</a> (7.3.07.3.4)
<li> <a href="http://sleepyagents.co.uk" rel="nofollow">Sleepy Agents</a> (6.99.137.3.4)
<li> Snowlocke (7.07.3.4)
<li> <a href="http://store.steampowered.com/app/570350/Sorry_Entschuldigung__A_Psychological_Horror_Visual_Novel/" rel="nofollow">Sorry. (Entschuldigung)</a> (6.99.14.27.1)
<li> Spyros Panagiotopoulos (6.99.147.1)
<li> Steamgirl (6.99.136.99.14, 7.27.3.3)
<li> Steamlynx (6.99.14.17.3.3)
<li> Stefan Gagne (6.99.137.3.3)
<li> <a href="https://www.renpy.org/agegate?url=http://www.patreon.com/errilhl" rel="nofollow">Studio Errilhl</a> (6.99.14.37.3.3)
<li> <a href="https://vnstudioelan.com/" rel="nofollow">Studio Élan</a> (7.2.17.3.3)
<li> Steamgirl (6.99.136.99.14, 7.27.3.4)
<li> Steamlynx (6.99.14.17.3.4)
<li> Stefan Gagne (6.99.137.3.4)
<li> <a href="https://www.renpy.org/agegate?url=http://www.patreon.com/errilhl" rel="nofollow">Studio Errilhl</a> (6.99.14.37.3.4)
<li> <a href="https://vnstudioelan.com/" rel="nofollow">Studio Élan</a> (7.2.17.3.4)
<li> <a href="https://play.google.com/store/apps/developer?id=Suhaimizs&hl=en" rel="nofollow">Suhaimizs</a> (7.2)
<li> <a href="https://ladyisak.itch.io/" rel="nofollow">Sych Games</a> (7.3.07.3.3)
<li> T-Patch (7.3.07.3.3)
<li> Taosym (6.99.137.3.3)
<li> Team Borsch (7.3.07.3.3)
<li> <a href="https://ladyisak.itch.io/" rel="nofollow">Sych Games</a> (7.3.07.3.4)
<li> T-Patch (7.3.07.3.4)
<li> Taosym (6.99.137.3.4)
<li> Team Borsch (7.3.07.3.4)
<li> Teofilo Hurtado (6.99.147.1.1)
<li> the66 (7.27.3.3)
<li> Thibaut de la Chapelle (7.3.3)
<li> the66 (7.27.3.4)
<li> Thibaut de la Chapelle (7.3.37.3.4)
<li> Thomas Charlie (6.99.137.2)
<li> Timothy Landreth (6.99.137.3.3)
<li> Timothy Young (6.99.14.17.3.3)
<li> TJ Huckabee (6.99.137.3.3)
<li> Timothy Landreth (6.99.137.3.4)
<li> Timothy Young (6.99.14.17.3.4)
<li> TJ Huckabee (6.99.137.3.4)
<li> ToastCrust (6.99.136.99.14)
<li> Tobias Wüthrich (6.99.136.99.14.3)
<li> <a href="http://www.shadowpath.com" rel="nofollow">Tom Dowd</a> (7.3.3)
<li> <a href="https://www.renpy.org/agegate?url=https://www.patreon.com/tremmiGames" rel="nofollow">tremmiGames</a> (7.07.3.3)
<li> trooper6 (6.99.137.3.3)
<li> <a href="https://www.youtube.com/tryinmorning" rel="nofollow">tryinmorning</a> (6.99.137.3.3)
<li> <a href="https://studiomugenjohncel.wordpress.com/" rel="nofollow">Uncle Mugen (Mugenjohncel</a> (6.99.14.27.3.3)
<li> Vikks Hallowhaunt (7.3.3)
<li> <a href="http://www.visualsaga.com/" rel="nofollow">Visual Saga</a> (6.99.137.3.3)
<li> <a href="http://www.shadowpath.com" rel="nofollow">Tom Dowd</a> (7.3.37.3.4)
<li> <a href="https://www.renpy.org/agegate?url=https://www.patreon.com/tremmiGames" rel="nofollow">tremmiGames</a> (7.07.3.4)
<li> trooper6 (6.99.137.3.4)
<li> <a href="https://www.youtube.com/tryinmorning" rel="nofollow">tryinmorning</a> (6.99.137.3.4)
<li> <a href="https://studiomugenjohncel.wordpress.com/" rel="nofollow">Uncle Mugen (Mugenjohncel</a> (6.99.14.27.3.4)
<li> Vikks Hallowhaunt (7.3.37.3.4)
<li> <a href="http://www.visualsaga.com/" rel="nofollow">Visual Saga</a> (6.99.137.3.4)
<li> VJ (7.3.3)
<li> Vollschauer (6.99.136.99.14)
<li> <a href="http://vxlloyd.com" rel="nofollow">VX Lloyd</a> (6.99.14.37.0)
<li> Wayne Wollesen (6.99.14.37.1.1)
<li> <a href="https://www.facebook.com/weeabooriot" rel="nofollow">Weeabooriot Cosplay</a> (6.99.137.3.3)
<li> <a href="https://arcaniinteractive.com/" rel="nofollow">William Lucht</a> (7.07.3.3)
<li> <a href="https://www.facebook.com/weeabooriot" rel="nofollow">Weeabooriot Cosplay</a> (6.99.137.3.4)
<li> <a href="https://arcaniinteractive.com/" rel="nofollow">William Lucht</a> (7.07.3.4)
<li> William Tumeo (6.99.137.1.2)
<li> <a href="http://winterwolves.com/ambersmagicshop.htm" rel="nofollow">Winter Wolves</a> (6.99.137.3.3)
<li> <a href="https://www.wolfbiteinteractive.com/" rel="nofollow">WolfBite Interactive</a> (7.27.3.3)
<li> Xiphear (7.3.3)
<li> Y Press Games (7.27.3.3)
<li> <a href="http://astralore.com/" rel="nofollow">Yakmala!</a> (6.99.137.3.3)
<li> <a href="http://winterwolves.com/ambersmagicshop.htm" rel="nofollow">Winter Wolves</a> (6.99.137.3.4)
<li> <a href="https://www.wolfbiteinteractive.com/" rel="nofollow">WolfBite Interactive</a> (7.27.3.4)
<li> Xiphear (7.3.37.3.4)
<li> Y Press Games (7.27.3.4)
<li> <a href="http://astralore.com/" rel="nofollow">Yakmala!</a> (6.99.137.3.4)
</ul>