文档章节

PSP开发简明教程(2)

龙之田
 龙之田
发布于 2014/04/29 00:02
字数 1643
阅读 729
收藏 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
OpenBoR

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

匿名
2008/11/11
15.2K
0
49个python经典电子书

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

天意1
2016/01/20
0
0
PSP游戏开发引擎--NGE2

nge2(nge是not a game engine的递归缩写,nge第一版原为制作中国象棋psp所写,第二版得到了更全面的强化)是psp/win开发的一个程序库,不是一个游戏引擎,设计思想是简单易用,用来做各个显...

匿名
2010/03/17
2.7K
0
游戏开发之--开源软件1--cocos2d-x(c++)|openbor

Cocos2d-x 是一个支持多平台的 2D 手机游戏引擎,使用 C++ 开发,基于OpenGL ES,基于Cocos2d-iphone,支持 WOPhone, iOS 4.1, Android 2.1 及更高版本, WindowsXP & Windows7,WindowsPhon...

donghan
2013/11/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

java框架学习日志-7(静态代理和JDK代理)

静态代理 我们平时去餐厅吃饭,不是直接告诉厨师做什么菜的,而是先告诉服务员点什么菜,然后由服务员传到给厨师,相当于服务员是厨师的代理,我们通过代理让厨师炒菜,这就是代理模式。代理...

白话
今天
12
0
Flink Window

1.Flink窗口 Window Assigner分配器。 窗口可以是时间驱动的(Time Window,例如:每30秒钟),也可以是数据驱动的(Count Window,例如:每一百个元素)。 一种经典的窗口分类可以分成: 翻...

满小茂
今天
5
0
my.ini

1

architect刘源源
今天
7
0
docker dns

There is a opensource application that solves this issue, it's called DNS Proxy Server It's a DNS server that solves containers hostnames, if could not found a hostname that mat......

kut
今天
8
0
寻找数学的广度——《这才是数学》读书笔记2700字

寻找数学的广度——《这才是数学》读书笔记2700字: 文|程哲。数学学习方式之广:国内外数学教育方面的专家,进行了很多种不同的数学学习方式尝试,如数学绘本、数学游戏、数学实验、数学步道...

原创小博客
今天
15
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部