[Scummvm-cvs-logs] scummvm master -> 87ac82db27e10317370b3a7637cf094f4e1492b9

tramboi bertrand_augereau at yahoo.fr
Sun Dec 4 16:24:15 CET 2011


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
87ac82db27 DREAMWEB: kIcons1 and kIcons2 ownership transferred from the VM to the engine


Commit: 87ac82db27e10317370b3a7637cf094f4e1492b9
    https://github.com/scummvm/scummvm/commit/87ac82db27e10317370b3a7637cf094f4e1492b9
Author: Bertrand Augereau (bertrand_augereau at yahoo.fr)
Date: 2011-12-04T09:23:30-08:00

Commit Message:
DREAMWEB: kIcons1 and kIcons2 ownership transferred from the VM to the engine

Changed paths:
    devtools/tasmrecover/tasm-recover
    engines/dreamweb/dreamgen.cpp
    engines/dreamweb/dreamgen.h
    engines/dreamweb/dreamweb.cpp
    engines/dreamweb/dreamweb.h
    engines/dreamweb/runtime.h
    engines/dreamweb/structs.h
    engines/dreamweb/stubs.cpp
    engines/dreamweb/stubs.h



diff --git a/devtools/tasmrecover/tasm-recover b/devtools/tasmrecover/tasm-recover
index a687e75..0f1edbc 100755
--- a/devtools/tasmrecover/tasm-recover
+++ b/devtools/tasmrecover/tasm-recover
@@ -80,6 +80,9 @@ p = parser(skip_binary_data = [
 	'r45','r46','r47','r52','r53','r55',
 	# use.asm
 	'uselist',
+	# vars.asm
+	'icons1',
+	'icons2',
 	# vgagrafx.asm
 	'shaketable',
 	'symbolgraphic',
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index 172e822..c25cef2 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -2046,7 +2046,7 @@ void DreamGenContext::showGun() {
 	data.byte(kRoomssample) = 34;
 	loadRoomsSample();
 	data.byte(kVolume) = 0;
-	dx = 1172;
+	dx = 1168;
 	loadIntoTemp();
 	createPanel2();
 	ds = data.word(kTempgraphics);
@@ -2069,7 +2069,7 @@ void DreamGenContext::showGun() {
 	al = 12;
 	ah = 0;
 	playChannel0();
-	dx = 1146;
+	dx = 1142;
 	loadTempText();
 	rollEndCredits2();
 	getRidOfTempText();
@@ -2317,7 +2317,7 @@ void DreamGenContext::initialMonCols() {
 
 void DreamGenContext::endGame() {
 	STACK_CHECK;
-	dx = 1146;
+	dx = 1142;
 	loadTempText();
 	monkSpeaking();
 	gettingShot();
@@ -2332,7 +2332,7 @@ void DreamGenContext::monkSpeaking() {
 	STACK_CHECK;
 	data.byte(kRoomssample) = 35;
 	loadRoomsSample();
-	dx = 1185;
+	dx = 1181;
 	loadIntoTemp();
 	clearWork();
 	showMonk();
@@ -2399,7 +2399,7 @@ void DreamGenContext::gettingShot() {
 void DreamGenContext::bibleQuote() {
 	STACK_CHECK;
 	mode640x480();
-	dx = 1198;
+	dx = 1194;
 	showPCX();
 	fadeScreenUps();
 	cx = 80;
@@ -2438,7 +2438,7 @@ hangonloope:
 
 void DreamGenContext::intro() {
 	STACK_CHECK;
-	dx = 1133;
+	dx = 1129;
 	loadTempText();
 	loadPalFromIFF();
 	setMode();
@@ -2571,7 +2571,7 @@ void DreamGenContext::realCredits() {
 	mode640x480();
 	cx = 35;
 	hangOn();
-	dx = 1211;
+	dx = 1207;
 	showPCX();
 	al = 12;
 	ah = 0;
@@ -2593,7 +2593,7 @@ void DreamGenContext::realCredits() {
 	_cmp(data.byte(kLasthardkey), 1);
 	if (flags.z())
 		goto realcreditsearly;
-	dx = 1224;
+	dx = 1220;
 	showPCX();
 	al = 12;
 	ah = 0;
@@ -2615,7 +2615,7 @@ void DreamGenContext::realCredits() {
 	_cmp(data.byte(kLasthardkey), 1);
 	if (flags.z())
 		goto realcreditsearly;
-	dx = 1237;
+	dx = 1233;
 	showPCX();
 	al = 12;
 	ah = 0;
@@ -2637,7 +2637,7 @@ void DreamGenContext::realCredits() {
 	_cmp(data.byte(kLasthardkey), 1);
 	if (flags.z())
 		goto realcreditsearly;
-	dx = 1250;
+	dx = 1246;
 	showPCX();
 	al = 12;
 	ah = 0;
@@ -2659,7 +2659,7 @@ void DreamGenContext::realCredits() {
 	_cmp(data.byte(kLasthardkey), 1);
 	if (flags.z())
 		goto realcreditsearly;
-	dx = 1263;
+	dx = 1259;
 	showPCX();
 	al = 12;
 	ah = 0;
@@ -2681,7 +2681,7 @@ void DreamGenContext::realCredits() {
 	_cmp(data.byte(kLasthardkey), 1);
 	if (flags.z())
 		goto realcreditsearly;
-	dx = 1276;
+	dx = 1272;
 	showPCX();
 	fadeScreenUps();
 	cx = 60;
@@ -5112,14 +5112,14 @@ void DreamGenContext::getDestInfo() {
 	push(ax);
 	dx = data;
 	es = dx;
-	si = 1938;
+	si = 1934;
 	_add(si, ax);
 	cl = es.byte(si);
 	ax = pop();
 	push(cx);
 	dx = data;
 	es = dx;
-	si = 1954;
+	si = 1950;
 	_add(si, ax);
 	ax = pop();
 }
@@ -5296,23 +5296,23 @@ clearedlocations:
 	bx = ax;
 	dx = data;
 	es = dx;
-	_add(bx, 1938);
+	_add(bx, 1934);
 	es.byte(bx) = 0;
 }
 
 void DreamGenContext::readDestIcon() {
 	STACK_CHECK;
-	dx = 1081;
+	dx = 1077;
 	loadIntoTemp();
-	dx = 1094;
+	dx = 1090;
 	loadIntoTemp2();
-	dx = 1055;
+	dx = 1051;
 	loadIntoTemp3();
 }
 
 void DreamGenContext::readCityPic() {
 	STACK_CHECK;
-	dx = 1068;
+	dx = 1064;
 	loadIntoTemp();
 }
 
@@ -5411,7 +5411,7 @@ void DreamGenContext::delChar() {
 	si = data.word(kCurpos);
 	_add(si, si);
 	es = cs;
-	_add(si, 1972);
+	_add(si, 1968);
 	es.byte(si) = 0;
 	al = es.byte(si+1);
 	ah = 0;
@@ -5438,7 +5438,7 @@ void DreamGenContext::execCommand() {
 	es = cs;
 	bx = offset_comlist;
 	ds = cs;
-	si = 1972;
+	si = 1968;
 	al = ds.byte(si);
 	_cmp(al, 0);
 	if (!flags.z())
@@ -5531,7 +5531,7 @@ dirroot:
 	si = offset_rootdir;
 	_inc(si);
 	es = cs;
-	di = 1627;
+	di = 1623;
 	_inc(di);
 	cx = 12;
 	_movsb(cx, true);
@@ -5633,7 +5633,7 @@ notyetassigned:
 	push(bx);
 	_add(bx, 2);
 	ds = cs;
-	si = 1972;
+	si = 1968;
 checkpass:
 	_lodsw();
 	ah = es.byte(bx);
@@ -5704,7 +5704,7 @@ void DreamGenContext::read() {
 	return;
 okcom:
 	es = cs;
-	di = 1627;
+	di = 1623;
 	ax = data.word(kTextfile1);
 	data.word(kMonsource) = ax;
 	ds = ax;
@@ -5834,7 +5834,7 @@ keyok2:
 	ds = cs;
 	si = offset_operand1+1;
 	es = cs;
-	di = 1627+1;
+	di = 1623+1;
 	cx = 12;
 	_movsb(cx, true);
 	monitorLogo();
@@ -5961,7 +5961,7 @@ void DreamGenContext::parser() {
 	al = '=';
 	_stosb();
 	ds = cs;
-	si = 1972;
+	si = 1968;
 notspace1:
 	_lodsw();
 	_cmp(al, 32);
@@ -8784,7 +8784,7 @@ nowinch:
 
 void DreamGenContext::loadKeypad() {
 	STACK_CHECK;
-	dx = 1042;
+	dx = 1038;
 	loadIntoTemp();
 }
 
@@ -9121,11 +9121,11 @@ void DreamGenContext::dumpSymBox() {
 void DreamGenContext::useDiary() {
 	STACK_CHECK;
 	getRidOfReels();
-	dx = 1107;
+	dx = 1103;
 	loadIntoTemp();
-	dx = 1120;
+	dx = 1116;
 	loadTempText();
-	dx = 1003;
+	dx = 999;
 	loadTempCharset();
 	createPanel();
 	showIcon();
@@ -9452,7 +9452,7 @@ opsblock1:
 
 void DreamGenContext::loadSaveBox() {
 	STACK_CHECK;
-	dx = 1055;
+	dx = 1051;
 	loadIntoTemp();
 }
 
@@ -9585,7 +9585,7 @@ void DreamGenContext::getNamePos() {
 	_mul(cx);
 	dx = data;
 	es = dx;
-	bx = 2106;
+	bx = 2102;
 	_add(bx, ax);
 	al = data.byte(kCursorpos);
 	ah = 0;
@@ -9739,7 +9739,7 @@ void DreamGenContext::showNames() {
 	STACK_CHECK;
 	dx = data;
 	es = dx;
-	si = 2106+1;
+	si = 2102+1;
 	di = (60)+21;
 	bx = (52)+10;
 	cl = 0;
@@ -10207,7 +10207,7 @@ void DreamGenContext::pickupOb() {
 void DreamGenContext::clearBuffers() {
 	STACK_CHECK;
 	es = data.word(kBuffers);
-	cx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64)+991-534+68-0)/2;
+	cx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64)+987-530+68-0)/2;
 	ax = 0;
 	di = 0;
 	_stosw(cx, true);
@@ -10219,11 +10219,11 @@ void DreamGenContext::clearBuffers() {
 	es = data.word(kBuffers);
 	di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64));
 	ds = cs;
-	si = 534;
-	cx = (991-534);
+	si = 530;
+	cx = (987-530);
 	_movsb(cx, true);
 	es = data.word(kBuffers);
-	di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64)+991-534);
+	di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64)+987-530);
 	ds = cs;
 	si = 0;
 	cx = (68-0);
@@ -10241,11 +10241,11 @@ void DreamGenContext::clearChanges() {
 	ds = data.word(kBuffers);
 	si = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64));
 	es = cs;
-	di = 534;
-	cx = (991-534);
+	di = 530;
+	cx = (987-530);
 	_movsb(cx, true);
 	ds = data.word(kBuffers);
-	si = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64)+991-534);
+	si = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64)+987-530);
 	es = cs;
 	di = 0;
 	cx = (68-0);
@@ -10259,7 +10259,7 @@ void DreamGenContext::clearChanges() {
 	di = 0;
 	_stosw(cx, true);
 	es = cs;
-	di = 1938;
+	di = 1934;
 	al = 1;
 	_stosb(2);
 	al = 0;
@@ -10981,199 +10981,199 @@ void DreamGenContext::__start() {
 		//0x0180: .... .... .... ....
 		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 		//0x0190: .... .... .... ....
-		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 
+		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
 		//0x01a0: .... .... .... ....
 		0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
 		//0x01b0: .... .... .... ....
 		0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
 		//0x01c0: .... .... .... ....
-		0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+		0xff, 0xff, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 		//0x01d0: .... .... .... ....
 		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 		//0x01e0: .... .... .... ....
-		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 
 		//0x01f0: .... .... .... ....
-		0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 
 		//0x0200: .... .... .... ....
-		0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x01, 0x2c, 0x00, 0x14, 0x00, 0x02, 0x00, 0x01, 0x01, 0x37, 
-		//0x0210: .... ..., .... ...7
-		0x00, 0x00, 0x00, 0x32, 0x14, 0x00, 0x18, 0x16, 0x00, 0x4a, 0x00, 0x01, 0x00, 0x00, 0x18, 0x21, 
-		//0x0220: ...2 .... .J.. ...!
-		0x0a, 0x4b, 0x00, 0x01, 0x00, 0x01, 0x01, 0x2c, 0x00, 0x1b, 0x00, 0x02, 0x00, 0x02, 0x01, 0x2c, 
-		//0x0230: .K.. ..., .... ...,
-		0x00, 0x60, 0x00, 0x03, 0x00, 0x04, 0x01, 0x2c, 0x00, 0x76, 0x00, 0x02, 0x00, 0x05, 0x01, 0x2c, 
-		//0x0240: .`.. ..., .v.. ...,
-		0x0a, 0x00, 0x00, 0x02, 0x00, 0x00, 0x05, 0x16, 0x14, 0x35, 0x00, 0x03, 0x00, 0x00, 0x05, 0x16, 
-		//0x0250: .... .... .5.. ....
-		0x14, 0x28, 0x00, 0x01, 0x00, 0x02, 0x05, 0x16, 0x14, 0x32, 0x00, 0x01, 0x00, 0x03, 0x02, 0x0b, 
-		//0x0260: .(.. .... .2.. ....
-		0x0a, 0xc0, 0x00, 0x01, 0x00, 0x00, 0x02, 0x0b, 0x0a, 0xb6, 0x00, 0x02, 0x00, 0x01, 0x08, 0x0b, 
+		0x00, 0x00, 0x01, 0x2c, 0x00, 0x14, 0x00, 0x02, 0x00, 0x01, 0x01, 0x37, 0x00, 0x00, 0x00, 0x32, 
+		//0x0210: ..., .... ...7 ...2
+		0x14, 0x00, 0x18, 0x16, 0x00, 0x4a, 0x00, 0x01, 0x00, 0x00, 0x18, 0x21, 0x0a, 0x4b, 0x00, 0x01, 
+		//0x0220: .... .J.. ...! .K..
+		0x00, 0x01, 0x01, 0x2c, 0x00, 0x1b, 0x00, 0x02, 0x00, 0x02, 0x01, 0x2c, 0x00, 0x60, 0x00, 0x03, 
+		//0x0230: ..., .... ..., .`..
+		0x00, 0x04, 0x01, 0x2c, 0x00, 0x76, 0x00, 0x02, 0x00, 0x05, 0x01, 0x2c, 0x0a, 0x00, 0x00, 0x02, 
+		//0x0240: ..., .v.. ..., ....
+		0x00, 0x00, 0x05, 0x16, 0x14, 0x35, 0x00, 0x03, 0x00, 0x00, 0x05, 0x16, 0x14, 0x28, 0x00, 0x01, 
+		//0x0250: .... .5.. .... .(..
+		0x00, 0x02, 0x05, 0x16, 0x14, 0x32, 0x00, 0x01, 0x00, 0x03, 0x02, 0x0b, 0x0a, 0xc0, 0x00, 0x01, 
+		//0x0260: .... .2.. .... ....
+		0x00, 0x00, 0x02, 0x0b, 0x0a, 0xb6, 0x00, 0x02, 0x00, 0x01, 0x08, 0x0b, 0x0a, 0x00, 0x00, 0x02, 
 		//0x0270: .... .... .... ....
-		0x0a, 0x00, 0x00, 0x02, 0x00, 0x01, 0x17, 0x00, 0x32, 0x00, 0x00, 0x03, 0x00, 0x00, 0x1c, 0x0b, 
-		//0x0280: .... .... 2... ....
-		0x14, 0xfa, 0x00, 0x04, 0x00, 0x00, 0x17, 0x00, 0x32, 0x2b, 0x00, 0x02, 0x00, 0x08, 0x17, 0x0b, 
-		//0x0290: .... .... 2+.. ....
-		0x28, 0x82, 0x00, 0x02, 0x00, 0x01, 0x17, 0x16, 0x28, 0x7a, 0x00, 0x02, 0x00, 0x02, 0x17, 0x16, 
-		//0x02a0: (... .... (z.. ....
-		0x28, 0x69, 0x00, 0x02, 0x00, 0x03, 0x17, 0x16, 0x28, 0x51, 0x00, 0x02, 0x00, 0x04, 0x17, 0x0b, 
-		//0x02b0: (i.. .... (Q.. ....
-		0x28, 0x87, 0x00, 0x02, 0x00, 0x05, 0x17, 0x16, 0x28, 0x91, 0x00, 0x02, 0x00, 0x06, 0x04, 0x16, 
-		//0x02c0: (... .... (... ....
-		0x1e, 0x00, 0x00, 0x02, 0x00, 0x00, 0x2d, 0x16, 0x1e, 0xc8, 0x00, 0x00, 0x00, 0x14, 0x2d, 0x16, 
-		//0x02d0: .... ..-. .... ..-.
-		0x1e, 0x27, 0x00, 0x02, 0x00, 0x00, 0x2d, 0x16, 0x1e, 0x19, 0x00, 0x02, 0x00, 0x00, 0x08, 0x16, 
-		//0x02e0: .'.. ..-. .... ....
-		0x28, 0x20, 0x00, 0x02, 0x00, 0x00, 0x07, 0x0b, 0x14, 0x40, 0x00, 0x02, 0x00, 0x00, 0x16, 0x16, 
-		//0x02f0: ( .. .... . at .. ....
-		0x14, 0x52, 0x00, 0x02, 0x00, 0x00, 0x1b, 0x0b, 0x1e, 0x00, 0x00, 0x02, 0x00, 0x00, 0x14, 0x00, 
-		//0x0300: .R.. .... .... ....
-		0x1e, 0x00, 0x00, 0x02, 0x00, 0x00, 0x0e, 0x21, 0x28, 0x15, 0x00, 0x01, 0x00, 0x00, 0x1d, 0x0b, 
-		//0x0310: .... ...! (... ....
-		0x0a, 0x00, 0x00, 0x01, 0x00, 0x00, 0x02, 0x16, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x19, 0x00, 
-		//0x0320: .... .... .... ....
-		0x32, 0x04, 0x00, 0x02, 0x00, 0x00, 0x32, 0x16, 0x1e, 0x79, 0x00, 0x02, 0x00, 0x00, 0x32, 0x16, 
-		//0x0330: 2... ..2. .y.. ..2.
-		0x1e, 0x00, 0x00, 0x14, 0x00, 0x00, 0x34, 0x16, 0x1e, 0xc0, 0x00, 0x02, 0x00, 0x00, 0x34, 0x16, 
-		//0x0340: .... ..4. .... ..4.
-		0x1e, 0xe9, 0x00, 0x02, 0x00, 0x00, 0x32, 0x16, 0x28, 0x68, 0x00, 0x37, 0x00, 0x00, 0x35, 0x21, 
-		//0x0350: .... ..2. (h.7 ..5!
-		0x00, 0x63, 0x00, 0x02, 0x00, 0x00, 0x32, 0x16, 0x28, 0x00, 0x00, 0x03, 0x00, 0x00, 0x32, 0x16, 
-		//0x0360: .c.. ..2. (... ..2.
-		0x1e, 0xa2, 0x00, 0x02, 0x00, 0x00, 0x34, 0x16, 0x1e, 0x39, 0x00, 0x02, 0x00, 0x00, 0x34, 0x16, 
-		//0x0370: .... ..4. .9.. ..4.
-		0x1e, 0x00, 0x00, 0x02, 0x00, 0x00, 0x36, 0x00, 0x00, 0x48, 0x00, 0x03, 0x00, 0x00, 0x37, 0x2c, 
-		//0x0380: .... ..6. .H.. ..7,
-		0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x0e, 0x16, 
+		0x00, 0x01, 0x17, 0x00, 0x32, 0x00, 0x00, 0x03, 0x00, 0x00, 0x1c, 0x0b, 0x14, 0xfa, 0x00, 0x04, 
+		//0x0280: .... 2... .... ....
+		0x00, 0x00, 0x17, 0x00, 0x32, 0x2b, 0x00, 0x02, 0x00, 0x08, 0x17, 0x0b, 0x28, 0x82, 0x00, 0x02, 
+		//0x0290: .... 2+.. .... (...
+		0x00, 0x01, 0x17, 0x16, 0x28, 0x7a, 0x00, 0x02, 0x00, 0x02, 0x17, 0x16, 0x28, 0x69, 0x00, 0x02, 
+		//0x02a0: .... (z.. .... (i..
+		0x00, 0x03, 0x17, 0x16, 0x28, 0x51, 0x00, 0x02, 0x00, 0x04, 0x17, 0x0b, 0x28, 0x87, 0x00, 0x02, 
+		//0x02b0: .... (Q.. .... (...
+		0x00, 0x05, 0x17, 0x16, 0x28, 0x91, 0x00, 0x02, 0x00, 0x06, 0x04, 0x16, 0x1e, 0x00, 0x00, 0x02, 
+		//0x02c0: .... (... .... ....
+		0x00, 0x00, 0x2d, 0x16, 0x1e, 0xc8, 0x00, 0x00, 0x00, 0x14, 0x2d, 0x16, 0x1e, 0x27, 0x00, 0x02, 
+		//0x02d0: ..-. .... ..-. .'..
+		0x00, 0x00, 0x2d, 0x16, 0x1e, 0x19, 0x00, 0x02, 0x00, 0x00, 0x08, 0x16, 0x28, 0x20, 0x00, 0x02, 
+		//0x02e0: ..-. .... .... ( ..
+		0x00, 0x00, 0x07, 0x0b, 0x14, 0x40, 0x00, 0x02, 0x00, 0x00, 0x16, 0x16, 0x14, 0x52, 0x00, 0x02, 
+		//0x02f0: .... . at .. .... .R..
+		0x00, 0x00, 0x1b, 0x0b, 0x1e, 0x00, 0x00, 0x02, 0x00, 0x00, 0x14, 0x00, 0x1e, 0x00, 0x00, 0x02, 
+		//0x0300: .... .... .... ....
+		0x00, 0x00, 0x0e, 0x21, 0x28, 0x15, 0x00, 0x01, 0x00, 0x00, 0x1d, 0x0b, 0x0a, 0x00, 0x00, 0x01, 
+		//0x0310: ...! (... .... ....
+		0x00, 0x00, 0x02, 0x16, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x19, 0x00, 0x32, 0x04, 0x00, 0x02, 
+		//0x0320: .... .... .... 2...
+		0x00, 0x00, 0x32, 0x16, 0x1e, 0x79, 0x00, 0x02, 0x00, 0x00, 0x32, 0x16, 0x1e, 0x00, 0x00, 0x14, 
+		//0x0330: ..2. .y.. ..2. ....
+		0x00, 0x00, 0x34, 0x16, 0x1e, 0xc0, 0x00, 0x02, 0x00, 0x00, 0x34, 0x16, 0x1e, 0xe9, 0x00, 0x02, 
+		//0x0340: ..4. .... ..4. ....
+		0x00, 0x00, 0x32, 0x16, 0x28, 0x68, 0x00, 0x37, 0x00, 0x00, 0x35, 0x21, 0x00, 0x63, 0x00, 0x02, 
+		//0x0350: ..2. (h.7 ..5! .c..
+		0x00, 0x00, 0x32, 0x16, 0x28, 0x00, 0x00, 0x03, 0x00, 0x00, 0x32, 0x16, 0x1e, 0xa2, 0x00, 0x02, 
+		//0x0360: ..2. (... ..2. ....
+		0x00, 0x00, 0x34, 0x16, 0x1e, 0x39, 0x00, 0x02, 0x00, 0x00, 0x34, 0x16, 0x1e, 0x00, 0x00, 0x02, 
+		//0x0370: ..4. .9.. ..4. ....
+		0x00, 0x00, 0x36, 0x00, 0x00, 0x48, 0x00, 0x03, 0x00, 0x00, 0x37, 0x2c, 0x00, 0x00, 0x00, 0x02, 
+		//0x0380: ..6. .H.. ..7, ....
+		0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x0e, 0x16, 0x00, 0x02, 0x00, 0x02, 
 		//0x0390: .... .... .... ....
-		0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x0e, 0x16, 0x00, 0x2c, 0x01, 0x01, 0x00, 0x00, 0x0a, 0x16, 
-		//0x03a0: .... .... .,.. ....
-		0x1e, 0xae, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x16, 0x14, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0b, 0x0b, 
-		//0x03b0: .... .... .... ....
-		0x14, 0x00, 0x00, 0x32, 0x14, 0x00, 0x0b, 0x0b, 0x1e, 0x00, 0x00, 0x32, 0x14, 0x00, 0x0b, 0x16, 
-		//0x03c0: ...2 .... ...2 ....
-		0x14, 0x00, 0x00, 0x32, 0x14, 0x00, 0x0e, 0x21, 0x28, 0x00, 0x00, 0x32, 0x14, 0x00, 0xff, 0x49, 
-		//0x03d0: ...2 ...! (..2 ...I
-		0x4e, 0x53, 0x54, 0x41, 0x4c, 0x4c, 0x2e, 0x44, 0x41, 0x54, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 
-		//0x03e0: NSTA LL.D AT.D REAM
-		0x57, 0x45, 0x42, 0x2e, 0x43, 0x30, 0x32, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 
-		//0x03f0: WEB. C02. DREA MWEB
-		0x2e, 0x56, 0x30, 0x30, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x56, 0x39, 
-		//0x0400: .V00 .DRE AMWE B.V9
-		0x39, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x30, 0x32, 0x00, 0x44, 
-		//0x0410: 9.DR EAMW EB.G 02.D
-		0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x30, 0x38, 0x00, 0x44, 0x52, 0x45, 0x41, 
-		//0x0420: REAM WEB. G08. DREA
-		0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x30, 0x34, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 
-		//0x0430: MWEB .G04 .DRE AMWE
-		0x42, 0x2e, 0x47, 0x30, 0x35, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 
-		//0x0440: B.G0 5.DR EAMW EB.G
-		0x30, 0x36, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x31, 0x34, 0x00, 
-		//0x0450: 06.D REAM WEB. G14.
-		0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x54, 0x35, 0x31, 0x00, 0x44, 0x52, 0x45, 
-		//0x0460: DREA MWEB .T51 .DRE
-		0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x54, 0x38, 0x32, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 
-		//0x0470: AMWE B.T8 2.DR EAMW
-		0x45, 0x42, 0x2e, 0x54, 0x38, 0x33, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 
-		//0x0480: EB.T 83.D REAM WEB.
-		0x56, 0x4f, 0x4c, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x31, 0x33, 
-		//0x0490: VOL. DREA MWEB .G13
-		0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x31, 0x35, 0x00, 0x44, 0x52, 
-		//0x04a0: .DRE AMWE B.G1 5.DR
-		0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x49, 0x30, 0x30, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 
-		//0x04b0: EAMW EB.I 00.D REAM
-		0x57, 0x45, 0x42, 0x2e, 0x49, 0x30, 0x31, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 
-		//0x04c0: WEB. I01. DREA MWEB
-		0x2e, 0x49, 0x30, 0x32, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x49, 0x30, 
-		//0x04d0: .I02 .DRE AMWE B.I0
-		0x33, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x49, 0x30, 0x34, 0x00, 0x44, 
-		//0x04e0: 3.DR EAMW EB.I 04.D
-		0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x49, 0x30, 0x35, 0x00, 0x44, 0x52, 0x45, 0x41, 
-		//0x04f0: REAM WEB. I05. DREA
-		0x4d, 0x57, 0x45, 0x42, 0x2e, 0x49, 0x30, 0x36, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 
-		//0x0500: MWEB .I06 .DRE AMWE
-		0x42, 0x2e, 0x49, 0x30, 0x37, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x50, 
-		//0x0510: B.I0 7.DR EAMW EB.P
-		0x41, 0x4c, 0x00, 0x00, 0x01, 0x11, 0x01, 0x40, 0x01, 0x9d, 0x00, 0xc6, 0x00, 0x7c, 0xc4, 0xf0, 
-		//0x0520: AL.. ...@ .... .|..
-		0x00, 0x22, 0x01, 0x02, 0x00, 0x2c, 0x00, 0x94, 0xc4, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 
-		//0x0530: .".. .,.. ...@ ....
-		0x00, 0xa0, 0xca, 0xff, 0xff, 0x11, 0x01, 0x40, 0x01, 0x9d, 0x00, 0xc6, 0x00, 0x7c, 0xc4, 0x00, 
-		//0x0540: .... ...@ .... .|..
-		0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0xee, 0x00, 0x02, 0x01, 0x04, 
-		//0x0550: . at .. .... .... ....
-		0x00, 0x2c, 0x00, 0xc8, 0xc4, 0x68, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x2c, 0x00, 0xcc, 0xc4, 0x18, 
-		//0x0560: .,.. .h.| ..., ....
-		0x01, 0x34, 0x01, 0x04, 0x00, 0x2c, 0x00, 0xb0, 0xc4, 0x68, 0x00, 0xd8, 0x00, 0x8a, 0x00, 0xc0, 
-		//0x0570: .4.. .,.. .h.. ....
-		0x00, 0xd0, 0xc4, 0x11, 0x01, 0x40, 0x01, 0x9d, 0x00, 0xc6, 0x00, 0x7c, 0xc4, 0x00, 0x00, 0x40, 
-		//0x0580: .... . at .. ...| ...@
-		0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0x45, 0x58, 0x49, 0x54, 0x20, 0x20, 0x20, 
-		//0x0590: .... .... .EXI T   
-		0x20, 0x20, 0x20, 0x48, 0x45, 0x4c, 0x50, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x49, 0x53, 
-		//0x05a0:    H ELP        LIS
-		0x54, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x45, 0x41, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 
-		//0x05b0: T       R EAD      
-		0x20, 0x4c, 0x4f, 0x47, 0x4f, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x45, 0x59, 0x53, 0x20, 
-		//0x05c0:  LOG ON      K EYS 
-		0x20, 0x20, 0x20, 0x20, 0x20, 0x01, 0x00, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x43, 0x20, 0x20, 0x20, 
-		//0x05d0:       ..P UBLI C   
-		0x20, 0x20, 0x20, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 
-		//0x05e0:    P UBLI C      ..
-		0x00, 0x42, 0x4c, 0x41, 0x43, 0x4b, 0x44, 0x52, 0x41, 0x47, 0x4f, 0x4e, 0x20, 0x52, 0x59, 0x41, 
-		//0x05f0: .BLA CKDR AGON  RYA
-		0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x48, 0x45, 0x4e, 0x44, 0x52, 
-		//0x0600: N         ...H ENDR
-		0x49, 0x58, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x4f, 0x55, 0x49, 0x53, 0x20, 0x20, 0x20, 0x20, 
-		//0x0610: IX      L OUIS     
-		0x20, 0x20, 0x00, 0x00, 0x00, 0x53, 0x45, 0x50, 0x54, 0x49, 0x4d, 0x55, 0x53, 0x20, 0x20, 0x20, 
-		//0x0620:   .. .SEP TIMU S   
-		0x20, 0x42, 0x45, 0x43, 0x4b, 0x45, 0x54, 0x54, 0x20, 0x20, 0x20, 0x20, 0x00, 0xff, 0xff, 0x20, 
-		//0x0630:  BEC KETT      ... 
-		0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x22, 0x52, 0x4f, 
-		//0x0640:                ."RO
-		0x4f, 0x54, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x22, 0x20, 0x20, 0x20, 0x20, 
-		//0x0650: OT          ."     
-		0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x30, 0x30, 0x30, 0x30, 0x00, 0x30, 0x30, 
-		//0x0660:           .000 0.00
-		0x00, 0xba, 0x00, 0xca, 0x00, 0x9d, 0x00, 0xad, 0x00, 0x1c, 0xc8, 0xf3, 0x00, 0x03, 0x01, 0x83, 
+		0x00, 0x00, 0x0e, 0x16, 0x00, 0x2c, 0x01, 0x01, 0x00, 0x00, 0x0a, 0x16, 0x1e, 0xae, 0x00, 0x00, 
+		//0x03a0: .... .,.. .... ....
+		0x00, 0x00, 0x0c, 0x16, 0x14, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0b, 0x0b, 0x14, 0x00, 0x00, 0x32, 
+		//0x03b0: .... .... .... ...2
+		0x14, 0x00, 0x0b, 0x0b, 0x1e, 0x00, 0x00, 0x32, 0x14, 0x00, 0x0b, 0x16, 0x14, 0x00, 0x00, 0x32, 
+		//0x03c0: .... ...2 .... ...2
+		0x14, 0x00, 0x0e, 0x21, 0x28, 0x00, 0x00, 0x32, 0x14, 0x00, 0xff, 0x49, 0x4e, 0x53, 0x54, 0x41, 
+		//0x03d0: ...! (..2 ...I NSTA
+		0x4c, 0x4c, 0x2e, 0x44, 0x41, 0x54, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 
+		//0x03e0: LL.D AT.D REAM WEB.
+		0x43, 0x30, 0x32, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x56, 0x30, 0x30, 
+		//0x03f0: C02. DREA MWEB .V00
+		0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x56, 0x39, 0x39, 0x00, 0x44, 0x52, 
+		//0x0400: .DRE AMWE B.V9 9.DR
+		0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x30, 0x32, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 
+		//0x0410: EAMW EB.G 02.D REAM
+		0x57, 0x45, 0x42, 0x2e, 0x47, 0x30, 0x38, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 
+		//0x0420: WEB. G08. DREA MWEB
+		0x2e, 0x47, 0x30, 0x34, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x30, 
+		//0x0430: .G04 .DRE AMWE B.G0
+		0x35, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x30, 0x36, 0x00, 0x44, 
+		//0x0440: 5.DR EAMW EB.G 06.D
+		0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x31, 0x34, 0x00, 0x44, 0x52, 0x45, 0x41, 
+		//0x0450: REAM WEB. G14. DREA
+		0x4d, 0x57, 0x45, 0x42, 0x2e, 0x54, 0x35, 0x31, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 
+		//0x0460: MWEB .T51 .DRE AMWE
+		0x42, 0x2e, 0x54, 0x38, 0x32, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x54, 
+		//0x0470: B.T8 2.DR EAMW EB.T
+		0x38, 0x33, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x56, 0x4f, 0x4c, 0x00, 
+		//0x0480: 83.D REAM WEB. VOL.
+		0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x31, 0x33, 0x00, 0x44, 0x52, 0x45, 
+		//0x0490: DREA MWEB .G13 .DRE
+		0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x31, 0x35, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 
+		//0x04a0: AMWE B.G1 5.DR EAMW
+		0x45, 0x42, 0x2e, 0x49, 0x30, 0x30, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 
+		//0x04b0: EB.I 00.D REAM WEB.
+		0x49, 0x30, 0x31, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x49, 0x30, 0x32, 
+		//0x04c0: I01. DREA MWEB .I02
+		0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x49, 0x30, 0x33, 0x00, 0x44, 0x52, 
+		//0x04d0: .DRE AMWE B.I0 3.DR
+		0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x49, 0x30, 0x34, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 
+		//0x04e0: EAMW EB.I 04.D REAM
+		0x57, 0x45, 0x42, 0x2e, 0x49, 0x30, 0x35, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 
+		//0x04f0: WEB. I05. DREA MWEB
+		0x2e, 0x49, 0x30, 0x36, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x49, 0x30, 
+		//0x0500: .I06 .DRE AMWE B.I0
+		0x37, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x50, 0x41, 0x4c, 0x00, 0x00, 
+		//0x0510: 7.DR EAMW EB.P AL..
+		0x01, 0x11, 0x01, 0x40, 0x01, 0x9d, 0x00, 0xc6, 0x00, 0x7c, 0xc4, 0xf0, 0x00, 0x22, 0x01, 0x02, 
+		//0x0520: ...@ .... .|.. ."..
+		0x00, 0x2c, 0x00, 0x94, 0xc4, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 
+		//0x0530: .,.. ...@ .... ....
+		0xff, 0x11, 0x01, 0x40, 0x01, 0x9d, 0x00, 0xc6, 0x00, 0x7c, 0xc4, 0x00, 0x00, 0x40, 0x01, 0x00, 
+		//0x0540: ...@ .... .|.. . at ..
+		0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0xee, 0x00, 0x02, 0x01, 0x04, 0x00, 0x2c, 0x00, 0xc8, 
+		//0x0550: .... .... .... .,..
+		0xc4, 0x68, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x2c, 0x00, 0xcc, 0xc4, 0x18, 0x01, 0x34, 0x01, 0x04, 
+		//0x0560: .h.| ..., .... .4..
+		0x00, 0x2c, 0x00, 0xb0, 0xc4, 0x68, 0x00, 0xd8, 0x00, 0x8a, 0x00, 0xc0, 0x00, 0xd0, 0xc4, 0x11, 
+		//0x0570: .,.. .h.. .... ....
+		0x01, 0x40, 0x01, 0x9d, 0x00, 0xc6, 0x00, 0x7c, 0xc4, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 
+		//0x0580: . at .. ...| ...@ ....
+		0x00, 0xa0, 0xca, 0xff, 0xff, 0x45, 0x58, 0x49, 0x54, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x48, 
+		//0x0590: .... .EXI T       H
+		0x45, 0x4c, 0x50, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x49, 0x53, 0x54, 0x20, 0x20, 0x20, 
+		//0x05a0: ELP        LIS T   
+		0x20, 0x20, 0x20, 0x52, 0x45, 0x41, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x4f, 0x47, 
+		//0x05b0:    R EAD        LOG
+		0x4f, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x45, 0x59, 0x53, 0x20, 0x20, 0x20, 0x20, 0x20, 
+		//0x05c0: ON      K EYS      
+		0x20, 0x01, 0x00, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 
+		//0x05d0:  ..P UBLI C       P
+		0x55, 0x42, 0x4c, 0x49, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x42, 0x4c, 0x41, 
+		//0x05e0: UBLI C      .. .BLA
+		0x43, 0x4b, 0x44, 0x52, 0x41, 0x47, 0x4f, 0x4e, 0x20, 0x52, 0x59, 0x41, 0x4e, 0x20, 0x20, 0x20, 
+		//0x05f0: CKDR AGON  RYA N   
+		0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x48, 0x45, 0x4e, 0x44, 0x52, 0x49, 0x58, 0x20, 0x20, 
+		//0x0600:      ...H ENDR IX  
+		0x20, 0x20, 0x20, 0x4c, 0x4f, 0x55, 0x49, 0x53, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 
+		//0x0610:    L OUIS        ..
+		0x00, 0x53, 0x45, 0x50, 0x54, 0x49, 0x4d, 0x55, 0x53, 0x20, 0x20, 0x20, 0x20, 0x42, 0x45, 0x43, 
+		//0x0620: .SEP TIMU S     BEC
+		0x4b, 0x45, 0x54, 0x54, 0x20, 0x20, 0x20, 0x20, 0x00, 0xff, 0xff, 0x20, 0x20, 0x20, 0x20, 0x20, 
+		//0x0630: KETT      ...      
+		0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x22, 0x52, 0x4f, 0x4f, 0x54, 0x20, 0x20, 
+		//0x0640:           ."RO OT  
+		0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x22, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 
+		//0x0650:        ."          
+		0x20, 0x20, 0x20, 0x20, 0x00, 0x30, 0x30, 0x30, 0x30, 0x00, 0x30, 0x30, 0x00, 0xba, 0x00, 0xca, 
+		//0x0660:      .000 0.00 ....
+		0x00, 0x9d, 0x00, 0xad, 0x00, 0x1c, 0xc8, 0xf3, 0x00, 0x03, 0x01, 0x83, 0x00, 0x93, 0x00, 0x18, 
 		//0x0670: .... .... .... ....
-		0x00, 0x93, 0x00, 0x18, 0xc8, 0x0c, 0x01, 0x1c, 0x01, 0xa8, 0x00, 0xb8, 0x00, 0x50, 0xc7, 0x00, 
-		//0x0680: .... .... .... .P..
-		0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0x77, 0x00, 0xae, 0x00, 0x52, 
-		//0x0690: . at .. .... ...w ...R
-		0x00, 0x80, 0x00, 0x34, 0xc8, 0x46, 0x00, 0x89, 0x00, 0x3e, 0x00, 0x6f, 0x00, 0x80, 0xc8, 0xbc, 
-		//0x06a0: ...4 .F.. .>.o ....
-		0x00, 0xfa, 0x00, 0x44, 0x00, 0x98, 0x00, 0x4c, 0xc8, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 
-		//0x06b0: ...D ...L ...@ ....
-		0x00, 0xa0, 0xca, 0xff, 0xff, 0x77, 0x00, 0xae, 0x00, 0x52, 0x00, 0x80, 0x00, 0x44, 0xc8, 0x46, 
-		//0x06c0: .... .w.. .R.. .D.F
-		0x00, 0x8b, 0x00, 0x3e, 0x00, 0x6f, 0x00, 0x50, 0xc8, 0xec, 0x00, 0xfc, 0x00, 0x70, 0x00, 0x80, 
-		//0x06d0: ...> .o.P .... .p..
-		0x00, 0x48, 0xc8, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0x0d, 
-		//0x06e0: .H.. . at .. .... ....
-		0x0a, 0x0d, 0x0a, 0x24, 0x81, 0x00, 0xb8, 0x00, 0x52, 0x00, 0x80, 0x00, 0xc0, 0xc8, 0x50, 0x00, 
-		//0x06f0: ...$ .... R... ..P.
-		0x93, 0x00, 0x3e, 0x00, 0x6f, 0x00, 0x80, 0xc8, 0xb7, 0x00, 0xfa, 0x00, 0x3e, 0x00, 0x6f, 0x00, 
-		//0x0700: ..>. o... .... >.o.
-		0xc4, 0xc8, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0x53, 0x50, 
-		//0x0710: .... @... .... ..SP
-		0x45, 0x45, 0x43, 0x48, 0x52, 0x32, 0x34, 0x43, 0x30, 0x30, 0x30, 0x35, 0x2e, 0x52, 0x41, 0x57, 
-		//0x0720: EECH R24C 0005 .RAW
-		0x00, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x20, 0x4e, 0x41, 0x4d, 0x45, 0x20, 0x4f, 0x4e, 0x45, 
-		//0x0730: .OBJ ECT  NAME  ONE
+		0xc8, 0x0c, 0x01, 0x1c, 0x01, 0xa8, 0x00, 0xb8, 0x00, 0x50, 0xc7, 0x00, 0x00, 0x40, 0x01, 0x00, 
+		//0x0680: .... .... .P.. . at ..
+		0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0x77, 0x00, 0xae, 0x00, 0x52, 0x00, 0x80, 0x00, 0x34, 
+		//0x0690: .... ...w ...R ...4
+		0xc8, 0x46, 0x00, 0x89, 0x00, 0x3e, 0x00, 0x6f, 0x00, 0x80, 0xc8, 0xbc, 0x00, 0xfa, 0x00, 0x44, 
+		//0x06a0: .F.. .>.o .... ...D
+		0x00, 0x98, 0x00, 0x4c, 0xc8, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 
+		//0x06b0: ...L ...@ .... ....
+		0xff, 0x77, 0x00, 0xae, 0x00, 0x52, 0x00, 0x80, 0x00, 0x44, 0xc8, 0x46, 0x00, 0x8b, 0x00, 0x3e, 
+		//0x06c0: .w.. .R.. .D.F ...>
+		0x00, 0x6f, 0x00, 0x50, 0xc8, 0xec, 0x00, 0xfc, 0x00, 0x70, 0x00, 0x80, 0x00, 0x48, 0xc8, 0x00, 
+		//0x06d0: .o.P .... .p.. .H..
+		0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0x0d, 0x0a, 0x0d, 0x0a, 0x24, 
+		//0x06e0: . at .. .... .... ...$
+		0x81, 0x00, 0xb8, 0x00, 0x52, 0x00, 0x80, 0x00, 0xc0, 0xc8, 0x50, 0x00, 0x93, 0x00, 0x3e, 0x00, 
+		//0x06f0: .... R... ..P. ..>.
+		0x6f, 0x00, 0x80, 0xc8, 0xb7, 0x00, 0xfa, 0x00, 0x3e, 0x00, 0x6f, 0x00, 0xc4, 0xc8, 0x00, 0x00, 
+		//0x0700: o... .... >.o. ....
+		0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0x53, 0x50, 0x45, 0x45, 0x43, 0x48, 
+		//0x0710: @... .... ..SP EECH
+		0x52, 0x32, 0x34, 0x43, 0x30, 0x30, 0x30, 0x35, 0x2e, 0x52, 0x41, 0x57, 0x00, 0x4f, 0x42, 0x4a, 
+		//0x0720: R24C 0005 .RAW .OBJ
+		0x45, 0x43, 0x54, 0x20, 0x4e, 0x41, 0x4d, 0x45, 0x20, 0x4f, 0x4e, 0x45, 0x20, 0x20, 0x20, 0x20, 
+		//0x0730: ECT  NAME  ONE     
 		0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 
 		//0x0740:                    
-		0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x10, 0x12, 0x12, 0x11, 0x10, 0x10, 
-		//0x0750:            ... ....
-		0x10, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 
-		//0x0760: .... .... .... ....
-		0x02, 0x02, 0x44, 0x3a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
-		//0x0770: ..D: .... .... ....
+		0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x10, 0x12, 0x12, 0x11, 0x10, 0x10, 0x10, 0x01, 0x01, 0x01, 
+		//0x0750:       ... .... ....
+		0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x44, 0x3a, 
+		//0x0760: .... .... .... ..D:
 		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+		//0x0770: .... .... .... ....
+		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 
 		//0x0780: .... .... .... ....
-		0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+		0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 
 		//0x0790: .... .... .... ....
-		0x00, 0x00, 0x05, 0x00, 0x03, 0x02, 0x04, 0x01, 0x0a, 0x09, 0x08, 0x06, 0x0b, 0x04, 0x07, 0x07, 
+		0x03, 0x02, 0x04, 0x01, 0x0a, 0x09, 0x08, 0x06, 0x0b, 0x04, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 
 		//0x07a0: .... .... .... ....
 		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 		//0x07b0: .... .... .... ....
@@ -11191,33 +11191,33 @@ void DreamGenContext::__start() {
 		//0x0810: .... .... .... ....
 		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 		//0x0820: .... .... .... ....
-		0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 
+		0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 
 		//0x0830: .... .... .... ....
-		0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 
+		0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 
 		//0x0840: .... .... .... ....
-		0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 
+		0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 
 		//0x0850: .... .... .... ....
-		0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 
+		0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 
 		//0x0860: .... .... .... ....
-		0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 
+		0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 
 		//0x0870: .... .... .... ....
-		0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 
+		0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 
 		//0x0880: .... .... .... ....
-		0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 
+		0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 
 		//0x0890: .... .... .... ....
-		0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 
-		//0x08a0: .... .... .... ....
-		0x01, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x44, 0x30, 0x30, 0x00, 0x44, 0x52, 
-		//0x08b0: .DRE AMWE B.D0 0.DR
-		0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x44, 0x30, 0x31, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 
-		//0x08c0: EAMW EB.D 01.D REAM
-		0x57, 0x45, 0x42, 0x2e, 0x44, 0x30, 0x32, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 
-		//0x08d0: WEB. D02. DREA MWEB
-		0x2e, 0x44, 0x30, 0x33, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x44, 0x30, 
-		//0x08e0: .D03 .DRE AMWE B.D0
-		0x34, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x44, 0x30, 0x35, 0x00, 0x44, 
-		//0x08f0: 4.DR EAMW EB.D 05.D
-		0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x44, 0x30, 0x36, 0x00, 0x00, 0x00, 0x00, };
+		0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x44, 0x52, 0x45, 
+		//0x08a0: .... .... .... .DRE
+		0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x44, 0x30, 0x30, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 
+		//0x08b0: AMWE B.D0 0.DR EAMW
+		0x45, 0x42, 0x2e, 0x44, 0x30, 0x31, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 
+		//0x08c0: EB.D 01.D REAM WEB.
+		0x44, 0x30, 0x32, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x44, 0x30, 0x33, 
+		//0x08d0: D02. DREA MWEB .D03
+		0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x44, 0x30, 0x34, 0x00, 0x44, 0x52, 
+		//0x08e0: .DRE AMWE B.D0 4.DR
+		0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x44, 0x30, 0x35, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 
+		//0x08f0: EAMW EB.D 05.D REAM
+		0x57, 0x45, 0x42, 0x2e, 0x44, 0x30, 0x36, 0x00, 0x00, 0x00, 0x00, };
 	ds.assign(src, src + sizeof(src));
 	dreamweb(); 
 }
diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h
index a080410..8076827 100644
--- a/engines/dreamweb/dreamgen.h
+++ b/engines/dreamweb/dreamgen.h
@@ -36,23 +36,23 @@ public:
 	void __start();
 #include "stubs.h" // Allow hand-reversed functions to have a signature different than void f()
 
-	static const uint16 offset_diarylist = 0x0671;
-	static const uint16 offset_discopslist = 0x06c5;
-	static const uint16 offset_money2poke = 0x066e;
-	static const uint16 offset_quitlist = 0x0545;
-	static const uint16 offset_commandline = 0x0731;
-	static const uint16 offset_keys = 0x05d5;
-	static const uint16 offset_rootdir = 0x064d;
-	static const uint16 offset_money1poke = 0x0669;
-	static const uint16 offset_comlist = 0x0599;
-	static const uint16 offset_opslist = 0x069b;
-	static const uint16 offset_destlist = 0x055b;
-	static const uint16 offset_speechfilename = 0x071e;
-	static const uint16 offset_openchangesize = 0x0523;
-	static const uint16 offset_operand1 = 0x063f;
-	static const uint16 offset_decidelist = 0x06f4;
-	static const uint16 offset_talklist = 0x0525;
-	static const uint16 offset_speechfile = 0x0724;
+	static const uint16 offset_openchangesize = 0x051f;
+	static const uint16 offset_rootdir = 0x0649;
+	static const uint16 offset_decidelist = 0x06f0;
+	static const uint16 offset_speechfile = 0x0720;
+	static const uint16 offset_commandline = 0x072d;
+	static const uint16 offset_comlist = 0x0595;
+	static const uint16 offset_operand1 = 0x063b;
+	static const uint16 offset_speechfilename = 0x071a;
+	static const uint16 offset_opslist = 0x0697;
+	static const uint16 offset_talklist = 0x0521;
+	static const uint16 offset_money2poke = 0x066a;
+	static const uint16 offset_discopslist = 0x06c1;
+	static const uint16 offset_keys = 0x05d1;
+	static const uint16 offset_quitlist = 0x0541;
+	static const uint16 offset_money1poke = 0x0665;
+	static const uint16 offset_diarylist = 0x066d;
+	static const uint16 offset_destlist = 0x0557;
 	static const uint16 kStartvars = 0;
 	static const uint16 kProgresspoints = 1;
 	static const uint16 kWatchon = 2;
@@ -356,117 +356,115 @@ public:
 	static const uint16 kMapstore = 400;
 	static const uint16 kCharset1 = 402;
 	static const uint16 kTempcharset = 404;
-	static const uint16 kIcons1 = 406;
-	static const uint16 kIcons2 = 408;
-	static const uint16 kBuffers = 410;
-	static const uint16 kMainsprites = 412;
-	static const uint16 kBackdrop = 414;
-	static const uint16 kMapdata = 416;
-	static const uint16 kSounddata = 418;
-	static const uint16 kSounddata2 = 420;
-	static const uint16 kRecordspace = 422;
-	static const uint16 kFreedat = 424;
-	static const uint16 kSetdat = 426;
-	static const uint16 kReel1 = 428;
-	static const uint16 kReel2 = 430;
-	static const uint16 kReel3 = 432;
-	static const uint16 kRoomdesc = 434;
-	static const uint16 kFreedesc = 436;
-	static const uint16 kSetdesc = 438;
-	static const uint16 kBlockdesc = 440;
-	static const uint16 kSetframes = 442;
-	static const uint16 kFreeframes = 444;
-	static const uint16 kPeople = 446;
-	static const uint16 kReels = 448;
-	static const uint16 kCommandtext = 450;
-	static const uint16 kPuzzletext = 452;
-	static const uint16 kTraveltext = 454;
-	static const uint16 kTempgraphics = 456;
-	static const uint16 kTempgraphics2 = 458;
-	static const uint16 kTempgraphics3 = 460;
-	static const uint16 kTempsprites = 462;
-	static const uint16 kTextfile1 = 464;
-	static const uint16 kTextfile2 = 466;
-	static const uint16 kTextfile3 = 468;
-	static const uint16 kBlinkframe = 470;
-	static const uint16 kBlinkcount = 471;
-	static const uint16 kReasseschanges = 472;
-	static const uint16 kPointerspath = 473;
-	static const uint16 kManspath = 474;
-	static const uint16 kPointerfirstpath = 475;
-	static const uint16 kFinaldest = 476;
-	static const uint16 kDestination = 477;
-	static const uint16 kLinestartx = 478;
-	static const uint16 kLinestarty = 480;
-	static const uint16 kLineendx = 482;
-	static const uint16 kLineendy = 484;
-	static const uint16 kIncrement1 = 486;
-	static const uint16 kIncrement2 = 488;
-	static const uint16 kLineroutine = 490;
-	static const uint16 kLinepointer = 491;
-	static const uint16 kLinedirection = 492;
-	static const uint16 kLinelength = 493;
-	static const uint16 kLiftsoundcount = 494;
-	static const uint16 kEmmhandle = 495;
-	static const uint16 kEmmpageframe = 497;
-	static const uint16 kEmmhardwarepage = 499;
-	static const uint16 kCh0emmpage = 500;
-	static const uint16 kCh0offset = 502;
-	static const uint16 kCh0blockstocopy = 504;
-	static const uint16 kCh0playing = 506;
-	static const uint16 kCh0repeat = 507;
-	static const uint16 kCh0oldemmpage = 508;
-	static const uint16 kCh0oldoffset = 510;
-	static const uint16 kCh0oldblockstocopy = 512;
-	static const uint16 kCh1playing = 514;
-	static const uint16 kCh1emmpage = 515;
-	static const uint16 kCh1offset = 517;
-	static const uint16 kCh1blockstocopy = 519;
-	static const uint16 kCh1blocksplayed = 521;
-	static const uint16 kSoundbufferwrite = 523;
-	static const uint16 kSoundemmpage = 525;
-	static const uint16 kSpeechemmpage = 527;
-	static const uint16 kCurrentsample = 529;
-	static const uint16 kRoomssample = 530;
-	static const uint16 kGameerror = 531;
-	static const uint16 kHowmuchalloc = 532;
-	static const uint16 kReelroutines = 534;
-	static const uint16 kIdname = 991;
-	static const uint16 kCharacterset3 = 1003;
-	static const uint16 kSamplename = 1016;
-	static const uint16 kBasicsample = 1029;
-	static const uint16 kExtragraphics1 = 1042;
-	static const uint16 kIcongraphics8 = 1055;
-	static const uint16 kCityname = 1068;
-	static const uint16 kTravelgraphic1 = 1081;
-	static const uint16 kTravelgraphic2 = 1094;
-	static const uint16 kDiarygraphic = 1107;
-	static const uint16 kDiarytext = 1120;
-	static const uint16 kIntrotextname = 1133;
-	static const uint16 kEndtextname = 1146;
-	static const uint16 kVolumetabname = 1159;
-	static const uint16 kGungraphic = 1172;
-	static const uint16 kMonkface = 1185;
-	static const uint16 kTitle0graphics = 1198;
-	static const uint16 kTitle1graphics = 1211;
-	static const uint16 kTitle2graphics = 1224;
-	static const uint16 kTitle3graphics = 1237;
-	static const uint16 kTitle4graphics = 1250;
-	static const uint16 kTitle5graphics = 1263;
-	static const uint16 kTitle6graphics = 1276;
-	static const uint16 kTitle7graphics = 1289;
-	static const uint16 kPalettescreen = 1302;
-	static const uint16 kCurrentfile = 1627;
-	static const uint16 kRoomscango = 1938;
-	static const uint16 kRoompics = 1954;
-	static const uint16 kOplist = 1969;
-	static const uint16 kInputline = 1972;
-	static const uint16 kPresslist = 2100;
-	static const uint16 kSavenames = 2106;
-	static const uint16 kSavefiles = 2225;
-	static const uint16 kQuitrequested = 2316;
-	static const uint16 kSubtitles = 2317;
-	static const uint16 kForeignrelease = 2318;
+	static const uint16 kBuffers = 406;
+	static const uint16 kMainsprites = 408;
+	static const uint16 kBackdrop = 410;
+	static const uint16 kMapdata = 412;
+	static const uint16 kSounddata = 414;
+	static const uint16 kSounddata2 = 416;
+	static const uint16 kRecordspace = 418;
+	static const uint16 kFreedat = 420;
+	static const uint16 kSetdat = 422;
+	static const uint16 kReel1 = 424;
+	static const uint16 kReel2 = 426;
+	static const uint16 kReel3 = 428;
+	static const uint16 kRoomdesc = 430;
+	static const uint16 kFreedesc = 432;
+	static const uint16 kSetdesc = 434;
+	static const uint16 kBlockdesc = 436;
+	static const uint16 kSetframes = 438;
+	static const uint16 kFreeframes = 440;
+	static const uint16 kPeople = 442;
+	static const uint16 kReels = 444;
+	static const uint16 kCommandtext = 446;
+	static const uint16 kPuzzletext = 448;
+	static const uint16 kTraveltext = 450;
+	static const uint16 kTempgraphics = 452;
+	static const uint16 kTempgraphics2 = 454;
+	static const uint16 kTempgraphics3 = 456;
+	static const uint16 kTempsprites = 458;
+	static const uint16 kTextfile1 = 460;
+	static const uint16 kTextfile2 = 462;
+	static const uint16 kTextfile3 = 464;
+	static const uint16 kBlinkframe = 466;
+	static const uint16 kBlinkcount = 467;
+	static const uint16 kReasseschanges = 468;
+	static const uint16 kPointerspath = 469;
+	static const uint16 kManspath = 470;
+	static const uint16 kPointerfirstpath = 471;
+	static const uint16 kFinaldest = 472;
+	static const uint16 kDestination = 473;
+	static const uint16 kLinestartx = 474;
+	static const uint16 kLinestarty = 476;
+	static const uint16 kLineendx = 478;
+	static const uint16 kLineendy = 480;
+	static const uint16 kIncrement1 = 482;
+	static const uint16 kIncrement2 = 484;
+	static const uint16 kLineroutine = 486;
+	static const uint16 kLinepointer = 487;
+	static const uint16 kLinedirection = 488;
+	static const uint16 kLinelength = 489;
+	static const uint16 kLiftsoundcount = 490;
+	static const uint16 kEmmhandle = 491;
+	static const uint16 kEmmpageframe = 493;
+	static const uint16 kEmmhardwarepage = 495;
+	static const uint16 kCh0emmpage = 496;
+	static const uint16 kCh0offset = 498;
+	static const uint16 kCh0blockstocopy = 500;
+	static const uint16 kCh0playing = 502;
+	static const uint16 kCh0repeat = 503;
+	static const uint16 kCh0oldemmpage = 504;
+	static const uint16 kCh0oldoffset = 506;
+	static const uint16 kCh0oldblockstocopy = 508;
+	static const uint16 kCh1playing = 510;
+	static const uint16 kCh1emmpage = 511;
+	static const uint16 kCh1offset = 513;
+	static const uint16 kCh1blockstocopy = 515;
+	static const uint16 kCh1blocksplayed = 517;
+	static const uint16 kSoundbufferwrite = 519;
+	static const uint16 kSoundemmpage = 521;
+	static const uint16 kSpeechemmpage = 523;
+	static const uint16 kCurrentsample = 525;
+	static const uint16 kRoomssample = 526;
+	static const uint16 kGameerror = 527;
+	static const uint16 kHowmuchalloc = 528;
+	static const uint16 kReelroutines = 530;
+	static const uint16 kIdname = 987;
+	static const uint16 kCharacterset3 = 999;
+	static const uint16 kSamplename = 1012;
+	static const uint16 kBasicsample = 1025;
+	static const uint16 kExtragraphics1 = 1038;
+	static const uint16 kIcongraphics8 = 1051;
+	static const uint16 kCityname = 1064;
+	static const uint16 kTravelgraphic1 = 1077;
+	static const uint16 kTravelgraphic2 = 1090;
+	static const uint16 kDiarygraphic = 1103;
+	static const uint16 kDiarytext = 1116;
+	static const uint16 kIntrotextname = 1129;
+	static const uint16 kEndtextname = 1142;
+	static const uint16 kVolumetabname = 1155;
+	static const uint16 kGungraphic = 1168;
+	static const uint16 kMonkface = 1181;
+	static const uint16 kTitle0graphics = 1194;
+	static const uint16 kTitle1graphics = 1207;
+	static const uint16 kTitle2graphics = 1220;
+	static const uint16 kTitle3graphics = 1233;
+	static const uint16 kTitle4graphics = 1246;
+	static const uint16 kTitle5graphics = 1259;
+	static const uint16 kTitle6graphics = 1272;
+	static const uint16 kTitle7graphics = 1285;
+	static const uint16 kPalettescreen = 1298;
+	static const uint16 kCurrentfile = 1623;
+	static const uint16 kRoomscango = 1934;
+	static const uint16 kRoompics = 1950;
+	static const uint16 kOplist = 1965;
+	static const uint16 kInputline = 1968;
+	static const uint16 kPresslist = 2096;
+	static const uint16 kSavenames = 2102;
+	static const uint16 kSavefiles = 2221;
+	static const uint16 kQuitrequested = 2312;
+	static const uint16 kSubtitles = 2313;
+	static const uint16 kForeignrelease = 2314;
 	static const uint16 kBlocktextdat = (0);
 	static const uint16 kPersonframes = (0);
 	static const uint16 kDebuglevel1 = (0);
@@ -505,8 +503,8 @@ public:
 	static const uint16 kUndertimedtext = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4));
 	static const uint16 kRainlist = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30));
 	static const uint16 kInitialreelrouts = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64));
-	static const uint16 kInitialvars = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64)+991-534);
-	static const uint16 kLengthofbuffer = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64)+991-534+68-0);
+	static const uint16 kInitialvars = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64)+987-530);
+	static const uint16 kLengthofbuffer = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64)+987-530+68-0);
 	static const uint16 kReellist = (0+(36*144));
 	static const uint16 kIntext = (0+(38*2));
 	static const uint16 kLengthofmap = (0+(66*60));
