引言
《毀滅戰(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)行移植通過(guò)DAO播放。
本文針對(duì)doom的移植進(jìn)行下相關(guān)說(shuō)明。
由于SDK方面已經(jīng)做好了fafts適配,包括了SD卡和USB host U盤,這就給doom游戲文件卡外加載提供很大的方便性。另外RGB屏幕和觸摸gt911上,SDK也做好了相關(guān)移植工作,這就方便樓主進(jìn)行移植,減少了移植的開(kāi)發(fā)難度。
總體而言,HPM6750作為游戲機(jī)相關(guān)開(kāi)發(fā)是沒(méi)什么壓力的,刷屏幀率也可以在150fps+,加上觸摸交互也沒(méi)卡頓感受。
文件系統(tǒng)注冊(cè)
樓主使用的是SD卡,移植下官方的SDK下的fatfs例子,針對(duì)SD卡的例子,挪到本工程中,添加如下文件,并進(jìn)行掛載以及設(shè)置根目錄,這是比較重要的一點(diǎn),否則doom無(wú)法進(jìn)行加載文件導(dǎo)致失敗。需要前提保證文件系統(tǒng)移植成功。
接下來(lái)適配下doom的打開(kāi),關(guān)系,讀寫文件等操作到fatfs接口,在doom的源碼文件m_misc.c中。如圖所示:
RGB屏幕移植對(duì)接適配
SDK中有對(duì)lcdc接口的例子,方便進(jìn)行移植過(guò)來(lái)成接口,這里只需要一層圖像刷新,做一下接口即可。一個(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)存。以此用起來(lái)大概也得需要10M+的內(nèi)存,剛好HPM6750evkmini板載了16M的SDRAM,也就極大的滿足了內(nèi)存需要。
以此,doom移植工作整體完成,燒錄下看下現(xiàn)象。不出意外的話大致都可以上手了。
可以進(jìn)行動(dòng)態(tài)加載游戲文件,不過(guò)目前樓主使用定死方式,改動(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)注
146文章
17173瀏覽量
351655
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論