Skip to content

Adding DOSBox as core for DOS TASing #4217

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

Merged
merged 222 commits into from
Apr 20, 2025

Conversation

SergioMartin86
Copy link
Contributor

@SergioMartin86 SergioMartin86 commented Feb 11, 2025

  • Add floppy disk mounting
  • Add CD-ROM mounting
  • Add proper CD-ROM callbacks for reading
  • Add disk swapping
  • Add mem-based R/W Hard Disk
  • Add multiple pre-formatted disk images
  • Save Hard Disk to SaveRAM
  • Load Hard Disk from SaveRAM
  • Remove SDL dependency
  • Add video buffer getting
  • Add sound
  • Add keyboard
  • Add mouse
  • Use proper BK mouse deltas, instead of manually calculated ones
  • Add joystick
  • Create machine presets
  • Add setting overriding
  • Add file type association
  • Add input mnemonics
  • Add drive access light callbacks
  • Add mem domains
  • Add basic sound management settings
  • Add basic video management settings
  • Add basic cpu management settings
  • Add check for saveRAM (if hd size is different, do not load it)
  • Add default inputs for mouse (‎Assets/defctrl.json)
  • Add variable framerates

Lag frame detection cannot be implemented since these machines are IRQ, not polling based

Pending Fixes:

  • CDRom images should be able to be passed as plain files not as DiscAsset. -> Implemented a pseudo-fix: forcing cdrom images passed to DOSBox to be renamed to extension e.g., '.dosbox-iso', instead of .iso. Is there a better fix?
  • Timing seems to be a bit off (too fast)
  • Audio seems to be clicking (is this related to timing)
  • Figure out why windows 3.1 doesn't detect the mouse: requires a special driver. Otherwise it works correctly.
  • Implement support for .cue+.bin multimedia CDROM images

Desirable features for future work (not in this PR):

  • Implement support for .hdi files (PC98). Test game: Tohou
  • Add firmware support for YM2608, FM Towns, PC98, etc

Test Tools:

Used this to test joystick and mouse support:
https://www.vogons.org/viewtopic.php?p=187168#p187168

Check if completed:

@YoshiRulz YoshiRulz dismissed stale reviews from CasualPokePlayer and themself April 15, 2025 18:57

resolved

@Spikestuff
Copy link

Spikestuff commented Apr 16, 2025

Works now without the need for the DOS commands.

image

As a bonus you don't have to install the mouse driver, giving what you'd get with DOSBox-X when running 3.1/3.11.


However. The other issue of creating a verification movie is still not possible.
So you can't make a verification movie, that installs a 3.1/3.11 title and then shutdowns safely for it to be used as a Submission without the "install setup" needing to be done.

@SergioMartin86
Copy link
Contributor Author

However. The other issue of creating a verification movie is still not possible. So you can't make a verification movie, that installs a 3.1/3.11 title and then shutdowns safely for it to be used as a Submission without the "install setup" needing to be done.

Can you describe exactly what the issue with movie verification is? Have you tried ending the "Preserve hard disk contents" option in the sync settings?

@Spikestuff
Copy link

Oh I see... what's a good way to make that a stand out then?

Also just for asking sake-- even though I believe it's not necessary for this system.
Is there a way to dynamically select what floppy disk is inserted?

Cause all it is, is "next floppy disk" which is reminiscent to an issue the Nyma cores had.

@vadosnaprimer
Copy link
Contributor

An axis whose range is all floppy indices, should be both easy enough to add and useful enough to be exhaustive for users. Might also consider this for Amiga. The only question is, is such a swapper also relevant for CDs?

@SergioMartin86
Copy link
Contributor Author

Oh I see... what's a good way to make that a stand out then?

The reason I introduced this option is to prevent Bizhawk from constantly storing the entire hard disk (slow) when in the majority of use cases the users won't need to create verification movies. We'll provide tasvideos-sanctioned verif movies for all the possible windows version anyway.

Also just for asking sake-- even though I believe it's not necessary for this system. Is there a way to dynamically select what floppy disk is inserted?
Cause all it is, is "next floppy disk" which is reminiscent to an issue the Nyma cores had.

An axis whose range is all floppy indices, should be both easy enough to add and useful enough to be exhaustive for users. Might also consider this for Amiga. The only question is, is such a swapper also relevant for CDs?

Implemented for both floppy and cd. Not with an axis but with a prev/next/swap buttons. Swap swaps the current media with the selected one. Soft-eject is not implemented in dosbox as it entails unmounting, which is irreversible (from a BK standpoint). Please test.

Copy link
Contributor

@vadosnaprimer vadosnaprimer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

THANKS FOR TREMENDOUS WORK!

I think this is ready for merging, and matters of saveram and weird mouse controls in some games will need to be resolved separately before we mark the core as released.

@vadosnaprimer vadosnaprimer merged commit 236ff74 into TASEmulators:master Apr 20, 2025
15 of 16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Core Port Req.] DOSBox-X or DOSBox Pure
7 participants