faulks78 / genplus-gx

Automatically exported from code.google.com/p/genplus-gx
Other
0 stars 0 forks source link

Disc Swap feature #279

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
Since there's currently a "Cartridge swap" that allows for hot-swapping games 
without turning the emulated system off, would it be possible to make it work 
for CDs as well?

Currently, loading CDs always makes the emulated system to power off and on 
instead of just inserting them into the tray, which is a problem for games 
that, at a certain point, prompt to insert a second disc (Ground Zero Texas).

Original issue reported on code.google.com by iceknigh...@gmail.com on 30 Sep 2012 at 6:44

GoogleCodeExporter commented 9 years ago
Yes, it's planned.

Original comment by ekeeke31@gmail.com on 1 Oct 2012 at 6:11

GoogleCodeExporter commented 9 years ago
Instead of a configurable option, I'm thinking about making this automatic. 
Indeed, at least with Model 1 hardware, there is a CDD command used to open and 
close the tray, which is sent by games when they need to swap disc. It would be 
easy to simply return to menu when a "Open Tray" command is catched and display 
a message to user so they can load another disc without resetting the whole 
system.

Fortunately, those commands appear to still work when running from Model BIOS 
because games do not seem to make differences between BIOS and on the contrary, 
those were made to remain compatible with earlier games, and so still recognize 
and handle commands that obviously do nothing on Model 2 hardware with 
mechanical tray.

The opposite, i.e 2nd gen games only compatible with Model 2 hardware, can 
however exist and in this case, games would probably only display a message on 
screen and expect user to manually open/close the tray, without sending any 
automatic commands.

I don't know if such game exist so if anyone knows a little bit more 
multi-discs game and remember how and when swap occur, this could help. Having 
an *exhaustive* list of multi-discs game would also be useful when implementing 
this feature.

Original comment by ekeeke31@gmail.com on 1 Oct 2012 at 9:40

GoogleCodeExporter commented 9 years ago
How about adding a "Reset after load: Yes/No" button next to the game list?

That would even free some space in the system settings menu.

Original comment by iceknigh...@gmail.com on 1 Oct 2012 at 10:35

GoogleCodeExporter commented 9 years ago
As said before, I don't want to complicate the game browser with esoteric 
buttons, especially for something that will only be used by a few CD games and 
at very limited spots in those games. 

My solution seems better to me because it will only prompt you to load another 
disc when needed, which is generally when there is nothing else to do but 
loading another disc.

If you want to "force" disc swapping, the existing "cartridge swap" feature 
seems more appropriate and could easily be renamed/adapted.

Original comment by ekeeke31@gmail.com on 1 Oct 2012 at 10:42

GoogleCodeExporter commented 9 years ago
Another solution could be to detect if the tray is open when loading a new CD 
image file and if it is, does not reset the system. This might be less 
intrusive than forcing menu to appear when tray is opened, since the game would 
logically display on-screen instructions anyway.

And eventually (still need to figure if any game need this), for games that 
does not send open_tray command but instead expect you to open the tray 
manually, alternative could be a button in main kenu, similar to existing 
"shot", "infos" or "action replay switch" buttons, that let you virtually 
open/close CD tray when Mega CD is emulated. Again, when opened, loading a new 
CD image file would not reset system and automatically close the tray.

Original comment by ekeeke31@gmail.com on 2 Oct 2012 at 4:13

GoogleCodeExporter commented 9 years ago
That seems to be the best solution to me.

Original comment by iceknigh...@gmail.com on 3 Oct 2012 at 4:28

GoogleCodeExporter commented 9 years ago
Actually I tried a few multi disc games (from this thread's list: 
http://www.sega-16.com/forum/showthread.php?9656-How-many-CD-games-had-multiple-
discs) with all existing BIOS I had (US 1.10, EU 1.00, US 2.00, US 2.11W, EU 
2.00, EU 2.00W, MultiMega 2.21, CDX 2.21, X'Eye 2.00) and I can confirm that 
ALL of them send "TRAY OPEN"/"TRAY CLOSE" commands when displaying their disc 
swap message (to force that I started games with Disc 2), no matter what BIOS 
version is used (which means that these commands are still sent on Model 2 
hardware, even if they have no effect, which is quite surprising).

So we can safely assume that the only thing needed is to check emulated drive 
status when loading a new CD image, and do not reset emulated system when tray 
is open. 

Original comment by ekeeke31@gmail.com on 3 Oct 2012 at 9:19

GoogleCodeExporter commented 9 years ago
Maybe the process of switching discs could be simplified by doing something 
similar to what mednafen does: 
http://mednafen.sourceforge.net/documentation/09x/mednafen.html#Core+Features%01
CD-ROM+Emulation%01Multiple-CD+Games

Instead of using F8, you could have a menu button (similar to existing "shot" 
or "infos" like you said) to switch to disc 1/2/3. Then I don't think the user 
would have to deal with opening/closing the CD tray, and you wouldn't have to 
manually look for the specific file either.

Original comment by swsparkl...@gmail.com on 9 Oct 2012 at 10:16

GoogleCodeExporter commented 9 years ago
I don't see how having users dealing with additional files that obviously need 
to be created or forcing them to put each disc filenames in game specific "m3u" 
files is "simplified" compared to my solution. Seems more straightforward 
(logical) to manually load the wanted file when the game asks for it, also 
helps in the case of special cartridges which can access CD.

Anyway, it's already implemented the way I described it, without any extra 
buttons or anything like that and it seems to working fine so far. As said 
above, games seem to always send an "open tray" command when asking for disc 
swap, no matter what model BIOS you are using, so it's easy to check drive 
status when loading a CD image file and do not reset if it is open.

Original comment by ekeeke31@gmail.com on 9 Oct 2012 at 10:59

GoogleCodeExporter commented 9 years ago

Original comment by ekeeke31@gmail.com on 9 Oct 2012 at 11:28

GoogleCodeExporter commented 9 years ago
It's simplified when you're using the emulator. Creating the m3u file might be 
a small hassle however, just like it's a hassle to verify every cue file when 
you obtain your games, but once you have it it shouldn't be an issue. Anyway, 
it's your emulator so you decide.

Original comment by swsparkl...@gmail.com on 10 Oct 2012 at 12:29

GoogleCodeExporter commented 9 years ago
Maybe, but I'm more concerned about the fact this method is not 
straightforward, and, considering 99% of users never look the README, will 
inevitably lead to more questions about how to make the disc swap button work, 
why the extra file does not come with downloaded images, where to store it, how 
to fill it, etc... while the most logical thing people are going to try when 
they are asked to swap disc is simply to load another disc image.

It also requires to implement an additional button in the emulator menu, which 
i would like to avoid when not absolutely necessary.

Original comment by ekeeke31@gmail.com on 10 Oct 2012 at 5:36

GoogleCodeExporter commented 9 years ago
Added in r715

Original comment by ekeeke31@gmail.com on 13 Oct 2012 at 5:06