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

SSE2 Support (non)requirement? #12

Open
xan1242 opened this issue Jul 1, 2020 · 2 comments
Open

SSE2 Support (non)requirement? #12

xan1242 opened this issue Jul 1, 2020 · 2 comments
Assignees
Labels
enhancement New feature or request

Comments

@xan1242
Copy link
Owner

xan1242 commented Jul 1, 2020

A potential non-requirement.

Depending on how many people ask, I might make a special compatibility version for even older CPUs (Pentium 3 & Athlon/Sempron XP and older)

As this is an older game I'd imagine a lot of players would be playing it on those kinds of rigs, but then again, how many are running those kinds of computers with widescreen monitors?

I've tested on Windows 7 on a Compaq Evo N600c with a Pentium 3. (not XP, I know, the new ASI loader I made was compiled with VS2019 so it requires SSE2, also the laptop itself has no widescreen monitor so yay)
Barely got it to run with the Ultimate ASI Loader v3.4, as newer ones require SSE2 on the ASI loader side.

Currently the fix crashes in the GetDesktopRes() function, the error being (excerpt from IDA):
An attempt was made to execute an illegal instruction (exc.code c000001d, tid 3480)

The instruction itself:
movq qword ptr [esp+28h], xmm0

Pentium 3 doesn't have movq instruction indeed.
A workaround would be to compile with something older like MSVC 2010 to get it going (or maybe even older)

@xan1242 xan1242 added the enhancement New feature or request label Jul 1, 2020
@xan1242 xan1242 self-assigned this Jul 1, 2020
@CookiePLMonster
Copy link

A workaround would be to compile with something older like MSVC 2010 to get it going (or maybe even older)

This is not needed though, you can just opt for /arch:IA32 (or Extended Instruction Set: None) and the compiler will not emit SSE instructions in normal code.

@mirh
Copy link

mirh commented Feb 18, 2022

You also don't need any particularly special old version to target XP.
Using the v141_xp toolset (even in VS2019) is still perfectly viable.. 13AG whims allowing.

MSVC 2010 may instead be needed if you want to target windows 98 (or maybe not, I'm not sure about the power of kernelex)

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

3 participants