.rpa 解包

我使用的是unrpa,具体用法可查看作者文档。

使用pip安装(需要python3):py -3 -m pip install unrpa

CLI用法如下:

1
2
3
usage: unrpa [-h] [-v] [-s] [-l | -t] [-p PATH] [-m] [--version]
[--continue-on-error] [-f VERSION] [-o OFFSET] [-k KEY]
FILENAME [FILENAME ...]

一般我个人比较常用的就是unrpa -mp "PATH\TO\DEST" "PATH\TO\archive.rpa",其中-m表示若目标路径不存在则创建该路径;当然如果已经cd到目标目录那就执行unrpa "PATH\TO\archive.rpa"即可。

反编译

此时解包出来的文件通常为.rpyc,也就是经过Ren’Py编译.rpy源码之后产生的文件,为了修改内容,此时就需要对其进行反编译。我用的是unrpyc,作者提供了命令行工具以及一个自动化的un.rpyc工具(作者发布的release就是un.rpyc,想要用CLI还需要自己去下源码)。
由于电脑上没安装python2(懒,所以本文使用的是基于python >=3.9unrpyc v2.0.2。并且v2只支持 Ren’Py 8 以上,若是低版本还需安装v1(当然实际用下来好像没什么问题

对于命令行工具,我一般使用的命令为python unrpyc.py -c *.rpyc,即直接反编译当前目录下所有.rpyc文件,并使用-c选项覆盖已存在的.rpy文件。详细的选项在文档中也有给出,此处便不一一赘述,就贴一下--help罢。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
$ py -3 unrpyc.py --help
usage: unrpyc.py [-h] [-c] [-d] [-p {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}]
[-t TRANSLATION_FILE] [-T WRITE_TRANSLATION_FILE]
[-l LANGUAGE] [--sl1-as-python] [--comparable] [--no-pyexpr]
[--no-init-offset] [--try-harder]
[--register-sl-displayable SL_CUSTOM_NAMES [SL_CUSTOM_NAMES ...]]
file [file ...]

Decompile .rpyc/.rpymc files

positional arguments:
file The filenames to decompile. All .rpyc files in any
directories passed or their subdirectories will also
be decompiled.

optional arguments:
-h, --help show this help message and exit
-c, --clobber overwrites existing output files
-d, --dump instead of decompiling, pretty print the ast to a file
-p, --processes
use the specified number or processes to
decompile. Defaults to the amount of hw threads
available minus one, disabled when muliprocessing is
unavailable.
-t TRANSLATION_FILE, --translation-file TRANSLATION_FILE
use the specified file to translate during
decompilation
-T WRITE_TRANSLATION_FILE, --write-translation-file WRITE_TRANSLATION_FILE
store translations in the specified file instead of
decompiling
-l LANGUAGE, --language LANGUAGE
if writing a translation file, the language of the
translations to write
--comparable Only for dumping, remove several false differences
when comparing dumps. This suppresses attributes that
are different even when the code is identical, such as
file modification times.
--no-pyexpr Only for dumping, disable special handling of PyExpr
objects, instead printing them as strings. This is
useful when comparing dumps from different versions of
Ren'Py. It should only be used if necessary, since it
will cause loss of information such as line numbers.
--no-init-offset By default, unrpyc attempt to guess when init offset
statements were used and insert them. This is always safe
to do for ren'py 8, but as it is based on a heuristic it
can be disabled.
The generated code is exactly equivalent, only slightly more cluttered.
--try-harder Tries some workarounds against common obfuscation
methods. This is a lot slower.
--register-sl-displayable SL_CUSTOM_NAMES [SL_CUSTOM_NAMES ...]
Accepts mapping separated by '=', where the first
argument is the name of the user-defined displayable
object, and the second argument is a string containing
the name of the displayable,potentially followed by a
'-', and the amount of children the displayable
takes(valid options are '0', '1' or 'many', with
'many' being the default)

由于Sakura Fantasy在Steam上进行过一次增加语音的更新,而旧的补丁并未包含语音文件夹,直接应用补丁会导致游戏问题,因此将两个版本结合制作出了包含语音的补丁,在本人电脑上运行未发生问题。下载链接置于下方,请自行取用。若运行出现问题则可按照下方补丁配置的步骤自行制作。

下载链接

Google Drive

补丁配置

若使用SAKURA系列 18x补丁合集中链接内的官方补丁,则可以参照以下步骤:

备份文件

打开游戏文件夹(Steam库页面管理→管理→浏览本地文件夹),找到game文件夹,内容应该如下:

1
2
3
4
5
6
game
├── (saves)
├── archive.rpa
├── bytecode.rpyb
├── script_version.rpy
└── script_version.rpyc

其中除了archive.rpa以外的文件都别动,建议剪切到一边最后再放回去。

RPA解包

archive.rpa解包,假设将其解包至base文件夹中;然后对下载下来的补丁进行解包,假设将其解包至archive文件夹中。
rpa解包可以参考Renpy引擎rpa文件的解包与反编译中的步骤。

合并文件

base\voice文件夹移动至archive内,并将base\options.rpyc覆盖至archive内。此时的archive文件夹就包含了合并后补丁的全部文件。接下来你可以使用打包工具将这些文件打包还原成archive.rpa(其实不打包也可以正常读取)。

接下来就是把上一步中得到的文件移动到game文件夹中(记住如果没有选择打包的话需要将文件夹内的内容放到game里,不能多带个archive文件夹,即最终game里应该有一堆文件夹和脚本文件),然后将之前的残留物清除干净(比如base文件夹和老的archive.rpa等)

要是没搞错的话最后的archive.rpa应该基本上长这样,没打包的话也应该是这个大小的样子

最后

恭喜你可以享受特殊CG+Extra Hentai Scene+语音了。

简介

2019年情人节特辑百合小短篇。

Right on time for Valentine’s Day, we released Sakura Sweetheart for our patrons. So if you are looking for a short love story, Sakura Sweetheart might brighten your day :)

Let Marron narrate her story of how she fell in love with Zakuro, the head chef of a mansion. Can Marron melt Zakuro’s heart like chocolate? Find out in the little yuri love story.

下载

Google Drive
WeTransfer

CG (720p)

CG1
CG2
+8张健全的

*声明:分享文件均来自于 Winged Cloud 官方发布,补丁截至 2025.03.04,此处仅个人作整理用,均无任何修改。

重要说明

下载

Google Drive
百度网盘

内容目录

以及:

使用方法

按照游戏名检索对应的文件夹,若为压缩包则解压,将解压出来的东西(完整地)或者.rpa文件塞到游戏根目录或者./game什么的底下替换同名文件

Mar 14, 2025

  • Add self-update on start and make allowing update to be True by default
  • Change the way how live duration is calculated to a general way to avoid being effected by personal background settings
  • Minor bugs fixed

Jan 21, 2025

  • Minor bugs fixed and event update

Dec 18, 2024

  • Fix timeout handler and other tools

Dec 4, 2024

  • Add parser for CLI booting

Nov 14, 2024

  • Add supprt for MEDLEY event
  • Add window name of the simulator in config

Nov 7, 2024

  • Add screenshots of results in poker event

Nov 3, 2024

  • Record loop time (and average) for clearer status display

Oct 31, 2024

  • Add auto restart methods to deal with crash of the game
  • Fix timeout trigger
  • Deal with swipe verification

Oct 26, 2024

  • Add support for RAID event
  • Auto voltage supplement function

1

巨大的喇叭声响起。

像是要将广阔的大地掀起般,四拍子的节奏在轰鸣。

空气在震动,声音将身体包在其中。

身体直到内部都在颤抖,这种感觉太好了。简直就像被舞曲环抱着一样。

日高零奈最喜欢这种感觉了。

在大自然中举行的室外DJ音乐节。

现在在舞台上打着碟的是零奈的父亲。

DJ们很奇怪。

你可以说他们只不过是在演奏音乐。

但是,并非只是这样。

通过将各种各样的歌曲组合起来,以更强地衬托这些曲子的魅力。然后通过组合几首曲子,创造出它们新的价值和魅力。

在聆听一流的DJ的演奏之时,有时会感觉自己简直就像在听他们讲述故事。

在那个瞬间,听者未尝见过的风景在他们面前展开,从未想象过的故事也浮现于脑海中。

或者说——

被勾起了往事的回忆,听众的心被强烈地感动了。

然后——有时会让人不禁在脑海中描绘未来发生之事。

「零奈」

有个声音在呼唤自己。

这个声音,零奈很熟悉。

转头望去,在那里的是熟悉的面孔。

「姐姐!?」

在黑色长发之下的是优雅的微笑。在钢琴比赛时穿过的白色裙子。

就算是从妹妹零奈的视角来看,她也像是一位深闺之中的大小姐。很难看出她们其实是双胞胎姐妹。

零奈和姐姐并非同卵双胞胎。因此她们相貌不同是理所当然的,但零奈还是觉得她们相差的有点太多了。

不仅仅是脸和发色有所不同,性格也是如此。

以及——才能。

「姐姐为什么会在这……诶?」

零奈从北海道搬过来是在小学四年级的时候。

和姐姐的相会也已经过了七年。

零奈现在是高中二年级。也就是说,姐姐也应该是高中生才对。然而,出现在面前的完全是小学生的模样。

「那也是零奈吧」

不知何时,自己也变成了小学生的模样。

然后,头上传来被抚摸的触感。

抬头望去,映入眼帘的是母亲令人怀念的笑容。

「母亲……」

♪♪♪

「……呜扭?」

清晨的阳光透过尚未拉上窗帘的窗户中射入房间中。令人眩目。

「这样啊……是梦啊」

也是啊,这么想着,露出了稍微有些寂寞的笑容。

自从来到北海道以来,零奈已经无数次梦见过她们,只不过今天做的梦感觉更加真实。

「别睡过头了,该起来上学了——」

抬头望去,是陌生的天花板。

「诶……诶?诶诶!?」

零奈稍微有些慌张地快速爬了起来。

是不认识的房间。

不过,自己还是睡在平常睡的床垫上,还穿着最喜欢的橙色睡衣。

房间周围堆满了纸箱。

「这,这是哪!?」

零奈惊慌失措地跳到窗边向外望去。

外面没有壮丽的自然风光,也没有广阔的天空。

相反,映入眼帘的是一条柏油马路和挡住了视线的一座座建筑物。闪闪发光的全息标牌在空中漂浮着,上面显示着是动画角色和新作游戏的广告。

低头望去,看到了并非全息而是现实中的动画角色——这么说来,其实是正在角色扮演的女仆。应该是附近的女仆咖啡店的店员吧。

「啊」

——原来如此。

「我已经回到东京了啊……」

虽然没有被别人看到,但是睡傻了的自己的丑态还是让羞耻感涌上心头。

就算是这样——

到昨天为止还在北海道就像个谎言一样。

零奈和父亲零空昨天早上就从札幌站乘坐新干线回到了东京。虽然搬家公司建议乘坐飞机,零空还是顽固地选择坐火车。

零空曾经是飞机的机械师,但是被炒了鱿鱼以后就搬到北海道去了。这说不定就造成了对飞机的心理创伤。

在乘坐新干线的途中,零空不断地在

「太棒了!在钢轮上的时速突破450公里了!!就这样超越中央新干线吧!最新科技和老式技术的交锋真是令人热血沸腾啊!!」

这么激烈地感叹,然而零奈却完全听不懂他在说什么。

不管怎样,自从下岗后搬到北海道已经过了七年了。

就在已经越来越习惯日常生活之时,现在又突然急着回了东京。

虽然零奈很惊讶,但也没有感到什么特别的压力。她这么任凭父亲摆布也是一直以来的日常了。

再说了,零奈还有些享受的余裕。

七年前的搬家虽然很突然,但就结果而言还挺开心的。

虽然那边的生活环境和东京完全不一样,但相比于困惑和紧张,感受更强的还是期待。

遇到一些自己不知道的东西,以及和自己不同的东西,对于零奈而言是一连串新鲜的惊喜与快乐。

所以这次突然又要搬家,零奈并不觉得讨厌。相反,心中对于新生活的期待和兴奋在不断增长。

而且,如果回到东京的话……说不定——

「……啊」
一个穿着制服的女学生慌张地从窗户下跑过。

「那个是,外神田的校服吧……」

零奈转学去的「外神田文艺高中」,是如今为数不多的还要穿校服的学校之一。

不过,学校要求的也只是白色的正装衬衫、青色的裙子以及按照学年划分颜色的领结而已。上衣外套是每个人自由选择的。

又一个人跑了过去。这次看着更加着急了。

「……嗯!?」

拿起了床头柜上放着的手机。8点30分。

「迟到了啊啊啊啊!」

急忙去找要换上的衣服,但衣服还在纸箱里。昨天搬家的过程中力竭了就直接睡过去了。

打开标有洋服的纸箱,翻箱倒柜一通乱找,总算是找到了内衣和校服。

「变身!以变身的速度!」

因为十分着急,导致做了很多没有意义的行动。

尽管如此,还是换好了衣服,抓起在墙上挂着的外套,把手穿进袖子里,飞奔出房间,从三楼跑到二楼。

飞奔到浴室里,用不到平常一半的时间洗脸刷牙。然后伸手去拿睡觉时取下的发带和发卡。

将右侧的头发聚成一拢用橡皮筋绑好,左边用两个发卡以十字形固定好头发。

确认了一下时钟,8点35分。已经没空吃早饭了。

到了一楼,那里架子上摆满了塑料模型。跑过这些架子中间时,看到面前站着看着40岁的男人。

他有一头微卷的茶色头发,绑在脑后,留着胡茬,他的脸熟悉到几乎令人厌恶。

他就是零奈的父亲——日高零空。

他穿着藏青色的外套,漫不经心地抬头看着店里的招牌。招牌上用复古的字体写着「日高模型店」。

「父亲,你怎么不叫我起床!?」

「嗯?已经这个时间了吗?」

他看了看手腕,然而手腕上并没有戴着手表。

「不过,迟到也没什么大问题吧。毕竟是第一天转校过去。」

「第一天更不行啊!给人的第一印象会很糟的!而且,第一天就迟到的学生,要是被他们说不允许加入社团该怎么办啊!?」

说完零奈就跑了出去。

「社团?你要加入模型部还是机器人研什么的!?」

零空对着跑出去的零奈的背影喊着。零奈停下了脚步,转头笑着回应。

「对!电音部!!」

2

1