文档章节

PSP开发简明教程(2)

龙之田
 龙之田
发布于 2014/04/29 00:02
字数 1643
阅读 727
收藏 8

#PSP开发简明教程(2)

##开头

接着上文,这篇文章将具体说明如何搭建PSP开发环境。因为我是刚开始写教程类文章,加上对这一类型的程序开发不是很了解,所以文章可能有说的不明白,甚至错误的地方。还望大家能够指正。见谅!

##使用的软件和教程

为了编写PSP自制程序,我们需要如下软件:

MinPSPW(Minimalist PSPSDK)链接在这里

Eclipse IDE for C/C++ Developers链接在这里

其中MinPSPW也可以用DevKitPSP代替(链接在这里),不过因为现在最新固件(6.60)的破解程序(PROCFW)是用MinPSPW编译的,为防止出什么稀奇古怪的问题,我就选择了和它一样的环境。

选择MinPSPW的另一个原因是,它有一个比较好的官方教程,名字叫PSP Development with Eclipse。教程详细的说明了如何搭建开发环境和编译自制程序,本文也是依据这个写的。所以,如果英语比较好,完全可以看这官方给出的教程,肯定比我写的好。教程在这里

##软件的安装

MinPSPW的安装没什么好说的,在项目网站选择最新的程序,一路默认选项安装就是。安装完成后,它会在系统环境变量中添加自己的运行目录。

MinPSPW的环境变量

(MinPSPW的环境变量)

Eclipse我们选择C/C++ Developers版本,因为软件是绿色版本的,所以也没有安装一说。不过需要注意的是,Eclipse是基于Java编写的,所以需要电脑具有Java运行环境(没有的可以从这里安装)。

至此安装工作就算完成了。

##环境配置

之前说过,MinPSPW会在安装后自动在环境变量中添加运行目录,所以我们只需要检查一下它是否可用就可以。命令提示符中执行psp-gcc --version,应该会出现psp-gcc相关的版本信息。

psp-gcc版本信息

(psp-gcc版本信息)

接着说Eclipse,它在第一次执行的时候应该会让你设置工作空间,这里本人建议最好能够新建一个文件夹,比如WorkSpace,来存放所有用Eclpise开发的软件文件夹,因为它会在你指定的目录里面生成一些其它的文件。

Eclipse弹窗

(第一次使用Eclipse时的弹窗)

至此整个环境就基本可用了。

其实官方教程里面还对Eclipse做了其他设置,比如PSP的USB调试功能。这里就不细讲了,如果确实想了解的同学可以翻阅官方文档。

##工程编译

PSP的自制程序使用Makfile进行构建。这里我们以一个SDK中自带的例子来说明如何构建程序。

首先,我们在Eclipse中的Project explorer中单击右键,选择Import,导入工程

Import

(导入工程)

在弹出的Import窗口中,选择C/C++ -> Existing file as Makefile project,从既有文件导入Makefile工程。

导入Makefile

(从既有文件导入Makefile工程)

进入下一步,在第二个框中填入我们要加入的示例文件的文件夹。这里我们选择PSPSDK中一个关于按键操作的示例进行演示。(位置在:(MinPSPW安装位置)\psp\sdk\samples\controller\basic)

建议将示例程序另复制一份,以免破坏了原有的示例程序。

目录设置

(目录设置)

点击Finish,工程导入完成了。在Eclipse的左侧,可以看到我们导入的程序代码(main.c)和Makefile。

工程目录结构

(工程目录结构)

然后我们就可以进行编译了。在Eclipse的菜单栏的Project菜单中,选择Build Project

就完成编译了。

编译

(编译)

大家在查看main.c时,可能会发现满篇的红色波浪线,各种头文件无法找到。

头文件错误

(头文件错误)

虽然显得很乱,但其实并不影响程序的构建,因为Makefile中对头文件目录进行了设置。

所以这里会显示头文件无法找到,仅仅只是Eclipse无法找到而已。不信的话,可以把最下侧的对话框切换到Console,就可以看出来构 建没有任何问题。

Console对话框

(Console对话框)

如果觉得波浪线碍眼,我们可以在工程设置里面C/C++ General -> Paths and SymbolsIncludes里面,添加目录(MinPSPW安装位置)\psp\sdk\include进去,记得勾选Add to all languages。这样,就没有碍眼的错误提示了。

Include设置

(Include设置)

其实这样更重要的是,我们可以直接在编写代码的时候看到每个函数的描述信息。

函数描述信息

(函数描述信息)

以上就是整个PSP软件开发环境的配置过程。

##自制软件的运行

在编译之后,我们可以在源文件目录下找到一个叫EBOOT.PBP的文件。熟悉PSP自制软件的读者应该知道,这是PSP上类似于Windows下*.exe的东西。我们只要把它拷贝到PSP上面,就可以运行它了。