@@ -558,7 +556,7 @@ public:
 	static const uint16 kInventx = (80);
 	static const uint16 kMenux = (80+40);
 	static const uint16 kHeaderlen = (96);
-	static const uint16 kLenofreelrouts = (991-534);
+	static const uint16 kLenofreelrouts = (987-530);
 
 	void useWire();
 	void getNamePos();
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index a9cc1a9..2902276 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -63,10 +63,16 @@ DreamWebEngine::DreamWebEngine(OSystem *syst, const DreamWebGameDescription *gam
 	_channel0 = 0;
 	_channel1 = 0;
 
+	_icons1 = NULL;
+	_icons2 = NULL;
+
 	_language = gameDesc->desc.language;
 }
 
 DreamWebEngine::~DreamWebEngine() {
+	assert(_icons1 == NULL);
+	assert(_icons2 == NULL);
+
 	DebugMan.clearAllDebugChannels();
 	delete _console;
 }
diff --git a/engines/dreamweb/dreamweb.h b/engines/dreamweb/dreamweb.h
index e0a5589..370342a 100644
--- a/engines/dreamweb/dreamweb.h
+++ b/engines/dreamweb/dreamweb.h
@@ -42,6 +42,8 @@
 
 namespace DreamGen {
 
+#include "dreamweb/structs.h"
+
 // These are for ReelRoutine::reelPointer, which is a callback field.
 const uint16 addr_backobject = 0xc170;
 const uint16 addr_mainman = 0xc138;
@@ -128,6 +130,13 @@ public:
 
 	void stopSound(uint8 channel);
 
+	DreamGen::Frame *icons1() const { return (DreamGen::Frame *)_icons1; }
+	DreamGen::Frame *icons2() const { return (DreamGen::Frame *)_icons2; }
+	void setIcons1(void *frames) { assert(_icons1 == NULL); _icons1 = frames; }
+	void setIcons2(void *frames) { assert(_icons2 == NULL); _icons2 = frames; }
+	void freeIcons1() { free(_icons1); _icons1 = NULL; }
+	void freeIcons2() { free(_icons2); _icons2 = NULL; }
+
 private:
 	void keyPressed(uint16 ascii);
 	void setSpeed(uint speed);
@@ -163,6 +172,9 @@ private:
 	Audio::SoundHandle _channelHandle[2];
 	uint8 _channel0, _channel1;
 
+	void *_icons1;
+	void *_icons2;
+
 	DreamGen::DreamGenContext _context;
 };
 
