VOGONS

Common searches


Search results

Display options

Re: Problem with FIST/FISTP instructions

in DOSBox Patches
Is entering the values into lower and upper endian wise safe ? as I orginally added those to write out 64 bit numbers correctly would blah.ll= -9223372036854775808 work ? (it might be fine, but doesn't hurt to think it over, as endian things can sometimes be tricky) Since the values are read from …

Re: Problem with FIST/FISTP instructions

in DOSBox Patches
Qbix wrote on 2020-12-14, 08:01: Would that work as well for the i64 or is there a real need to round the data twice ? […] Show full quote Copy code to clipboard 1 blah.ll = static_cast(value) Would that work as well for the i64 or is there a real need to round the data twice ? I missed …

Re: Problem with FIST/FISTP instructions

in DOSBox Patches
Your value for the I64 comparison looks off by one (it's 2^63-1 instead of 2^63), but it probably wouldn't matter anyway since 63 is too many bits of precision to be accurately represented in a double. Yes, you're right. I fixed it. Using frexp() and checking the range of the exponent might be …

Re: Problem with FIST/FISTP instructions

in DOSBox Patches
I thought about it and a more correct but slower solution is to check the boundaries before conversion to integer - like this: static void FPU_FST_I16(PhysPt addr) { double value = FROUND(fpu.regs[TOP].d); mem_writew(addr,(value < 32768.0 && value >= -32768.0)?static_cast (value):-32768); } static …

Problem with FIST/FISTP instructions

in DOSBox Patches
I was looking at a problem with the game Screamer on ARMv8 architecture. It sometimes didn't work, depending on the content of the file CHOICE.DAT. The problem was with FIST/FISTP instructions. When storing a value which doesn't fit the target memory, the x87 will store the lowest negative value …

Speeding up hq2x / hq3x

I tried speeding up hq2x/hq3x (mainly by using SIMD instructions to speed up function diffYUV - on x86/x64/armv6/armv7/armv8 CPUs). When I tested just hq2x/hq3x outside of DOSBox, I measured a speed increase 55%-87% (x86/x64 versions). But when I tested whole DOSBox, the maximum speed increase was …

Re: Error in hq2x / hq3x

An example image scaled with hq3x using unfixed code: Filename test1.png File size 7.19 KiB Views 542 views File comment hq3x using unfixed code An example image scaled with hq3x using fixed code: Filename test2.png File size 8.14 KiB Views 542 views File comment hq3x using fixed code

Error in hq2x / hq3x

There is an error in hq2x / hq3x scalers. In file src/gui/render_templates_hq.h (in function diffYUV) the lines 44, 49, 54 are the same and look like this: mask = diff >> 31; // -1 if value < 0, 0 otherwise Since diff is an unsigned integer, the result won't be -1 if value < 0, but the result will …

Re: Dynamic core optimization

Thar she blows, 64 bit decoder. For some reason this doesn't work: // cache_addq(0xc48300000000e851|((Bit64u)(&mem_readb_checked_dcx86) - (Bit64u)cache.pos-4)<<16); Should by my understanding and gets past gcc without complaint but dosbox crashes out. Saving ((Bit64u)(&mem_readb_checked_dcx86) - ( …

Page 2 of 5