-
Notifications
You must be signed in to change notification settings - Fork 403
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
Adding DOSBox as core for DOS TASing #4217
base: master
Are you sure you want to change the base?
Conversation
@@ -1937,7 +1938,7 @@ private void LoadSaveRam() | |||
byte[] sram; | |||
|
|||
// some cores might not know how big the saveram ought to be, so just send it the whole file | |||
if (Emulator is AppleII or C64 or MGBAHawk or NeoGeoPort or NES { BoardName: "FDS" }) | |||
if (Emulator is AppleII or C64 or MGBAHawk or NeoGeoPort or NES { BoardName: "FDS" } or DOSBox) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Opened #4242.
src/BizHawk.Emulation.Common/Base Implementations/Bk2MnemonicLookup.cs
Outdated
Show resolved
Hide resolved
private int _currentCDROM = 0; | ||
private string GetFullName(IRomAsset rom) => rom.Game.Name + rom.Extension; | ||
|
||
public override int VirtualWidth => LibDOSBox.SVGA_MAX_WIDTH; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
VirtualWidth
represents how the framebuffer should be stretched by frontend to look authentic to how the user saw the final thing back in the day. For IBM PC that means it's just a 4:3 monitor. Now since height can't be stretched (because it represents scanlines), we should just tell frontend to resize width to be 4/3 of height.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, I made the corresponding change and it looks correct now
…ookup.cs Co-authored-by: feos <[email protected]>
Mouse movement is now recognized! But is there a way to send deltas directly to the core without working with absolute values? Ideally relative mouse input would be exposed to user in addition to absolute position, so they could pick which of them to use for their particular game. In Doom core mouse movement ended up being relative-only, I think it would work for this core too as an option. This is valuable because absolute movement is very limited, like we saw with Doom, but relative movement allows unlimited turning, which is required for comfortable play. |
scanlines remain constant so they aren't stretched, and width is adjusted to be 4/3 of height, because video modes in DOS were designed for a 4:3 monitor. exact pixel shapes may slightly differ depending on exact pixel clock but setting 4:3 for DOS is standard.
Yes, we can pass deltas, but we also need the absolutes for games that use it (Simcity) since it preserves the exact same position of the pointer as in the host window. |
That's what I mean by it being optional: just expose both mouse controls for users to decide which to use. |
Lag frame detection cannot be implemented since these machines are IRQ, not polling based
Pending Fixes:
Test Tools:
Used this to test joystick and mouse support:
https://www.vogons.org/viewtopic.php?p=187168#p187168
Check if completed: