DREAMWEB: increased vga frequency to 70Hz, fixed data segments

This commit is contained in:
Vladimir Menshakov 2011-06-11 16:52:05 +04:00 committed by Alyssa Milburn
parent fd1360096b
commit 938c14ddac

View File

@ -86,12 +86,12 @@ void DreamWebEngine::setVSyncInterrupt(bool flag) {
void DreamWebEngine::waitForVSync() { void DreamWebEngine::waitForVSync() {
processEvents(); processEvents();
/*
while (!_vSyncInterrupt) { while (!_vSyncInterrupt) {
_system->delayMillis(10); _system->delayMillis(10);
} }
setVSyncInterrupt(false); setVSyncInterrupt(false);
*/
// doshake // doshake
// dofade // dofade
} }
@ -144,7 +144,8 @@ Common::Error DreamWebEngine::run() {
_mouseState = 0; _mouseState = 0;
_console = new DreamWebConsole(this); _console = new DreamWebConsole(this);
getTimerManager()->installTimerProc(vSyncInterrupt, 1000000 / 60, this); getTimerManager()->installTimerProc(vSyncInterrupt, 1000000 / 70, this);
//http://martin.hinner.info/vga/timing.html
dreamgen::__start(_context); dreamgen::__start(_context);
@ -226,6 +227,7 @@ void DreamWebEngine::fadeDos() {
waitForVSync(); waitForVSync();
} }
} }
void DreamWebEngine::setPalette() { void DreamWebEngine::setPalette() {
uint8 colors[768]; uint8 colors[768];
processEvents(); processEvents();
@ -286,7 +288,10 @@ void multiput(Context &context) {
} }
void multidump(Context &context) { void multidump(Context &context) {
context.ds = context.data.word(kWorkspace);
int w = (uint8)context.cl, h = (uint8)context.ch; int w = (uint8)context.cl, h = (uint8)context.ch;
if (w == 0 || h == 0)
return;
int x = (int16)context.di, y = (int16)context.bx; int x = (int16)context.di, y = (int16)context.bx;
unsigned offset = x + y * kScreenwidth; unsigned offset = x + y * kScreenwidth;
debug(1, "multidump %ux%u(segment: %04x) -> %d,%d(address: %d)", w, h, (uint16)context.ds, x, y, offset); debug(1, "multidump %ux%u(segment: %04x) -> %d,%d(address: %d)", w, h, (uint16)context.ds, x, y, offset);