VOGONS


Quake without FPU

Topic actions

Reply 20 of 118, by Tronix

User metadata
Rank Member
Rank
Member
GigAHerZ wrote:

Thanks! Though, i've already tried that and couldn't get quake running with it... 🙁

Do you read Q87.TXT? It says:

We have added a special version of Q87, called Q87X, specifically to run
coprocessor intensive 32 bit DOS games such as QUAKE. Q87X will run
QUAKE on Nx586 and 486SX machines

To use Q87X, you must manually copy it to your Q87 directory. Then rename the full Q87.exe to some other name, such as Q87.org, […]
Show full quote

To use Q87X, you must manually copy it to your Q87 directory. Then
rename the full Q87.exe to some other name, such as Q87.org, and rename
Q87X.exe to Q87.exe. It will then run instead of the full Q87, and
you will be able to run QUAKE and DukeNukem 3D on 586's.

https://github.com/Tronix286/

Reply 21 of 118, by GigAHerZ

User metadata
Rank Oldbie
Rank
Oldbie

@Tronix, while i definitely went through the readme, i don't remember any more if i did play around with the q87x. I'll give it a second try. Thanks!

"640K ought to be enough for anybody." - And i intend to get every last bit out of it even after loading every damn driver!

Reply 22 of 118, by mpe

User metadata
Rank Oldbie
Rank
Oldbie

Sounds promising. Going to give the Q87X a go. The regular Q87 didn't work.

Can't wait to see the performance penalty on my 486 SX2 and Nx586.

Blog|NexGen 586|S4

Reply 23 of 118, by georgel

User metadata
Rank Member
Rank
Member
mpe wrote:

Sounds promising. Going to give the Q87X a go. The regular Q87 didn't work.

Can't wait to see the performance penalty on my 486 SX2 and Nx586.

Q87 should also work but slower. You never replied to my previous message addressed to you.

Reply 24 of 118, by mpe

User metadata
Rank Oldbie
Rank
Oldbie
georgel wrote:

Q87 should also work but slower. You never replied to my previous message addressed to you.

Sorry missed that one.

georgel wrote:
mpe wrote:

Is there any trick how to run Quake on a system without FPU (NexGen Nx586).

Tried to load Q87 emulator, but it is hanging on start.

It should be running. What is the Q87 version? What is the EMM version? More details about the "hanging on start", especially which software hangs on its start!

I tried Q87 is 4.1 (shareware unregistered in demo mode)

I normally use no EMM386, but the Q87 installer apparently enables one. It was the one that ships with MS-DOS 6.0.

It is the Quake thats hangs on start, just after the "locking memory" message where it is hanging forever.

Blog|NexGen 586|S4

Reply 25 of 118, by georgel

User metadata
Rank Member
Rank
Member

This FPU emulator is a DOS executable and requires no installation at all (unless you want to use the windows vxd driver that appeared in the latest versions). Just run Q87 or Q87X at the command prompt and it should remain resident. 4.13 is the latest version and supersedes version 4.1. Quake may be hanging for other reasons not related to the FPU emulator at all. How much RAM is installed in that computer of yours? I would recommend you to use QEMM instead of modest EMM386. The demo mode is just like the full mode but time limited therefore is not related to your problem with Quake.

Reply 26 of 118, by leileilol

User metadata
Rank l33t++
Rank
l33t++
georgel wrote:

@leileilol your reply is complete nonsense.

kthxbye

BinaryDemon wrote:

I was googling to see if anyone had done quake without FPU before, since its been open source for 23 years and quake has been ported to run on hundreds of different platforms now but was surprised I could not find anything. My conclusion is that any cpu that is remotely modern includes a FPU,

The closest to that has been PocketQuake. Most of the rendering becomes a fixed point integer optimized for 320x240 resolutions. I forget if there was any other integer-focused changes... it was done in early 2001 for the MIPS/ARM/SH3 devices in mind, where Abrash's x86 assembly is sent to hell anyway

QuakeDS was similar (had to emulate floats and move 3d to hardware instead) but IIRC gave up due to technical issues with the assets (being odd, non-square, etc)

apsosig.png
long live PCem

Reply 27 of 118, by Scali

User metadata
Rank l33t
Rank
l33t
leileilol wrote:

The closest to that has been PocketQuake.

Video quality is horrible, but seems to run very well:
https://www.youtube.com/watch?v=HO9c4qcSfvY

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 28 of 118, by Tronix

User metadata
Rank Member
Rank
Member

Pocket Quake source code

Attachments

  • Filename
    PocketQuake0062_src.zip
    File size
    681.05 KiB
    Downloads
    49 downloads
    File license
    Fair use/fair dealing exception

https://github.com/Tronix286/

Reply 29 of 118, by Tronix

User metadata
Rank Member
Rank
Member

Just for lulz recompile PocketQuake for Win32 from sources. I'm used Visual Studio 2005, durty comment all undefined functions and compile without errors with small amount of warnings -) To start the game, you must have a ID1 folder in the current directory from original Quake1 game.

i7uvx3zz_et62d6of4lwumo7vtq.jpeg

