[Scummvm-cvs-logs] CVS: scummvm/simon intern.h,1.9,1.10 res.cpp,1.15,1.16 simon.cpp,1.141,1.142 vga.cpp,1.31,1.32

Travis Howell kirben at users.sourceforge.net
Mon Jan 13 20:26:03 CET 2003


Update of /cvsroot/scummvm/scummvm/simon
In directory sc8-pr-cvs1:/tmp/cvs-serv11568/simon

Modified Files:
	intern.h res.cpp simon.cpp vga.cpp 
Log Message:

Start for Simon 1 amiga cd32 version support, not working right yet.


Index: intern.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/simon/intern.h,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -d -r1.9 -r1.10
--- intern.h	11 Jan 2003 15:38:37 -0000	1.9
+++ intern.h	14 Jan 2003 04:25:38 -0000	1.10
@@ -138,6 +138,7 @@
 	GAME_TALKIE = 4,
 	GAME_DEMO = 8,
 	GAME_MAC = 16,
+	GAME_CD32 = 32,
 
 	GAME_SIMON1DOS = 0,
 	GAME_SIMON2DOS = GAME_SIMON2,
@@ -146,7 +147,8 @@
 	GAME_SIMON1WIN = GAME_WIN + GAME_TALKIE,
 	GAME_SIMON2WIN = GAME_SIMON2 + GAME_WIN + GAME_TALKIE,
 	GAME_SIMON1DEMO = GAME_DEMO,
-	GAME_SIMON2MAC = GAME_SIMON2WIN + GAME_MAC
+	GAME_SIMON2MAC = GAME_SIMON2WIN + GAME_MAC,
+	GAME_SIMON1CD32 = GAME_SIMON1TALKIE + GAME_CD32
 };
 
 #endif

Index: res.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/simon/res.cpp,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -d -r1.15 -r1.16
--- res.cpp	11 Jan 2003 15:38:37 -0000	1.15
+++ res.cpp	14 Jan 2003 04:25:38 -0000	1.16
@@ -265,6 +265,7 @@
 	switch (_game) {
 	case GAME_SIMON1TALKIE:
 	case GAME_SIMON1WIN:
+	case GAME_SIMON1CD32:
 		table = opcode_arg_table_simon1win;
 		break;
 	case GAME_SIMON2DOS:

Index: simon.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/simon/simon.cpp,v
retrieving revision 1.141
retrieving revision 1.142
diff -u -d -r1.141 -r1.142
--- simon.cpp	12 Jan 2003 15:17:58 -0000	1.141
+++ simon.cpp	14 Jan 2003 04:25:38 -0000	1.142
@@ -54,6 +54,24 @@
 	"GAMEPC",									/* gamepc_filename */
 };
 
