Page 1 of 1

MegaCD Problem: BIOS per game and multi-disk games.

Posted: Sun Jun 07, 2020 2:08 pm
by Sorgelig
As you already know new version supports bios per game.
Good feature but it turned out it's preventing to swap the disk on multi-disk games.

Since now game may have custom cd bios, the bios must be reloaded with every game. And if game has no custom bios, the original one (boot.rom) must be loaded. And this eventually resets the core.

My suggestion is to put all disks of particular game into one folder, so folder will have 2 or more CUEs. In this case Main will see they are part of single game and won't try to reload the BIOS. Once you load CUE from other folder, bios will be reloaded. So it look pretty natural.
Reset on disk loading feature also can be removed in this case.

Want to hear opinions. May be there is a better way to manage it.

Re: MegaCD Problem: BIOS per game and multi-disk games.

Posted: Sun Jun 07, 2020 2:30 pm
by bootsector
For multi-games, that makes all sense to me. I would keep loading single games from same directory capability though, if possible.

Thanks for making MegaCD core even better, Sorg.

Re: MegaCD Problem: BIOS per game and multi-disk games.

Posted: Sun Jun 07, 2020 4:31 pm
by softtest9
Sorgelig wrote: Sun Jun 07, 2020 2:08 pmMy suggestion is to put all disks of particular game into one folder, so folder will have 2 or more CUEs. In this case Main will see they are part of single game and won't try to reload the BIOS.
Yes please. I think this would a brilliant move.

Re: MegaCD Problem: BIOS per game and multi-disk games.

Posted: Sun Jun 07, 2020 5:02 pm
by Lisko
Or you could make a simple check between loaded vs expected bios based on crc. If loaded == expected && !reset then load and don't reset else load and reset. Obviously this is worth only if the crcs calculation doesn't add too much lag when selecting a new image. The advantage of this is that re enables the possibility of loading an image while in the bios for listening its tracks or manage saves (not so useful btw).

Re: MegaCD Problem: BIOS per game and multi-disk games.

Posted: Sun Jun 07, 2020 6:22 pm
by Sorgelig
Lisko wrote: Sun Jun 07, 2020 5:02 pm Or you could make a simple check between loaded vs expected bios based on crc. If loaded == expected && !reset then load and don't reset else load and reset. Obviously this is worth only if the crcs calculation doesn't add too much lag when selecting a new image. The advantage of this is that re enables the possibility of loading an image while in the bios for listening its tracks or manage saves (not so useful btw).
Good idea.

Re: MegaCD Problem: BIOS per game and multi-disk games.

Posted: Sun Jun 07, 2020 6:28 pm
by Lisko
Sorgelig wrote: Sun Jun 07, 2020 6:22 pm
Lisko wrote: Sun Jun 07, 2020 5:02 pm Or you could make a simple check between loaded vs expected bios based on crc. If loaded == expected && !reset then load and don't reset else load and reset. Obviously this is worth only if the crcs calculation doesn't add too much lag when selecting a new image. The advantage of this is that re enables the possibility of loading an image while in the bios for listening its tracks or manage saves (not so useful btw).
Good idea.
Thanks! Don't forget when cart.rom is present (pier solar) always reset

Re: MegaCD Problem: BIOS per game and multi-disk games.

Posted: Sun Jun 07, 2020 7:18 pm
by Sorgelig
While idea is good, there is another problem with multi-disk games - saves. So there is no way to know that two independent disks are part of a single game.
So, i have to go back to original idea when all disks of the same game are in one folder. So save will be preserved across disks.

Re: MegaCD Problem: BIOS per game and multi-disk games.

Posted: Sun Jun 07, 2020 10:50 pm
by keith.f.kelly
Sorgelig wrote: Sun Jun 07, 2020 2:08 pm My suggestion is to put all disks of particular game into one folder, so folder will have 2 or more CUEs. In this case Main will see they are part of single game and won't try to reload the BIOS. Once you load CUE from other folder, bios will be reloaded. So it look pretty natural.
Reset on disk loading feature also can be removed in this case.
I think this makes perfect sense, except for one thing: it will complicate the file browser.

Problem:
Currently, when you choose to insert a disc, the file browser lists game folders, but not game folder contents. And that’s nice, because I don’t have to pick the folder and then also pick the .CUE file for a game that only has one disc anyway.

