VOGONS


Questions about fpu

Topic actions

Reply 20 of 30, by gulikoza

User metadata
Rank Oldbie
Rank
Oldbie

Nice work...tomb rider is indeed a lot faster. It maxed out at about 25K cycles on my comp, now it goes up to 55K. It unfortunately does not help Dark Forces.

Reply 21 of 30, by wd

User metadata
Rank DOSBox Author
Rank
DOSBox Author

Dark Forces does not use the fpu, only occasionally. Didn't
find anything odd in there, and seems to run at fine speed
for me anyways.

wd

Reply 22 of 30, by kekko

User metadata
Rank Oldbie
Rank
Oldbie

i tried quake today (after I fixed vbe2 detection and setpalette)
and it almost doubled performance!

@wd
fpu struct doesn't seem to be the problem, i declared it as extern
into dynfpu.h, anyway i'll check again.

Reply 23 of 30, by Qbix

User metadata
Rank DOSBox Author
Rank
DOSBox Author

it might be wise to submit official patches.
an all in one changes patch is not likely to be accepted.
small parts at a time are more likely.

Water flows down the stream
How to ask questions the smart way!

Reply 24 of 30, by wd

User metadata
Rank DOSBox Author
Rank
DOSBox Author

Sorry, missed the external.

Try the following for FLD STi:
gen_protectflags();
gen_load_host(&TOP,DREG(TMPW),4);
gen_dop_word_imm(DOP_ADD,true,DREG(TMPW),decode.modrm.rm);
gen_dop_word_imm(DOP_AND,true,DREG(TMPW),7);
gen_call_function((void*)&FPU_PREP_PUSH,"");

gen_load_host(&TOP,DREG(TMPB),4);
gen_call_function((void*)&FPU_FST,"%Dd%Dd",DREG(TMPW),DREG(TMPB));

fpu.top is modified by prep push, but the parameter (the i in STi)
is based on the unmodified value.
At least Quake runs then, the other opcodes are fine afaict.

wd

Reply 25 of 30, by kekko

User metadata
Rank Oldbie
Rank
Oldbie

thanks wd, now all works correctly.
I didn't notice there was a reason it saves stv(sub) before
the push. too much time far from programming. 😦
ps: is there a fpu test utility around?

Reply 26 of 30, by wd

User metadata
Rank DOSBox Author
Rank
DOSBox Author

I was using TestFloat from
http://www.jhauser.us/arithmetic/TestFloat.html
for the x86 fpu, it didn't find the FLD STi-bug as
it seems to only check arithmetic/tig functions
and so (has nice precision tests).

wd

Reply 27 of 30, by red_avatar

User metadata
Rank Oldbie
Rank
Oldbie

Is there a way a normal person who doesn't have C++ compilers at home can easily use the enhanced code to run games like Tomb Raider ?

Retro game fanatic.
IBM PS1 386SX25 - 4MB
IBM Aptiva 486SX33 - 8MB - 2GB CF - SB16
IBM PC350 P233MMX - 64MB - 32GB SSD - AWE64 - Voodoo2
PIII600 - 320MB - 480GB SSD - SB Live! - GF4 Ti 4200
i5-2500k - 3GB - SB Audigy 2 - HD 4870

Reply 29 of 30, by kekko

User metadata
Rank Oldbie
Rank
Oldbie

uploaded a patch on sourceforge with wd dynamic fpu version.
it gives a noticeable boost to fpu-demanding games. try it!

Reply 30 of 30, by leecher

User metadata
Rank Newbie
Rank
Newbie
DosFreak wrote on 2005-04-15, 21:43:

Ask someone who's already compiled it, wait for CVS, wait for official ver, get a free compile and compile it yourself.

Sorry for digging up this old thread, but I was in the need of a DOS FPU tester myself and wanted to attach a link to my compiled version here so that other ppl searching for it have a download link and don't need to compile it themselves:

https://github.com/leecher1337/ntvdmx64/files … 1/testfloat.zip