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

[Feature Request] MMX Instruction Set Support #301

Open
ryz opened this issue Jul 8, 2022 · 10 comments
Open

[Feature Request] MMX Instruction Set Support #301

ryz opened this issue Jul 8, 2022 · 10 comments
Labels
enhancement New feature or request

Comments

@ryz
Copy link

ryz commented Jul 8, 2022

Hello,

I've set up my Windows 98 installation, and a few games run very well (Age of Empires 1, Trespasser for example).

I've just installed the game Nocturne (1999) to a D drive SAV file (had to increase the max capacity to 2GB, fyi).

When trying to start the game, the following error message appears:

image

"This CPU does not have an MMX unit."

Is there a way to enable MMX support?

@schellingb
Copy link
Owner

As of now, DOSBox and DOSBox Pure emulate just the basic Pentium CPU without MMX.
DOSBox-X has implemented all kinds of CPU extensions on top of that, including MMX and Pentium 2 and 3 architectures. While incorporating these improvements into this project is certainly possible, it's not a simple task. It's also a case-by-case thing where because DOSBox-X in its entirety is overall very different from the original DOSBox.

@ryz
Copy link
Author

ryz commented Jul 8, 2022

Thanks for the answer. Bummer! Wasn't aware of that. Thank you again for your outstanding work on this core!

@Darknior
Copy link

Darknior commented Jul 9, 2022

As of now, DOSBox and DOSBox Pure emulate just the basic Pentium CPU without MMX. DOSBox-X has implemented all kinds of CPU extensions on top of that, including MMX and Pentium 2 and 3 architectures. While incorporating these improvements into this project is certainly possible, it's not a simple task. It's also a case-by-case thing where because DOSBox-X in its entirety is overall very different from the original DOSBox.

WOAW i discover this ... thanks for the information.
For sure, in the future if you can take from DosBox-x the code to emulate MMX, Pentieum 2 and 3 ... it will help a lot for many Windows games ... maybe with a core option like on AMIGA or other computers, to choose the Proc we want to emulate for each game :)

@schellingb
Copy link
Owner

There already is a core option to control the emulated CPU instruction set (System > CPU Type). But when running an installed operating system it automatically gets bumped to the highest setting (which is the mentioned Pentium 1 without MMX) because otherwise Windows 9x doesn't really run.

Also it sometimes isn't just a case where adding more features is without downsides. Sometimes expanding the features of the CPU emulation can also incur a performance loss throughout the emulation because now there's more things to consider etc. That's what I mean it being a case-by-case thing for incorporating such expansions.

Though if we're looking at the list of things:

  • Pentium MMX instructions
  • Pentium Pro instructions
  • Pentium 2 instructions
  • Pentium 3 instructions
  • Pentium 3 SSE instructions

MMX certainly would be the next on the list to incorporate. We can't go to Pentium 2 without doing the stuff above anyway. Though I'm not sure if at some point a DOSBox-X libretro core wouldn't make more sense. DOSBox-X has a few more people maintaining it than just me here on this project :-)

Also as I have mentioned in #300, this core is intended to run games. So unless there's games which can be emulated at a playable speed it really isn't very useful in my opinion. For example putting all the work in just so it's possible to run Windows XP and a game from 2004 at 1 FPS doesn't really accomplish anything.

@Darknior
Copy link

Darknior commented Jul 9, 2022

MMX certainly would be the next on the list to incorporate. We can't go to Pentium 2 without doing the stuff above anyway. Though I'm not sure if at some point a DOSBox-X libretro core wouldn't make more sense. DOSBox-X has a few more people maintaining it than just me here on this project :-)

For sure MMX will help for some games :)
Dosbox-x is a fine project but i'm not using it, i don't really like. Your PURE one is really better. And designed to play games easily. I prefer stand that you add this option :)

Also as I have mentioned in #300, this core is intended to run games. So unless there's games which can be emulated at a playable speed it really isn't very useful in my opinion. For example putting all the work in just so it's possible to run Windows XP and a game from 2004 at 1 FPS doesn't really accomplish anything.

For sure i'm really agree with you, i only want to play games i've played 25 years before when i was young lol
Make something not playable is not an accomplishment :(
But for sure i wish one day it will be possible to launch and plays XP games ... some were so excellent in my mind :)

@gordon81-afk
Copy link

There already is a core option to control the emulated CPU instruction set (System > CPU Type). But when running an installed operating system it automatically gets bumped to the highest setting (which is the mentioned Pentium 1 without MMX) because otherwise Windows 9x doesn't really run.

Also it sometimes isn't just a case where adding more features is without downsides. Sometimes expanding the features of the CPU emulation can also incur a performance loss throughout the emulation because now there's more things to consider etc. That's what I mean it being a case-by-case thing for incorporating such expansions.

Though if we're looking at the list of things:

* Pentium MMX instructions

* Pentium Pro instructions

* Pentium 2 instructions

* Pentium 3 instructions

* Pentium 3 SSE instructions

MMX certainly would be the next on the list to incorporate. We can't go to Pentium 2 without doing the stuff above anyway. Though I'm not sure if at some point a DOSBox-X libretro core wouldn't make more sense. DOSBox-X has a few more people maintaining it than just me here on this project :-)

Also as I have mentioned in #300, this core is intended to run games. So unless there's games which can be emulated at a playable speed it really isn't very useful in my opinion. For example putting all the work in just so it's possible to run Windows XP and a game from 2004 at 1 FPS doesn't really accomplish anything.

Great notice, MMX support will make work games like Delta Foce or Nocturne, ¿do you know when dosbox pure will have mxx?.

Thank you again schellingb

@Kupo91
Copy link

Kupo91 commented Dec 16, 2023

Settlers IV would benefit from MMX support too

S4

@Torinde Torinde mentioned this issue Dec 17, 2023
@schellingb schellingb changed the title [0.9.7] Win98SE: Nocturne does not start, no MMX support? [Feature Request] MMX Instruction Set Support Dec 27, 2023
@schellingb schellingb added the enhancement New feature or request label Dec 27, 2023
@Torinde
Copy link
Contributor

Torinde commented Feb 28, 2024

Related:

@schellingb
Copy link
Owner

That's rather rude. Go away please.

@Allanon41
Copy link

Allanon41 commented Jun 28, 2024

Didnt mean nothing...Could you please bring that good ole classic MMX in?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

7 participants