是我心血来潮的想法,要解读一下psp模拟器的源码,并添加详尽的中文注释。这个博客则成为文档。

本文面向java语言零基础的程序员,因为我本人的java基础就是零。

水平所限,疏漏错误之处欢迎指正。也欢迎更多的人参与进来,一起做这件我觉得比较有趣的事。

jpcsp是用java语言编写,源码统计工具显示代码量20万行左右。

/

首先,可以从谷歌code获取最新的jpcsp源码(http://code.google.com/p/jpcsp/source/checkout)。

具体方法:

1.下载并安装源码版本管理软件TortoiseSVN(用于获取源码)

2.建个文件夹,比如取名叫jpcsp(用于存放下载的源码)后文都默认源码存放在jpcsp这个目录

3.右击该文件夹,选SVN CheckOut,URL栏目中输入http://jpcsp.googlecode.com/svn/trunk/,然后ok,源码就会被下载到该目录下

/

然后,安装软件netbeans,用于查看和编辑源码,当然也可以用于调试。用这个软件是因为它对图形界面支持比较好,可以方便的查看软件的图形界面设计,还可以双击图形元素进入背后的源码。我装的是7.1版本。

安装好后,用该软件打开项目,选择项目时会识别出jpcsp的java项目,双击该文件夹即可。

此时要解决一下netbeans里面中文显示乱码的问题。打开项目后,netbeans界面的左上方,可以见到工程图标jpcsp,并且可以点开树状结构的源码文件。右击该工程图标,选择 源,在设置界面的最下方,编码,选择GBK

/

这时最想做的一件事情似乎是编译一下这个工程,运行着看看。

记得先下载并安装java虚拟机。

编译时如果报lwjgl相关的错误:点开上文提到的工程图标的树状结构,找到 库,其中有lwjgl.jar,要把这个定位到源码目录中的lib/windows-x86/lwjgl.dll

大概意思是,这个lwjgl是一个图形相关的动态链接库,对于不同的操作系统,要选取不同的链接库实例。jpcsp支持32位和64位的windows,还支持32位和64位的linux。我用的是32位windows,你可以根据自己情况来选择。

刚才又测试了一下,netbeans下似乎不存在这样的问题,直接点运行即可。我之前是用myeclipse打开这个工程并编译,出现了上述的问题。

这时应该已经在运行这个psp的模拟器了,如果你在阅读本文,那么有理由相信你已经很熟练这个模拟器的相关操作,比如载入一个psp游戏的镜像,并运行这个游戏。不过从源码得到这个运行中的模拟器,是否有别样的快感,呵呵。

/

最后,说说netbeans中阅读源码的简单操作。

首先,点开jpcsp工程图标下的树状结构,随便打开一个java文件,就可以看到源码。

源码阅读的最重要的三个功能:

1.光标定位到源码中某个函数名,右击,选导航,有  转至源,转至申明,转至实现 等,可以跳转到函数的实现。也可以跳转到变量的定义处。

2.源码界面的最上面是一排按钮,左起是 源,历史记录,然后一排图标。历史记录 右边的第二个图标,向左的箭头,可以跳回到上一个查看的位置。比如在某个位置用了上述的导航功能,用这个按钮可以再退回到导航前的位置。

3.右击某个标识符(函数,变量名等),除了最上面的 导航,下面还有 查找使用实例。

/

再提供一个网址

http://hitmen.c02.at/files/yapspd/psp_doc/

这里是关于psp的详尽的硬件信息文档,为模拟器源码的解读提供了巨大便利。

jpcsp源码解读之一:源码的获取与编译,以及psp详尽硬件信息文档相关推荐

  1. java计算机毕业设计慧学IT精品课程网站MyBatis+系统+LW文档+源码+调试部署java计算机毕业设计慧学IT精品课程网站MyBatis+系统+LW文档

    java计算机毕业设计慧学IT精品课程网站MyBatis+系统+LW文档+源码+调试部署java计算机毕业设计慧学IT精品课程网站MyBatis+系统+LW文档 java计算机毕业设计慧学IT精品课程 ...

  2. MyBatis源码解读之源码结构

    2019独角兽企业重金招聘Python工程师标准>>> 目的 文章主要了解MyBatis源码结构,每个包的具体功能.如何去学习MyBatis源码. MyBatis源码结构导图 查看大 ...

  3. 【源码分享】ASP.NET大型快运(快递)管理系统带完整文档

    ASP.NET大型快运(快递)管理系统源码带完整文档 大型快递(快运)管理系统基于webservice的分布式系统,集成快递物流业务流程管理,快递物流公司内部管理,快递物流单全网跟踪监控,并集成基于w ...

  4. 超详细的 Bert 文本分类源码解读 | 附源码

    本文详细的GitHub地址: https://github.com/sherlcok314159/ML 接上一篇: 你所不知道的 Transformer! 参考论文 https://arxiv.org ...

  5. Redux 源码解读 —— 从源码开始学 Redux

    已经快一年没有碰过 React 全家桶了,最近换了个项目组要用到 React 技术栈,所以最近又复习了一下:捡起旧知识的同时又有了一些新的收获,在这里作文以记之. 在阅读文章之前,最好已经知道如何使用 ...

  6. 【ORB_SLAM3源码解读】Ubuntu 16.04系统下编译运行 ORB_SLAM3

    补充一下,这篇教程编译的是最开始ORB_SLAM3开源的代码版本,现在直接下载的是最新的版本,所以报错会不太一样,不过还是有参考价值的. 官方代码地址 https://github.com/UZ-SL ...

  7. jpcsp源码解读8:cpu状态

    从通用寄存器开始说起. 通用寄存器用一个类public class GprState来表示,其中的成员变量只有一个: public final int[] gpr = new int[32]; 也就是 ...

  8. Spring5源码 - 05 invokeBeanFactoryPostProcessors 源码解读_2

    文章目录 Pre 源码解读 总体流程 源码分析 细节解析 [初始化对应的集合 & 遍历用户自己手动添加的后置处理器] [调用实现了PriorityOrdered接口的BeanDefinitio ...

  9. Pseudo-document-based Topic Model(基于伪文档的主题模型)的理解以及源码解读

    本文作者:合肥工业大学 管理学院 钱洋 email:1563178220@qq.com 内容可能有不到之处,欢迎交流. 未经本人允许禁止转载. 论文来源 Zuo Y, Wu J, Zhang H, e ...

最新文章

  1. 新冠肺炎数据里学到的四个数据分析和机器学习知识
  2. echarts中如何使用timeline组件
  3. 【算法】差分约束系统
  4. 三个对CS最大的谬误
  5. 知乎高赞:看懂这个颠覆世界观的认知,远比做1000道题更有用!
  6. vue的watch监听
  7. 面试突击第 3 期 | Redis 如何实现查询附近的人?视频实战版
  8. Java 异常处理(标准抛异常、异常处理、多异常、Finally、多线程异常处理、获取异常的堆栈信息、链试异常、自定义异常)
  9. 2013国家二级c语言上机考试点了编译并运行出现黑框闪退,2013年计算机二级C语言上机试题及解析2...
  10. 第六百二十二天 how can I 坚持
  11. 【HTML+PHP+SQL】综合实验:一个简单丑陋的论坛网站(实现用户注册、登录、注销、修改信息、留言等功能)
  12. 高效能人士的七个习惯读后感与总结概括-(第六章)
  13. nodejs 异常的处理
  14. 地球上20张最惊人照片!不看将后悔一辈子
  15. 2019牛客暑期多校训练营(第八场) Explorer (线段树分治+区间离散化)
  16. 石子合并问题(no circle)
  17. 燕山大学2019年计算机全国排名,燕山大学2019年排名第90位 较2018年下降6名
  18. fdct算法 java_ImageSharp源码详解之JPEG压缩原理(3)DCT变换
  19. android 手动连接wifi,android手动连接wifi的过程
  20. 51 nod 1024 矩阵中不重复的元素

热门文章

  1. 快速免费建站程序推荐,个人站长快速建站程序必知
  2. 如何化身BAT面试收割机?Android校招面试指南
  3. 1234: 二叉树的遍历
  4. windows api控制鼠标移动的快慢
  5. 德邦快递年会搞大事!董事长拿出27.8公斤金砖重奖快递员
  6. RN开发实践——仿携程App(二)
  7. Java学习笔记(视频:韩顺平老师)4.0
  8. 《音视频开发进阶指南:基于Android与iOS平台的实践》源码下载地址
  9. 2022新版手机软件库游戏库系统源码
  10. 坎坤小K WiFi智能插座 世界上最小 拆解评测