Patch:
- Fix regression with Romantic Blue caused by the midnight overflow patch - Preserve AH - Derive conversion value from known constants instead of using a magic number Thanks to ripsaw8080. Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@3720
This commit is contained in:
parent
73cc716621
commit
039e32658a
1 changed files with 11 additions and 9 deletions
|
@ -429,17 +429,19 @@ static Bitu DOS_21Handler(void) {
|
|||
reg_ax=0; // get time
|
||||
CALLBACK_RunRealInt(0x1a);
|
||||
if(reg_al) DOS_AddDays(reg_al);
|
||||
reg_ah=0x2c;
|
||||
|
||||
Bitu time=((Bitu)reg_cx<<16)|reg_dx;
|
||||
Bitu ticks=(Bitu)(5.49254945 * (double)time);
|
||||
Bitu ticks=((Bitu)reg_cx<<16)|reg_dx;
|
||||
if(time_start<=ticks) ticks-=time_start;
|
||||
Bitu time=(Bitu)((100.0/((double)PIT_TICK_RATE/65536.0)) * (double)ticks);
|
||||
|
||||
reg_dl=(Bit8u)((Bitu)ticks % 100); // 1/100 seconds
|
||||
ticks/=100;
|
||||
reg_dh=(Bit8u)((Bitu)ticks % 60); // seconds
|
||||
ticks/=60;
|
||||
reg_cl=(Bit8u)((Bitu)ticks % 60); // minutes
|
||||
ticks/=60;
|
||||
reg_ch=(Bit8u)((Bitu)ticks % 24); // hours
|
||||
reg_dl=(Bit8u)((Bitu)time % 100); // 1/100 seconds
|
||||
time/=100;
|
||||
reg_dh=(Bit8u)((Bitu)time % 60); // seconds
|
||||
time/=60;
|
||||
reg_cl=(Bit8u)((Bitu)time % 60); // minutes
|
||||
time/=60;
|
||||
reg_ch=(Bit8u)((Bitu)time % 24); // hours
|
||||
|
||||
//Simulate DOS overhead for timing-sensitive games
|
||||
//Robomaze 2
|
||||
|
|
Loading…
Add table
Reference in a new issue