Skip to content
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

Add menu options to select a CPU model, e.g. 486DX-33, Pentium 60, 75, etc #1854

Closed
DSN9990 opened this issue Sep 13, 2020 · 61 comments
Closed

Comments

@DSN9990
Copy link

DSN9990 commented Sep 13, 2020

Describe the solution you'd like
If possible, please add a menu to select a CPU model (to simulate a specific speed) in DOSBox-X. I'll like this.

Describe alternatives you've considered
This should give DOSBox-X better options.

Additional context
The menu should contain separate CPU types, which should be like this:

8086 - 7/8/9/10/12/16Mhz
8088 - 4/7/8/10/12/16Mhz
80286 - 6/8/10/12/16/20/25Mhz
80386 - SX/DX 16/20/25/33/40Mhz
80486 - SX/DX 16/20/25/33/40/50/66Mhz
Pentium - 60/75/90/100/120/133/150/166/200Mhz
Pentium MMX - 166/200/233Mhz

@Wengier
Copy link
Collaborator

Wengier commented Sep 13, 2020

@DSN9990 In the current "CPU" menu, select "CPU type", and you will find a list of CPU options from 8086 to Pentium Pro. Please let me know if it is still missing something.

@DSN9990
Copy link
Author

DSN9990 commented Sep 13, 2020

@Wengier I asked you if you can add options to select a specific CPU speed, like PCem (and 86Box) have.

@rderooy
Copy link
Contributor

rderooy commented Sep 13, 2020 via email

@aybe
Copy link
Collaborator

aybe commented Sep 13, 2020

FWIW in D-Fend Reloaded:

2020-09-13_23-23-06

core/cycles:

  • normal/auto
  • dynamic/45000
  • auto/500
  • auto/10000
  • auto/3000

IMO it could be nice to have a few presets that approximates families of CPUs.

@usergithub64
Copy link

usergithub64 commented Sep 14, 2020

I made approximate cycles values by analogy with the Norton Utilities System Information and NSSI (Navrаtil Software System Information) performance index:

8088 XT 4.77MHz (cycles=240, core=auto, cputype=auto). The value was chosen as accurately as possible, according to the sound of the music in the game Arkanoid on a real machine 8088 XT 4.77MHz: https://youtu.be/_7mouV05qy0
sysinfo_XT_Mono (240)

286-8MHz (cycles=750, core=auto, cputype=auto)
sysinfo_286-8 (750)

286-12MHz (cycles=1510, core=auto, cputype=auto)
sysinfo_286-12 (1510)

286-25MHz (cycles=3300, core=auto, cputype=auto)
sysinfo_286-25 (3300)

386DX-25MHz (cycles=4595, core=auto, cputype=auto)
sysinfo_386DX-25 (4595)

386DX-33MHz (cycles=6075, core=auto, cputype=auto)
sysinfo_386DX-33 (6075)

486DX-33MHz (cycles=12010, core=auto, cputype=auto)
sysinfo_486DX-33 (12010)

486DX2-66MHz (cycles=23880, core=auto, cputype=auto)
sysinfo_486DX2-66 (23880)

486DX4-100MHz (cycles=33445, core=auto, cputype=auto)
sysinfo_486DX4-100 (33445)

486DX5-133MHz (cycles=47810, core=auto, cputype=auto)
sysinfo_486DX5-133 (47810)
nssi_486DX5-133 (47810)

Pentium-60MHz (cycles=31545, core=auto, cputype=pentium_mmx)
sysinfo_Pentium-60 (31545)
nssi_Pentium-60 (31545)

Pentium-66MHz (cycles=35620, core=auto, cputype=pentium_mmx)
sysinfo_Pentium-66 (35620)
nssi_Pentium-66 (35620)

Pentium-75MHz (cycles=43500, core=auto, cputype=pentium_mmx)
sysinfo_Pentium-75 (43500)
nssi_Pentium-75 (43500)

Pentium-90MHz (cycles=52000, core=auto, cputype=pentium_mmx)
sysinfo_Pentium-90 (52000)
nssi_Pentium-90 (52000)

Pentium-100MHz (cycles=60000, core=auto, cputype=pentium_mmx)
sysinfo_Pentium-100 (60000)
nssi_Pentium-100 (60000)

