image-20211014160545602

前言

其实早在2017年年底就已经能够正常运行,但有诸多显示问题,随着SDL2的逐渐完善,问题也逐渐减少。
在经历高考复习终止,暑假摸鱼搁置,开学没空继续 等等,一年的时间没有做。

终于在大学生活稳定后,vita-SDL2的11月的一次小更新后,让我想起了这个项目。经过连续几晚的爆肝,终于修复了绝大多数BUG。

各种小BUG也在后续的调试、内测中被修复。

虽然仍然存在一些BUG,但基本能运行所有ONS游戏了!

目前是阉割了部分显示效果以换来游戏的稳定运行

Github:https://github.com/wetor/ONScripter-jh-PSVita

Github活动

更新记录

Private 2017-2018

无UI版

Alpha0.1 2018.12.17

简单的vita2d UI选择游戏界面

Alpha0.2 2018.12.18

  1. 修复游戏数为0导致崩溃的BUG
  2. 修复上下键选择游戏显示BUG

    Alpha0.3 2018.12.23

    Alpha0.3已经能运行几乎所有的ONS游戏了,视频仍不能播放
  3. 修复内存不足的BUG,此BUG曾导致很多游戏资源无法正常读取。
  4. 准备增加视频播放相关

    private 2018.12.25-2019.1.2

    开始移植savemgr的GUI界面
  5. 移植起来挺麻烦的,比自己写要慢,但是效果肯定是移植的好…
  6. 最近学业比较繁忙,原计划在31号发布,但因为比赛所以暂定元旦假期发布
  7. [2018.12.30]增加启动设定方面的功能
  8. [2019.1.1]增加触摸开关、优化一些UI细节
  9. [2019.1.2]增加无UI启动游戏功能,为ONS游戏独立气泡做准备

private 2019.1.2

  1. ONScripter-jh更新0.7.6版(移植用的是0.7.4版),准备同步移植最新版,新版稳定后将转移至0.7.6版进行开发
  2. [2019.1.3]安装气泡功能测试正常,正在完善独立气泡功能。
  3. [2019.1.4]安装气泡功能基本完成,增加帮助。开始最后美化UI。预计周末与大家见面。
  4. [2019.1.5]优化细节。增加关于。调整GUI键位。部分小功能无法完整实现,不过不影响使用。
  5. [2019.1.6]增加显示文件夹大小功能。

public 2019.1.6 21:00

  1. 修复如果未创建ux0:onsemu文件夹启动软件报错的BUG,现已将配置文件移至ux0:data/onsemu内,onsemu文件夹仍要手动创建。

public 2019.1.15

  1. 修复许多游戏存档闪退的BUG,原因为部分游戏设定存档文件夹,文件夹不存在导致闪退。

Public Beta0.2 2019.1.15

Beta0.2(测试版0.2)
GUIversion 101

下载地址

博客网盘下载

下载方法:https://drive.wetorx.cn/

下载地址:网盘下载

百度网盘

Beta0.2 2019.1.15 :https://pan.baidu.com/s/1dpPqlm1Rjo7p2vJacEpkyA 提取码: ONSV
备用链接: https://pan.baidu.com/s/1shfr_yPxFet-Z4J7TvZywA 提取码: c2b9

使用方法

  1. 将ONS的游戏直接放到 “ux0:/onsemu/“ 或者 “ur0:/onsemu/“ 或者 “uma0:/onsemu/“ 下即可

  2. 确认 “onsemu/游戏名/nscript.dat” 或者 “onsemu/游戏名/0.txt” 存在

  3. 文件名可以并且建议用中文,是生成气泡的标题名

源代码使用&感谢

更多待补充。

目前存在问题

序号问题描述现状
1视频无法播放寻求mp4播放解决方案,最好是能直拿来用的源码233存在
2存档缩略图全黑getscreenshot、savescreenshot 命令全军覆没存在
3部分游戏blt命令问题如寒蝉鸣泣之时开头第一个动画效果存在
4存档文字问题如美少女万花镜3读档部分存档无法显示时间、文字等存在
5文本框问题/菜单背景问题部分游戏黑色半透明文本框强制隐藏,不然会出现黑屏BUG,如寒蝉就是被隐藏了半透明文本框,还有本来打开菜单背景会变暗的,现在也全都没了,取而代之的是菜单文本默认开启阴影存在
6逐帧动画卡顿
一些特效卡顿
如美少女万花镜3开头动画以及一些过场动画,原因是游戏分辨率太高(万花镜3是1280*720),ONS都是按照原分辨率进行运算和显示的【即虽然PSV分辨率为544P,但实际游戏窗口大小仍为游戏的720P,运算量也是720P的,仅输出到屏幕时被压缩成544P】,处理器太弱导致卡顿【不然为什么那么多PSV游戏要降低分辨率呢233】。此问题会尽量优化。存在
7载入慢PSV磁盘读取速度…有点慢,在加上单线程读取,绘制,所以不读取完是不能显示的。存在
8GUI游戏名乱码如女装山脉,应该是脚本编码问题存在
9GUI游戏名为ONScripter-Game一些游戏没有使用caption(设置窗口标题)命令,所以无法读取标题存在
10部分简单自制游戏文本问题不兼容jh版脚本写法,导致文本未被清除重叠显示存在
11过渡特效闪黑屏问题由于问题 5 导致的一系列问题,如寒蝉(又是你233)的一些过场效果会先黑屏在转场,正常的应该是背景变暗然后转场变亮。存在
12GUI制作气泡问题1、生成的气泡只是一个快捷方式,游戏本体仍在onsemu/中,气泡大小一般在4MB左右。
2、生成的气泡名称是根据onsemu/中rom文件夹名称来决定的,因为一些游戏的标题可能会乱码(问题8)或者太长。vitashell好像不能修改中文文件夹名,所以传游戏时请改好文件夹名称,之后或许会有一些文件操作的功能。
3、生成气泡的TITLE ID(app文件夹中的9位唯一ID)是根据当前日期的 天、小时、分钟、秒决定的【本来是想弄序号递增的,但是我这简陋的GUI好像没权读取app文件夹中的TITLE ID,只能暂时用这个基本不会重复的方式命名了】,格式为”G”+两位天数+两位小时数+两位分钟数+两位秒数。
4、生成气泡的图标问题。这个问题的解决方法可能只有做图标包了,因为PSV的图标格式要求比较严格(png 8位index图像),不会写转换…只能用默认图标了,如果有人有意愿做图标包,可以联系我,功能可以加。
5、气泡重复问题。目前没有任何判重功能,也就是说一个游戏可以生成无限个气泡,如果需要更改气泡的默认启动设置,建议删掉气泡重新生成。
存在
13存档位置问题目前没有增加设置存档目录功能,全都是默认在rom目录中存在
14GUI各种文本问题超长不可避免,请手动无视存在
15GUI字体问题默认字体为苹方字体,在eboot目录中,不建议自己更换字体,可能会导致一些空格、文本错乱…存在
16按键问题主要出现在快进和自动模式,开启快进后再次按下很大几率不会停止快进,需要长按或者按三角才能正常停止快进。存在
17窗口化问题在一些游戏中的设置,将全屏模式调为窗口模式后,两侧无用区域会停止刷新,导致画面残留。建议在启动时设置存在
18部分游戏存档闪退如勇者大战魔物娘。学校发生过的恐怖故事也会闪退。已修复
19GUI太丑emmmmm…有时间再说不存在

想说的话

最早想做这个大概是17年年末,发现了SDL2的存在,趁着刚刚装好的VITASDK环境,想试着编译并运行ONS,不过当时还不太了解linux和vita自制程序的开发,尝试了很久也没有什么成果。

在一日 凯kane 发了一个关于SDLPAL(仙剑奇侠传SDL版)的PSV移植版本,看到了ONS移植的希望。当然,纯属只是在石头门零汉化弄完后闲着没事干而已。

