RPGMaker XP/VX/VXAce 很不穩定,但好像管用。 如何構建 構建過程如下。 $ mkdir mkxp_build_dir $ cd mkxp_build_dir $ sudo apt update $ sudo apt install build-essential git cmake ruby ruby-dev libsdl2-image-dev libsdl2-ttf-dev libboost-dev libboost-program-options-dev libsigc++ libfluidsynth-dev libmodplug-dev libvorbis-dev libflac-dev libopenal-dev libpixman-1-dev autoconf libtool $ git clone https://github.com/Ancurio/mkxp --recursive $ git clone https://github.com/Ancurio/SDL_sound --recursive $ git clone https://github.com/dgengin/physfs --recursive $ cd physfs/ $ cmake . $ make $ sudo make install $ cd ../SDL_sound/ $ ./bootstrap $ ./configure --enable-static --disable-shared --disable-speex --disable-mikmod $ make $ sudo make install $ cd ../mkxp/ $ sed -e 's/SDL2_INCLUDE_DIRS/SDL_SOUND_INCLUDE_DIRS} ${&/' -e 's/SDL2_LIBRARY_DIRS/SDL_SOUND_LIBRARY_DIRS} ${&/' -e 's/SDL_SOUND_LIBRARIES}/& -logg -lFLAC -lmodplug/' -i CMakeLists.txt $ grep -q ALCdevice_struct src/eventthread.h && sed '/ALCdevice_struct/d;i #include ' -i src/eventthread.h $ sed -e 's/Name, { 0, Free, 0, { 0, 0 } }, 0, 0, DEF_TYPE_FLAGS/Name, { 0, Free, 0, 0, 0 }, 0, 0, DEF_TYPE_FLAGS/' -i binding-mri/binding-util.h 如果您想要更換硬編碼的 ttf 字體,請進行以下工作。這是日本和其他遊戲所必需的。 <你的目錄>不包含該 ".ttf"。所以, 如果你用 「foo.ttf」 字型名稱將會是是 "foo" 。 我玩日本遊戲, 我使用 monafont, 它具有相同的字元寬度, 如 Rpgmaker Xp 中使用的 Ms Pgothic:https://sourceforge.net/projects/monafont/ $ cp path/to/your/font.ttf ./assets/ $ grep -l 'liberation' ./CMakeLists.txt | xargs sed -i.bak -e 's/liberation//g' $ grep -l 'liberation' ./src/font.cpp | xargs sed -i.bak -e 's/liberation//g' $ grep -l 'liberation' ./src/bundledfont.cpp | xargs sed -i.bak -e 's/liberation//g' 使用 vim 或 nano 或其他文本編輯器,打開"./src/keybindings.cpp"並編輯行 106 以後。它是用於編輯硬編碼的Keybindings。供參考,這裡是我的Keybindings.cpp。 // ~lines 103~ static const JsBindingData defaultJsBindings[] = { { 0, Input::C }, // Button A { 1, Input::B }, // Button B { 2, Input::B }, // Button X { 3, Input::A }, // Button Y { 4, Input::L }, // Button L1 { 5, Input::R }, // Button R1 { 6, Input::Z }, // Button Start { 7, Input::Y }, // Button Select { 8, Input::A }, // Button L3 { 9, Input::Z }, // Button R3 {10, Input::X }, // Button L2 {11, Input::Y } // Button R2 }; // ~lines 119~ $ export RUBY_VERSION=$(/usr/bin/ruby -e "puts RUBY_VERSION") $ mkdir ./build $ cmake -B ./build -DSHARED_FLUID=ON -DMRIVERSION=${RUBY_VERSION::-2} $ cmake --build ./build 構建後,您將找到"./build/mkxp.bin.x86_64"。它可以運行在AArch64(Arm64)。 放入遊戲和設置 有兩種方法可以做到這一點。 如果你想玩使用 RTP 的遊戲, 你需要下載並放 Rtp 。 您可以指定多個 RTP 資料夾,但這不僅會減慢啟動過程,還會導致檔混淆,因為 VX 和 VXAce 具有相同的檔案名稱。 您可以在遊戲資料夾中檢查遊戲.ini檔來識別遊戲版本,因此您可以使用外殼腳本來識別它,並且只載入必要的 RTP。 使用第三方 RTP 的遊戲不能按現在的那樣支援。要麼您需要編輯空殼腳本來專門為該遊戲載入 RTP 檔,要麼您需要將所有第三方 RTP 檔與遊戲一起包含在內。 如果你想玩 midi,你需要 sf2 sound font,你需要下載,並把 sf2 soundfont。 我推薦 Scc1t2.sf2 , msgs.sf2 等, 它們聽起來與 Rpgmaker Xp / Vx / Vxace 使用的 msgs.dls 相似。 只要您可以訪問 RTP 和 SoundFont 檔,您將它們放在哪裡並不重要,但我認為將它們放入 /roms/bios/更簡單。 使用命令線參數時 您可以指定選項作為 mkxp 的參數。 例如。$ ./mkxp.bin.x86_64 --gameFolder="path/to/your/gameFolder" --RTP="/roms/bios/rtp/Enterbrain/RGSS3/RPGVXAce" --midi.soundFont="/roms/bios/SoundFonts/sf2/Scc1t2.sf2" --midi.chorus=true --midi.reverb=true --vsync=true 使用 mkxp. conf 時 您需要將 mkxp .bin 和 mkxp.conf 放入相應的遊戲目錄中,然後從空殼腳本中運行它。 有關選項和 mkxp.conf 的更多資訊,請參閱此處:https://github.com/Ancurio/mkxp/blob/master/mkxp.conf.sample 建議目錄名稱不包含空間「或連字元」-」。 這是我 game.sh #!/bin/sh cd `dirname $0` ./mkxp.bin.x86_64 供參考, 這裡是我的 mkxp. conf 。 RTP=/roms/bios/rtp/Enterbrain/RGSS/Standard RTP=/roms/bios/rtp/Enterbrain/RGSS2/RPGVX RTP=/roms/bios/rtp/Enterbrain/RGSS3/RPGVXAce midi.soundFont=/roms/bios/SoundFonts/sf2/Scc1t2.sf2 midi.chorus=true midi.reverb=true vsync=true titleLanguage=japanese