From a3a6fbd5ff6567738c3aaa76a4f6e0e8acc8dbb9 Mon Sep 17 00:00:00 2001 From: Willem Jan Palenstijn Date: Sat, 3 Dec 2011 22:09:21 +0100 Subject: DREAMWEB: Convert 'soundOnReels', including its data --- engines/dreamweb/dreamgen.cpp | 458 ++++++++++++++++++------------------------ engines/dreamweb/dreamgen.h | 146 ++++++-------- engines/dreamweb/sprite.cpp | 318 +++++++++++++++++++++++++---- 3 files changed, 534 insertions(+), 388 deletions(-) (limited to 'engines') diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp index 121ec5040a..9596090f86 100644 --- a/engines/dreamweb/dreamgen.cpp +++ b/engines/dreamweb/dreamgen.cpp @@ -2142,7 +2142,7 @@ void DreamGenContext::showGun() { data.byte(kRoomssample) = 34; loadRoomsSample(); data.byte(kVolume) = 0; - dx = 1747; + dx = 1250; loadIntoTemp(); createPanel2(); ds = data.word(kTempgraphics); @@ -2165,7 +2165,7 @@ void DreamGenContext::showGun() { al = 12; ah = 0; playChannel0(); - dx = 1708; + dx = 1211; loadTempText(); rollEndCredits2(); getRidOfTempText(); @@ -2423,7 +2423,7 @@ void DreamGenContext::titles() { void DreamGenContext::endGame() { STACK_CHECK; - dx = 1708; + dx = 1211; loadTempText(); monkSpeaking(); gettingShot(); @@ -2438,7 +2438,7 @@ void DreamGenContext::monkSpeaking() { STACK_CHECK; data.byte(kRoomssample) = 35; loadRoomsSample(); - dx = 1760; + dx = 1263; loadIntoTemp(); clearWork(); showMonk(); @@ -2505,7 +2505,7 @@ void DreamGenContext::gettingShot() { void DreamGenContext::bibleQuote() { STACK_CHECK; mode640x480(); - dx = 1773; + dx = 1276; showPCX(); fadeScreenUps(); cx = 80; @@ -2544,7 +2544,7 @@ hangonloope: void DreamGenContext::intro() { STACK_CHECK; - dx = 1695; + dx = 1198; loadTempText(); loadPalFromIFF(); setMode(); @@ -2677,7 +2677,7 @@ void DreamGenContext::realCredits() { mode640x480(); cx = 35; hangOn(); - dx = 1786; + dx = 1289; showPCX(); al = 12; ah = 0; @@ -2699,7 +2699,7 @@ void DreamGenContext::realCredits() { _cmp(data.byte(kLasthardkey), 1); if (flags.z()) goto realcreditsearly; - dx = 1799; + dx = 1302; showPCX(); al = 12; ah = 0; @@ -2721,7 +2721,7 @@ void DreamGenContext::realCredits() { _cmp(data.byte(kLasthardkey), 1); if (flags.z()) goto realcreditsearly; - dx = 1812; + dx = 1315; showPCX(); al = 12; ah = 0; @@ -2743,7 +2743,7 @@ void DreamGenContext::realCredits() { _cmp(data.byte(kLasthardkey), 1); if (flags.z()) goto realcreditsearly; - dx = 1825; + dx = 1328; showPCX(); al = 12; ah = 0; @@ -2765,7 +2765,7 @@ void DreamGenContext::realCredits() { _cmp(data.byte(kLasthardkey), 1); if (flags.z()) goto realcreditsearly; - dx = 1838; + dx = 1341; showPCX(); al = 12; ah = 0; @@ -2787,7 +2787,7 @@ void DreamGenContext::realCredits() { _cmp(data.byte(kLasthardkey), 1); if (flags.z()) goto realcreditsearly; - dx = 1851; + dx = 1354; showPCX(); fadeScreenUps(); cx = 60; @@ -5228,14 +5228,14 @@ void DreamGenContext::getDestInfo() { push(ax); dx = data; es = dx; - si = 2529; + si = 2032; _add(si, ax); cl = es.byte(si); ax = pop(); push(cx); dx = data; es = dx; - si = 2545; + si = 2048; _add(si, ax); ax = pop(); } @@ -5412,23 +5412,23 @@ clearedlocations: bx = ax; dx = data; es = dx; - _add(bx, 2529); + _add(bx, 2032); es.byte(bx) = 0; } void DreamGenContext::readDestIcon() { STACK_CHECK; - dx = 1630; + dx = 1133; loadIntoTemp(); - dx = 1643; + dx = 1146; loadIntoTemp2(); - dx = 1604; + dx = 1107; loadIntoTemp3(); } void DreamGenContext::readCityPic() { STACK_CHECK; - dx = 1617; + dx = 1120; loadIntoTemp(); } @@ -5527,7 +5527,7 @@ void DreamGenContext::delChar() { si = data.word(kCurpos); _add(si, si); es = cs; - _add(si, 2563); + _add(si, 2066); es.byte(si) = 0; al = es.byte(si+1); ah = 0; @@ -5554,7 +5554,7 @@ void DreamGenContext::execCommand() { es = cs; bx = offset_comlist; ds = cs; - si = 2563; + si = 2066; al = ds.byte(si); _cmp(al, 0); if (!flags.z()) @@ -5647,7 +5647,7 @@ dirroot: si = offset_rootdir; _inc(si); es = cs; - di = 2202; + di = 1705; _inc(di); cx = 12; _movsb(cx, true); @@ -5749,7 +5749,7 @@ notyetassigned: push(bx); _add(bx, 2); ds = cs; - si = 2563; + si = 2066; checkpass: _lodsw(); ah = es.byte(bx); @@ -5820,7 +5820,7 @@ void DreamGenContext::read() { return; okcom: es = cs; - di = 2202; + di = 1705; ax = data.word(kTextfile1); data.word(kMonsource) = ax; ds = ax; @@ -5950,7 +5950,7 @@ keyok2: ds = cs; si = offset_operand1+1; es = cs; - di = 2202+1; + di = 1705+1; cx = 12; _movsb(cx, true); monitorLogo(); @@ -6077,7 +6077,7 @@ void DreamGenContext::parser() { al = '='; _stosb(); ds = cs; - si = 2563; + si = 2066; notspace1: _lodsw(); _cmp(al, 32); @@ -8900,7 +8900,7 @@ nowinch: void DreamGenContext::loadKeypad() { STACK_CHECK; - dx = 1591; + dx = 1094; loadIntoTemp(); } @@ -9237,11 +9237,11 @@ void DreamGenContext::dumpSymBox() { void DreamGenContext::useDiary() { STACK_CHECK; getRidOfReels(); - dx = 1656; + dx = 1159; loadIntoTemp(); - dx = 1669; + dx = 1172; loadTempText(); - dx = 1526; + dx = 1029; loadTempCharset(); createPanel(); showIcon(); @@ -9568,7 +9568,7 @@ opsblock1: void DreamGenContext::loadSaveBox() { STACK_CHECK; - dx = 1604; + dx = 1107; loadIntoTemp(); } @@ -9701,7 +9701,7 @@ void DreamGenContext::getNamePos() { _mul(cx); dx = data; es = dx; - bx = 2697; + bx = 2200; _add(bx, ax); al = data.byte(kCursorpos); ah = 0; @@ -9855,7 +9855,7 @@ void DreamGenContext::showNames() { STACK_CHECK; dx = data; es = dx; - si = 2697+1; + si = 2200+1; di = (60)+21; bx = (52)+10; cl = 0; @@ -10375,7 +10375,7 @@ void DreamGenContext::clearChanges() { di = 0; _stosw(cx, true); es = cs; - di = 2529; + di = 2032; al = 1; _stosb(2); al = 0; @@ -11279,247 +11279,185 @@ void DreamGenContext::__start() { //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, 0x4f, - //0x03d0: ...2 ...! (..2 ...O - 0x04, 0x50, 0x04, 0x54, 0x04, 0x4f, 0x04, 0x4f, 0x04, 0x4f, 0x04, 0x67, 0x04, 0x4f, 0x04, 0x6e, - //0x03e0: .P.T .O.O .O.g .O.n - 0x04, 0x7e, 0x04, 0x85, 0x04, 0x89, 0x04, 0x8d, 0x04, 0x91, 0x04, 0x9e, 0x04, 0x4f, 0x04, 0x4f, - //0x03f0: .~.. .... .... .O.O - 0x04, 0x4f, 0x04, 0x4f, 0x04, 0x4f, 0x04, 0xc0, 0x04, 0x4f, 0x04, 0xd6, 0x04, 0xf5, 0x04, 0x4f, - //0x0400: .O.O .O.. .O.. ...O - 0x04, 0x02, 0x05, 0x18, 0x05, 0x2e, 0x05, 0x47, 0x05, 0x5a, 0x05, 0x4f, 0x04, 0x4f, 0x04, 0x4f, - //0x0410: .... ...G .Z.O .O.O - 0x04, 0x4f, 0x04, 0x4f, 0x04, 0x4f, 0x04, 0x4f, 0x04, 0x4f, 0x04, 0x4f, 0x04, 0x4f, 0x04, 0x4f, - //0x0420: .O.O .O.O .O.O .O.O - 0x04, 0x4f, 0x04, 0x4f, 0x04, 0x4f, 0x04, 0x4f, 0x04, 0x6a, 0x05, 0x71, 0x05, 0x96, 0x05, 0x4f, - //0x0430: .O.O .O.O .j.q ...O - 0x04, 0x4f, 0x04, 0x4f, 0x04, 0x4f, 0x04, 0xa3, 0x05, 0xa7, 0x05, 0x4f, 0x04, 0xae, 0x05, 0xff, - //0x0440: .O.O .O.. ...O .... - 0x0f, 0x01, 0x01, 0xff, 0x0c, 0x05, 0x00, 0x0d, 0x15, 0x00, 0x0f, 0x23, 0x00, 0x11, 0x32, 0x00, - //0x0450: .... .... ...# ..2. - 0x12, 0x67, 0x00, 0x13, 0x6c, 0x00, 0xff, 0x12, 0x13, 0x00, 0x13, 0x17, 0x00, 0xff, 0x0c, 0x33, - //0x0460: .g.. l... .... ...3 - 0x00, 0x0d, 0x35, 0x00, 0x0e, 0x0e, 0x00, 0x0f, 0x14, 0x00, 0x00, 0x4e, 0x00, 0xff, 0x0c, 0x77, - //0x0470: ..5. .... ...N ...w - 0x00, 0x0c, 0x91, 0x00, 0xff, 0x0d, 0x10, 0x00, 0xff, 0x0d, 0x14, 0x00, 0xff, 0x0e, 0x10, 0x00, - //0x0480: .... .... .... .... - 0xff, 0x0f, 0x04, 0x00, 0x10, 0x08, 0x00, 0x11, 0x86, 0x00, 0x12, 0x99, 0x00, 0xff, 0x0d, 0x6c, - //0x0490: .... .... .... ...l - 0x00, 0x0f, 0x46, 0x01, 0x0f, 0x4b, 0x01, 0x0f, 0x50, 0x01, 0x0f, 0x56, 0x01, 0x0f, 0x5c, 0x01, - //0x04a0: ..F. .K.. P..V .... - 0x0f, 0x62, 0x01, 0x12, 0x9f, 0x00, 0x12, 0xb2, 0x00, 0x93, 0xd9, 0x00, 0x54, 0xe4, 0x00, 0xff, - //0x04b0: .b.. .... .... T... - 0x0d, 0x14, 0x00, 0x0d, 0x15, 0x00, 0x0f, 0x22, 0x00, 0x0d, 0x34, 0x00, 0x0d, 0x37, 0x00, 0x19, - //0x04c0: .... ..." ..4. .7.. - 0x39, 0x00, 0x15, 0x49, 0x00, 0xff, 0x0d, 0xc4, 0x00, 0x0d, 0xea, 0x00, 0x0d, 0x9c, 0x00, 0x0e, - //0x04d0: 9..I .... .... .... - 0x81, 0x00, 0x0d, 0x7c, 0x00, 0x0f, 0xa2, 0x00, 0x0f, 0xc8, 0x00, 0x0f, 0xef, 0x00, 0x11, 0x63, - //0x04e0: ...| .... .... ...c - 0x00, 0x0c, 0x34, 0x00, 0xff, 0x0f, 0x38, 0x00, 0x10, 0x40, 0x00, 0x13, 0x16, 0x00, 0x14, 0x21, - //0x04f0: ..4. ..8. .@.. ...! - 0x00, 0xff, 0x14, 0x0b, 0x00, 0x14, 0x0f, 0x00, 0x0f, 0x1c, 0x00, 0x0d, 0x50, 0x00, 0x15, 0x52, - //0x0500: .... .... .... P..R - 0x00, 0x93, 0x57, 0x00, 0x57, 0x80, 0x00, 0xff, 0x0c, 0x0d, 0x00, 0x0e, 0x27, 0x00, 0x0c, 0x43, - //0x0510: ..W. W... .... '..C - 0x00, 0x0c, 0x4b, 0x00, 0x0c, 0x53, 0x00, 0x0c, 0x5b, 0x00, 0x0f, 0x66, 0x00, 0xff, 0x16, 0x24, - //0x0520: ..K. .S.. [..f ...$ - 0x00, 0x0d, 0x7d, 0x00, 0x12, 0x58, 0x00, 0x0f, 0x6b, 0x00, 0x0e, 0x7f, 0x00, 0x0e, 0x9a, 0x00, - //0x0530: ..}. .X.. k... .... - 0x93, 0xaa, 0x00, 0x57, 0xe8, 0x00, 0xff, 0x15, 0x10, 0x00, 0x15, 0x48, 0x00, 0x15, 0xcd, 0x00, - //0x0540: ...W .... ...H .... - 0x16, 0x3f, 0x00, 0x97, 0x63, 0x00, 0x58, 0x9e, 0x00, 0xff, 0x0d, 0x15, 0x00, 0x0e, 0x18, 0x00, - //0x0550: .?.. c.X. .... .... - 0x93, 0x32, 0x00, 0x57, 0x4b, 0x00, 0x18, 0x80, 0x00, 0xff, 0x53, 0x2e, 0x00, 0x10, 0xa7, 0x00, - //0x0560: .2.W K... ..S. .... - 0xff, 0x10, 0x13, 0x00, 0x0e, 0x24, 0x00, 0x10, 0x32, 0x00, 0x0e, 0x41, 0x00, 0x10, 0x51, 0x00, - //0x0570: .... .$.. 2..A ..Q. - 0x0e, 0x60, 0x00, 0x10, 0x72, 0x00, 0x0e, 0x81, 0x00, 0x10, 0x93, 0x00, 0x0e, 0xa2, 0x00, 0x10, - //0x0580: .`.. r... .... .... - 0xb1, 0x00, 0x0e, 0xbf, 0x00, 0xff, 0x0d, 0x30, 0x00, 0x0e, 0x29, 0x00, 0x0f, 0x4e, 0x00, 0x10, - //0x0590: .... ...0 ..). .N.. - 0x5c, 0x00, 0xff, 0x10, 0x73, 0x00, 0xff, 0x15, 0x67, 0x00, 0x14, 0xc7, 0x00, 0xff, 0x11, 0x35, - //0x05a0: .... s... g... ...5 - 0x00, 0x11, 0x36, 0x00, 0x11, 0x37, 0x00, 0x11, 0x38, 0x00, 0x11, 0x39, 0x00, 0x11, 0x3a, 0x00, - //0x05b0: ..6. .7.. 8..9 ..:. - 0x11, 0x3b, 0x00, 0x11, 0x3d, 0x00, 0x11, 0x3f, 0x00, 0x11, 0x40, 0x00, 0x11, 0x41, 0x00, 0xff, - //0x05c0: .;.. =..? ..@. .A.. - 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x53, 0x30, 0x30, 0x00, 0x49, 0x4e, 0x53, - //0x05d0: DREA MWEB .S00 .INS - 0x54, 0x41, 0x4c, 0x4c, 0x2e, 0x44, 0x41, 0x54, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, - //0x05e0: TALL .DAT .DRE AMWE - 0x42, 0x2e, 0x43, 0x30, 0x30, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x43, - //0x05f0: B.C0 0.DR EAMW EB.C - 0x30, 0x32, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x56, 0x30, 0x30, 0x00, - //0x0600: 02.D REAM WEB. V00. - 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x56, 0x39, 0x39, 0x00, 0x44, 0x52, 0x45, - //0x0610: DREA MWEB .V99 .DRE - 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x30, 0x30, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, - //0x0620: AMWE B.G0 0.DR EAMW - 0x45, 0x42, 0x2e, 0x47, 0x30, 0x31, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, - //0x0630: EB.G 01.D REAM WEB. - 0x47, 0x30, 0x32, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x30, 0x38, - //0x0640: G02. DREA MWEB .G08 - 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x30, 0x34, 0x00, 0x44, 0x52, - //0x0650: .DRE AMWE B.G0 4.DR - 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x30, 0x35, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, - //0x0660: EAMW EB.G 05.D REAM - 0x57, 0x45, 0x42, 0x2e, 0x47, 0x30, 0x36, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, - //0x0670: WEB. G06. DREA MWEB - 0x2e, 0x47, 0x31, 0x34, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x54, 0x35, - //0x0680: .G14 .DRE AMWE B.T5 - 0x31, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x54, 0x38, 0x30, 0x00, 0x44, - //0x0690: 1.DR EAMW EB.T 80.D - 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x54, 0x38, 0x32, 0x00, 0x44, 0x52, 0x45, 0x41, - //0x06a0: REAM WEB. T82. DREA - 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x54, 0x38, 0x33, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, - //0x06b0: MWEB .T83 .DRE AMWE - 0x42, 0x2e, 0x54, 0x38, 0x34, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x56, - //0x06c0: B.T8 4.DR EAMW EB.V - 0x4f, 0x4c, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x31, 0x33, 0x00, - //0x06d0: OL.D REAM WEB. G13. - 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x31, 0x35, 0x00, 0x44, 0x52, 0x45, - //0x06e0: DREA MWEB .G15 .DRE - 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x49, 0x30, 0x30, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, - //0x06f0: AMWE B.I0 0.DR EAMW - 0x45, 0x42, 0x2e, 0x49, 0x30, 0x31, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, - //0x0700: EB.I 01.D REAM WEB. - 0x49, 0x30, 0x32, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x49, 0x30, 0x33, - //0x0710: I02. DREA MWEB .I03 - 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x49, 0x30, 0x34, 0x00, 0x44, 0x52, - //0x0720: .DRE AMWE B.I0 4.DR - 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x49, 0x30, 0x35, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, - //0x0730: EAMW EB.I 05.D REAM - 0x57, 0x45, 0x42, 0x2e, 0x49, 0x30, 0x36, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, - //0x0740: WEB. I06. DREA MWEB - 0x2e, 0x49, 0x30, 0x37, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x50, 0x41, - //0x0750: .I07 .DRE AMWE B.PA - 0x4c, 0x00, 0x00, 0x01, 0x11, 0x01, 0x40, 0x01, 0x9d, 0x00, 0xc6, 0x00, 0x7c, 0xc4, 0xf0, 0x00, - //0x0760: L... ..@. .... |... - 0x22, 0x01, 0x02, 0x00, 0x2c, 0x00, 0x94, 0xc4, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, - //0x0770: "... ,... ..@. .... - 0xa0, 0xca, 0xff, 0xff, 0x11, 0x01, 0x40, 0x01, 0x9d, 0x00, 0xc6, 0x00, 0x7c, 0xc4, 0x00, 0x00, - //0x0780: .... ..@. .... |... - 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0xee, 0x00, 0x02, 0x01, 0x04, 0x00, - //0x0790: @... .... .... .... - 0x2c, 0x00, 0xc8, 0xc4, 0x68, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x2c, 0x00, 0xcc, 0xc4, 0x18, 0x01, - //0x07a0: ,... h.|. ..,. .... - 0x34, 0x01, 0x04, 0x00, 0x2c, 0x00, 0xb0, 0xc4, 0x68, 0x00, 0xd8, 0x00, 0x8a, 0x00, 0xc0, 0x00, - //0x07b0: 4... ,... h... .... - 0xd0, 0xc4, 0x11, 0x01, 0x40, 0x01, 0x9d, 0x00, 0xc6, 0x00, 0x7c, 0xc4, 0x00, 0x00, 0x40, 0x01, - //0x07c0: .... @... ..|. ..@. - 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0x45, 0x58, 0x49, 0x54, 0x20, 0x20, 0x20, 0x20, - //0x07d0: .... .... EXIT - 0x20, 0x20, 0x48, 0x45, 0x4c, 0x50, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x49, 0x53, 0x54, - //0x07e0: HE LP LIST - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x45, 0x41, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - //0x07f0: RE AD - 0x4c, 0x4f, 0x47, 0x4f, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x45, 0x59, 0x53, 0x20, 0x20, - //0x0800: LOGO N KE YS - 0x20, 0x20, 0x20, 0x20, 0x01, 0x00, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x43, 0x20, 0x20, 0x20, 0x20, - //0x0810: ..PU BLIC - 0x20, 0x20, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, - //0x0820: PU BLIC ... - 0x42, 0x4c, 0x41, 0x43, 0x4b, 0x44, 0x52, 0x41, 0x47, 0x4f, 0x4e, 0x20, 0x52, 0x59, 0x41, 0x4e, - //0x0830: BLAC KDRA GON RYAN - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x48, 0x45, 0x4e, 0x44, 0x52, 0x49, - //0x0840: . ..HE NDRI - 0x58, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x4f, 0x55, 0x49, 0x53, 0x20, 0x20, 0x20, 0x20, 0x20, - //0x0850: X LO UIS - 0x20, 0x00, 0x00, 0x00, 0x53, 0x45, 0x50, 0x54, 0x49, 0x4d, 0x55, 0x53, 0x20, 0x20, 0x20, 0x20, - //0x0860: ... SEPT IMUS - 0x42, 0x45, 0x43, 0x4b, 0x45, 0x54, 0x54, 0x20, 0x20, 0x20, 0x20, 0x00, 0xff, 0xff, 0x20, 0x20, - //0x0870: BECK ETT . .. - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x22, 0x52, 0x4f, 0x4f, - //0x0880: . "ROO - 0x54, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x22, 0x20, 0x20, 0x20, 0x20, 0x20, - //0x0890: T ." - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x30, 0x30, 0x30, 0x30, 0x00, 0x30, 0x30, 0x00, - //0x08a0: . 0000 .00. - 0xba, 0x00, 0xca, 0x00, 0x9d, 0x00, 0xad, 0x00, 0x1c, 0xc8, 0xf3, 0x00, 0x03, 0x01, 0x83, 0x00, - //0x08b0: .... .... .... .... - 0x93, 0x00, 0x18, 0xc8, 0x0c, 0x01, 0x1c, 0x01, 0xa8, 0x00, 0xb8, 0x00, 0x50, 0xc7, 0x00, 0x00, - //0x08c0: .... .... .... P... - 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0x77, 0x00, 0xae, 0x00, 0x52, 0x00, - //0x08d0: @... .... ..w. ..R. - 0x80, 0x00, 0x34, 0xc8, 0x46, 0x00, 0x89, 0x00, 0x3e, 0x00, 0x6f, 0x00, 0x80, 0xc8, 0xbc, 0x00, - //0x08e0: ..4. F... >.o. .... - 0xfa, 0x00, 0x44, 0x00, 0x98, 0x00, 0x4c, 0xc8, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, - //0x08f0: ..D. ..L. ..@. .... - 0xa0, 0xca, 0xff, 0xff, 0x77, 0x00, 0xae, 0x00, 0x52, 0x00, 0x80, 0x00, 0x44, 0xc8, 0x46, 0x00, - //0x0900: .... w... R... D.F. - 0x8b, 0x00, 0x3e, 0x00, 0x6f, 0x00, 0x50, 0xc8, 0xec, 0x00, 0xfc, 0x00, 0x70, 0x00, 0x80, 0x00, - //0x0910: ..>. o.P. .... p... - 0x48, 0xc8, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0x0d, 0x0a, - //0x0920: H... @... .... .... - 0x0d, 0x0a, 0x24, 0x81, 0x00, 0xb8, 0x00, 0x52, 0x00, 0x80, 0x00, 0xc0, 0xc8, 0x50, 0x00, 0x93, - //0x0930: ..$. ...R .... .P.. - 0x00, 0x3e, 0x00, 0x6f, 0x00, 0x80, 0xc8, 0xb7, 0x00, 0xfa, 0x00, 0x3e, 0x00, 0x6f, 0x00, 0xc4, - //0x0940: .>.o .... ...> .o.. - 0xc8, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0x53, 0x50, 0x45, - //0x0950: ...@ .... .... .SPE - 0x45, 0x43, 0x48, 0x52, 0x32, 0x34, 0x43, 0x30, 0x30, 0x30, 0x35, 0x2e, 0x52, 0x41, 0x57, 0x00, - //0x0960: ECHR 24C0 005. RAW. - 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x20, 0x4e, 0x41, 0x4d, 0x45, 0x20, 0x4f, 0x4e, 0x45, 0x20, - //0x0970: OBJE CT N AME ONE + 0x14, 0x00, 0x00, 0x32, 0x14, 0x00, 0x0e, 0x21, 0x28, 0x00, 0x00, 0x32, 0x14, 0x00, 0xff, 0x44, + //0x03d0: ...2 ...! (..2 ...D + 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x53, 0x30, 0x30, 0x00, 0x49, 0x4e, 0x53, 0x54, + //0x03e0: REAM WEB. S00. INST + 0x41, 0x4c, 0x4c, 0x2e, 0x44, 0x41, 0x54, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, + //0x03f0: ALL. DAT. DREA MWEB + 0x2e, 0x43, 0x30, 0x30, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x43, 0x30, + //0x0400: .C00 .DRE AMWE B.C0 + 0x32, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x56, 0x30, 0x30, 0x00, 0x44, + //0x0410: 2.DR EAMW EB.V 00.D + 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x56, 0x39, 0x39, 0x00, 0x44, 0x52, 0x45, 0x41, + //0x0420: REAM WEB. V99. DREA + 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x30, 0x30, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, + //0x0430: MWEB .G00 .DRE AMWE + 0x42, 0x2e, 0x47, 0x30, 0x31, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, + //0x0440: B.G0 1.DR EAMW EB.G + 0x30, 0x32, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x30, 0x38, 0x00, + //0x0450: 02.D REAM WEB. G08. + 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x30, 0x34, 0x00, 0x44, 0x52, 0x45, + //0x0460: DREA MWEB .G04 .DRE + 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x30, 0x35, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, + //0x0470: AMWE B.G0 5.DR EAMW + 0x45, 0x42, 0x2e, 0x47, 0x30, 0x36, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, + //0x0480: EB.G 06.D REAM WEB. + 0x47, 0x31, 0x34, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x54, 0x35, 0x31, + //0x0490: G14. DREA MWEB .T51 + 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x54, 0x38, 0x30, 0x00, 0x44, 0x52, + //0x04a0: .DRE AMWE B.T8 0.DR + 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x54, 0x38, 0x32, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, + //0x04b0: EAMW EB.T 82.D REAM + 0x57, 0x45, 0x42, 0x2e, 0x54, 0x38, 0x33, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, + //0x04c0: WEB. T83. DREA MWEB + 0x2e, 0x54, 0x38, 0x34, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x56, 0x4f, + //0x04d0: .T84 .DRE AMWE B.VO + 0x4c, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x31, 0x33, 0x00, 0x44, + //0x04e0: L.DR EAMW EB.G 13.D + 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x31, 0x35, 0x00, 0x44, 0x52, 0x45, 0x41, + //0x04f0: REAM WEB. G15. DREA + 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x49, 0x30, 0x30, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, + //0x0500: MWEB .I00 .DRE AMWE + 0x42, 0x2e, 0x49, 0x30, 0x31, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x49, + //0x0510: B.I0 1.DR EAMW EB.I + 0x30, 0x32, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x49, 0x30, 0x33, 0x00, + //0x0520: 02.D REAM WEB. I03. + 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x49, 0x30, 0x34, 0x00, 0x44, 0x52, 0x45, + //0x0530: DREA MWEB .I04 .DRE + 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x49, 0x30, 0x35, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, + //0x0540: AMWE B.I0 5.DR EAMW + 0x45, 0x42, 0x2e, 0x49, 0x30, 0x36, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, + //0x0550: EB.I 06.D REAM WEB. + 0x49, 0x30, 0x37, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x50, 0x41, 0x4c, + //0x0560: I07. DREA MWEB .PAL + 0x00, 0x00, 0x01, 0x11, 0x01, 0x40, 0x01, 0x9d, 0x00, 0xc6, 0x00, 0x7c, 0xc4, 0xf0, 0x00, 0x22, + //0x0570: .... .@.. ...| ..." + 0x01, 0x02, 0x00, 0x2c, 0x00, 0x94, 0xc4, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, + //0x0580: ..., .... .@.. .... + 0xca, 0xff, 0xff, 0x11, 0x01, 0x40, 0x01, 0x9d, 0x00, 0xc6, 0x00, 0x7c, 0xc4, 0x00, 0x00, 0x40, + //0x0590: .... .@.. ...| ...@ + 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0xee, 0x00, 0x02, 0x01, 0x04, 0x00, 0x2c, + //0x05a0: .... .... .... ..., + 0x00, 0xc8, 0xc4, 0x68, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x2c, 0x00, 0xcc, 0xc4, 0x18, 0x01, 0x34, + //0x05b0: ...h .|.. .,.. ...4 + 0x01, 0x04, 0x00, 0x2c, 0x00, 0xb0, 0xc4, 0x68, 0x00, 0xd8, 0x00, 0x8a, 0x00, 0xc0, 0x00, 0xd0, + //0x05c0: ..., ...h .... .... + 0xc4, 0x11, 0x01, 0x40, 0x01, 0x9d, 0x00, 0xc6, 0x00, 0x7c, 0xc4, 0x00, 0x00, 0x40, 0x01, 0x00, + //0x05d0: ...@ .... .|.. .@.. + 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0x45, 0x58, 0x49, 0x54, 0x20, 0x20, 0x20, 0x20, 0x20, + //0x05e0: .... ...E XIT + 0x20, 0x48, 0x45, 0x4c, 0x50, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x49, 0x53, 0x54, 0x20, + //0x05f0: HEL P L IST + 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x45, 0x41, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, + //0x0600: REA D L + 0x4f, 0x47, 0x4f, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x45, 0x59, 0x53, 0x20, 0x20, 0x20, + //0x0610: OGON KEY S + 0x20, 0x20, 0x20, 0x01, 0x00, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, + //0x0620: . .PUB LIC + 0x20, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x42, + //0x0630: PUB LIC ...B + 0x4c, 0x41, 0x43, 0x4b, 0x44, 0x52, 0x41, 0x47, 0x4f, 0x4e, 0x20, 0x52, 0x59, 0x41, 0x4e, 0x20, + //0x0640: LACK DRAG ON R YAN + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x48, 0x45, 0x4e, 0x44, 0x52, 0x49, 0x58, + //0x0650: .. .HEN DRIX + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x4f, 0x55, 0x49, 0x53, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + //0x0660: LOU IS + 0x00, 0x00, 0x00, 0x53, 0x45, 0x50, 0x54, 0x49, 0x4d, 0x55, 0x53, 0x20, 0x20, 0x20, 0x20, 0x42, + //0x0670: ...S EPTI MUS B + 0x45, 0x43, 0x4b, 0x45, 0x54, 0x54, 0x20, 0x20, 0x20, 0x20, 0x00, 0xff, 0xff, 0x20, 0x20, 0x20, + //0x0680: ECKE TT .. . + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x22, 0x52, 0x4f, 0x4f, 0x54, + //0x0690: ." ROOT + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x22, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + //0x06a0: ." + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x30, 0x30, 0x30, 0x30, 0x00, 0x30, 0x30, 0x00, 0xba, + //0x06b0: .0 000. 00.. + 0x00, 0xca, 0x00, 0x9d, 0x00, 0xad, 0x00, 0x1c, 0xc8, 0xf3, 0x00, 0x03, 0x01, 0x83, 0x00, 0x93, + //0x06c0: .... .... .... .... + 0x00, 0x18, 0xc8, 0x0c, 0x01, 0x1c, 0x01, 0xa8, 0x00, 0xb8, 0x00, 0x50, 0xc7, 0x00, 0x00, 0x40, + //0x06d0: .... .... ...P ...@ + 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0x77, 0x00, 0xae, 0x00, 0x52, 0x00, 0x80, + //0x06e0: .... .... .w.. .R.. + 0x00, 0x34, 0xc8, 0x46, 0x00, 0x89, 0x00, 0x3e, 0x00, 0x6f, 0x00, 0x80, 0xc8, 0xbc, 0x00, 0xfa, + //0x06f0: .4.F ...> .o.. .... + 0x00, 0x44, 0x00, 0x98, 0x00, 0x4c, 0xc8, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, + //0x0700: .D.. .L.. .@.. .... + 0xca, 0xff, 0xff, 0x77, 0x00, 0xae, 0x00, 0x52, 0x00, 0x80, 0x00, 0x44, 0xc8, 0x46, 0x00, 0x8b, + //0x0710: ...w ...R ...D .F.. + 0x00, 0x3e, 0x00, 0x6f, 0x00, 0x50, 0xc8, 0xec, 0x00, 0xfc, 0x00, 0x70, 0x00, 0x80, 0x00, 0x48, + //0x0720: .>.o .P.. ...p ...H + 0xc8, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0x0d, 0x0a, 0x0d, + //0x0730: ...@ .... .... .... + 0x0a, 0x24, 0x81, 0x00, 0xb8, 0x00, 0x52, 0x00, 0x80, 0x00, 0xc0, 0xc8, 0x50, 0x00, 0x93, 0x00, + //0x0740: .$.. ..R. .... P... + 0x3e, 0x00, 0x6f, 0x00, 0x80, 0xc8, 0xb7, 0x00, 0xfa, 0x00, 0x3e, 0x00, 0x6f, 0x00, 0xc4, 0xc8, + //0x0750: >.o. .... ..>. o... + 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa0, 0xca, 0xff, 0xff, 0x53, 0x50, 0x45, 0x45, + //0x0760: ..@. .... .... SPEE + 0x43, 0x48, 0x52, 0x32, 0x34, 0x43, 0x30, 0x30, 0x30, 0x35, 0x2e, 0x52, 0x41, 0x57, 0x00, 0x4f, + //0x0770: CHR2 4C00 05.R AW.O + 0x42, 0x4a, 0x45, 0x43, 0x54, 0x20, 0x4e, 0x41, 0x4d, 0x45, 0x20, 0x4f, 0x4e, 0x45, 0x20, 0x20, + //0x0780: BJEC T NA ME O NE 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - //0x0980: - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x10, 0x12, 0x12, 0x11, 0x10, 0x10, 0x10, - //0x0990: .... .... - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, - //0x09a0: .... .... .... .... - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - //0x09b0: .... .... .... .... - 0x00, 0x44, 0x3a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - //0x09c0: .D:. .... .... .... + //0x0790: + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x10, 0x12, 0x12, 0x11, 0x10, 0x10, 0x10, 0x01, + //0x07a0: . .... .... + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + //0x07b0: .... .... .... .... + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x07c0: .... .... .... .... + 0x44, 0x3a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x07d0: D:.. .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - //0x09d0: .... .... .... .... - 0x00, 0x01, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - //0x09e0: .... .... .... .... - 0x00, 0x05, 0x00, 0x03, 0x02, 0x04, 0x01, 0x0a, 0x09, 0x08, 0x06, 0x0b, 0x04, 0x07, 0x07, 0x00, - //0x09f0: .... .... .... .... + //0x07e0: .... .... .... .... + 0x01, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //0x07f0: .... .... .... .... + 0x05, 0x00, 0x03, 0x02, 0x04, 0x01, 0x0a, 0x09, 0x08, 0x06, 0x0b, 0x04, 0x07, 0x07, 0x00, 0x00, + //0x0800: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - //0x0a00: .... .... .... .... + //0x0810: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - //0x0a10: .... .... .... .... + //0x0820: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - //0x0a20: .... .... .... .... + //0x0830: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - //0x0a30: .... .... .... .... + //0x0840: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - //0x0a40: .... .... .... .... + //0x0850: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - //0x0a50: .... .... .... .... + //0x0860: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - //0x0a60: .... .... .... .... + //0x0870: .... .... .... .... 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - //0x0a70: .... .... .... .... - 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, - //0x0a80: .... .... .... .... + //0x0880: .... .... .... .... + 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + //0x0890: .... .... .... .... + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, + //0x08a0: .... .... .... .... 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, - //0x0a90: .... .... .... .... + //0x08b0: .... .... .... .... 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, - //0x0aa0: .... .... .... .... + //0x08c0: .... .... .... .... 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, - //0x0ab0: .... .... .... .... + //0x08d0: .... .... .... .... 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, - //0x0ac0: .... .... .... .... + //0x08e0: .... .... .... .... 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, - //0x0ad0: .... .... .... .... - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, - //0x0ae0: .... .... .... .... - 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, - //0x0af0: .... .... .... .... - 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x44, 0x30, 0x30, 0x00, 0x44, 0x52, 0x45, - //0x0b00: DREA MWEB .D00 .DRE - 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x44, 0x30, 0x31, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, - //0x0b10: AMWE B.D0 1.DR EAMW - 0x45, 0x42, 0x2e, 0x44, 0x30, 0x32, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, - //0x0b20: EB.D 02.D REAM WEB. - 0x44, 0x30, 0x33, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x44, 0x30, 0x34, - //0x0b30: D03. DREA MWEB .D04 - 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x44, 0x30, 0x35, 0x00, 0x44, 0x52, - //0x0b40: .DRE AMWE B.D0 5.DR - 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x44, 0x30, 0x36, 0x00, 0x00, 0x00, 0x00, }; + //0x08f0: .... .... .... .... + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x44, + //0x0900: .... .... .... ...D + 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x44, 0x30, 0x30, 0x00, 0x44, 0x52, 0x45, 0x41, + //0x0910: REAM WEB. D00. DREA + 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x44, 0x30, 0x31, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, + //0x0920: MWEB .D01 .DRE AMWE + 0x42, 0x2e, 0x44, 0x30, 0x32, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x44, + //0x0930: B.D0 2.DR EAMW EB.D + 0x30, 0x33, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x44, 0x30, 0x34, 0x00, + //0x0940: 03.D REAM WEB. D04. + 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x44, 0x30, 0x35, 0x00, 0x44, 0x52, 0x45, + //0x0950: DREA MWEB .D05 .DRE + 0x41, 0x4d, 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 af03e1936d..25f72c999a 100644 --- a/engines/dreamweb/dreamgen.h +++ b/engines/dreamweb/dreamgen.h @@ -36,24 +36,24 @@ public: void __start(); #include "stubs.h" // Allow hand-reversed functions to have a signature different than void f() - static const uint16 offset_talklist = 0x0764; - static const uint16 offset_money2poke = 0x08ad; - static const uint16 offset_speechfilename = 0x095d; - static const uint16 offset_discopslist = 0x0904; - static const uint16 offset_commandline = 0x0970; - static const uint16 offset_quitlist = 0x0784; - static const uint16 offset_speechfile = 0x0963; - static const uint16 offset_keybuffer = 0x09b1; - static const uint16 offset_operand1 = 0x087e; - static const uint16 offset_opslist = 0x08da; - static const uint16 offset_diarylist = 0x08b0; - static const uint16 offset_decidelist = 0x0933; - static const uint16 offset_comlist = 0x07d8; - static const uint16 offset_destlist = 0x079a; - static const uint16 offset_keys = 0x0814; - static const uint16 offset_openchangesize = 0x0762; - static const uint16 offset_money1poke = 0x08a8; - static const uint16 offset_rootdir = 0x088c; + static const uint16 offset_commandline = 0x077f; + static const uint16 offset_money2poke = 0x06bc; + static const uint16 offset_keys = 0x0623; + static const uint16 offset_keybuffer = 0x07c0; + static const uint16 offset_diarylist = 0x06bf; + static const uint16 offset_decidelist = 0x0742; + static const uint16 offset_operand1 = 0x068d; + static const uint16 offset_rootdir = 0x069b; + static const uint16 offset_opslist = 0x06e9; + static const uint16 offset_discopslist = 0x0713; + static const uint16 offset_comlist = 0x05e7; + static const uint16 offset_quitlist = 0x0593; + static const uint16 offset_speechfilename = 0x076c; + static const uint16 offset_money1poke = 0x06b7; + static const uint16 offset_talklist = 0x0573; + static const uint16 offset_openchangesize = 0x0571; + static const uint16 offset_destlist = 0x05a9; + static const uint16 offset_speechfile = 0x0772; static const uint16 kStartvars = 0; static const uint16 kProgresspoints = 1; static const uint16 kWatchon = 2; @@ -432,74 +432,48 @@ public: static const uint16 kGameerror = 531; static const uint16 kHowmuchalloc = 532; static const uint16 kReelroutines = 534; - static const uint16 kRoombyroom = 991; - static const uint16 kR0 = 1103; - static const uint16 kR1 = 1104; - static const uint16 kR2 = 1108; - static const uint16 kR6 = 1127; - static const uint16 kR8 = 1134; - static const uint16 kR9 = 1150; - static const uint16 kR10 = 1157; - static const uint16 kR11 = 1161; - static const uint16 kR12 = 1165; - static const uint16 kR13 = 1169; - static const uint16 kR14 = 1182; - static const uint16 kR20 = 1216; - static const uint16 kR22 = 1238; - static const uint16 kR23 = 1269; - static const uint16 kR25 = 1282; - static const uint16 kR26 = 1304; - static const uint16 kR27 = 1326; - static const uint16 kR28 = 1351; - static const uint16 kR29 = 1370; - static const uint16 kR45 = 1386; - static const uint16 kR46 = 1393; - static const uint16 kR47 = 1430; - static const uint16 kR52 = 1443; - static const uint16 kR53 = 1447; - static const uint16 kR55 = 1454; - static const uint16 kSpritename1 = 1488; - static const uint16 kIdname = 1501; - static const uint16 kCharacterset1 = 1513; - static const uint16 kCharacterset3 = 1526; - static const uint16 kSamplename = 1539; - static const uint16 kBasicsample = 1552; - static const uint16 kIcongraphics0 = 1565; - static const uint16 kIcongraphics1 = 1578; - static const uint16 kExtragraphics1 = 1591; - static const uint16 kIcongraphics8 = 1604; - static const uint16 kCityname = 1617; - static const uint16 kTravelgraphic1 = 1630; - static const uint16 kTravelgraphic2 = 1643; - static const uint16 kDiarygraphic = 1656; - static const uint16 kDiarytext = 1669; - static const uint16 kPuzzletextname = 1682; - static const uint16 kIntrotextname = 1695; - static const uint16 kEndtextname = 1708; - static const uint16 kCommandtextname = 1721; - static const uint16 kVolumetabname = 1734; - static const uint16 kGungraphic = 1747; - static const uint16 kMonkface = 1760; - static const uint16 kTitle0graphics = 1773; - static const uint16 kTitle1graphics = 1786; - static const uint16 kTitle2graphics = 1799; - static const uint16 kTitle3graphics = 1812; - static const uint16 kTitle4graphics = 1825; - static const uint16 kTitle5graphics = 1838; - static const uint16 kTitle6graphics = 1851; - static const uint16 kTitle7graphics = 1864; - static const uint16 kPalettescreen = 1877; - static const uint16 kCurrentfile = 2202; - static const uint16 kRoomscango = 2529; - static const uint16 kRoompics = 2545; - static const uint16 kOplist = 2560; - static const uint16 kInputline = 2563; - static const uint16 kPresslist = 2691; - static const uint16 kSavenames = 2697; - static const uint16 kSavefiles = 2816; - static const uint16 kQuitrequested = 2907; - static const uint16 kSubtitles = 2908; - static const uint16 kForeignrelease = 2909; + static const uint16 kSpritename1 = 991; + static const uint16 kIdname = 1004; + static const uint16 kCharacterset1 = 1016; + static const uint16 kCharacterset3 = 1029; + static const uint16 kSamplename = 1042; + static const uint16 kBasicsample = 1055; + static const uint16 kIcongraphics0 = 1068; + static const uint16 kIcongraphics1 = 1081; + static const uint16 kExtragraphics1 = 1094; + static const uint16 kIcongraphics8 = 1107; + static const uint16 kCityname = 1120; + static const uint16 kTravelgraphic1 = 1133; + static const uint16 kTravelgraphic2 = 1146; + static const uint16 kDiarygraphic = 1159; + static const uint16 kDiarytext = 1172; + static const uint16 kPuzzletextname = 1185; + static const uint16 kIntrotextname = 1198; + static const uint16 kEndtextname = 1211; + static const uint16 kCommandtextname = 1224; + static const uint16 kVolumetabname = 1237; + static const uint16 kGungraphic = 1250; + static const uint16 kMonkface = 1263; + static const uint16 kTitle0graphics = 1276; + static const uint16 kTitle1graphics = 1289; + static const uint16 kTitle2graphics = 1302; + static const uint16 kTitle3graphics = 1315; + static const uint16 kTitle4graphics = 1328; + static const uint16 kTitle5graphics = 1341; + static const uint16 kTitle6graphics = 1354; + static const uint16 kTitle7graphics = 1367; + static const uint16 kPalettescreen = 1380; + static const uint16 kCurrentfile = 1705; + static const uint16 kRoomscango = 2032; + static const uint16 kRoompics = 2048; + static const uint16 kOplist = 2063; + static const uint16 kInputline = 2066; + static const uint16 kPresslist = 2194; + static const uint16 kSavenames = 2200; + static const uint16 kSavefiles = 2319; + static const uint16 kQuitrequested = 2410; + static const uint16 kSubtitles = 2411; + static const uint16 kForeignrelease = 2412; static const uint16 kBlocktextdat = (0); static const uint16 kPersonframes = (0); static const uint16 kDebuglevel1 = (0); diff --git a/engines/dreamweb/sprite.cpp b/engines/dreamweb/sprite.cpp index f34f0c9616..a2763aeed5 100644 --- a/engines/dreamweb/sprite.cpp +++ b/engines/dreamweb/sprite.cpp @@ -869,49 +869,283 @@ void DreamGenContext::reconstruct() { data.byte(kHavedoneobs) = 0; } + + +struct ReelSound { + uint8 _sample; + uint16 _reelPointer; +}; + +static const ReelSound g_roomSound0[] = { + { 255,0 } +}; + +static const ReelSound g_roomSound1[] = { + { 15, 257 }, + { 255,0 } +}; + +static const ReelSound g_roomSound2[] = { + { 12, 5 }, + { 13, 21 }, + { 15, 35 }, // hitting floor? + { 17, 50 }, + { 18, 103 }, + { 19, 108 }, + { 255,0 } +}; + +static const ReelSound g_roomSound6[] = { + { 18, 19 }, + { 19, 23 }, + { 255,0 } +}; +static const ReelSound g_roomSound8[] = { + + { 12, 51 }, + { 13, 53 }, + { 14, 14 }, + { 15, 20 }, + { 0, 78 }, + { 255,0 } +}; +static const ReelSound g_roomSound9[] = { + + { 12, 119 }, + { 12, 145 }, + { 255,0 } +}; + +static const ReelSound g_roomSound10[] = { + { 13, 16 }, + { 255,0 } +}; + +static const ReelSound g_roomSound11[] = { + { 13, 20 }, + { 255,0 } +}; + +static const ReelSound g_roomSound12[] = { + { 14, 16 }, + { 255,0 } +}; + +static const ReelSound g_roomSound13[] = { + { 15, 4 }, + { 16, 8 }, + { 17, 134 }, + { 18, 153 }, + { 255,0 } +}; + +static const ReelSound g_roomSound14[] = { + { 13, 108 }, + { 15, 326 }, + { 15, 331 }, + { 15, 336 }, + { 15, 342 }, + { 15, 348 }, + { 15, 354 }, + { 18, 159 }, + { 18, 178 }, + { 19+128, 217 }, + { 20+64, 228 }, + { 255,0 } +}; + +static const ReelSound g_roomSound20[] = { + { 13, 20 }, + { 13, 21 }, + { 15, 34 }, + { 13, 52 }, + { 13, 55 }, + { 25, 57 }, + { 21, 73 }, + { 255,0 } +}; + +static const ReelSound g_roomSound22[] = { + { 13, 196 }, + { 13, 234 }, + { 13, 156 }, + { 14, 129 }, + { 13, 124 }, + { 15, 162 }, + { 15, 200 }, + { 15, 239 }, + { 17, 99 }, + { 12, 52 }, + { 255,0 } +}; + +static const ReelSound g_roomSound23[] = { + { 15, 56 }, + { 16, 64 }, + { 19, 22 }, + { 20, 33 }, + { 255,0 } +}; + +static const ReelSound g_roomSound25[] = { + { 20, 11 }, + { 20, 15 }, + { 15, 28 }, + { 13, 80 }, + { 21, 82 }, + { 19+128, 87 }, + { 23+64, 128 }, + { 255,0 } +}; + +static const ReelSound g_roomSound26[] = { + { 12, 13 }, + { 14, 39 }, + { 12, 67 }, + { 12, 75 }, + { 12, 83 }, + { 12, 91 }, + { 15, 102 }, // was 90, should be mine cart + { 255,0 } +}; + +static const ReelSound g_roomSound27[] = { + { 22, 36 }, + { 13, 125 }, + { 18, 88 }, + { 15, 107 }, + { 14, 127 }, + { 14, 154 }, + { 19+128, 170 }, + { 23+64, 232 }, + { 255,0 } +}; + +static const ReelSound g_roomSound28[] = { + { 21, 16 }, + { 21, 72 }, + { 21, 205 }, + { 22, 63 }, // 65 + { 23+128, 99 }, + { 24+64, 158 }, + { 255,0 } +}; + +static const ReelSound g_roomSound29[] = { + { 13, 21 }, + { 14, 24 }, + { 19+128, 50 }, + { 23+64, 75 }, + { 24, 128 }, + { 255,0 } +}; + +static const ReelSound g_roomSound29_German[] = { + { 13, 21 }, + { 14, 24 }, + { 19+128, 50 }, + { 23+64, 75 }, + { 255,0 } +}; + + +static const ReelSound g_roomSound45[] = { + { 19+64, 46 }, + { 16, 167 }, + { 255,0 } +}; + +static const ReelSound g_roomSound46[] = { + { 16, 19 }, + { 14, 36 }, + { 16, 50 }, + { 14, 65 }, + { 16, 81 }, + { 14, 96 }, + { 16, 114 }, + { 14, 129 }, + { 16, 147 }, + { 14, 162 }, + { 16, 177 }, + { 14, 191 }, + { 255,0 } +}; + +static const ReelSound g_roomSound47[] = { + { 13, 48 }, + { 14, 41 }, + { 15, 78 }, + { 16, 92 }, + { 255,0 } +}; + +static const ReelSound g_roomSound52[] = { + { 16, 115 }, + { 255,0 } +}; + +static const ReelSound g_roomSound53[] = { + { 21, 103 }, + { 20, 199 }, + { 255,0 } +}; + +static const ReelSound g_roomSound55[] = { + { 17, 53 }, + { 17, 54 }, + { 17, 55 }, + { 17, 56 }, + { 17, 57 }, + { 17, 58 }, + { 17, 59 }, + { 17, 61 }, + { 17, 63 }, + { 17, 64 }, + { 17, 65 }, + { 255,0 } +}; + +static const ReelSound *g_roomByRoom[] = { + g_roomSound0,g_roomSound1,g_roomSound2,g_roomSound0,g_roomSound0, + g_roomSound0,g_roomSound6,g_roomSound0,g_roomSound8,g_roomSound9, + g_roomSound10,g_roomSound11,g_roomSound12,g_roomSound13,g_roomSound14, + g_roomSound0,g_roomSound0,g_roomSound0,g_roomSound0,g_roomSound0, + g_roomSound20,g_roomSound0,g_roomSound22,g_roomSound23,g_roomSound0, + g_roomSound25,g_roomSound26,g_roomSound27,g_roomSound28,g_roomSound29, + g_roomSound0,g_roomSound0,g_roomSound0,g_roomSound0,g_roomSound0, + g_roomSound0,g_roomSound0,g_roomSound0,g_roomSound0,g_roomSound0, + g_roomSound0,g_roomSound0,g_roomSound0,g_roomSound0,g_roomSound0, + g_roomSound45,g_roomSound46,g_roomSound47,g_roomSound0,g_roomSound0, + g_roomSound0,g_roomSound0,g_roomSound52,g_roomSound53,g_roomSound0, + g_roomSound55 +}; + + void DreamGenContext::soundOnReels() { - STACK_CHECK; - bl = data.byte(kReallocation); - _add(bl, bl); - _xor(bh, bh); - _add(bx, 991); - si = cs.word(bx); -reelsoundloop: - al = cs.byte(si); - _cmp(al, 255); - if (flags.z()) - goto endreelsound; - ax = cs.word(si+1); - _cmp(ax, data.word(kReelpointer)); - if (!flags.z()) - goto skipreelsound; - _cmp(ax, data.word(kLastsoundreel)); - if (flags.z()) - goto skipreelsound; - data.word(kLastsoundreel) = ax; - al = cs.byte(si); - _cmp(al, 64); - if (flags.c()) - { playChannel1(); return; }; - _cmp(al, 128); - if (flags.c()) - goto channel0once; - _and(al, 63); - ah = 255; - { playChannel0(); return; }; -channel0once: - _and(al, 63); - ah = 0; - { playChannel0(); return; }; -skipreelsound: - _add(si, 3); - goto reelsoundloop; -endreelsound: - ax = data.word(kLastsoundreel); - _cmp(ax, data.word(kReelpointer)); - if (flags.z()) - return /* (nochange2) */; - data.word(kLastsoundreel) = -1; + const ReelSound *r = g_roomByRoom[data.byte(kReallocation)]; + + if (data.byte(kForeignrelease) && r == g_roomSound29) + r = g_roomSound29_German; + + for (; r->_sample != 255; ++r) { + if (r->_reelPointer != data.word(kReelpointer)) + continue; + if (r->_reelPointer == data.word(kLastsoundreel)) + continue; + data.word(kLastsoundreel) = r->_reelPointer; + if (r->_sample < 64) { + playChannel1(r->_sample); + return; + } + if (r->_sample < 128) { + playChannel0(r->_sample & 63, 0); + return; + } + playChannel0(r->_sample & 63, 255); + } + + if (data.word(kReelpointer) != data.word(kLastsoundreel)) + data.word(kLastsoundreel) = -1; } } /*namespace dreamgen */ -- cgit v1.2.3