Pentium-120MHz (cycles=74000, core=auto, cputype=pentium_mmx)
sysinfo_Pentium-120 (74000)
nssi_Pentium-120 (74000)

Pentium-133MHz (cycles=80000, core=auto, cputype=pentium_mmx)
sysinfo_Pentium-133 (80000)
nssi_Pentium-133 (80000)

Pentium MMX-166MHz (cycles=97240, core=auto, cputype=pentium_mmx)
sysinfo_Pentium MMX-166 (97240)
nssi_Pentium MMX-166 (97240)

AMD-K6-2-400 (cycles=max, core=dynamic, cputype=pentium_mmx)
sysinfo_AMD-K6-2-400 (Dynamic Max)
nssi_AMD-K6-2-400 (Dynamic Max)

@aybe
Copy link
Collaborator

aybe commented Sep 14, 2020

@maximus105 amazing, you just need to add the core you've used and it'll be perfect !

@aybe aybe changed the title Suggestion: Add menu to select CPU model e.g. 486DX-33, Pentium 60, 75 etc. Add menu options to select a CPU model, e.g. 486DX-33, Pentium 60, 75, etc Sep 14, 2020
@usergithub64
Copy link

I added to the description the core and cputype.

@brunocastello
Copy link

I added to the description the core and cputype.

Can you explain how you measured the cycles? Trial and error?

@usergithub64
Copy link

@brunocastello Yes.

@Wengier
Copy link
Collaborator

Wengier commented Sep 17, 2020

@maximus105 Great work! I will try to add menu options based on the data you provided. Please check if there are errors in the data before it is added. If you (or anyone else) want to add more to the list it is very welcomed of course.

8088 XT 4.77MHz: cycles=240

286-8MHz: cycles=750

286-12MHz: cycles=1510

386DX-33MHz: cycles=6075

486DX-33MHz: cycles=12010

486DX2-66MHz: cycles=23880

Pentium-66MHz: cycles=35618

Pentium-100MHz: cycles=60000

@Wengier Wengier self-assigned this Sep 17, 2020
@brunocastello
Copy link

Given that MMX apparently doesn't work well (at least for me), how about adding the popular Pentium 133MHz? I'm sure I had that model straight after the 486DX2 decades ago.

@Wengier
Copy link
Collaborator

Wengier commented Sep 18, 2020

I have already added "Emulate CPU speed" menu group (under "CPU") to emulate the speed of these CPU classes in the latest code. Thanks for the data provided by @maximus105. If @maximus105 (or anyone else) wants to add more CPU classes to the list, please free feel to do so.

@brunocastello
Copy link

I thought that the emulated CPU speed largely depends of how powerful your host computer is?

@usergithub64
Copy link

usergithub64 commented Sep 19, 2020

I performed the selection of cycles on the i9-9900K processor. I added cycles for Pentium-120 MHz, Pentium-133 MHz, Pentium MMX-166 MHz to the description. A further increase in cycles (above the value of 97240) does not lead to an increase in performance, but even to a slowdown in programs (Volkov Commander), and hangs of Norton Utilities System Information and NSSI (Navrаtil Software System Information). I also added cycles for the highest possible performance to the description (if you set cycles = max), roughly corresponding to AMD-K6-2-400 (cycles = max, core = dynamic, cputype = pentium_mmx).

@Wengier
Copy link
Collaborator

Wengier commented Sep 19, 2020

I have already added the emulation options for Pentium-120 MHz, 133 MHz, and 166 MHz in the latest code (thanks to @maximus105). The emulated cycles provided should be considered accurate overall, as I have checked with NSSI on my own computer and found that the speeds largely match here too (maybe around 5% difference sometimes). Since minor adjustments may be desired in some cases, I have added a new config option "cycle emulation percentage adjust" in [cpu] section for users who wish to make relative percentage adjustments (between -25% and 25%) of the emulated CPU cycles.

@DSN9990
Copy link
Author

DSN9990 commented Sep 20, 2020

Could you give me a updated build?

@Wengier
Copy link
Collaborator

Wengier commented Sep 20, 2020

Sure! Here it is the updated Windows binary package:

dosbox-x-update.zip

Note: FluidSynth support is fully enabled in this build. The sound font GeneralUser_GS.sf2 is bundled and enabled by default. Furthermore, the DOSMID program now appears on the Z drive to play MIDI audios.