diff --git a/engines/dreamweb/runtime.h b/engines/dreamweb/runtime.h
index 002f2ab..db74c19 100644
--- a/engines/dreamweb/runtime.h
+++ b/engines/dreamweb/runtime.h
@@ -300,9 +300,12 @@ public:
 
 	void deallocateSegment(uint16 id) {
 		SegmentMap::iterator i = _segments.find(id);
-		assert(i != _segments.end());
-		_segments.erase(i);
-		_freeSegments.push_back(id);
+		if(i != _segments.end()) {
+			_segments.erase(i);
+			_freeSegments.push_back(id);
+		} else {
+			debug("Deallocating non existent segment! Client code should be fixed.");
+		}
 	}
 
 	inline void _cmp(uint8 a, uint8 b) {
diff --git a/engines/dreamweb/structs.h b/engines/dreamweb/structs.h
index 7f14fa4..5496965 100644
--- a/engines/dreamweb/structs.h
+++ b/engines/dreamweb/structs.h
@@ -20,6 +20,9 @@
  *
  */
 
+#ifndef DREAMWEB_STRUCTS_H
+#define DREAMWEB_STRUCTS_H
+
 #include "common/endian.h"
 #include "common/rect.h"
 
@@ -285,3 +288,5 @@ struct Atmosphere {
 	uint8 _repeat;
 };
 
+#endif
+
diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp
index 939b358..f67547c 100644
--- a/engines/dreamweb/stubs.cpp
+++ b/engines/dreamweb/stubs.cpp
@@ -640,8 +640,8 @@ void DreamGenContext::dreamweb() {
 	}
 done: // The engine will need some cleaner finalization, let's put it here for now
 	getRidOfAll();
-	deallocateMem(data.word(kIcons1));
-	deallocateMem(data.word(kIcons2));
+	engine->freeIcons1();
+	engine->freeIcons2();
 }
 
 bool DreamGenContext::quitRequested() {
@@ -746,12 +746,14 @@ uint8 *DreamGenContext::textUnder() {
 	return getSegment(data.word(kBuffers)).ptr(kTextunder, 0);
 }
 
-uint16 DreamGenContext::standardLoad(const char *fileName) {
+uint16 DreamGenContext::standardLoad(const char *fileName, uint16 *outSizeInBytes) {
 	FileHeader header;
 
 	engine->openFile(fileName);
 	engine->readFromFile((uint8 *)&header, sizeof(FileHeader));
 	uint16 sizeInBytes = header.len(0);
+	if (outSizeInBytes)
+		*outSizeInBytes = sizeInBytes;
 	uint16 result = allocateMem((sizeInBytes + 15) / 16);
 	engine->readFromFile(getSegment(result).ptr(0, 0), sizeInBytes);
 	engine->closeFile();
@@ -759,7 +761,7 @@ uint16 DreamGenContext::standardLoad(const char *fileName) {
 }
 
 void DreamGenContext::standardLoad() {
-	ax = standardLoad((const char *)cs.ptr(dx, 0));
+	ax = standardLoad((const char *)cs.ptr(dx, 0), NULL);
 }
 
 void DreamGenContext::loadIntoTemp() {
@@ -2465,8 +2467,21 @@ void DreamGenContext::loadRoomsSample() {
 
 void DreamGenContext::readSetData() {
 	data.word(kCharset1) = standardLoad("DREAMWEB.C00");
-	data.word(kIcons1) = standardLoad("DREAMWEB.G00");
-	data.word(kIcons2) = standardLoad("DREAMWEB.G01");
+
+	uint16 icons1SizeInBytes;
+	uint16 tempIcons1 = standardLoad("DREAMWEB.G00", &icons1SizeInBytes);
+	void *icons1Buffer = malloc(icons1SizeInBytes);
+	memcpy(icons1Buffer, getSegment(tempIcons1).ptr(0, 0), icons1SizeInBytes);
+	deallocateMem(tempIcons1);
+	engine->setIcons1(icons1Buffer);
+
+	uint16 icons2SizeInBytes;
+	uint16 tempIcons2 = standardLoad("DREAMWEB.G01", &icons2SizeInBytes);
+	void *icons2Buffer = malloc(icons2SizeInBytes);
+	memcpy(icons2Buffer, getSegment(tempIcons2).ptr(0, 0), icons2SizeInBytes);
+	deallocateMem(tempIcons2);
+	engine->setIcons2(icons2Buffer);
+
 	data.word(kMainsprites) = standardLoad("DREAMWEB.S00");
 	data.word(kPuzzletext) = standardLoad("DREAMWEB.T80");
 	data.word(kCommandtext) = standardLoad("DREAMWEB.T84");
@@ -2494,11 +2509,11 @@ Frame * DreamGenContext::tempGraphics3() {
 }
 
 Frame * DreamGenContext::icons1() {
-	return (Frame *)getSegment(data.word(kIcons1)).ptr(0, 0);
+	return engine->icons1();
 }
 
 Frame * DreamGenContext::icons2() {
-	return (Frame *)getSegment(data.word(kIcons2)).ptr(0, 0);
+	return engine->icons2();
 }
 
 void DreamGenContext::playChannel0(uint8 index, uint8 repeat) {
diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h
index 926434e..83e375d 100644
--- a/engines/dreamweb/stubs.h
+++ b/engines/dreamweb/stubs.h
@@ -32,7 +32,7 @@
 	void allocateWork();
 	void clearWork();
 	void standardLoad();
-	uint16 standardLoad(const char *fileName); // Returns a segment handle which needs to be freed with deallocatemem for symmetry
+	uint16 standardLoad(const char *fileName, uint16 *outSizeInBytes = NULL); // Returns a segment handle which needs to be freed with deallocatemem for symmetry
 	void loadIntoTemp();
 	void loadIntoTemp2();
 	void loadIntoTemp3();






More information about the Scummvm-git-logs mailing list