View Single Post
Old 03 May 2022, 08:06   #20
NicoDE
research
 
NicoDE's Avatar
 
Join Date: May 2018
Location: Germany
Posts: 21
Quote:
Originally Posted by rofl0r View Post
(e.g. by looking at opcodes in winuae debugger and searching for those bytes in the game "executable")
There is no need to search for any code patterns, everything is loaded at fixed addresses.

Data loading for the selected mission happens in the function at 00010ABE.
If you want to know which track block are used for what mission:
Code:
/* misson map info (map pos, reward, first line) */
[ 1 - 1]	178,72	13000	"SEVERAL MISSILES HAVE BEEN TAKEN"
[ 2 - 1]	159,75	10000	"MY YOUNG SON HAS BEEN KIDNAPPED"
[ 3 - 1]	163,82	13000	"A TERRORIST GROUP HAS THREATENED"
[ 4 - 1]	114,83	7000	"OUR ORGANISATION HAS DISCOVERED"
[ 5 - 1]	169,89	6000	"THE SENIOR MEMBER OF OUR FAMILY"
[ 6 - 1]	89,99	12000	"PLEASE HELP! MY GIRLFRIEND WHO"
[ 7 - 1]	101,100	15000	"A DRUG BARON HAS RECENTLY CAUSED"
[ 8 - 1]	205,101	6000	"A GROUP OF TERRORISTS THREATENS"
[ 9 - 1]	243,110	14000	"CAN YOU HELP ME? MY SON IS A"
[10 - 1]	104,135	5000	"AN INVALUABLE INCA STATUE HAS"
[11 - 1]	246,147	5000	"CRIMINALS HAVE STOLEN A CRATE OF"
[12 - 1]	175,154	9000	"OUR POLITICAL LEADER HAS BEEN"

/* 00010B2A */
struct {
	uint16_t read_1_index,  /* 0-based */
	uint16_t read_2_index,  /* 0-based */
	uint16_t read_3_number, /* 1-based */
	uint16_t color
} const dow_mis_read_info = {
	[ 0] = {1, 2,  5, 0x025},
	[ 1] = {1, 1,  6, 0x233},
	[ 2] = {2, 1,  9, 0x421},
	[ 3] = {2, 0, 12, 0x430},
	[ 4] = {2, 0, 11, 0x034},
	[ 5] = {0, 1,  1, 0x333},
	[ 6] = {1, 1,  7, 0x133},
	[ 7] = {0, 2,  3, 0x131},
	[ 8] = {0, 2,  4, 0x331},
	[ 9] = {1, 0,  8, 0x234},
	[10] = {0, 2,  2, 0x330},
	[11] = {2, 0, 10, 0x410}
};

struct DowDiskRead {
	uint16_t	track;
	uint16_t	side;
	uint16_t	count;
};

/* 00010BE0 */
struct {
	struct DowDiskRead  read;   /* load at 0006AB5C */
	uint32_t            data;
} const dow_mis_read_info_1 = {
	[0] = {{22, 1, 6}, 0x6501},
	[1] = {{16, 1, 6}, 0x6B9F},
	[2] = {{28, 1, 5}, 0x593D}
};

/* 00010C46 */
struct DowDiskRead  /* load at 0006AAF8 */
const dow_mis_read_info_2[3] = {
	[0] = {59, 1, 1},
	[1] = {60, 1, 1},
	[2] = {61, 1, 1}
};

/* 00010CAC */
struct DowDiskRead  /* load at 0006AAF8 */
const dow_mis_read_info_3[12] = {
	[ 1 - 1] = {33, 1, 2},
	[ 2 - 1] = {35, 1, 2},
	[ 3 - 1] = {42, 1, 1},
	[ 4 - 1] = {37, 1, 2},
	[ 5 - 1] = {43, 1, 2},
	[ 6 - 1] = {45, 1, 2},
	[ 7 - 1] = {47, 1, 2},
	[ 8 - 1] = {49, 1, 2},
	[ 9 - 1] = {51, 1, 2},
	[10 - 1] = {53, 1, 2},
	[11 - 1] = {55, 1, 2},
	[12 - 1] = {57, 1, 2}
};

Last edited by NicoDE; 13 May 2022 at 08:57.
NicoDE is offline  
 
Page generated in 0.04371 seconds with 11 queries