[转]我也玩 PSP 开发! —— PSP开发环境 简介

news/2024/9/16 7:45:21 标签: patch, 编译器, gcc, installer, freebsd, linux
      放假了,计划每天接老婆回家,老婆心疼我,怕我路上寂寞,把她的PSP给了我玩,没玩两天我就开始难以控制的想折腾了,PSP这么强大的功能(还支持WIFI,给我一个震撼!),就想看看再上面的开发。于是就开始上网找PSP的SDK。总结了一下,如下:

     PSP的官方SDK应该是收费,网上找不到,只能找到第三方的SDK(莫非反向工程弄出来的,太神奇了!?),网上谈论的最多有两个,一个是 ps2dev.com发出来的psptoolchain,还有就是devkitpro,后来发现,devkitpro就是把psptoolchain打包 了一下,方便很多。


psptoolchain

介绍:
        对于玩过嵌入式的朋友来说比较好理解,就是一个交叉编译器,一个在你主机上运行编译PSP可执行文件的GCC编译器(PSP好像是MIPS架构的),是由binutils+gcc+newlib组成。

安装:
        由binutils+gcc+newlib组成,那不用说当然是POSIX环境开发了,你可以装一个POSIX标准的os。选择很多啊,linuxfreebsd,cgywin都可以(或者你用什么稀有的系统也可以),我用的是linux(ubuntu7.10)。

步骤1:下载!(有点废话),可以从ps2dev.com下载最新的版本。(很小,下载的时候,我在怀疑是不是假的啊!)

步骤2:解包,方法我不说了。。。说说里面的文件,揭开后你会发现一些patch还有一些脚本,那些patch就是为了修改binutils和gcc编译器的,让他们可以编译PSP的可执行文件,还有一个重要的脚本就是toolchain.sh,执行这个安装!

步 骤3:安装,本来这个没啥可说的,就是看字幕一屏一屏滚啊!可就是让我碰到了错误!在编译binutils时出现了错误,说找不到psp参数什么的,经过 我分析的toolchain.sh,它会去到网上下载binutils,gcc等源码包,然后解包,编译,可是我发现它会去检查最新的patch,结果它 下载了一个空的binutils的patch,最后binutils根本就没有被添加psp相关的内容,导致编译失败!,解决办法有两个一个是修改 toolchain.sh,我比较懒。。。还是用第二个比较土的办法,第二个就是当脚本执行完下载patch后,开始解压源码包这时候,你可以用开始下载 的sdk中自带的patch再拷回去,这样就不会出错了,其他的patch我也这样重新覆盖了,最后成功编译了!

步骤4:忘记了还有环境变量!所有文件被安装在/usr/local/pspdev下,将其中/bin加入到PATH当中,这样才能使用psp的编译器!也不多说了,有经验的人都知道怎么弄。

步骤5:写个helloworld吧,网上很多了,我就看的写了。


devkitpro

介绍:
        这个是宝贝!对于一些机子不太好的同学们和初学的朋友们,用这个比较好,一个是在windows上运行,而且编译一遍gcc可要用不少时间呢,而 devkitpro是将psptoolchain编译好了打包起来,还是自带一个很小的类似cgywin的posix系统,这样还免去安装一个 cgywin(cgywin也不小呢),而且devkitpro不仅支持PSP,还支持ARM开发,好东西啊!

安装:
       这个不用多说了有windows installer,下一步就ok了。
       而且网上有人写了教程,可以用vs 2005去开发psp,简单的配置一下vs就好了,linux下确实没有这样的开发环境啊!(eclipse也还可以,也有狂热爱好者用vi,emacs什么的)



      以上就是开发环境的介绍了,毕竟是第三方的SDK,公布出来的API也很有限,而且文档也不全,倒是可以开发一些基本的程序,还有就是有很多开源的图形 库,可以方便开发PSP游戏,好像SDL有psp的移植版本,你要是牛人自己移植一些代码库也成,就介绍这么多了! 

http://www.niftyadmin.cn/n/1414259.html

相关文章

numpy中数据拼接的方法

a np.floor(20 * np.random.random((2,2))) b np.floor(20 * np.random.random((2,2))) c np.floor(20 * np.random.random((2,2))) print(a) print(b) print(c) [[ 8. 2.] [16. 15.]] [[ 7. 0.] [10. 12.]] [[ 3. 11.] [15. 4.]] #方法一, print(np.r_[a,b,…

[转]我也玩PSP开发!(2)—— PSPSDK示例 源码分析

放假啊,这叫玩啊,天天不务正业,还玩些可能和未来工作无关的技术!内心充满了罪恶感啊 写HelloWorld太无聊了,转了一圈PSPSDK发现有自带sample,方便快速上手的好东西,位置在开发包/psp/sdk/sample…

.pem引发的血案

2019独角兽企业重金招聘Python工程师标准>>> 做各种第三方支付的时候,下载来的证书是.pem后缀的,很好奇这到底是个什么玩意,于是...一场惨绝人寰学习过程开始了... 先说PEM,最初是为了增强邮件安全,将X.509…

opengl 保存渲染好的图像

在前面的文章中,我已经可以将媒体文件通过opengl来进行显示。 opengl 在显示的YUV视频序列上画多个框 opengl 显示BMP图像 如果希望将blend,或者其他方法处理过之后的图像数据保存为图像文件,该如何做呢? 这个时候我们就要用到…

中间人工具---MITMF

MITMF: 强大的工具Mitmf 是一款用来进行中间人攻击的工具。它可以结合 beef 一起来使用,并利用 beef 强大的 hook 脚本来控制目标客户端。 MITMF 使用python编写。工具的作者是byt3bl33d3r,GitHub项目地址: https://github.com/byt3bl33d3r/M…

数据传输中的成帧

什么是数据传输中的成帧 数据传输中的成帧 成帧技术是一种用来在一个比特流内分配或标记信道的技术,为电信提供选择基本的时隙结构和管理方式、错误隔离和分段传输协议的手段。两个计算机或设备之间的点到点的连接中包括一根电线,在这根电线中数据作为位流传输。但是…

opengl GLSL宏加载shader source

在opengl shader的编写过程中,常用的两种方式是: 将shader 定义为字符串,然后使用glShaderSource加载 static const char *vs "attribute vec4 vertexIn;\n""attribute vec2 textureIn;\n""varying vec2 textureOu…

DAC相关知识点

1.回放数据64bit的数据来源有两个地方: A——ROM波形数据表(数据来源可由dds产生或者matlab产生,本实际项目选择由dds产生的数据:通过写地址出来相应频率的波形)。 B——预留的接口给客户用来回访他们的I/Q数据 &am…