引言
《毀滅戰士4》(《DOOM》)是id Software制作、Bethesda公司發行的一款第一人稱射擊類游戲,doom是一款偽3D游戲,對于MCU的性能和資源要求也是挺高,需要的RAM根據分辨率也得幾M+。剛好HPM6750很滿足需求,于是樓主就想著移植體驗下。
目前已經移植了本體游戲,移植版本為V1.9,支持doom1,doom2,doom。加入觸摸交互,可玩性很大。音頻方面尚未適配,后續閑時可進行移植通過DAO播放。
本文針對doom的移植進行下相關說明。
由于SDK方面已經做好了fafts適配,包括了SD卡和USB host U盤,這就給doom游戲文件卡外加載提供很大的方便性。另外RGB屏幕和觸摸gt911上,SDK也做好了相關移植工作,這就方便樓主進行移植,減少了移植的開發難度。
總體而言,HPM6750作為游戲機相關開發是沒什么壓力的,刷屏幀率也可以在150fps+,加上觸摸交互也沒卡頓感受。
文件系統注冊
樓主使用的是SD卡,移植下官方的SDK下的fatfs例子,針對SD卡的例子,挪到本工程中,添加如下文件,并進行掛載以及設置根目錄,這是比較重要的一點,否則doom無法進行加載文件導致失敗。需要前提保證文件系統移植成功。
接下來適配下doom的打開,關系,讀寫文件等操作到fatfs接口,在doom的源碼文件m_misc.c中。如圖所示:
RGB屏幕移植對接適配
SDK中有對lcdc接口的例子,方便進行移植過來成接口,這里只需要一層圖像刷新,做一下接口即可。一個初始化以及刷新接口。
然后需要在建立個文件引出顯存地址,LCD的分辨率的寬度高度接口等。
觸摸交互對接適配
SDK已經包含了gt911的驅動,只需要對接觸摸相關接口,然后分配下屏幕的各個觸摸區域分配。這里使用的分辨率為800*480,觸摸交互區域只使用600*480。觸摸區域分配如下:
有個table表可以根據自己情況進行調整區域。如下:
內存分配
由于doom需要相對比較大的內存,不但需要自身的malloc分配的內存,也需要給zoom分配相關的內存。以此用起來大概也得需要10M+的內存,剛好HPM6750evkmini板載了16M的SDRAM,也就極大的滿足了內存需要。
以此,doom移植工作整體完成,燒錄下看下現象。不出意外的話大致都可以上手了。
可以進行動態加載游戲文件,不過目前樓主使用定死方式,改動文件修改以下即可:
以下為內容展示
本篇內容轉自EEWORLD@RSCN源代碼分享:https://gitee.com/RCSN/hpm6750evkmini_demo/tree/doom_for_hpm6750/
-
mcu
+關注
關注
146文章
17134瀏覽量
351017
發布評論請先 登錄
相關推薦
評論