Skip to content

Commit 9351a04

Browse files
committed
dsda: detect wipe as lag
automap mnemonic
1 parent 89b6da5 commit 9351a04

File tree

7 files changed

+23
-10
lines changed

7 files changed

+23
-10
lines changed

Assets/dll/dsda.wbx.zst

-100 Bytes
Binary file not shown.

src/BizHawk.Emulation.Common/Base Implementations/Bk2MnemonicLookup.cs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -820,6 +820,7 @@ public static string LookupAxis(string button, string systemId)
820820
},
821821
[VSystemID.Raw.Doom] = new()
822822
{
823+
["Automap"] = "M",
823824
["Backward"] = 'v',
824825
["End Player"] = 'E',
825826
["Fire"] = 'F',
@@ -891,14 +892,14 @@ public static string LookupAxis(string button, string systemId)
891892
},
892893
[VSystemID.Raw.Doom] = new()
893894
{
895+
["Fly / Look"] = "L",
896+
["Mouse Running"] = "mR",
897+
["Mouse Turning"] = "mT",
894898
["Run Speed"] = "R",
895899
["Strafing Speed"] = "S",
896900
["Turning Speed"] = "T",
897-
["Weapon Select"] = "W",
898-
["Fly / Look"] = "L",
899901
["Use Artifact"] = "U",
900-
["Mouse Running"] = "mR",
901-
["Mouse Turning"] = "mT"
902+
["Weapon Select"] = "W",
902903
},
903904
};
904905
}

src/BizHawk.Emulation.Cores/Computers/Doom/DSDA.IEmulator.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ public bool FrameAdvance(IController controller, bool renderVideo, bool renderAu
116116
renderInfo._RenderAudio = renderAudio ? 1 : 0;
117117
renderInfo._PlayerPointOfView = _settings.DisplayPlayer - 1;
118118

119-
_core.dsda_frame_advance(
119+
IsLagFrame = _core.dsda_frame_advance(
120120
ref players[0],
121121
ref players[1],
122122
ref players[2],
@@ -131,6 +131,11 @@ public bool FrameAdvance(IController controller, bool renderVideo, bool renderAu
131131

132132
Frame++;
133133

134+
if (IsLagFrame)
135+
{
136+
LagCount++;
137+
}
138+
134139
return true;
135140
}
136141

src/BizHawk.Emulation.Cores/Computers/Doom/DSDA.IInputPollable.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,8 @@ namespace BizHawk.Emulation.Cores.Computers.Doom
44
{
55
public partial class DSDA : IInputPollable
66
{
7-
public int LagCount { get; set; }
8-
9-
public bool IsLagFrame { get; set; }
7+
public int LagCount { get; set; } = 0;
8+
public bool IsLagFrame { get; set; } = false;
109

1110
public IInputCallbackSystem InputCallbacks => _inputCallbacks;
1211

src/BizHawk.Emulation.Cores/Computers/Doom/DSDA.IStatable.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@ public void LoadStateBinary(BinaryReader reader)
1818
_turnHeld[3] = reader.ReadInt32();
1919

2020
Frame = reader.ReadInt32();
21+
LagCount = reader.ReadInt32();
22+
IsLagFrame = reader.ReadBoolean();
23+
2124
// any managed pointers that we sent to the core need to be resent now!
2225
UpdateVideo();
2326
}
@@ -32,6 +35,8 @@ public void SaveStateBinary(BinaryWriter writer)
3235
writer.Write(_turnHeld[3]);
3336

3437
writer.Write(Frame);
38+
writer.Write(LagCount);
39+
writer.Write(IsLagFrame);
3540
}
3641
}
3742
}

src/BizHawk.Emulation.Cores/Computers/Doom/LibDSDA.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ public struct PackedRenderInfo
7676
public abstract bool dsda_init(ref InitSettings settings, int argc, string[] argv);
7777

7878
[BizImport(CallingConvention.Cdecl)]
79-
public abstract void dsda_frame_advance(
79+
public abstract bool dsda_frame_advance(
8080
ref PackedPlayerInput player1Inputs,
8181
ref PackedPlayerInput player2Inputs,
8282
ref PackedPlayerInput player3Inputs,

waterbox/dsda/BizhawkInterface.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ ECL_EXPORT void dsda_get_video(int *w, int *h, int *pitch, uint8_t **buffer, int
3838
*paletteBuffer = _convertedPaletteBuffer;
3939
}
4040

41-
ECL_EXPORT void dsda_frame_advance(struct PackedPlayerInput *player1Inputs, struct PackedPlayerInput *player2Inputs, struct PackedPlayerInput *player3Inputs, struct PackedPlayerInput *player4Inputs, struct PackedRenderInfo *renderInfo)
41+
ECL_EXPORT bool dsda_frame_advance(struct PackedPlayerInput *player1Inputs, struct PackedPlayerInput *player2Inputs, struct PackedPlayerInput *player3Inputs, struct PackedPlayerInput *player4Inputs, struct PackedRenderInfo *renderInfo)
4242
{
4343
// Setting inputs
4444
headlessClearTickCommand();
@@ -137,6 +137,9 @@ ECL_EXPORT void dsda_frame_advance(struct PackedPlayerInput *player1Inputs, stru
137137
headlessUpdateVideo();
138138
}
139139
}
140+
141+
// Assume wipe is lag
142+
return !wipeDone;
140143
}
141144

142145
ECL_ENTRY void (*input_callback_cb)(void);

0 commit comments

Comments
 (0)