PS2汉化2 - 自制程序的运行与调试
自制程序的运行与调试
- 运行调试的坑点之类的
- SDK
- 运行与调试
- 通过PS3
- 通过PS2
- 神(昂)奇(贵)的DTL-10000!
- 贫穷者的零售机器
- 通过PCSX2仿真器
运行调试的坑点之类的
本文为了自制程序(或者修改后的某些程序)而撰写,记录一些笔者踩过的或者看别人踩过的坑。
SDK
我相信大多数人都有能力搞定MIPS的交叉编译环境,不过,直接使用PS2SDK是更简单的做法。
无论是找到了索尼泄露的官方PS2SDK还是玩家自制的PS2SDK,选择你喜欢的就好了。
运行与调试
通过PS3
对于持有PS3向下兼容型号且软破了的人来说,利用SWAPMAGIC启动OPL,并通过SMB运行是最简单的方法。因为PS3仿真的限制,如果每次修补光盘镜像/程序都要重新传输到硬盘/虚拟记忆卡是非常不明智的做法。
对于非向下兼容型号,还不如用PCSX2呢。
至于调试的话……
对于部分使用了TCP的程序,其仿真在CECHA上工作正常。目前仅确认了TCP的工作正常(包括监听套接字和数据套接字),但是,显然,官方仿真并不提供超越零售机的功能。由于ps2_emu.self的关联复杂,目前不认为有对其BIOS进行修改以提供DECI2环境的可能。
此外,诸如PS2LINK等一类软件,无法启动PS2之网络系统。可能是由于驱动的问题。
但是,OPL(github最新版,debug_deci2构建)和RDB只能在有线连接的环境下成功创建监听套接字,并执行网络处理。包括其他软件皆是如此。
比连接稳定性更重要的、使PS3无法进行PS2调试的决定因素是:RDB提供的IOP侧之DECI2服务之TIF桥无法成功连接EE侧的DECI2主机。如果尝试连接,会收到错误信息NOROUTE(不存在到节点(即EE侧的DECI2主机)的路径)。(然而如果发送EE RESET信息,依然会死机,原理未知)如果有人对此有所研究,希望能够留言以交流……
对ps2emu所带的PS2 BIOS进行检查发现几个显著和DECI2关联的模块确实存在,且运行于PCSX2时,发现EE侧的DECI2有启动。暂时无法推测故障原因。由于ps2emu.self关联过于复杂,难以分析;暂不认为有恢复这部分功能的方法。
利用RDB所提供之内核替换功能时,在替换了开发机内核后导致死机。在替换了零售机内核时系统无有变化。故原因非内核导致。
综上,利用PS3调试PS2程序是几乎不可能的。
笔者已经在CECHA00上,通过Rebug DEX/CEX下进行测试,包括了,EXECFTP,PS2LINK在内,并得出此悲伤的结论。
通过PS2
PS2的硬盘破解已经非常成熟,我们早已不需要用什么直读芯片改机了。关于PS2的破解不做赘述。
神(昂)奇(贵)的DTL-10000!
当然,如果你有一台DTL-10000开发机的话(就是那个PC-PS2缝合怪;对对对,就是那个把一台完整PC当通讯处理器用的白痴设计),用那个调试必然是最好的方法。然而,它的价格就没有多好看了……(一台过时的只能用IDE硬盘超级古董电子垃圾怎么好意思卖那么贵啦!(╯‵□′)╯︵┻━┻)
注意和PS3的开发机分类一样,PS2开发机中的TEST型只是个不做正版校验的普通机器,只有TOOL(我只知道DTL-T10000)才能做调试用途。
贫穷者的零售机器
如果你有PS2实机(有网卡的那种)的话,RDB或者使用debug_deci2配方()编译的OPL(make debug_deci2)就是很好的选择(注意OPL会驻留在进程里,分析代码时可能会把OPL和要调试的程序的代码弄混)。它们都能启动DECI2/TCP(索尼官方的PS2调试通讯接口)服务主机,这样你就能通过DECI2进行调试了(别忘了-nr选项,重置EE或IOP都将使RDB或OPL提供的DECI2服务暴毙)。至于PC上的客户端的话,除了RDB帖子里提到的工具(Linux用)外,还可以考虑看看能不能找到泄露的官方工具,比如ProDG、CW什么的,不过不建议这么干啦。
需要注意的是,即使使用ProDG或者CW,也必须首先用dsnetm连接TIF,然后由ProDG TM连接dsnetm。
或者,其他hacker做的远程调试器也能用。
缺点当然就是这么干超级麻烦啊……
通过PCSX2仿真器
通过PCSX2仿真器时,请记得一定要把EE和IOP改成解释器。重编译器会掩盖掉一些编程上的错误,最终可能导致PS2实机运行时崩溃。
要举例子的话,比如PCSX2能够容忍非对齐内存访问,然而在PS2实机上会直接引发异常;更重要的是,PCSX2的重编译器不会报告“发生了非对齐内存访问”这一错误,而这个对于最终的成品来说是很要命的纰漏。
此外PCSX2对于DMA也没有严格的限制,这也可能使得最后的成果出事。
而且由于仿真器的特殊性(翻译的目标代码因机器而异),不同的人可能在不同的地方甚至是随机出事。所以如果要利用PCSX2进行调试,请小心而慎重地进行。
优点嘛……貌似也没有就是,毕竟用PCSX2的前提是已经有了一台PS2,不是么?(笑)当然有的人PS2坏了不舍得花钱买新的也是可能的,嗯。
PS2汉化2 - 自制程序的运行与调试相关推荐
- PS2汉化实例-《魔塔大陆》
写些<魔塔大陆>以及一些引擎相关的吧 在整个PS2时代,GUST一直保留着往ELF里塞数据的做法.所以不管是字库还是战斗数据什么的都可以在ELF里面找到. 到PS3后字体倒是改成了TTF, ...
- PS2汉化1 字库处理
引语 其实字库处理很难说有一个统一的方法,不同的程序都需要不同方法来处理. 关于常见位图字库的详细信息. 下面是字库存在于ELF/ERX文件时的处理思路. 字模替换 最天真朴素.最通用的处理方式.适用 ...
- 【Python】Spyder编译器“updating indices”问题导致程序无法运行或调试
按教程装好JetBrains PyCharm 2018.3 x64,并正常激活后,打开GitHub下载的工程.发现工程底部一直提示"scanning files to index" ...
- C语言程序的运行与调试过程
目录 前言 一.编辑 二.编译 三.连接与运行 前言 C语言源程序需要经过编译.连接等一系列步骤才能够生成真正可运行程序. 一.编辑 编辑是指将已经编写好的源程序录入计算机并生成磁盘文件的过程.在编辑 ...
- 使用Lingobit Localizer汉化.net程序(Translate .net program using Lingobit Localizer)
作者:王先荣 前言 最近开始做给小朋友上机器人编程课的兼职,感概颇多:(1)小朋友的动手能力都很强:(2)"调皮"的小孩很多:(3)直面困难的小朋友不多. 由于采用 ...
- ERD Commander 2005 Boot CD 剖析及汉化试验
ERD 2005 剖析及汉化实践 一.前言 Winternals software 公司是于 1996 年由 Bryce Cogswell Ph.D. 和 Mark Russinovich Ph.D. ...
- PPC/SP/PC汉化教程:如何汉化一个软件
[以前也想过汉化一些软件,但那时候对PE文件都不是很了解,脱壳是什么都不知道,今天看到这篇文章,觉得不错,就转载来看下,以便以后需要用的时候能找到] 其实PC和PPC/SP在汉化的许多地方都是相似的, ...
- Image To PDF or XPS V5.0 汉化版,tek2y原创汉化!
转载请注明出处,谢谢合作!首发于http://blog.csdn.net/tek2y 2019年9月,本人发布了Image To PDF or XPS V4.2 汉化版,从大家的反响来看,大家还是很喜 ...
- 【转】FC(红白机)游戏nes文件的汉化技术
FC大字体汉化方法 作者:madcell 一.前言: 本文以FC上第一个发售的游戏<大金刚>为例,介绍如何对标题画面进行大字体汉化. 阅读本文,必须具备一定的的条件,否则看了也是不知所云. ...
- 16进制 转为图片 php_十六进制编辑器(010 Editor)官方版下载_十六进制编辑器(010 Editor) v11.0中文汉化版64位...
010 Editor是一款专业的文本编辑器和十六进制编辑器,它可以编辑文本文件,包括 Uni code 文件.批处理文件.C/C++.XML 等,功能全面且强大,可以说是目前最强大的十六进制编辑器了. ...
最新文章
- 从事JAVA 20年最终却败给了Python,哭了!
- Java网络编程实例---------------------------------基本HTTP客户端及服务端多线程
- 开源一个友盟 for android 操作的封装包
- 后台开发人员面试内容——Redis非关系数据库(三)
- 冷热分离和直接使用大数据库_还不知道HBase冷热分离的技术原理?看这一篇就够了...
- 构造 Codeforces Round #275 (Div. 2) C. Diverse Permutation
- MapReduce计数器
- 列车时刻管理c语言程序设计,列车时刻表信息管理系统实践报告C语言源代码
- 无法创建ssis数据流任务_SSIS中的数据分析任务概述
- Android重力感应示例
- [收藏]Visual Component Framework
- mysql 主从复制延迟_什么情况会导致MySQL主从复制延迟?
- InfluxDB在Win10安装与简单入门
- 英文论文评审意见_艾德思:英文论文审稿意见模板
- 0-1背包问题和部分背包(fractional knapsack)问题分析(动态规划,贪心算法)
- 在同一个数据集中同时更新多表..............
- ubuntu踩坑笔记--开机进入recovering journal解决方法
- 什么是集合,集合的定义,集合与数组的区别,怎么创建一个集合?
- Windows 8 安全防御策略:avast!Free Antivirus+ZoneAlarm Free Firewall
- ZigBee 定位解决方案