Attachments

  • Filename
    PocketQuake.zip
    File size
    276.29 KiB
    Downloads
    51 downloads
    File license
    Fair use/fair dealing exception

https://github.com/Tronix286/

Reply 30 of 118, by BinaryDemon

User metadata
Rank Oldbie
Rank
Oldbie

Oh man he's gotta try it now. PocketQuake on a NexGen CPU with the additional overhead of Win95? Let's bet on FPS.

Sidenote: I just tried 'timedemo demo1' on my 5960x @ 4.2ghz and I get ~2051 fps, but that might be skewed because it's so fast it's difficult to close the console overlay before a good portion of the benchmark is done. Thank you for this Tronix!

Check out DOSBox Distro:

https://sites.google.com/site/dosboxdistro/ [*]

a lightweight Linux distro (tinycore) which boots off a usb flash drive and goes straight to DOSBox.

Make your dos retrogaming experience portable!

Reply 31 of 118, by The Serpent Rider

User metadata
Rank l33t++
Rank
l33t++

it's so fast it's difficult to close the console overlay before a good portion of the benchmark is done

It doesn't automatically close it on the second run?

I must be some kind of standard: the anonymous gangbanger of the 21st century.

Reply 32 of 118, by Tronix

User metadata
Rank Member
Rank
Member
BinaryDemon wrote:

Oh man he's gotta try it now. PocketQuake on a NexGen CPU with the additional overhead of Win95? Let's bet on FPS

Sorry, but win32 PocketQuake uses FPU, because Visual Studio 2005 generate 80x87 opcodes by itself. This should not work on NexGen CPU.

https://github.com/Tronix286/

Reply 33 of 118, by BinaryDemon

User metadata
Rank Oldbie
Rank
Oldbie
The Serpent Rider wrote:

it's so fast it's difficult to close the console overlay before a good portion of the benchmark is done

It doesn't automatically close it on the second run?

Unless I'm misunderstanding, no. Maybe it has something to do with console being a button instead of mapped to a key.

Check out DOSBox Distro:

https://sites.google.com/site/dosboxdistro/ [*]

a lightweight Linux distro (tinycore) which boots off a usb flash drive and goes straight to DOSBox.

Make your dos retrogaming experience portable!

Reply 34 of 118, by BinaryDemon

User metadata
Rank Oldbie
Rank
Oldbie
Tronix wrote:
BinaryDemon wrote:

Oh man he's gotta try it now. PocketQuake on a NexGen CPU with the additional overhead of Win95? Let's bet on FPS

Sorry, but win32 PocketQuake uses FPU, because Visual Studio 2005 generate 80x87 opcodes by itself. This should not work on NexGen CPU.

Oh bummer.

Check out DOSBox Distro:

https://sites.google.com/site/dosboxdistro/ [*]

a lightweight Linux distro (tinycore) which boots off a usb flash drive and goes straight to DOSBox.

Make your dos retrogaming experience portable!

Reply 36 of 118, by Tronix

User metadata
Rank Member
Rank
Member

Today i recompile DOS Quake from sources. I am using DJGPP 2.05 with GCC 9.2.0. I am disable definition in quakedef.h and quakeasm.h #define id386 1 (set it to #define id386 0), thus, all assembler FPU optimized procedures are replaced by C-functions. Unfortunately, DJGPP have not build in soft-fp library, so i can't compile it with -msoft-float, but djgpp FAQ says linking with libemu.a is adequate to support processors without FPUs. So, i linked EXE with -lemu. Result: its run on DOSBOX.

Surprisingly, I can’t find a normal emulator that can correctly emulate a 386 processor without FPU. DosBox - emulate CPU with FPU (no options to disable FPU). Virtual PC, VMWare - Pentium-class processors and up. PCem v12, v14, v15 - okay, this emu can emulate 386, 486SX, but i get various errors depending on the version PCem. For example, PCem v15 can not start "gcc --version" commmand - just blinking cursor on 386 or 486SX machine types. The same thing at startup recompiled QUAKE.EXE.

So, i can't tested this EXE with real hardware on 386 or 486SX or NexGen processors... On DosBox its run fine, but i not tested more complex.

Attachments

  • Filename
    quake.zip
    File size
    370.18 KiB
    Downloads
    50 downloads
    File license
    Fair use/fair dealing exception

https://github.com/Tronix286/

Reply 38 of 118, by VioletGiraffe

User metadata
Rank Newbie
Rank
Newbie

I know -lemu works in principle as my test program compiled with DJGPP uses float and works just fine on my physical 386 machine without a coprocessor.
Also, this fork of DOSBox seem to have an option for disabling FPU emulation, although I have not tested it yet: https://github.com/joncampbell123/dosbox-x

Reply 39 of 118, by kixs

User metadata
Rank l33t
Rank
l33t
Tronix wrote:

...

So, i can't tested this EXE with real hardware on 386 or 486SX or NexGen processors... On DosBox its run fine, but i not tested more complex.

I'm just testing your version. But it so happens I have a RapidCAD in my system at the moment 🤣 Will timedemo this version VS original and then change the cpu.

Requests are also possible... /msg kixs