TASEmulators / TASEmulators/BizHawk

[DOSBox-X] Provide the CPU cycles rate at the current moment

Open
#4,659 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Core: DOSBox-X Needs domain knowledge for triage Request: Feature/Enhancement
Dominant language
C#
Stars
2.8k
Forks
468
PR merge metrics
No merged PRs in 30d

Description

The standalone DOSBox-X prints CPU cycles rate at the current moment since early days of development.
For cycles=auto and cycles=max, this rate is dynamic, that is it changes multiple time per a second.
Image
Also, the current rate can be seen if you select "CPU -> Edit cycles", which is displayed as a fixed value, but a moment later, it's a different fixed value, hence being dynamic:
Image

Importance:
Dynamic cycles in DOSBox-X depend on the host CPU, and so it true for the BizHawk core. If you set a number of cycles that's too big, DOSBox-X doesn't reach this number and, instead, lets those amounts of cycles that it thinks your CPU is capable of emulate.
When playing a demanding game, its performance may not satisfy you despite the configured hardware being strong enough to achieve better performance. Seeing the actual CPU cycles will help players indicate one of possible bottlenecks.

Expected implementation:
Anything will do.

  1. Print it in the log (through "Open log window...") if the loaded .conf in XML bundle contains something like ^.*cycles.*\=.*auto.*\n and ^.*cycles\=.*max.*\n every time it changes or once per a second.
  2. Implement a custom BizHawk LUA instruction, like client.dosbox.cycles, which would refresh every frame.
  3. "Display cycles" option, next to "Display FPS", "Display lag" and other View options.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The issue names no files or tests; begin by locating the DOSBox-X core's cycles handling and the existing Open log window, View options, and Lua instruction entry points. Determine how the current rate can be exposed for dynamic cycles, then verify that the displayed value updates and reflects the active emulation rate.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
game-dev
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.