看過前兩期的朋友已經知道了Retroarch模擬器的遊戲列表的編寫格式,也可以自己手動編寫屬於自己的遊戲列表了。但是這樣的編寫方式工作量是比較大的,即便我們進行復制貼上也需要耗費大量的人力時間,那有沒有更為簡便的方法呢?當然有!讓遊戲列表自動生成!
剛開始接觸Retroarch模擬器的時候我特意花時間在網上搜索相關的遊戲列表編輯器,不過很遺憾國內似乎沒人做這個東西,找到的都是跟Retroarch不沾邊的編輯器。
倒是國外有個大神做了一個單機網頁版的,不太友好的是這個編輯器是編輯lpl檔案的,所以你必須自己先做一個列表出來,再用它來編輯裡面的資料。
開啟編輯器後載入列表可以選擇遊戲名稱、遊戲路徑以及核心名稱(前提要保證lpl檔案程式碼沒有錯誤):
編輯好遊戲的相關資訊後點擊“儲存列表”,可以選擇模擬器平臺,windows版本可以根據實際選擇,安卓版就選擇/data/data/com.retroarch/cores/*_libretro_android.so
另外有個問題是這款編輯器並沒有更新(我是沒找著),而Retroarch模擬器一直都有版本更新以及核心的更替,這款編輯器已有的核心名稱及路徑可能與現版本模擬器對應不上導致遊戲執行失敗。雖然有程式設計基礎可以自己更改其中的內容,不過對於普通大眾還是不太友好。有興趣的朋友可以搜尋“Retroarch模擬器列表編輯器”研究下。
用這款列表編輯器幾天後我開始考慮自己寫一個,本來想用Python,畢竟語法簡單有效率,後來想想還是用批處理方便些,批處理的好處就在這裡,只要家裡有電腦,不需要下載編輯器也不需要程式設計基礎,拿來就可以用!
我們已經知道列表的編寫是一個重複迴圈的過程,因此,只需要一個簡單的批處理就可以幫我們快速完成這個工作。
程式碼如下:
@echo off & setlocal EnableDelayedExpansion
rem HuanYingGuanZhu JinRiTouTiao TuLeShi
dir *.* /b>filename1.tmp
set name=%~n0
set str="filename1.tmp"
findstr /v %name% "filename1.tmp">filename2.tmp
findstr /v %str% "filename2.tmp">filename.tmp&del /s/q filename1.tmp filename2.tmp
echo {"items":[>liebiao1.tmp
(for /f "delims=" %%a in (filename.tmp)do (
echo {"path":"%%~fa","label":"%%~na","core_path":"DETECT","core_name":"DETECE","crc32":"DETECT","db_name":"DETECT"},
))>>liebiao1.tmp&del /s/q filename.tmp
(for /f "delims=" %%x in (liebiao1.tmp) do (
set "str=%%x"
set "str=!str:\=/!"
echo !str!))>>liebiao2.tmp&del /s/q liebiao1.tmp
for /f "delims= tokens=*" %%a in (liebiao2.tmp) do (
echo;!var!
set var=%%a)>>liebiao.txt
for /f "delims==" %%a in (liebiao2.tmp) do (
set lastline=%%a)
echo %lastline:~0,-1% >>liebiao.txt
echo ]}>>liebiao.txt
del /s/q liebiao2.tmp
使用方法:
1、在電腦上新建一個txt文字檔案(檔名稱用英文,原因後面會介紹),雙擊開啟後把程式碼複製貼上進去並儲存為cmd檔案(也就是把XXX.txt改為XX.cmd),這樣一個“Retroarch模擬器遊戲列表自動生成器”就完成了!!
2、把“列表自動生成器”複製到存放遊戲的資料夾裡,雙擊執行。
這裡假設在我的電腦“D:\RetroArch\ROMS\PCE”資料夾下有10個遊戲,我需要把這10個遊戲做成列表,把“Retroarch模擬器遊戲列表自動生成器”複製到這個資料夾下直接執行就行。
注意:CMD檔案需要系統管理員許可權執行
執行成功後在該資料夾下秒生成一個liebiao.txt檔案:
雙擊開啟,裡面已經自動生成了遊戲列表程式碼。
但這時候是txt檔案,需要將它改為模擬器的遊戲列表檔案格式。
3、開啟HBuiderX程式碼編輯器,按照上兩篇的方法新建一個空白HTML檔案到模擬器playlist資料夾,並改名為xx.lpl,將liebbiao.txt檔案的內容複製貼上並儲存。
此時PCE資料夾的遊戲列表就做好了,開啟Retroarch模擬器選擇該列表的其中一個遊戲並執行(選擇核心執行的方法之前也有介紹)
執行成功之後退出Retroarch模擬器,再用HBuiderX開啟PCE.lpl會發現剛才執行的遊戲模擬器已經幫我們填好了核心名稱和路徑(而且格式也改了),其他遊戲替換核心路徑、名稱即可。
最後,說下為什麼開始我們做的“Retroarch模擬器遊戲列表自動生成器”要用英文名稱,那是因為我在程式碼中引用了cmd檔案本身的名稱,而TXT文字預設儲存編碼為UTF-8,如果我們使用的是中文名稱,在開啟後會顯示亂碼。
我們可以在windows自帶的記事本儲存檔案時選擇編碼方式為ANSI,這樣就可以使用中文名稱了。