TASEmulators / TASEmulators/BizHawk
[DOSBox-X] Provide the CPU cycles rate at the current moment
Nobody has claimed this yet.
- 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.
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:
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.
- Print it in the log (through "Open log window...") if the loaded .conf in XML bundle contains something like
^.*cycles.*\=.*auto.*\nand^.*cycles\=.*max.*\nevery time it changes or once per a second. - Implement a custom BizHawk LUA instruction, like
client.dosbox.cycles, which would refresh every frame. - "Display cycles" option, next to "Display FPS", "Display lag" and other View options.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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