+static const GameSpecificSettings simon1cd32_settings = {
+	1,										/* VGA_DELAY_BASE */
+	1576 / 4,									/* TABLE_INDEX_BASE */
+	1460 / 4,									/* TEXT_INDEX_BASE */
+	64,										/* NUM_VIDEO_OP_CODES */
+	1000000,									/* VGA_MEM_SIZE */
+	50000,										/* TABLES_MEM_SIZE */
+	1316 / 4,									/* MUSIC_INDEX_BASE */
+	0,										/* SOUND_INDEX_BASE */
+	"",										/* gme_filename */
+	"",										/* wav_filename */
+	"",										/* voc_filename */
+	"SIMON.MP3",									/* mp3_filename */
+	"",									/* voc_effects_filename */
+	"",									/* mp3_effects_filename */
+	"gameamiga",									/* gamepc_filename */
+};
+
 static const GameSpecificSettings simon1demo_settings = {
 	1,										/* VGA_DELAY_BASE */
 	1576 / 4,									/* TABLE_INDEX_BASE */
@@ -965,7 +983,7 @@
 
 uint SimonState::loadTextFile(const char *filename, byte *dst)
 {
-	if (_game == GAME_SIMON1DEMO || _game == GAME_SIMON1DOS)
+	if (_game == GAME_SIMON1CD32 || _game == GAME_SIMON1DEMO || _game == GAME_SIMON1DOS)
 		return loadTextFile_simon1(filename, dst);
 	else
 		return loadTextFile_gme(filename, dst);
@@ -973,7 +991,7 @@
 
 File *SimonState::openTablesFile(const char *filename)
 {
-	if (_game == GAME_SIMON1DEMO || _game == GAME_SIMON1DOS)
+	if (_game == GAME_SIMON1CD32 || _game == GAME_SIMON1DEMO || _game == GAME_SIMON1DOS)
 		return openTablesFile_simon1(filename);
 	else
 		return openTablesFile_gme(filename);
@@ -981,7 +999,7 @@
 
 void SimonState::closeTablesFile(File *in)
 {
-	if (_game == GAME_SIMON1DEMO || _game == GAME_SIMON1DOS)
+	if (_game == GAME_SIMON1CD32 || _game == GAME_SIMON1DEMO || _game == GAME_SIMON1DOS)
 		closeTablesFile_simon1(in);
 	else
 		closeTablesFile_gme(in);
@@ -1473,7 +1491,10 @@
 void SimonState::loadIconFile()
 {
 	File in;
-	in.open("ICON.DAT", _gameDataPath);
+	if (_game == GAME_SIMON1CD32)
+		in.open("icon.pkd", _gameDataPath);
+	else
+		in.open("ICON.DAT", _gameDataPath);
 	uint size;
 
 	if (in.isOpen() == false)
@@ -1866,6 +1887,7 @@
 	switch (_game) {
 	case GAME_SIMON1TALKIE:
 	case GAME_SIMON1WIN:
+	case GAME_SIMON1CD32:
  		if (speech_id != 0) {
   			talk_with_speech(speech_id, num_1);
   		} else if (string_ptr != NULL) {
@@ -4342,14 +4364,22 @@
 
 void SimonState::read_vga_from_datfile_1(uint vga_id)
 {
-	if (_game == GAME_SIMON1DEMO || _game == GAME_SIMON1DOS) {
+	if (_game == GAME_SIMON1CD32 || _game == GAME_SIMON1DEMO || _game == GAME_SIMON1DOS) {
 		File in;
 		char buf[50];
 		uint32 size;
-		if (vga_id == 23) 
-			sprintf(buf, "0112.VGA"); 
-		if (vga_id == 328) 
-			sprintf(buf, "0119.VGA"); 
+		if (vga_id == 23) {
+			if (_game == GAME_SIMON1CD32)
+				sprintf(buf, "0112.out"); 
+			else
+				sprintf(buf, "0112.VGA"); 
+		}
+		if (vga_id == 328) {
+			if (_game == GAME_SIMON1CD32)
+				sprintf(buf, "0119.out"); 
+			else
+				sprintf(buf, "0119.VGA"); 
+		}
 
 		in.open(buf, _gameDataPath);
 		if (in.isOpen() == false)
@@ -4371,13 +4401,16 @@
 
 byte *SimonState::read_vga_from_datfile_2(uint id)
 {
-	if (_game == GAME_SIMON1DEMO || _game == GAME_SIMON1DOS) {
+	if (_game == GAME_SIMON1CD32 || _game == GAME_SIMON1DEMO || _game == GAME_SIMON1DOS) {
 		File in;
 		char buf[50];
 		uint32 size;
 		byte *dst;
 
-		sprintf(buf, "%.3d%d.VGA", id >> 1, (id & 1) + 1);
+		if (_game == GAME_SIMON1CD32)
+			sprintf(buf, "%.3d%d.out", id >> 1, (id & 1) + 1);
+		else
+			sprintf(buf, "%.3d%d.VGA", id >> 1, (id & 1) + 1);
 
 		in.open(buf, _gameDataPath);
 		if (in.isOpen() == false)
@@ -4415,7 +4448,7 @@
 
 void SimonState::openGameFile()
 {
-	if (_game != GAME_SIMON1DEMO && _game != GAME_SIMON1DOS) {
+	if (_game != GAME_SIMON1CD32 && _game != GAME_SIMON1DEMO && _game != GAME_SIMON1DOS) {
 		_game_file = new File();
 		_game_file->open(gss->gme_filename, _gameDataPath);
 
@@ -4601,6 +4634,8 @@
 		gss = &simon2win_settings;
 	} else if (_game == GAME_SIMON2DOS) {
 		gss = &simon2dos_settings;
+	} else if (_game == GAME_SIMON1CD32) {
+		gss = &simon1cd32_settings;
 	} else if (_game == GAME_SIMON1DEMO) {
 		gss = &simon1demo_settings;
 	} else {
@@ -4964,7 +4999,7 @@
 		_vc70_var1 = 0xFFFF;
 		_vc72_var3 = 0xFFFF;
 		_midi_unk2 = 0xFFFF;
-	} else if (!(_game & GAME_DEMO)){ // Simon 1 music
+	} else if (!(_game & GAME_DEMO) && (_game != GAME_SIMON1CD32)){ // Simon 1 music
 		midi.shutdown();
 		if (_game & GAME_WIN) {	
 			_game_file->seek(_game_offsets_ptr[gss->MUSIC_INDEX_BASE + music], SEEK_SET);

Index: vga.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/simon/vga.cpp,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -d -r1.31 -r1.32
--- vga.cpp	4 Jan 2003 08:46:10 -0000	1.31
+++ vga.cpp	14 Jan 2003 04:25:38 -0000	1.32
@@ -677,8 +677,9 @@
 	if (state.e & 0x10)
 		state.depack_src = vc_10_depack_swap(state.depack_src, width, height);
 	else if (state.e & 1)
-		state.depack_src = vc_10_no_depack_swap(state.depack_src);
-
+		// FIXME: vc_10_no_depack_swap support needs to be added.
+		//state.depack_src = vc_10_no_depack_swap(state.depack_src);
+		state.depack_src = vc_10_depack_swap(state.depack_src, width, height);
 
 	vlut = &_video_windows[_video_palette_mode * 4];
 





More information about the Scummvm-git-logs mailing list