阿里云服务器免费领卷啦。

捡代码论坛-最全的游戏源码下载技术网站!

 找回密码
 立 即 注 册

QQ登录

只需一步,快速开始

搜索
关于源码区的附件失效或欺骗帖, 处理办法
查看: 2597|回复: 1

SDL系列游戏在ARM上移植的实现

[复制链接]

4208

主题

210

回帖

12万

积分

管理员

管理员

Rank: 9Rank: 9Rank: 9

积分
126183
QQ
发表于 2017-5-3 09:50:09 | 显示全部楼层 |阅读模式
2 FriendlyARM与SDL游戏的介绍
1.FriendlyARM概念
FriendlyARM是一款以ARM11芯片(三星S3C6410)作为主处理器的嵌入式核心板,该CPU 基于 ARM1176JZF-S 核设计,内部集成了强大的多媒体处理单元,支持Mpeg4, H.264/H.263等格式的视频文件硬件编解码,可同时输出至LCD和TV显示;它还并带有 3D 图形硬件加速器,以实现 OpenGL ES 1.1 & 2.0 加速渲染,另外它还支持 2D 图形图像的平滑缩放,翻转等操作。FriendlyARM采用高密度 6 层板设计,尺寸为64 x 50mm,它集成了 128M/256M DDR RAM,SLC NAND Flash(256M/1GB)或 MLC NAND Flash(2GB)存储器,采用 5V 供电,在板 实现 CPU 必需的各种核心电压转换,还带有专业复位芯片,通过 2.0mm 间距的排针,引出各种常见的接口资源,以供不打算自行设计 CPU 板的开发者进行快捷的二次开发使用。
Tiny6410SDK 是采用FriendlyARM核心板的一款参考设计底板,它主要帮助开发者以此 为参考进行核心板的功能验证以及扩展开发。该底板具有三 LCD 接口、 4 线电阻触摸屏接口、 100M 标准网络接口、标准 DB9 五线串口、Mini USB 2.0 接口、USB Host 1.1、3.5mm 音频输 入输出口、标准 TV-OUT 接口、SD 卡座、红外接收等常用接口;另外还引出 4 路 TTL 串口, 另 1 路 TV-OUT、SDIO2 接口(可接 SD WiFi)接口等;在板的还有蜂鸣器、I2C-EEPROM、备 份电池、AD 可调电阻、8 个中断式按键等。 2.SDL系列游戏的基本介绍
SDL(Simple DirectMedia Layer)是一套开放源代码的跨平台多媒体开发库,使用 C 语言写成。SDL 提供了数种控制图像、声音、输出入的函数,让开发者只要用相同或是相似的代码就可以开发出跨多个平 台(Linux、Windows、Mac OS X 等)的应用软件。目前 SDL 多用于开发游戏、模拟器、媒体播放器等多媒体应用领域。
SDL 在结构上是将不同操作系统的库再包装成相同的函数,例如 SDL 在 Windows 平台上其实是 DirectX 的再包装,旧版本包装的是 DirectX 5,现时的版本(SDL 1.2)则是 DirectX 7。而在使用 X11 的 平台上(包括 Linux), SDL 则是与 Xlib 库沟通来输出图像。   
SDL 库分为 Video、Audio、CD-ROM、Joystick 和 Timer 等若干子系统,除此之外,还有一些单独 的官方扩充函数库。这些库由官方网站提供,并包含在官方文档中,共同组成了 SDL 的“标准库”:   
* SDL_image—支持时下流行的图像格式:BMP、PPM、XPM、 PCX、GIF、JPEG、PNG、TGA。      
* SDL_mixer—更多的声音输出函数以及更多的声音格式支持。      * SDL_net—网络支持。      
* SDL_ttf—TrueType 字体渲染支持。      * SDL_rtf—简单的 RTF 渲染支持。


  1.         var cpro_psid = "u2787156";
  2.         var cpro_pswidth = "966";
  3.         var cpro_psheight = "120";
复制代码