@DSN9990
Copy link
Author

DSN9990 commented Sep 20, 2020

Can you give me a link to NSSI?

@Wengier
Copy link
Collaborator

Wengier commented Sep 20, 2020

@usergithub64
Copy link

usergithub64 commented Sep 20, 2020

I checked the DOSBox-X 0.83.6 build posted above here. With my mapper configured in cga_mono or svga_s3 mode, when starting DOSBox-X, the image gets corrupted:
Config.zip

command_002

command_003

In addition, the Volkov Commander file manager is launched in my .conf file, and if I do "Reset Virtual Machine" or "Reboot Guest System", an error window will appear and DOSBox-X will close:

2020-09-20_135916

In addition, if you do "Reset Virtual Machine", then an error window appears randomly and DOSBox-X will close:

2020-09-20_140256

In addition, cycles values ​​over 60000 slow down overall performance. Programs start to slow down noticeably. The previous build DOSBox-X 0.83.5 did not have the above problems.

@Wengier
Copy link
Collaborator

Wengier commented Sep 20, 2020

@maximus105 Please check out the following Windows binary:

dosbox-x-update.zip

The banner image issue only happened with your modified key setting (not default configuration), which was fixed. Also, the issue with rebooting the system only occurred with the setting "keyb ru" as we discussed in Issue #1732. It seems that the fix mentioned thare did not work when the Volkov Commander file manager is currently running (and with "keyb ru" applied), so I have modified the fix in the updated build.

However, I am not able to notice that cycles values ​​over 60000 slow down overall performance. For example, when I select Pentium 120/133/166 CPUs (all >60000 cycles) to emulate, the benchmarks do increase as expected.

@rderooy
Copy link
Contributor

rderooy commented Sep 20, 2020

You may run into issues, if your host system is not able to sustain the number of cycles chosen. Remember that DOSBox is for the most part single-threaded, so CPU clock rating is more important than core count.

@usergithub64
Copy link

usergithub64 commented Sep 20, 2020

@Wengier In the new build, the above issues are gone, apart from the performance drop over cycles > 60000. This is especially noticeable with cycles = 97240. The performance indices themselves, in the form of numbers or bars, have not changed. A performance has decreased in the form:

  1. In Volkov Commander, the cursor in the panels began to move up/down noticeably slower.
  2. In Norton Utilities System Information, windows maximize noticeably more slowly.
  3. In NSSI, windows unfold noticeably slower and PC Speaker stutters several times at startup.

Maybe this is due to the fact that I tested DOSBox-X 0.83.5 Win x64 SDL1, and the new DOSBox-X build 0.83.6 Win x32 SDL1?
Can you make the new build as Win x64 SDL1 ?

@DSN9990
Copy link
Author

DSN9990 commented Sep 22, 2020

@Wengier Can you give me the 64Bit VisualStudio build?

@Wengier
Copy link
Collaborator

Wengier commented Sep 22, 2020

@DSN9990 I will do that tomorrow (I had already left my main computer).

@DSN9990
Copy link
Author

DSN9990 commented Sep 22, 2020

@Wengier Thanks. I'll wait.

@usergithub64
Copy link

usergithub64 commented Sep 22, 2020

In the new MinGW x64 SDL1 build, the aspect = true option does not work with fullscreen = true. And there is no direct3d in the output option. Or is it the way it should be? And where can I get the "glshaders" folder?

@Wengier
Copy link
Collaborator

Wengier commented Sep 22, 2020

@DSN9990 A 64-bit Visual Studio SDL1 build is available from:

dosbox-x-64-update.zip

@Wengier
Copy link
Collaborator

Wengier commented Sep 22, 2020

@maximus105 The MinGW build was built by me just for testing, and it does not come with things like Direct3D support. As for glshaders, at this time you can get them from:

https://github.com/tyrells/dosbox-svn-shaders

@Wengier
Copy link
Collaborator

Wengier commented Sep 22, 2020

@maximus105 You can now find GLSL shaders in the contrib/glshaders directory of this source tree:

https://github.com/joncampbell123/dosbox-x/tree/master/contrib/glshaders

The Windows installer will copy them to the glshaders subdirectory of the DOSBox-X install directory as well.

@DSN9990
Copy link
Author

DSN9990 commented Sep 25, 2020

@Wengier Can you add options for Pentium 60, 75 and 90mhz?