最初遇到的最大问题就是编译问题,在此之前我甚至连makefile是什么都不知道,还有各种链接库,经过很久很久的尝试,才最终将makefile搞定,成功编译。但运行还是有很多问题。

当时我的机器是3.60版本,有一个非常好用的插件叫做psp2shell,这个插件能远程执行一些命令并且最强大的是用钩子获取一个vitasdk的printf的输出内容并输出到远程(PC)端控制台。

在很久的调试后终于能够正常在PSV上运行ONS了,当然,由于内存未解锁,对ONS的了解也不多,废了大量的时间也只是能够保证一些游戏正常运行但不能正常显示。记得我测试的第一个游戏是星之梦,单纯的只是因为体积小、我又玩过。


具体已经有些记不清了,不过可以确定的是,在2017年12月31号,我在多玩上发布了一个“伪预告”贴,当时是准备把ONS在很短时间内调试好并在新年发布。但是不太了解(SDL2、ONS)的我还是太天真了,仅仅修改ONS源码并不能解决一些严重的显示错误。何况,当时高三的我仅有的C#和C/C++基础能力实在有限,最后不了了之。

在2018年四月份还是五月份时,凯 突然告诉我SDL2更新了,我马上去测试,并且惊喜的发现很多问题被修复了,按键触屏也能使用了,不过一些坐标还是有问题。这里不得不说一下在这期间发生的让我不想继续的事,就是我的PSV升级到了3.65,psp2shell不能用了!

记得当时我还在贴吧发过牢骚,称3.65固话虽然能玩新游戏,但是一些插件却不能使用了。这个插件不能用,调试变得极为麻烦,虽然也向大神反馈过,得到的只有在很久以后另一个github用户给我推荐的另一个插件。

补充一下,当时我对psv自制程序开发还是几乎一片空白,对linux也一知半解,不过在不断的摸索与调试中,逐渐的了解了ONS-jh。顺便一提,调试的次数至少要好几百次。

不过由于学业(高考)和娱乐(暑假)再加上忙碌(大学),一直搁置到2018年11月底,因为SDL2的一次小更新,重启了这个项目。然后肝了几个晚上,以前一直很迷茫的问题也随着调试次数的增加而解决。其实移植下来代码并不需要大刀阔斧的修改,只需要修改一些关键地方,在加上对应的库稳定,makefile没问题,基本上就能运行游戏了。

最近这一个多月来,除了修复各种模拟器错误,还努力制作一个实用的UI界面。开始界面是自己写的,很简陋,功能上BUG很多,最后听小凯的意见开始修改savemgr的UI。这个UI功能比较完善,但是却很难移植(还是说vita的界面都那么复杂吗?),弄了好几天才把框架移植过去,之后就是漫长的修改、添加功能了,不过还好,这个时候我想起了Vita3K这个PSV自制程序模拟器,用来调试UI真的再方便不过了(无法运行ONS游戏)。

先不说成果如何,看起来依旧很简陋,不过我认为,我付出的确实很多,社团都鸽了好多次…顺便一提社团是指CTF(我是菜鸡)。再所有同学都不知道我在做什么,每天熬夜那么晚,仅有几个同学知道我是在移植模拟器的情况下,还是在2019年的第一个星期给怼完了beta版,正式版还是遥遥无期呢。

这里我要再次感谢一下小凯…谢谢每次听我吐槽这个ONS…

只是一个小东西,在大多数人看来不是很难得东西,我却浪费了很多时间,我自己都觉得有点不值得…

果然

我还是菜…

所以我要去学习…以前的坑会尽量填,如果不能填就把东西放出来(没错,就是指深渊矿坑,这个我会另外说的)

顺便,希望能遇到CTF逆向大佬带我飞

如果未来有钱买了NS,会研究NS版的,包括PSV不肯能移植到kirikiri,我会研究的(谁知道能不能成功呢233)。【NS版移植已完成