3 硬件部分实验内容
1. 阅读产品说明书,了解FriendlyARM的CPU速率,内存大小,屏幕分辨率,预装系统。
2. 因为之前是没有任何系统,不符合软件要求,故烧写适合FriendlyARM的Linux系统的镜像文件到开发板中,在其中,我采用的是制作SD卡启动盘的方式。
3. 制作SD卡启动,通过superboot软件将SD卡转换为特殊的SD卡启动。 4. 将要烧写的linux系统导入SD卡的Image目录之下。
5. 修改linux配置文件,编写ini文件,找到”OS=”,并改为”OS=Linux”,保存修改,取出 SD 卡插到开发板上。
6. 上电开机,将S1开关设置为“SD-BOOT“启动,同样的“滴”一声开始,同样的“滴滴”两声后更新完毕,因为我们制作的 Linu映像文件比较大,烧写时间比较长,整个过程 1 分钟左右。
7. 把开发板 S2 开关设置为”NAND”启动,这时重启系统就可以看到 Linux 已经被安装好,并且出现了校正界面。   
8. 开机出现以下画面,则烧写linux成功,硬件部分基本完成。
20170503094938.jpg
5 心得体会
其实,我自己是第一次使用嵌入式,之前只简单学习过单片机,对ARM可以说在研究生生涯之前完全没有任何概念,许多ARM常见知识都不知道。当初选择它作为题目,一方面是因为对游戏的喜爱,另一方面是因为缺少wifi等其他硬件,是在只有一块嵌入式板子的情况下做出来选择。为了完成这一份实验报告,找了许多资料,虽然我自己做的以软件为主,比较简单,但是我仍然感受到了它的复杂深奥。在实际操作中也遇到了各种不懂的难题,比如烧写镜像文件到开发板之中,我曾经花费几个下午一无所获,全都烧写失败,后来才发现是我自己编写ini配置文件错误,每一次ARM开机都因为屏幕读取失败,导致一直没有开机画面。并且实验的最后一步,经常出错,开机之后没有任何提示,后来才发现是修改开机启动项时,由于linux系统保护,复制命令没有添加-f强制复制,不允许我修改开机启动项,每次开机都是原来的启动项而失败。虽然过程很漫长,但是当我看到仙剑这一款游戏启动时,还是觉得物有所值。  6
结论
通过查看学习资料以及相关的文献,我对嵌入式学习的应用有了一定程度上的了解。在此基础之上,我设计开发了这个SDL游戏移植。
具体来说,我在开发时使用的是烧录linux系统到开发板之中,编写SDL代码,生成可执行文件。通过一段时间的学习和研究后,我终于完成了《仙剑奇侠传》游戏能够在FriendlyARM上运行。
在设计和实现这个游戏移植的过程中,我学习到了很多的关于嵌入式的知识。大致上了解了它的特点,功能以及如何实现我深刻体会到了开发必须要建立在认真分析的前提下,以规范化的研究为依托。完整的SDL游戏移植应该是一个庞大而复杂的系统,但是,我所设计的这个移植只能实现一些简单的功能,想要进一步扩展完善它的功能,还需要进一步的学习和研究。
总而言之本文设计的SDL系列游戏在ARM上的移植: 1.烧写了linux到嵌入式开发板之上。
2.实现了《仙剑奇侠传一》在FriendlyARM上的运行。
3.用户界面友好,界面清晰易懂,系统操作起来十分简单,玩起来会很容易。
虽然本系统实现了游戏移植的一些基本功能,但还有很多想要改进和扩展的地方。比如:游戏不能存档。若进一步开发该移植,可以在此基础上提供更多的信息。

  1. 原始地址:https://wenku.baidu.com/view/8d74630c905f804d2b160b4e767f5acfa1c7838b.html
复制代码


捡代码论坛-最全的游戏源码下载技术网站! - 论坛版权郑重声明:
1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
2、本站所有主题由该帖子作者发表,该帖子作者与捡代码论坛-最全的游戏源码下载技术网站!享有帖子相关版权
3、捡代码论坛版权,详细了解请点击。
4、本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。
5、若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。 我们不承担任何技术及版权问题,且不对任何资源负法律责任。
6、如无法链接失效或侵犯版权,请给我们来信:jiandaima@foxmail.com

回复

使用道具 举报

1

主题

13

回帖

53

积分

注册会员

Rank: 2

积分
53
发表于 2017-5-8 21:40:05 | 显示全部楼层
登录可见评论
回复

使用道具 举报

*滑块验证:
您需要登录后才可以回帖 登录 | 立 即 注 册

本版积分规则

技术支持
在线咨询
QQ咨询
3351529868

QQ|手机版|小黑屋|捡代码论坛-专业源码分享下载 ( 陕ICP备15015195号-1|网站地图

GMT+8, 2024-4-27 06:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表