But multi-disc games come in two types, and you want different behaviors for each:
  1. only first disc bootable - user should not have to choose first disc when first loading the game.
  2. each disc bootable - user should always have to choose which disc to load
Proposal:
Add support for a boot.cue file, to enable MiSTer to handle all scenarios gracefully.

Example structure:

Code: Select all

/media/fat/MegaCD/Single Disc Game/
    cd_bios.rom
    Single Disc Game.cue

/media/fat/MegaCD/Multi-Disc Game (Each Disc Bootable)/
    cd_bios.rom
    Multi-Disc Game (Each Disc Bootable) - Disc 1.cue
    Multi-Disc Game (Each Disc Bootable) - Disc 2.cue

/media/fat/MegaCD/Multi-Disc Game (Only First Disc Bootable)/
    cd_bios.rom
    boot.cue (symlink) -> Multi-Disc Game (Only First Disc Bootable) - Disc 1.cue
    Multi-Disc Game (Only First Disc Bootable) - Disc 1.cue
    Multi-Disc Game (Only First Disc Bootable) - Disc 2.cue
So the logic becomes fairly simple:
  1. If a game folder only contains one .CUE file, then the file browser never shows the list of discs inside the folder. After the user selects the game folder, load cd_bios.rom, insert the one .cue file, and reset core.
  2. If a game folder has multiple .CUE files but no boot.cue, then the file browser always shows the list of discs to choose from. After user selects a disc, load cd_bios.rom, insert their chosen .cue file, and reset core.
  3. If a game folder has multiple .CUE files and a boot.cue, and the user is not already playing a disc from that folder, then the file browser does not show the list of discs inside the folder. After the user selects the game folder, load cd_bios.rom, insert boot.cue, and reset core.
  4. If a game folder has multiple .CUE files and a boot.cue, and the user is already playing a disc from that folder, then the file browser shows the lists of discs inside the folder. After the user selects the disc, insert their chosen .cue file, but do not reload cd_bios.rom or reset the core.

Re: MegaCD Problem: BIOS per game and multi-disk games.

Posted: Sun Jun 07, 2020 11:38 pm
by Sorgelig
It can be implemented much simpler. If folder has only one cue then CD will be loaded by clicking on folder. If more than one cue in folder then browser will enter the folder where you can choose CUE.

There is one quirk. You have to start the game from exactly the same CUE always, as save file is bound to cue name. This is done in favour of hacks/mods. You may have different CUEs in the same folder with different mods, so you will have different saves for different mods.

Re: MegaCD Problem: BIOS per game and multi-disk games.

Posted: Sun Jun 07, 2020 11:40 pm
by keith.f.kelly
I hadn't considered the hacks/mods case, since I don't use them, but that's a fair point. I suppose it's not such a big deal to have to select disc 1 for a multi-disc game.

Re: MegaCD Problem: BIOS per game and multi-disk games.

Posted: Mon Jun 08, 2020 5:49 am
by Sorgelig
Hacks/Mods/Translations usually have changes only in data track. So you can have cue with separate data track and share all audio track. A lot of space saving.

Re: MegaCD Problem: BIOS per game and multi-disk games.

Posted: Mon Jun 08, 2020 9:19 am
by Lisko
Sorgelig wrote: Mon Jun 08, 2020 5:49 am Hacks/Mods/Translations usually have changes only in data track. So you can have cue with separate data track and share all audio track. A lot of space saving.
Yes but with internal+cart you have a lot of space to save so even if you bond saves to folder name you should still have space for more, unless there are games with hard coded very limited slots that also have hacks...

Re: MegaCD Problem: BIOS per game and multi-disk games.

Posted: Sat Jun 20, 2020 8:29 am
by killersquirel
Is it possible to bring the load bios option back to the OSD? Anytime I experienced some issues with a game not loading, I could change the bios and reload it and it would usually work.

Re: MegaCD Problem: BIOS per game and multi-disk games.

Posted: Thu Jul 02, 2020 5:35 am
by Televicious
yea, I have US BIOS as boot and tried making folders for regions with cd_bios.rom for each regions bios and no good. It reverts to boot.rom always. I'd like to just switch it manually. this auto bios stuff isn't panning out. otherwise we have to pull the card and rename boot.rom to .bak and put the EU bios in as boot.rom just to play a few exclusive eu games. and then vice versa to switch back. let's just have booteu.rom bootus.rom and bootjp.rom and they can be code linked to whatever region is set and it'll be standard. Core's save settings will save your default region to boot into.