diff options
-rwxr-xr-x | devtools/tasmrecover/tasm-recover | 4 | ||||
-rw-r--r-- | engines/dreamweb/dreamgen.cpp | 44 | ||||
-rw-r--r-- | engines/dreamweb/dreamgen.h | 12 | ||||
-rw-r--r-- | engines/dreamweb/stubs.h | 7 | ||||
-rw-r--r-- | engines/dreamweb/vgafades.cpp | 31 |
5 files changed, 44 insertions, 54 deletions
diff --git a/devtools/tasmrecover/tasm-recover b/devtools/tasmrecover/tasm-recover index 2696bcbfb1..a2e40554ec 100755 --- a/devtools/tasmrecover/tasm-recover +++ b/devtools/tasmrecover/tasm-recover @@ -213,6 +213,10 @@ generator = cpp(context, "DreamGen", blacklist = [ 'initrain', 'checkbasemem', 'clearstartpal', + 'paltostartpal', + 'endpaltostart', + 'startpaltoend', + 'paltoendpal', ], skip_output = [ # These functions are processed but not output 'dreamweb', diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp index 599ef90d6d..4560c15055 100644 --- a/engines/dreamweb/dreamgen.cpp +++ b/engines/dreamweb/dreamgen.cpp @@ -2940,46 +2940,6 @@ noaddb: goto greysumloop1; } -void DreamGenContext::paltostartpal() { - STACK_CHECK; - es = data.word(kBuffers); - ds = data.word(kBuffers); - si = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768); - di = (0+(228*13)+32+60+(32*32)+(11*10*3)); - cx = 768/2; - _movsw(cx, true); -} - -void DreamGenContext::endpaltostart() { - STACK_CHECK; - es = data.word(kBuffers); - ds = data.word(kBuffers); - si = (0+(228*13)+32+60+(32*32)+(11*10*3)+768); - di = (0+(228*13)+32+60+(32*32)+(11*10*3)); - cx = 768/2; - _movsw(cx, true); -} - -void DreamGenContext::startpaltoend() { - STACK_CHECK; - es = data.word(kBuffers); - ds = data.word(kBuffers); - di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768); - si = (0+(228*13)+32+60+(32*32)+(11*10*3)); - cx = 768/2; - _movsw(cx, true); -} - -void DreamGenContext::paltoendpal() { - STACK_CHECK; - es = data.word(kBuffers); - ds = data.word(kBuffers); - di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768); - si = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768); - cx = 768/2; - _movsw(cx, true); -} - void DreamGenContext::allpalette() { STACK_CHECK; es = data.word(kBuffers); @@ -16232,10 +16192,6 @@ void DreamGenContext::__dispatch_call(uint16 addr) { case addr_fadecalculation: fadecalculation(); break; case addr_greyscalesum: greyscalesum(); break; case addr_showgroup: showgroup(); break; - case addr_paltostartpal: paltostartpal(); break; - case addr_endpaltostart: endpaltostart(); break; - case addr_startpaltoend: startpaltoend(); break; - case addr_paltoendpal: paltoendpal(); break; case addr_allpalette: allpalette(); break; case addr_dumpcurrent: dumpcurrent(); break; case addr_fadedownmon: fadedownmon(); break; diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h index f9e45b7394..e6c105f466 100644 --- a/engines/dreamweb/dreamgen.h +++ b/engines/dreamweb/dreamgen.h @@ -500,10 +500,6 @@ public: static const uint16 addr_fadedownmon = 0xc2ac; static const uint16 addr_dumpcurrent = 0xc2a8; static const uint16 addr_allpalette = 0xc2a4; - static const uint16 addr_paltoendpal = 0xc2a0; - static const uint16 addr_startpaltoend = 0xc29c; - static const uint16 addr_endpaltostart = 0xc298; - static const uint16 addr_paltostartpal = 0xc294; static const uint16 addr_showgroup = 0xc290; static const uint16 addr_greyscalesum = 0xc28c; static const uint16 addr_fadecalculation = 0xc288; @@ -1459,7 +1455,7 @@ public: void fadescreenuphalf(); void getridoftempcharset(); void heavy(); - void endpaltostart(); + //void endpaltostart(); void showkeys(); void usekey(); void locklighton(); @@ -1551,7 +1547,7 @@ public: void openfilenocheck(); //void readoneblock(); void fadeupmon(); - void paltoendpal(); + //void paltoendpal(); void fadetowhite(); void loadsavebox(); void soundend(); @@ -1611,7 +1607,7 @@ public: void constant(); void loadroomssample(); void sparkydrip(); - void paltostartpal(); + //void paltostartpal(); void bossman(); void getridofpit(); void convnum(); @@ -1640,7 +1636,7 @@ public: void hangonpq(); void startup(); void savegame(); - void startpaltoend(); + //void startpaltoend(); //void showicon(); void findopenpos(); void describeob(); diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h index 9d548f5926..4cdd11da8a 100644 --- a/engines/dreamweb/stubs.h +++ b/engines/dreamweb/stubs.h @@ -255,6 +255,13 @@ void transfertext(); void initrain(); Rain *splitintolines(uint8 x, uint8 y, Rain *rain); + uint8 *mainPalette(); + uint8 *startPalette(); + uint8 *endPalette(); void clearstartpal(); + void paltostartpal(); + void endpaltostart(); + void startpaltoend(); + void paltoendpal(); diff --git a/engines/dreamweb/vgafades.cpp b/engines/dreamweb/vgafades.cpp index 5fffd9c333..79a7cce389 100644 --- a/engines/dreamweb/vgafades.cpp +++ b/engines/dreamweb/vgafades.cpp @@ -24,9 +24,36 @@ namespace DreamGen { +uint8 *DreamGenContext::mainPalette() { + return segRef(data.word(kBuffers)).ptr(kMaingamepal, 256*3); +} + +uint8 *DreamGenContext::startPalette() { + return segRef(data.word(kBuffers)).ptr(kStartpal, 256*3); +} + +uint8 *DreamGenContext::endPalette() { + return segRef(data.word(kBuffers)).ptr(kEndpal, 256*3); +} + void DreamGenContext::clearstartpal() { - uint8 *startPalette = segRef(data.word(kBuffers)).ptr(kStartpal, 256*3); - memset(startPalette, 0, 256*3); + memset(startPalette(), 0, 256*3); +} + +void DreamGenContext::paltostartpal() { + memcpy(startPalette(), mainPalette(), 256*3); +} + +void DreamGenContext::endpaltostart() { + memcpy(startPalette(), endPalette(), 256*3); +} + +void DreamGenContext::startpaltoend() { + memcpy(endPalette(), startPalette(), 256*3); +} + +void DreamGenContext::paltoendpal() { + memcpy(endPalette(), mainPalette(), 256*3); } } /*namespace dreamgen */ |