aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVladimir Menshakov2011-06-11 16:52:05 +0400
committerAlyssa Milburn2011-06-15 17:34:11 +0200
commit938c14ddacbeb3669012bc64eab92a0f2d0654a9 (patch)
tree6ad59ff9683ba650e879409e274ddeca8a84cc8d
parentfd1360096b88156eb0eb4ef8305b5d62216c8248 (diff)
downloadscummvm-rg350-938c14ddacbeb3669012bc64eab92a0f2d0654a9.tar.gz
scummvm-rg350-938c14ddacbeb3669012bc64eab92a0f2d0654a9.tar.bz2
scummvm-rg350-938c14ddacbeb3669012bc64eab92a0f2d0654a9.zip
DREAMWEB: increased vga frequency to 70Hz, fixed data segments
-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);