以前 0.65 那時複製到光碟直接就能用, 現在不能用.
因為不知道 %CDROM% 能不能在 Mameplus 的 .ini 裏用, 乾脆用 sed 改檔案.
把 mameplus_bin_x86-0.137u1r4634-20100327 檔案解壓縮到 O:\GAME\MAME-DVD\
mameplus_bin_x86-0.137u1r4634-20100327 這個目錄裏建好目錄
artwork
bkground
cabinets
cfg
cheat
cpanel
docs
flyers
icons
ini
inp
lang
marquees
nvram
pcb
roms
samples
snap
titles
把要帶著走的檔案作一個列表
list.txt 內容為檔名
19xxa
19xxb
600
2020bbh
MAME.txt 內容為目錄
artwork
bkground
cabinets
cfg
cheat
cpanel
docs
flyers
icons
ini
inp
lang
marquees
nvram
pcb
roms
samples
snap
titles
list.bat
for /F %%i in (list.txt) do call mameCopy.bat %%i
MAMECopy.BAT ps:例如完整的 MAME 0.137 放在 O:\GAME\mameplus_bin_x86-0.137u1r4634-20100327
for /F %%i in (MAME.txt) do copy O:\GAME\mameplus_bin_x86-0.137u1r4634-20100327\%%i\%1.* O:\GAME\MAME-DVD\%%i\%1.*
把 list.txt MAME.txt list.bat MAME.bat 隨便放一起, 只要執行 list.bat 就自動複製過去.
最後把 BIOS 放進 roms 裏
然後在光碟不能直接執行所以要修改一下
MAME.bat
REM @ECHO OFF
REM CLS
SET now=%CD%
ECHO %now%
PATH=%PATH%;%now%;
%HOMEDRIVE%
cd "%USERPROFILE%"
XCOPY %now:~0,2%\cfg "%USERPROFILE%\cfg" /S /E /I /Y
XCOPY %now:~0,2%\hi "%USERPROFILE%\hi" /S /E /I /Y
XCOPY %now:~0,2%\ini "%USERPROFILE%\ini" /S /E /I /Y
XCOPY %now:~0,2%\memcard "%USERPROFILE%\memcard" /S /E /I /Y
XCOPY %now:~0,2%\nvram "%USERPROFILE%\nvram" /S /E /I /Y
if not exist mame1.ini XCOPY %now:~0,2%\.mamepgui "%USERPROFILE%\.mamepgui" /S /E /I && copy %now:~0,2%\mame.ini "%USERPROFILE%\mame1.ini"
if exist mame1.ini type mame1.ini | %now%\sed -e "s/XXXXX/%now:~0,2%/g"> mame.ini
if exist .mamepgui\mamepgui1.ini TYPE .mamepgui\mamepgui1.ini | sed -e "s/XXXXX/%now:~0,2%/g"> .mamepgui\mamepgui.ini
CALL %now%\mamepgui1.exe
del .mamepgui /S/Q
rmdir .mamepgui\cache
rmdir .mamepgui
del mame*.ini
del cfg /S/Q
del hi /S/Q
del ini /S/Q
del memcard /S/Q
del nvram /S/Q
rmdir cfg
rmdir hi
rmdir ini\source
rmdir ini
rmdir memcard
rmdir nvram
=============================================
mame.ini
#
# CORE CONFIGURATION OPTIONS
#
driver_config mame,plus,console
#
# CORE SEARCH PATH OPTIONS
#
rompath XXXXX\roms
hashpath hash
samplepath XXXXX\samples
artpath XXXXX\artwork
ctrlrpath XXXXX\ctrlr
inipath ini
fontpath .;XXXXX\lang
cheatpath XXXXX\cheat
crosshairpath crosshair
langpath XXXXX\lang
ipspath XXXXX\ips
#
# CORE OUTPUT DIRECTORY OPTIONS
#
cfg_directory cfg
nvram_directory nvram
memcard_directory memcard
input_directory XXXXX\inp
state_directory sta
snapshot_directory XXXXX\snap
diff_directory diff
comment_directory comments
hiscore_directory hi
#
# CORE FILENAME OPTIONS
#
command_file XXXXX\command.dat
hiscore_file XXXXX\hiscore.dat
============ 以下略 ===================
mamepgui1.ini
[General]
mame_binary=XXXXX/mamep.exe
cabinet_directory=XXXXX\\cabinets
cpanel_directory=XXXXX\\panel
flyer_directory=XXXXX\\flyers
marquee_directory=XXXXX\\marquees
pcb_directory=XXXXX\\pcb
title_directory=XXXXX\titles
icons_directory=XXXXX\\icons
background_directory=XXXXX\\bkground
folder_directory=XXXXX\\folders
background_file=XXXXX\\bkground.png
m1_directory=bin/m1
m1_language=en
ips_language=zh_TW
ips_relationship=1
gui_style=WindowsXP
language=zh_TW
history_file=XXXXX\\history.dat
story_file=XXXXX\\story.dat
mameinfo_file=XXXXX\\mameinfo.dat
window_geometry="@ByteArray(\x1\xd9\xd0\xcb\0\x1\0\0\xff\xff\xff\xfc\xff\xff\xff\xfc\0\0\x3#\0\0\x2=\0\0\0\r\0\0\0n\0\0\x3,\0\0\x2\x61\0\0\0\0\x2\0)"
window_state=@ByteArray(\0\0\0\xff\0\0\0\0\xfd\0\0\0\x2\0\0\0\0\0\0\0\x91\0\0\x1\xd5\xfc\x2\0\0\0\x1\xfc\0\0\0\x36\0\0\x1\xd5\0\0\0\xc4\0\xff\xff\xff\xfa\0\0\0\0\x2\0\0\0\x2\xfb\0\0\0\x18\0\x64\0w\0\x46\0o\0l\0\x64\0\x65\0r\0L\0i\0s\0t\x1\0\0\0\0\xff\xff\xff\xff\0\0\0S\0\xff\xff\xff\xfb\0\0\0\x4\0M\0\x31\x1\0\0\0\0\xff\xff\xff\xff\0\0\0\xc4\0\xff\xff\xff\0\0\0\x1\0\0\x1\x1e\0\0\x1\xd5\xfc\x2\0\0\0\x2\xfc\0\0\0\x36\0\0\0\xeb\0\0\0w\0\xff\xff\xff\xfa\0\0\0\0\x2\0\0\0\a\xfb\0\0\0&\0\x64\0o\0\x63\0k\0W\0i\0\x64\0g\0\x65\0t\0_\0S\0n\0\x61\0p\0s\0h\0o\0t\x1\0\0\0\0\xff\xff\xff\xff\0\0\0\x17\0\xff\xff\xff\xfb\0\0\0 \0\x64\0o\0\x63\0k\0W\0i\0\x64\0g\0\x65\0t\0_\0\x46\0l\0y\0\x65\0r\x1\0\0\0\0\xff\xff\xff\xff\0\0\0\x17\0\xff\xff\xff\xfb\0\0\0$\0\x64\0o\0\x63\0k\0W\0i\0\x64\0g\0\x65\0t\0_\0\x43\0\x61\0\x62\0i\0n\0\x65\0t\x1\0\0\0\0\xff\xff\xff\xff\0\0\0\x17\0\xff\xff\xff\xfb\0\0\0$\0\x64\0o\0\x63\0k\0W\0i\0\x64\0g\0\x65\0t\0_\0M\0\x61\0r\0q\0u\0\x65\0\x65\x1\0\0\0\0\xff\xff\xff\xff\0\0\0\x17\0\xff\xff\xff\xfb\0\0\0 \0\x64\0o\0\x63\0k\0W\0i\0\x64\0g\0\x65\0t\0_\0T\0i\0t\0l\0\x65\x1\0\0\0\0\xff\xff\xff\xff\0\0\0\x17\0\xff\xff\xff\xfb\0\0\0\x30\0\x64\0o\0\x63\0k\0W\0i\0\x64\0g\0\x65\0t\0_\0\x43\0o\0n\0t\0r\0o\0l\0 \0P\0\x61\0n\0\x65\0l\x1\0\0\0\0\xff\xff\xff\xff\0\0\0\x17\0\xff\xff\xff\xfb\0\0\0\x1c\0\x64\0o\0\x63\0k\0W\0i\0\x64\0g\0\x65\0t\0_\0P\0\x43\0\x42\x1\0\0\0\0\xff\xff\xff\xff\0\0\0\x17\0\xff\xff\xff\xfc\0\0\x1%\0\0\0\xe6\0\0\0w\0\xff\xff\xff\xfa\0\0\0\x4\x2\0\0\0\x6\xfb\0\0\0$\0\x64\0o\0\x63\0k\0W\0i\0\x64\0g\0\x65\0t\0_\0H\0i\0s\0t\0o\0r\0y\x1\0\0\0\0\xff\xff\xff\xff\0\0\0S\0\xff\xff\xff\xfb\0\0\0&\0\x64\0o\0\x63\0k\0W\0i\0\x64\0g\0\x65\0t\0_\0M\0\x41\0M\0\x45\0I\0n\0\x66\0o\x1\0\0\0\0\xff\xff\xff\xff\0\0\0S\0\xff\xff\xff\xfb\0\0\0*\0\x64\0o\0\x63\0k\0W\0i\0\x64\0g\0\x65\0t\0_\0\x44\0r\0i\0v\0\x65\0r\0I\0n\0\x66\0o\x1\0\0\0\0\xff\xff\xff\xff\0\0\0S\0\xff\xff\xff\xfb\0\0\0 \0\x64\0o\0\x63\0k\0W\0i\0\x64\0g\0\x65\0t\0_\0S\0t\0o\0r\0y\x1\0\0\0\0\xff\xff\xff\xff\0\0\0S\0\xff\xff\xff\xfb\0\0\0$\0\x64\0o\0\x63\0k\0W\0i\0\x64\0g\0\x65\0t\0_\0\x43\0o\0m\0m\0\x61\0n\0\x64\x1\0\0\0\0\xff\xff\xff\xff\0\0\0S\0\xff\xff\xff\xfb\0\0\0\x10\0\x64\0w\0G\0U\0I\0L\0o\0g\0\0\0\0\0\xff\xff\xff\xff\0\0\0U\0\xff\xff\xff\0\0\x1i\0\0\x1\xd5\0\0\0\x4\0\0\0\x4\0\0\0\b\0\0\0\b\xfc\0\0\0\x1\0\0\0\x2\0\0\0\x2\0\0\0\xe\0t\0o\0o\0l\0\x42\0\x61\0r\x1\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0\x1a\0t\0o\0o\0l\0\x42\0\x61\0r\0S\0\x65\0\x61\0r\0\x63\0h\x1\0\0\0\xb3\xff\xff\xff\xff\0\0\0\0\0\0\0\0)
option_geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x1\0\0\0\0\x1i\0\0\0\x80\0\0\x3\x96\0\0\x2\x63\0\0\x1m\0\0\0\x9e\0\0\x3\x92\0\0\x2_\0\0\0\0\0\0)
option_column_state=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x1\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x1z\0\0\0\x2\x1\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\x64\xff\xff\xff\xff\0\0\0\x81\0\0\0\0\0\0\0\x2\0\0\0\xc2\0\0\0\x1\0\0\0\0\0\0\0\xb8\0\0\0\x1\0\0\0\0)
column_state="@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\x1\0\0\0\a\0\0\0\0\0\0\0\x1\0\0\0\x5\0\0\0\x3\0\0\0\x4\0\0\0\x2\0\0\0\x6\0\0\0\a\0\0\0\0\0\0\0\x1\0\0\0\x5\0\0\0\x3\0\0\0\x4\0\0\0\x2\0\0\0\x6\0\0\0\a\x18\0\0\0\x2\0\0\0\x4\0\0\0\x43\0\0\0\x3\0\0\0\x45\0\0\x1\x91\0\0\0\a\x1\x1\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\x64\xff\xff\xff\xff\0\0\0\x81\0\0\0\0\0\0\0\x6\0\0\0\xad\0\0\0\x1\0\0\0\0\0\0\0;\0\0\0\x1\0\0\0\0\0\0\0$\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x2\0\0\0\0\0\0\0!\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0)"
sort_column=0
sort_reverse=0
vertical_tabs=1
stretch_screenshot_larger=1
enforce_aspect=1
zoom_icon=1
local_game_list=1
background_stretch=1
default_game=fireone
default_folder=/All Arcades
list_mode=Grouped
hide_folders=All Games
folder_flag=0
===============================================
XXXXX 為等一下要用 sed 替代用的, 所以把有檔案的目錄指到光碟, 沒檔案的目錄就可以不用加XXXXX\
這樣 O:\GAME\MAME-DVD\ 目錄應該有
.mamepgui <====== 裡面有 mamepgui1.ini 和 cache 目錄
artwork
AUTORUN.INF
bkground
cabinets
cfg
cheat
cheat.zip
command.dat
cpanel
diff
docs
flyers
history.dat
icons
ini
inp
lang
MAME.BAT
mame.ini
MAME.vbs
mameinfo.dat
mamep.exe
mamep.whatsnew.txt
mamepgui.exe
mamepgui.whatsnew.txt
mamepgui1.exe
marquees
nvram
pcb
roms
samples
sed.exe
sleep.exe
snap
story.dat
titles
Tools
===============================================
Tools 是空間還有剩順便把一些工具丟進去把光碟塞滿為止.
AUTORUN.INF 內容為
[AutoRun]
open=mamepgui.exe
icon=mamepgui.exe,0
mamepgui.exe 是我用 AutoIt v3 編譯執行 cscript MAME.vbs
MAME.au3 ======> 編譯後更名為 mamepgui.exe
Run("c:\windows\system32\Cscript.exe MAME.vbs", "", @SW_MAXIMIZE)
MAME.vbs <====== 這個是以前 winsnort 裏執行 snort.bat 不出現命令提示字元的視窗
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "MAME.bat", 0
Set WshShell = Nothing
原來的 mamepgui.exe 我更名為 mamepgui1.exe 所以最後
CALL %now%\mamepgui1.exe
光碟根目錄應該是和上面 O:\GAME\MAME-DVD\ 內容相同
.mamepgui
artwork
AUTORUN.INF
bkground
cabinets
cfg
cheat
cheat.zip
command.dat
cpanel
diff
docs
flyers
history.dat
icons
ini
inp
lang
MAME.BAT
mame.ini
MAME.vbs
mameinfo.dat
mamep.exe
mamep.whatsnew.txt
mamepgui.exe
mamepgui.whatsnew.txt
mamepgui1.exe
marquees
nvram
pcb
roms
samples
sed.exe
sleep.exe
snap
story.dat
titles
Tools
測試後可以正常執行 退出遊戲時會有錯誤, 因為光碟不能寫進去所以就點不回報.
我試燒一片 只有幾個 free 的 rom 然後把其他所有的 icon snap ..... 全放進去.
可以玩其中幾個 rom 有一個有缺檔案, 每個 rom 退出時會出現回報不回報, 因為路徑我指到光碟所以寫不進去還要修改.
最好不要把全部的 icon 放進光碟, 不然會等一陣子, 8000 多個遊戲我放 將近 6000 個 icon 所以很慢才從 正方形 轉為 icon
開始執行後
先執行
mamepgui.exe
會把 mame.ini .mamepgui1.ini 複製到 "自己 ID" 的目錄裏然後改光碟機代號
之後就會出現 mameplus 的畫面, 然後光碟繼續讀 icon
退出後會清掉 "自己 ID" 目錄裏的
del .mamepgui /S/Q
rmdir .mamepgui\cache
rmdir .mamepgui
del mame*.ini
del ini /S/Q
rmdir ini\source
rmdir ini
以前有 deltree 我現在沒有, 就一個一個清, 反正只有幾行, 不用在 for for.
用 AutoIt v3 編譯時可以指定 icon mameplus的 ICON 可以在
mameplus_src-0.137u1r4636-20100406.7z.zip \src\osd\winui\res 裏找到
只在 XP-SP3 測過而已
補 MAME-1.txt MAME-2.txt MAME-3.txt MAME-4.txt 四張 8.5GB DVD 的 roms 列表.
mame.ini 也可以直接指定到 c:\temp 或 c:\Windows\temp 但是若被取消寫入權限, 那可能會出問題.
所以我個人認為自己 %USERPROFILE% 目錄, 自己有寫入權限應該比較不會有問題.
書籤