Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

This core needs a better way to handle floppy change. #34

Open
i30817 opened this issue Jul 3, 2017 · 10 comments
Open

This core needs a better way to handle floppy change. #34

i30817 opened this issue Jul 3, 2017 · 10 comments

Comments

@i30817
Copy link

i30817 commented Jul 3, 2017

The main readme says to create a file with

px68k "Disk 1.dim" "Disk 2.dim"

and this works well enough. Trouble is, some games have 3 or 4 disks. When more disks are appended to that line, the core doesn't boot (Street Fighter II Champion Edition (1993)(SPS) notably).

What i'm proposing is a way to append the disks to a 'game set' like you can do with psx disks, that always loads the first two if any more than two are given, but that you can change in the menu when the game asks you to.

IF you want to get really fancy you could try to emulate a expansion slot to the fdd disk drive, which apparently existed on the hardware, but i don't know how much games support that.

@ghost
Copy link

ghost commented Jul 3, 2017 via email

@cmcginty
Copy link

cmcginty commented Jan 3, 2018

I'm trying to load Aquales, and putting the disk1 and disk2 in gives an error. If I put disk 2 in FDD0 it plays the intro, but can't seem to get past that point, it just repeats continuously.

I think the core should at least support putting the correct 2 disks in the drive, in the correct order when starting the game. I understand that if the disk has to be changed mid-game it would be hard for the core to know when to do that.

@ghost
Copy link

ghost commented Jan 3, 2018 via email

@cmcginty
Copy link

cmcginty commented Jan 3, 2018

Thanks. somehow I managed to accidentally do that combo right after I posted this! Again would be a nice feature to automate this some way. Since it's not clear the disk order always, nor do you always know what disk is system vs data disk.

@ghost
Copy link

ghost commented Jan 3, 2018 via email

@cmcginty
Copy link

cmcginty commented Jan 3, 2018

You could probably use the same method that core's like Mame use. A game consists of multiple files and the core loads all the files correctly when the game starts. It doesn't ask you to specify every file for the game. It also doesn't just randomly use every file that you put in an archive.

@ghost
Copy link

ghost commented Jan 3, 2018 via email

@gingerbeardman
Copy link

gingerbeardman commented Feb 17, 2018

In TOSEC the Aquales disks are out of order. There are three disks: intro, game, saves.

  • either intro or game in FD0
  • saves always in FD1

@i30817
Copy link
Author

i30817 commented Feb 17, 2018

Is it even possible to make multi-disk games behave 'like mame' if they couldn't install to a hd? Well, i know it's 'possible' because projects like WHDLoad exist but those are major hacks of the executables (and often screw up with copy protection or errors).

I think the only reason many MAME sets can get away with extracting files from the filesystem is that the game was originally on a single medium.

I do have a suggestion that may work. If you can hook the game 'succeeding' on opening for reading a single file after a disk change you could 'assume' it's the right disk and otherwise (after a failure) change disks and try again - this would happen for every drive opened for reading. This could be a shortcut key, or if there is a way to recognize the game expects disk change even automatic (with a setting).

Another hack i can think is if the check uses a system api (ie pass a volume identfier to a standard function you can 'hook'). Then the 'right' disk could be sneaked into the volume the game expects to read it from by picking out the right floppy from the identifier yourself without player intervention. I've never actually seen a older platform where this works, apparently nearly all of them just read the volume directly into their code before doing the check or just read the files directly, not pass a string to a library (I first asked this hack for multi-cd psx games).

Thinking about it, it's possible the first hack actually can work for a majority of ps1 games.

@negativeExponent
Copy link
Collaborator

negativeExponent commented Oct 13, 2020

hi. want to add to this discussion, and possibly further improve usuability.

from my understand, using m3u shoud at least remedy the issue. it also has a core option to tell core from which FDD you will be swapping from. Its quite annoying, but it works.

Im trying a new approach though, that is to change the active floppy disk drive by pressing a buttons (instead of going through the menu) and remapping hotkeys for disk swap/change, similar to how disk swapping hotkeys work in FDS. but we dont have enough buttons now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants