引言
《毀滅戰(zhàn)士4》(《DOOM》)是id Software制作、Bethesda公司發(fā)行的一款第一人稱射擊類游戲,doom是一款偽3D游戲,對(duì)于MCU的性能和資源要求也是挺高,需要的RAM根據(jù)分辨率也得幾M+。剛好HPM6750很滿足需求,于是樓主就想著移植體驗(yàn)下。
目前已經(jīng)移植了本體游戲,移植版本為V1.9,支持doom1,doom2,doom。加入觸摸交互,可玩性很大。音頻方面尚未適配,后續(xù)閑時(shí)可進(jìn)行移植通過DAO播放。
本文針對(duì)doom的移植進(jìn)行下相關(guān)說明。
由于SDK方面已經(jīng)做好了fafts適配,包括了SD卡和USB host U盤,這就給doom游戲文件卡外加載提供很大的方便性。另外RGB屏幕和觸摸gt911上,SDK也做好了相關(guān)移植工作,這就方便樓主進(jìn)行移植,減少了移植的開發(fā)難度。
總體而言,HPM6750作為游戲機(jī)相關(guān)開發(fā)是沒什么壓力的,刷屏幀率也可以在150fps+,加上觸摸交互也沒卡頓感受。
文件系統(tǒng)注冊(cè)
樓主使用的是SD卡,移植下官方的SDK下的fatfs例子,針對(duì)SD卡的例子,挪到本工程中,添加如下文件,并進(jìn)行掛載以及設(shè)置根目錄,這是比較重要的一點(diǎn),否則doom無法進(jìn)行加載文件導(dǎo)致失敗。需要前提保證文件系統(tǒng)移植成功。

接下來適配下doom的打開,關(guān)系,讀寫文件等操作到fatfs接口,在doom的源碼文件m_misc.c中。如圖所示:

RGB屏幕移植對(duì)接適配
SDK中有對(duì)lcdc接口的例子,方便進(jìn)行移植過來成接口,這里只需要一層圖像刷新,做一下接口即可。一個(gè)初始化以及刷新接口。

然后需要在建立個(gè)文件引出顯存地址,LCD的分辨率的寬度高度接口等。

觸摸交互對(duì)接適配
SDK已經(jīng)包含了gt911的驅(qū)動(dòng),只需要對(duì)接觸摸相關(guān)接口,然后分配下屏幕的各個(gè)觸摸區(qū)域分配。這里使用的分辨率為800*480,觸摸交互區(qū)域只使用600*480。觸摸區(qū)域分配如下:

有個(gè)table表可以根據(jù)自己情況進(jìn)行調(diào)整區(qū)域。如下:

內(nèi)存分配
由于doom需要相對(duì)比較大的內(nèi)存,不但需要自身的malloc分配的內(nèi)存,也需要給zoom分配相關(guān)的內(nèi)存。以此用起來大概也得需要10M+的內(nèi)存,剛好HPM6750evkmini板載了16M的SDRAM,也就極大的滿足了內(nèi)存需要。


以此,doom移植工作整體完成,燒錄下看下現(xiàn)象。不出意外的話大致都可以上手了。
可以進(jìn)行動(dòng)態(tài)加載游戲文件,不過目前樓主使用定死方式,改動(dòng)文件修改以下即可:

以下為內(nèi)容展示
本篇內(nèi)容轉(zhuǎn)自EEWORLD@RSCN源代碼分享:https://gitee.com/RCSN/hpm6750evkmini_demo/tree/doom_for_hpm6750/
-
mcu
+關(guān)注
關(guān)注
147文章
18924瀏覽量
398084
發(fā)布評(píng)論請(qǐng)先 登錄
先楫方案 | LED車尾燈純硬件高刷新率解決方案
經(jīng)驗(yàn)分享 | eclipse搭建先楫開發(fā)環(huán)境
KiDoom:在電路板上玩《毀滅戰(zhàn)士》
先楫半導(dǎo)體榮膺“年度優(yōu)秀AI機(jī)器人創(chuàng)新產(chǎn)品獎(jiǎng)” | “芯”動(dòng)力賦能產(chǎn)業(yè)升級(jí)
先楫半導(dǎo)體生態(tài)日成功舉辦,高性能RISC-V MCU開發(fā)者共筑新生態(tài)
先楫半導(dǎo)體完成B+輪融資,中移和創(chuàng)投資加持
元禾控股投資先楫半導(dǎo)體:國(guó)產(chǎn)高性能MCU駛?cè)霗C(jī)器人控制“快車道”
上榜福布斯:先楫半導(dǎo)體入選亞洲百家最具潛力企業(yè)《Forbes Asia 100 to Watch》
先楫半導(dǎo)體高性能MCU入駐立創(chuàng)商城,國(guó)產(chǎn)芯勢(shì)力再添新動(dòng)能
先楫半導(dǎo)體HPM6E8Y:先楫實(shí)時(shí)控制芯片驅(qū)動(dòng)的機(jī)器人關(guān)節(jié)“芯”時(shí)代
【強(qiáng)勢(shì)上新】HPM5E00:EtherCAT運(yùn)動(dòng)控制MCU,先楫半導(dǎo)體再拓工業(yè)總線產(chǎn)品新版圖
【強(qiáng)勢(shì)上新】HPM5E00:EtherCAT運(yùn)動(dòng)控制MCU,先楫半導(dǎo)體再拓工業(yè)總線產(chǎn)品新版圖
瓦特!?先楫的MCU還能打毀滅戰(zhàn)士?
評(píng)論