aboutsummaryrefslogtreecommitdiff
path: root/simon
diff options
context:
space:
mode:
authorTravis Howell2003-05-26 08:45:31 +0000
committerTravis Howell2003-05-26 08:45:31 +0000
commitb959d9d64e0f08b178e25489d86f3eab59bf2a3f (patch)
treee3d9da2ac2baffe58b47cb9f28015c77a989847d /simon
parent01b900e028e2683d10beae62ecec0c0625507791 (diff)
downloadscummvm-rg350-b959d9d64e0f08b178e25489d86f3eab59bf2a3f.tar.gz
scummvm-rg350-b959d9d64e0f08b178e25489d86f3eab59bf2a3f.tar.bz2
scummvm-rg350-b959d9d64e0f08b178e25489d86f3eab59bf2a3f.zip
Commit hack to allow simon1amiga to run, for experimenting
svn-id: r7995
Diffstat (limited to 'simon')
-rw-r--r--simon/charset.cpp8
-rw-r--r--simon/items.cpp7
-rw-r--r--simon/simon.cpp6
3 files changed, 17 insertions, 4 deletions
diff --git a/simon/charset.cpp b/simon/charset.cpp
index 1ec69ef707..c96acd7710 100644
--- a/simon/charset.cpp
+++ b/simon/charset.cpp
@@ -97,6 +97,14 @@ void SimonState::render_string(uint num_1, uint color, uint width, uint height,
byte *img = src + READ_LE_UINT16(img_hdr);
byte *cur_dst = dst;
+ if (_game == GAME_SIMON1AMIGA) {
+ // FIXME Really bad hack to allow simon1amiga to work for now
+ // simon1amiga needs to be decoded a different way
+ warning("img_height is %d and img_width is %d", img_height, img_width);
+ img_height = 9;
+ img_width = 7;
+ }
+
assert(img_width > 0 && img_width < 50 && img_height > 0 && img_height < 50);
do {
diff --git a/simon/items.cpp b/simon/items.cpp
index 8916e49e0c..5a5b745f86 100644
--- a/simon/items.cpp
+++ b/simon/items.cpp
@@ -274,7 +274,12 @@ int SimonState::runScript() {
uint var = getVarOrByte();
uint value = (uint16)getVarOrWord();
- writeVariable(var, _rnd.getRandomNumber(value - 1));
+ // Disable random in simon1amiga for now
+ // Since copy protection screen is currently unreadable
+ if (_game == GAME_SIMON1AMIGA)
+ writeVariable(var, 4);
+ else
+ writeVariable(var, _rnd.getRandomNumber(value - 1));
}
break;
diff --git a/simon/simon.cpp b/simon/simon.cpp
index eff6a2a4f4..9451569e90 100644
--- a/simon/simon.cpp
+++ b/simon/simon.cpp
@@ -39,7 +39,7 @@ extern bool draw_keyboard;
static const VersionSettings simon_settings[] = {
// Simon the Sorcerer 1 & 2 (not SCUMM games)
{"simon1dos", "Simon the Sorcerer 1 for DOS", GID_SIMON_FIRST, 99, 99, 99, GAME_SIMON1DOS, "GAMEPC"},
-// {"simon1amiga", "Simon the Sorcerer 1 for Amiga", GID_SIMON_FIRST, 99, 99, 99, GAME_SIMON1AMIGA, "gameamiga"},
+ {"simon1amiga", "Simon the Sorcerer 1 for Amiga", GID_SIMON_FIRST, 99, 99, 99, GAME_SIMON1AMIGA, "gameamiga"},
{"simon2dos", "Simon the Sorcerer 2 for DOS", GID_SIMON_FIRST, 99, 99, 99, GAME_SIMON2DOS, "GAME32"},
{"simon1talkie", "Simon the Sorcerer 1 Talkie for DOS", GID_SIMON_FIRST, 99, 99, 99, GAME_SIMON1TALKIE, "SIMON.GME"},
{"simon2talkie", "Simon the Sorcerer 2 Talkie for DOS", GID_SIMON_FIRST, 99, 99, 99, GAME_SIMON2TALKIE, "GSPTR30"},
@@ -4081,7 +4081,7 @@ void SimonState::read_vga_from_datfile_1(uint vga_id) {
sprintf(buf, "0%d.out", vga_id);
} else if (_game == GAME_SIMON1AMIGA) {
// TODO Add support for decruncher
- sprintf(buf, "0%d.pkd", vga_id);
+ sprintf(buf, "0%d.pkd.out", vga_id);
} else {
sprintf(buf, "0%d.VGA", vga_id);
}
@@ -4115,7 +4115,7 @@ byte *SimonState::read_vga_from_datfile_2(uint id) {
sprintf(buf, "%.3d%d.out", id >> 1, (id & 1) + 1);
} else if (_game == GAME_SIMON1AMIGA) {
// TODO Add support for decruncher
- sprintf(buf, "%.3d%d.pkd", id >> 1, (id & 1) + 1);
+ sprintf(buf, "%.3d%d.pkd.out", id >> 1, (id & 1) + 1);
} else {
sprintf(buf, "%.3d%d.VGA", id >> 1, (id & 1) + 1);
}