pocomane / MiSTer_Batch_Control

Simple utility to control the MiSTer FPGA from the command line
47 stars 8 forks source link

Please add support for MegaCD and Turbo Duo "chd" file format #9

Closed mrchrisster closed 3 years ago

mrchrisster commented 3 years ago

Added chd support to my local version of mbc with { "TURBOCD", "EEMDDO" MBCSEQ, "/media/fat/_Console/TurboGrafx16_", "/media/fat/games/TGFX16-CD", "chd", }, Unfortunately with the new mount trick, I get the error "CD BIOS not found". This works fine with the original launching method, probably because the cd bios is found in the root directory of the system folder

mrchrisster commented 3 years ago

same with neogeo for (( ; ; )); do neo="$(find /media/fat/games/neogeo -name '*.neo' | shuf -n 1)" && echo "Now playing: "$neo"" && mbc load_rom NEOGEO "$neo" && sleep 100; done produces only black screen, probably due to bios missing in root folder (using rom mount version)

pocomane commented 3 years ago

I can not make tests until Monday, however probably the issue is that they search for bios in the same directory (or a sub-directory) that is binded. If it is the case, you could solve with a mix solution, like the one used for the arcade:

{ "TURBOCD", "EEMDDODO" MBCSEQ, "/media/fat/Console/TurboGrafx16", "/media/fat/games/TGFX16-CD/ !MBC", "chd" , REMOVE_EMPTY_ROM_DIR},

This practically uses the mount points but in a sub-directory , so the bios should be reachable. This make also the rom_list feature unusable, but you already know that Linux have better tools for that task :)

mrchrisster commented 3 years ago

Great! Unfortunately there are some error messages, like 438 - retrying the unbinding since the mount point is busy (/media/fat/games/TGFX16-CD/ !MBC/~~~.chd) 10 times in a row but it works. That's really awesome! TGFX16-CD games are a pleasure to check out, some really nice pixel art!

pocomane commented 3 years ago

That is just a log, at least if it does not explicetly say "Error" (it should happen at the 20th time). Probably I have to suppress the first Nth logs: the resource is busy because the code is still loading the rom!

mrchrisster commented 3 years ago

Trying Neogeo with this logic works well but it sometimes fails. "King of Fighters '96, The (kof96)" It failed on this game and my bet is it's a problem with the "'". Any way to work around it? Also, is there another way to contact you by chance or do you prefer GH?

Edit: Nevermind, it loaded "King of Fighters '97, The Oroshi (kof97oro)" just fine. Still trying to understand why it fails every so often.
We implemented mbc successfully into https://github.com/mrchrisster/attract_mode

Command for launching neogeo on its own is /media/fat/Scripts/Attract_Mode.sh neogeo

pocomane commented 3 years ago

You are right, KOF96 does not load, and it is not related to the '. It seems that Neogeo too must be loaded with the "Mixed" system:

{ "NEOGEO", "EEMODO" MBCSEQ, "/media/fat/Console/NeoGeo", "/media/fat/games/NeoGeo/ !MBC", "neo", REMOVE_EMPTY_ROM_DIR, },

At this point, I think it is better to load all the system with this method. The only drawback is the temporary " !MBC" directory creation.

pocomane commented 3 years ago

I had switch to the mixed mode everywhere. It is still experimental but it does not have a separate branch anymore. The method is selected by means of the compile time flag USE_MOUNT_POINTS. The build script should make binaries for both the methods. Please refer to this issue for further discussion.