@Wengier
Copy link
Collaborator

Wengier commented Sep 25, 2020

@DSN9990 Yes if you (or anyone else) can provide the data for them.

@rderooy
Copy link
Contributor

rderooy commented Sep 25, 2020 via email

@Wengier
Copy link
Collaborator

Wengier commented Sep 25, 2020

@rderooy Yes, I had thought of that too, but requiring a reset the emulation will be a big impact. So the menu is named "emulate CPU speed" and placed in the cycles subsection to make it clearer that it is just for emulating the speed in terms of CPU cycles, not something like "select CPU subtype" near "CPU type".

@DSN9990
Copy link
Author

DSN9990 commented Sep 27, 2020

@maximus105 Can you provide data for Pentium 60Mhz (not 66Mhz), Pentium 75Mhz and Pentium 90Mhz?

@joncampbell123
Copy link
Owner

There is certainly a positive response to this feature!
Firefox_Screenshot_2020-10-04T05-01-28 579Z

@Wengier
Copy link
Collaborator

Wengier commented Oct 5, 2020

@joncampbell123 I am certainly very happy to hear that. You have definitely done great work in maintaining the project and I hope more people will like it.

@Wengier
Copy link
Collaborator

Wengier commented Oct 7, 2020

@maximus105 You had made very helpful efforts to provide the data for the CPUs. Please feel free to add more so that users can benefit more from this feature.

@usergithub64
Copy link

I added cycles for 486DX4-100, 486DX5-133, Pentium-75, Pentium-90 to the description. Please correct my nickname in the changelog (In the word "maximum", you need to correct the last letter "m" for "s").

@Wengier
Copy link
Collaborator

Wengier commented Oct 17, 2020

@maximus105 Thanks for adding the cycles for these CPU types to the description. I have already added them to the latest code (7b4aa11). Also sorry for the typo of your nickname, and I think I have already corrected it in CHANGELOG.

@Wengier
Copy link
Collaborator

Wengier commented Oct 17, 2020

@maximus105 I have corrected your nickname in the Releases page also. If you have data for other CPU models, please feel free to add them as well. Thanks!

@usergithub64
Copy link

usergithub64 commented Oct 24, 2020

@Wengier I added cycles for 286-25, 386DX-25, Pentium-60 to the description. Can you add a hotkey to the menu for "Edit cycles"?

1

@Wengier
Copy link
Collaborator

Wengier commented Oct 24, 2020

@maximus105 Thanks! I have already added them to the latest code (807221b).

Meanwhile, the "Edit cycles" function is already in the mapper editor, named "EditCycles". You can certainly add a hotkey for it yourself.

@usergithub64
Copy link

usergithub64 commented Oct 24, 2020

@Wengier Is it possible to make the "Show details" option persist (on or off) after closing and then starting DOSBox-X ?

1

@Wengier
Copy link
Collaborator

Wengier commented Oct 24, 2020

@maximus105 The "show details" menu option is equivalent to the -showcycles and -showrt command-line options combined. So you can just run DOSBox-X with these command-line options.

@usergithub64
Copy link

@Wengier Thanks!

@DSN9990 DSN9990 closed this as completed Jan 8, 2021
@DSN9990 DSN9990 changed the title Add menu options to select a CPU model, e.g. 486DX-33, Pentium 60, 75, etc Suggestion: Add menu to select CPU model e.g. 486DX-33, Pentium 60, 75 etc. Feb 8, 2022
@DSN9990 DSN9990 changed the title Suggestion: Add menu to select CPU model e.g. 486DX-33, Pentium 60, 75 etc. Add menu options to select a CPU model, e.g. 486DX-33, Pentium 60, 75, etc Feb 8, 2022
@DSN9990 DSN9990 changed the title Add menu options to select a CPU model, e.g. 486DX-33, Pentium 60, 75, etc Suggestion: Add menu to select CPU model e.g. 486DX-33, Pentium 60, 75 etc. Feb 13, 2022
@DSN9990 DSN9990 changed the title Suggestion: Add menu to select CPU model e.g. 486DX-33, Pentium 60, 75 etc. Add menu options to select a CPU model, e.g. 486DX-33, Pentium 60, 75, etc Feb 13, 2022
@aybe aybe removed the suggestion label Nov 24, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

7 participants