aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
Diffstat (limited to 'engines')
-rw-r--r--engines/dreamweb/dreamweb.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index e0ed987e99..cab9863911 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -86,12 +86,12 @@ void DreamWebEngine::setVSyncInterrupt(bool flag) {
void DreamWebEngine::waitForVSync() {
processEvents();
-/*
+
while (!_vSyncInterrupt) {
_system->delayMillis(10);
}
setVSyncInterrupt(false);
-*/
+
// doshake
// dofade
}
@@ -144,7 +144,8 @@ Common::Error DreamWebEngine::run() {
_mouseState = 0;
_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);
@@ -226,6 +227,7 @@ void DreamWebEngine::fadeDos() {
waitForVSync();
}
}
+
void DreamWebEngine::setPalette() {
uint8 colors[768];
processEvents();
@@ -286,7 +288,10 @@ void multiput(Context &context) {
}
void multidump(Context &context) {
+ context.ds = context.data.word(kWorkspace);
int w = (uint8)context.cl, h = (uint8)context.ch;
+ if (w == 0 || h == 0)
+ return;
int x = (int16)context.di, y = (int16)context.bx;
unsigned offset = x + y * kScreenwidth;
debug(1, "multidump %ux%u(segment: %04x) -> %d,%d(address: %d)", w, h, (uint16)context.ds, x, y, offset);