aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVladimir Menshakov2011-06-10 09:53:35 +0400
committerAlyssa Milburn2011-06-15 17:33:55 +0200
commit8cc8e73d1f80065c6359f98722e1a4de2cb62654 (patch)
tree4151f746611e04ea78fa6c555f21e98c0ea5de10
parent97310ab904eea1a80c2b2235e0a31a01f1fbaaae (diff)
downloadscummvm-rg350-8cc8e73d1f80065c6359f98722e1a4de2cb62654.tar.gz
scummvm-rg350-8cc8e73d1f80065c6359f98722e1a4de2cb62654.tar.bz2
scummvm-rg350-8cc8e73d1f80065c6359f98722e1a4de2cb62654.zip
DREAMWEB: blacklisted vga blitting functions
-rwxr-xr-xdevtools/tasmrecover/tasm-recover2
-rw-r--r--engines/dreamweb/dreamgen.cpp186
-rw-r--r--engines/dreamweb/dreamgen.h4
-rw-r--r--engines/dreamweb/dreamweb.cpp16
4 files changed, 21 insertions, 187 deletions
diff --git a/devtools/tasmrecover/tasm-recover b/devtools/tasmrecover/tasm-recover
index 159acacca4..1763a2524d 100755
--- a/devtools/tasmrecover/tasm-recover
+++ b/devtools/tasmrecover/tasm-recover
@@ -7,5 +7,5 @@ p = parser()
p.strip_path = 3
context = p.parse('dreamweb/dreamweb.asm')
p.link()
-generator = cpp(context, "dreamgen", blacklist = ['randomnumber', 'quickquit', 'quickquit2', 'seecommandtail'])
+generator = cpp(context, "dreamgen", blacklist = ['randomnumber', 'quickquit', 'quickquit2', 'seecommandtail', 'multiget', 'multiput', 'multidump', 'frameoutnm'])
generator.generate('dreamweb') #start routine
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index c9fcfb3e6b..b27c44e5bc 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -49,9 +49,6 @@ void switchryanon(Context &context);
void drawflags(Context &context);
void getdimension(Context &context);
void getflagunderp(Context &context);
-void multidump(Context &context);
-void multiput(Context &context);
-void multiget(Context &context);
void dumpblink(Context &context);
void showblink(Context &context);
void showframe(Context &context);
@@ -429,7 +426,6 @@ void rollendcredits2(Context &context);
void clearstartpal(Context &context);
void fadecalculation(Context &context);
void frameoutfx(Context &context);
-void frameoutnm(Context &context);
void frameoutbh(Context &context);
void frameoutv(Context &context);
void putunderzoom(Context &context);
@@ -4357,142 +4353,6 @@ deloneloop:
return;
}
-void multiget(Context & context) {
- context.ax = context.bx;
- context.bx = (320);
- context._mul(context.bx);
- context._add(context.di, context.ax);
- context.es = context.data.word(kWorkspace);
- context.es = context.ds;
- context.ds = context.es;
- context._xchg(context.di, context.si);
- context.al = context.cl;
- context.ah = 0;
- context.dx = (320);
- context._sub(context.dx, context.ax);
- context.al = context.cl;
- context._and(context.al, 1);
- if (!context.flags.z()) goto oddwidth2;
- context.bl = context.cl;
- context.bh = 0;
- context.ax = 1819;
- context._shr(context.bx, 1);
- context._sub(context.ax, context.bx);
- context.cl = context.ch;
- context.ch = 0;
-multiloop3:
- __dispatch_call(context, context.ax);
- context._add(context.si, context.dx);
- if (--context.cx) goto multiloop3;
- return;
-oddwidth2:
- context.bl = context.cl;
- context.bh = 0;
- context._shr(context.bx, 1);
- context.ax = 1819;
- context._sub(context.ax, context.bx);
- context.cl = context.ch;
- context.ch = 0;
-multiloop4:
- __dispatch_call(context, context.ax);
- context._movsb();
- context._add(context.si, context.dx);
- if (--context.cx) goto multiloop4;
- return;
-}
-
-void multiput(Context & context) {
- context.ax = context.bx;
- context.bx = (320);
- context._mul(context.bx);
- context._add(context.di, context.ax);
- context.es = context.data.word(kWorkspace);
- context.al = context.cl;
- context.ah = 0;
- context.dx = (320);
- context._sub(context.dx, context.ax);
- context.al = context.cl;
- context._and(context.al, 1);
- if (!context.flags.z()) goto oddwidth3;
- context.bl = context.cl;
- context.bh = 0;
- context._shr(context.bx, 1);
- context.ax = 1819;
- context._sub(context.ax, context.bx);
- context.cl = context.ch;
- context.ch = 0;
-multiloop5:
- __dispatch_call(context, context.ax);
- context._add(context.di, context.dx);
- if (--context.cx) goto multiloop5;
- return;
-oddwidth3:
- context.bl = context.cl;
- context.bh = 0;
- context._shr(context.bx, 1);
- context.ax = 1819;
- context._sub(context.ax, context.bx);
- context.cl = context.ch;
- context.ch = 0;
-multiloop6:
- __dispatch_call(context, context.ax);
- context._movsb();
- context._add(context.di, context.dx);
- if (--context.cx) goto multiloop6;
- return;
-}
-
-void multidump(Context & context) {
- context.dx = 0x0a000;
- context.es = context.dx;
- context.ds = context.data.word(kWorkspace);
- context.ax = context.bx;
- context.bx = (320);
- context._mul(context.bx);
- context._add(context.di, context.ax);
- context.dx = (320);
- context.si = context.di;
- context.al = context.cl;
- context._and(context.al, 1);
- if (!context.flags.z()) goto oddwidth;
- context.bl = context.cl;
- context.bh = 0;
- context._shr(context.bx, 1);
- context.ax = 1819;
- context._sub(context.ax, context.bx);
- context.bl = context.cl;
- context.bh = 0;
- context._neg(context.bx);
- context._add(context.bx, context.dx);
- context.cl = context.ch;
- context.ch = 0;
-multiloop1:
- __dispatch_call(context, context.ax);
- context._add(context.di, context.bx);
- context._add(context.si, context.bx);
- if (--context.cx) goto multiloop1;
- return;
-oddwidth:
- context.bl = context.cl;
- context.bh = 0;
- context._shr(context.bx, 1);
- context.ax = 1819;
- context._sub(context.ax, context.bx);
- context.bl = context.cl;
- context.bh = 0;
- context._neg(context.bx);
- context._add(context.bx, (320));
- context.cl = context.ch;
- context.ch = 0;
-multiloop2:
- __dispatch_call(context, context.ax);
- context._movsb();
- context._add(context.di, context.bx);
- context._add(context.si, context.bx);
- if (--context.cx) goto multiloop2;
- return;
-}
-
void width160(Context & context) {
context._movsw();
context._movsw();
@@ -4978,48 +4838,6 @@ backtosolid:
return;
}
-void frameoutnm(Context & context) {
- context.push(context.dx);
- context.ax = context.bx;
- context.bx = context.dx;
- context._mul(context.bx);
- context._add(context.di, context.ax);
- context.dx = context.pop();
- context.push(context.cx);
- context.ch = 0;
- context._sub(context.dx, context.cx);
- context.cx = context.pop();
- context.al = context.cl;
- context._and(context.al, 1);
- if (!context.flags.z()) goto oddwidthframe;
- context.bl = context.cl;
- context.bh = 0;
- context.ax = 1819;
- context._shr(context.bx, 1);
- context._sub(context.ax, context.bx);
- context.cl = context.ch;
- context.ch = 0;
-nmloop1:
- __dispatch_call(context, context.ax);
- context._add(context.di, context.dx);
- if (--context.cx) goto nmloop1;
- return;
-oddwidthframe:
- context.bl = context.cl;
- context.bh = 0;
- context._shr(context.bx, 1);
- context.ax = 1819;
- context._sub(context.ax, context.bx);
- context.cl = context.ch;
- context.ch = 0;
-nmloop2:
- __dispatch_call(context, context.ax);
- context._movsb();
- context._add(context.di, context.dx);
- if (--context.cx) goto nmloop2;
- return;
-}
-
void frameoutbh(Context & context) {
context.push(context.dx);
context.ax = context.bx;
@@ -21517,14 +21335,10 @@ void __dispatch_call(Context &context, unsigned addr) {
case 0xc20c: doshake(context); break;
case 0xc210: zoom(context); break;
case 0xc214: delthisone(context); break;
- case 0xc218: multiget(context); break;
- case 0xc21c: multiput(context); break;
- case 0xc220: multidump(context); break;
case 0xc224: width160(context); break;
case 0xc228: doblocks(context); break;
case 0xc22c: showframe(context); break;
case 0xc230: frameoutv(context); break;
- case 0xc234: frameoutnm(context); break;
case 0xc238: frameoutbh(context); break;
case 0xc23c: frameoutfx(context); break;
case 0xc240: transferinv(context); break;
diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h
index 228bf14df8..fcbf738a00 100644
--- a/engines/dreamweb/dreamgen.h
+++ b/engines/dreamweb/dreamgen.h
@@ -12,6 +12,10 @@ namespace dreamgen {
void quickquit(Context &context);
void quickquit2(Context &context);
void seecommandtail(Context &context);
+ void multiget(Context &context);
+ void multiput(Context &context);
+ void multidump(Context &context);
+ void frameoutnm(Context &context);
void keyboardread(Context &context);
void resetkeyboard(Context &context);
void setkeyboardint(Context &context);
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 94c6e7e6e7..adc2cbbaa2 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -227,6 +227,22 @@ static inline DreamWeb::DreamWebEngine *engine() {
return DreamWeb::DreamWebEngine::instance();
}
+void multiget(Context &context) {
+ ::error("multiget");
+}
+
+void multiput(Context &context) {
+ ::error("multiput");
+}
+
+void multidump(Context &context) {
+ ::error("multidump");
+}
+
+void frameoutnm(Context &context) {
+ ::error("frameoutnm");
+}
+
void seecommandtail(Context &context) {
context.data.word(kSoundbaseadd) = 0x220;
context.data.byte(kSoundint) = 5;