uclinux上任天堂游戏模拟器移植

news/2024/10/18 2:27:36/
uclinux和linux的区别我就不用多说了,uclinux是专门为没有MMU的cpu而准备的。以下两点却别会影响到我们的移植。


1.uclinux生成的目标文件格式是flat,可以在裸机上跑.uclinux和ARM7可能只能运行这种格式的程序,连接时需要加-elf2flat选项,否则是无法运行的,我们的开发板加上-Wl,-elf2flt="-s32768"即可


2.arm-elf使用的库是uclibc/uc-libc,而arm-linx使用的是glibc,故而在arm-elf的时候没有zlib的。所以要另外移植。



以上步骤和linux上差不多。

1.移植sdl,sdl的video其中之一的实现的方法是framebuffer,不巧的是我们的开发板LCD不支持framebuffer,而framebuffer也是QT,minigui移植的基础。麻烦就出来了,如果只是想移植游戏模拟器那大可抛弃SDL的video,自己另外写库。但是移植SDL是必要的,因为SDL还有其他的库是游戏模拟器所依赖的。
1)解压fceu
2)cd fceu
3)NM=arm-elf-nm LD=arm-elf-ld CC=arm-elf-gcc CXX=arm-elf-g++ RANLIB=arm-elf-ranlib AR=arm-elf-ar ./configure  --disable-ipod --enable-video-fbcon --target=arm-elf --host=arm-elf --prefix=/home/hansonlu/resp/source/SVN_HighwayStar/game/SDL-1.2.13/install
4)make;make install
5)cd test
6)NM=arm-elf-nm LD=arm-elf-ld CC=arm-elf-gcc CXX=arm-elf-g++ RANLIB=arm-elf-ranlib AR=arm-elf-ar ./configure --target=arm-elf --host=arm-elf --prefix=/home/hansonlu/resp/source/SVN_HighwayStar/game/SDL-1.2.13/install

PS1.test目录下有一些DEMO可以验证SDL是否移植成功,记得在链接的时候加上-Wl,-elf2flt="-s32768"。
PS2.--enable-video-fbcon,因为在./configure的时候,如果交叉编译器是arm-elf,是不会去检查fbcon,所以需要手动修改./configure,具体的需要修改哪里,我没有详细看过。你自己动手吧。因为我后来舍弃了SDL的VEDIO,所以没有去研究这个。

2.移植zlibc

export CC=arm-elf-gcc
./configure -shared --prefix=/home/hansonlu/resp/source/SVN_HighwayStar/armutils_2.5.113.0/toolchain
make;make install

prefix是交叉编译器所在的目录,也可以是其他的目录,但是一定把相应的文件要copy到交叉编译器所在的目录。


3.移植fceu
去掉SDL关于video部分,用自己的板子上支持的输出方式,需要修改的文件是:
fceu/src/drivers/pc/sdl-video.c
fceu/src/drivers/pc/main.c
fceu/src/drivers/pc/input.c


./configure --host=arm-elf --with-sdl-prefix=/home/hansonlu/resp/source/SVN_HighwayStar/game/SDL-1.2.13/install --prefix=/home/hansonlu/resp/source/SVN_HighwayStar/game/fceu/install

记得在链接的时候加上-Wl,-elf2flt="-s32768",修改makefile文件src/makefile在$link。。。。最后面加上即可。

make;make install

4.运行fceu

tftp -b 1368 -g -r fceu 172.18.128.84
tftp -b 1368 -g -r a.nes 172.18.128.84
tftp -b 1368 -g -r 1.jpg 172.18.128.84
chmod +x fceu
./fceu -sound 0 -xscale 1 -yscale 1 -inputcfg gamepad1 a.nes


http://www.ppmy.cn/news/381728.html

相关文章

随身的娱乐!PPC游戏模拟器详细介绍[转贴]

原文:http://it.21cn.com/digital/PDA/2004/07/23/1669347_1.shtml 虽然我们常说不要游戏人生,但是在人生中玩游戏却会带给我们很大的乐趣。无论是早期的红白机还是现在的GBAboy及电脑游戏,都用它独特的方式让部分游戏迷为之倾倒。但更多的人…

用苹果M1电脑,打任天堂明星大乱斗,是一种怎样的体验?

明敏 发自 凹非寺量子位 报道 | 公众号 QbitAI 自从苹果M1发布以来,各种测评真是如潮水般涌来。 大家都想来康康性能如此强大的M1,天花板到底在哪里。 这不,任天堂模拟器Dolphin开发团队也来凑热闹了! 最近,他们测试了…

流行的任天堂电子游戏模拟器 Cemu 计划开源并支持 Linux

流行的任天堂电子游戏模拟器 Cemu 计划开源并支持 Linux 这的确是个好消息! 如果你喜欢玩复古游戏,你可能已经接触过复古游戏机模拟器。顺便说一句,所谓“模拟器Emulator”(仿真器)主要是指允许主机系统运行为另一系统…

管理类联考——逻辑——知识篇——第二章 模态命题(考1题)(以性质命题为基础)

第二章 模态命题(考1题)(以性质命题为基础) 一、模态命题 模态命题多指包含有“必然(一定)”或“可能”这两个模态词的狭义模态命题:必然命题或可能命题。 二、模态考点 联考中模态的考点比…

数字门户的创新引擎:小程序容器

小程序容器技术的发展为数字门户带来了许多机会和优势。通过引入第三方生态,数字门户可以快速丰富自身的功能和服务,提高用户留存率,并打造一个开放的生态系统。这种创新的技术手段让数字门户能够更灵活地满足用户多样化的需求,提…

frp实现内网穿透(内网服务器到公网访问的方案)

目录 背景: 一、frp的简介 二、Frp Server的配置 三.Frp Client的配置 背景: 我使用python写了一个http后端,如代码所示,ip为10.1.136.73,port为8000,现在需要把http后端在公网可以被使用。一个较简单的方案是通过frp实现内网…

索引介绍和基本使用

介绍 索引就是用来加速SQL查询的 由于索引也是需要存储成索引文件的,因此对索引的使用也会涉及磁盘I/O操作。如果索引创建过多,使用不当,会造成SQL查询时,进行大量无用的磁盘I/O操作,降低了SQL的查询效率&#xff0c…

docker-compose服务名称和容器名称区别

需求及结论 在docker-compose文件一般书写如下: version: 3.8 x-logging: &default-loggingoptions:max-size: "200m"max-file: "5"driver: json-file x-environment: &default-environmentTZ: Asia/ShanghaiLANG: C.UTF-8 services:…