自制程序的运行与调试

  • 运行调试的坑点之类的
    • 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 - 自制程序的运行与调试相关推荐

  1. PS2汉化实例-《魔塔大陆》

    写些<魔塔大陆>以及一些引擎相关的吧 在整个PS2时代,GUST一直保留着往ELF里塞数据的做法.所以不管是字库还是战斗数据什么的都可以在ELF里面找到. 到PS3后字体倒是改成了TTF, ...

  2. PS2汉化1 字库处理

    引语 其实字库处理很难说有一个统一的方法,不同的程序都需要不同方法来处理. 关于常见位图字库的详细信息. 下面是字库存在于ELF/ERX文件时的处理思路. 字模替换 最天真朴素.最通用的处理方式.适用 ...

  3. 【Python】Spyder编译器“updating indices”问题导致程序无法运行或调试

    按教程装好JetBrains PyCharm 2018.3 x64,并正常激活后,打开GitHub下载的工程.发现工程底部一直提示"scanning files to index" ...

  4. C语言程序的运行与调试过程

    目录 前言 一.编辑 二.编译 三.连接与运行 前言 C语言源程序需要经过编译.连接等一系列步骤才能够生成真正可运行程序. 一.编辑 编辑是指将已经编写好的源程序录入计算机并生成磁盘文件的过程.在编辑 ...

  5. 使用Lingobit Localizer汉化.net程序(Translate .net program using Lingobit Localizer)

    作者:王先荣 前言     最近开始做给小朋友上机器人编程课的兼职,感概颇多:(1)小朋友的动手能力都很强:(2)"调皮"的小孩很多:(3)直面困难的小朋友不多.     由于采用 ...

  6. ERD Commander 2005 Boot CD 剖析及汉化试验

    ERD 2005 剖析及汉化实践 一.前言 Winternals software 公司是于 1996 年由 Bryce Cogswell Ph.D. 和 Mark Russinovich Ph.D. ...

  7. PPC/SP/PC汉化教程:如何汉化一个软件

    [以前也想过汉化一些软件,但那时候对PE文件都不是很了解,脱壳是什么都不知道,今天看到这篇文章,觉得不错,就转载来看下,以便以后需要用的时候能找到] 其实PC和PPC/SP在汉化的许多地方都是相似的, ...

  8. Image To PDF or XPS V5.0 汉化版,tek2y原创汉化!

    转载请注明出处,谢谢合作!首发于http://blog.csdn.net/tek2y 2019年9月,本人发布了Image To PDF or XPS V4.2 汉化版,从大家的反响来看,大家还是很喜 ...

  9. 【转】FC(红白机)游戏nes文件的汉化技术

    FC大字体汉化方法 作者:madcell 一.前言: 本文以FC上第一个发售的游戏<大金刚>为例,介绍如何对标题画面进行大字体汉化. 阅读本文,必须具备一定的的条件,否则看了也是不知所云. ...

  10. 16进制 转为图片 php_十六进制编辑器(010 Editor)官方版下载_十六进制编辑器(010 Editor) v11.0中文汉化版64位...

    010 Editor是一款专业的文本编辑器和十六进制编辑器,它可以编辑文本文件,包括 Uni code 文件.批处理文件.C/C++.XML 等,功能全面且强大,可以说是目前最强大的十六进制编辑器了. ...

最新文章

  1. 从事JAVA 20年最终却败给了Python,哭了!
  2. Java网络编程实例---------------------------------基本HTTP客户端及服务端多线程
  3. 开源一个友盟 for android 操作的封装包
  4. 后台开发人员面试内容——Redis非关系数据库(三)
  5. 冷热分离和直接使用大数据库_还不知道HBase冷热分离的技术原理?看这一篇就够了...
  6. 构造 Codeforces Round #275 (Div. 2) C. Diverse Permutation
  7. MapReduce计数器
  8. 列车时刻管理c语言程序设计,列车时刻表信息管理系统实践报告C语言源代码
  9. 无法创建ssis数据流任务_SSIS中的数据分析任务概述
  10. Android重力感应示例
  11. [收藏]Visual Component Framework
  12. mysql 主从复制延迟_什么情况会导致MySQL主从复制延迟?
  13. InfluxDB在Win10安装与简单入门
  14. 英文论文评审意见_艾德思:英文论文审稿意见模板
  15. 0-1背包问题和部分背包(fractional knapsack)问题分析(动态规划,贪心算法)
  16. 在同一个数据集中同时更新多表..............
  17. ubuntu踩坑笔记--开机进入recovering journal解决方法
  18. 什么是集合,集合的定义,集合与数组的区别,怎么创建一个集合?
  19. Windows 8 安全防御策略:avast!Free Antivirus+ZoneAlarm Free Firewall
  20. ZigBee 定位解决方案

热门文章

  1. 简单介绍会计师事务所
  2. 单例模式,androidstudio简易app实例
  3. 读书笔记:《明朝那些事第三部:妖孽宫廷》
  4. 嵌入式学习是什么?嵌入式开发入门教程带你了解
  5. echarts立体柱状图
  6. 小米手机4获取ROOT权限的步骤
  7. Spring Validation 验证框架全面总结
  8. web前端开发技术实验与实践(第三版)储久良编著 项目6 文本与段落标记的应用
  9. 通过爬虫获取免费IP代理,搭建自己的IP池(http)
  10. 微信订阅号获取openid