我们把它拷贝到PSP记忆棒目录下PSP\GAME\Controler\文件夹中。完后在PSP上面运行它(就像运行游戏一样)。

Controler basic程序的功能是将所有你按下的按键显示在屏幕上。

PSP莫名其妙的连不上电脑了。。。等我修好了上这张图(┬_┬)

(Controler运行界面)

##总结

以上就是PSP开发环境配置全过程。

当然官方教程中给出的功能可不止这些,它还说明了如何USB进行自制程序的在线调试。并给出了使用Bullet进行3D游戏开发的配制方法,这里就不一一说明了。有兴趣的可以参照官方教程自行配置使用。

下一篇文章将简单的说明一下Makfile和源代码的结构(网上既有的资料 + 个人比较浅显的理解)。并将自己所做过的些探索一一列出来,使读者们少走些弯路。

这篇文章就写到这里了。

本文MarkDown源文件和提到的示例程序源代码,可以在我的Github上获取。

Github地址:https://github.com/flymaxty/OSChina_Blog

© 著作权归作者所有

共有 人打赏支持
龙之田
粉丝 4
博文 5
码字总数 6368
作品 0
海淀
程序员
加载中

评论(3)

廖嘉炜
廖嘉炜
继续支持~
龙之田
龙之田

引用来自“景钱雨”的评论

很详细 很赞 敢问作者最后要完成什么目标
其实也没什么目标,就是单纯的想了解一下自制软件的开发而已。 而且现在相关的资料已经不多了,个人技术有不大好。所以。。。╮( ̄▽ ̄")╭ 不过我会尽可能的把开发需要涉及到的地方都写出来哈。 虽说不会很深,但至少能让大家少走些弯路。
景钱雨
景钱雨
很详细 很赞 敢问作者最后要完成什么目标
Python学习资料篇

Python学习资料网络上比较多,看到好的资源,不及时记录下来,下次就找不到了,我把知乎上好的回到收藏汇总到这里,以便自己随时查看,包括Python入门书籍,网站,项目,官方文档,下载资源等...

BjarneCpp
2017/12/03
0
0
49个python经典电子书

49个python经典电子书 本文转自:http://blog.sina.com.cn/s/blog_5bce66f00102vgqv.html

天意1
2016/01/20
0
0
OpenBoR

OpenBoR 是一个2D横版过关游戏开发引擎,国外制多了超级多的同人横版过关游戏。PSP OpenBoR 就是这个引擎的PSP平台移植版,让你也可以在PSP上玩到这些外国玩家自己开发的2D清版动作游戏。 使...

匿名
2008/11/11
15.2K
0
python操作数据库基础知识

python是如何访问数据库的,通过数据库接口DB-API,他是阐明一系列所需对象和数据库访问机制的标准,它可以为不同的数据库适配器和底层数据库系统提供一致性的访问。 为实现对数据库的访问,...

Wantobetter
01/03
0
0
推荐:深入浅出的自然语言处理书单!

DT时代,大数据、BI和人工智能均是十分火热的产业趋势,而自然语言处理作为人工智能领域和计算机科学领域中的一个重要方向,也随之火热了一把,得到不少IT人士的极大研究兴趣。现在,大圣众包...

大圣众包
2017/01/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

区块链教程以太坊源码分析chain-indexer区块链索引一

兄弟连区块链教程以太坊源码分析chain-indexer区块链索引一 chain_indexer 区块链索引 chain_indexer.go 源码解析 chain_indexer 顾名思义, 就是用来给区块链创建索引的功能。 之前在eth协议...

兄弟连区块链入门教程
27分钟前
2
0
社会化分享插件集成分享

一.前提摘要 社会化分享每个app必备的推广需求,无论是拉新,邀请,游戏奖励,等等都离不开分享的影子,下面我们介绍下社会化分享的插件; 首先要说下,现在的社交App,社区App等,国内外的...

佳妮
27分钟前
3
0
IOC 之 Spring 统一资源加载策略

统一资源:Resource org.springframework.core.io.Resource 为 Spring 框架所有资源的抽象和访问接口 它继承 org.springframework.core.io.InputStreamSource接口 作为所有资源的统一抽象,S...

职业搬砖20年
28分钟前
2
0
Python爬虫实战入门一:工具准备

一、基础知识 使用Python编写爬虫,当然至少得了解Python基本的语法,了解: 基本数据结构 数据类型 控制流 函数的使用 模块的使用 不需要过多过深的Python知识,仅此而已。 个人推荐《Pytho...

糖宝lsh
31分钟前
2
0
Hanlp中使用纯JAVA实现CRF分词

Hanlp中使用纯JAVA实现CRF分词 与基于隐马尔可夫模型的最短路径分词、N-最短路径分词相比,基于条件随机场(CRF)的分词对未登录词有更好的支持。本文(HanLP)使用纯Java实现CRF模型的读取与...

左手的倒影
34分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部