mirror of
https://github.com/kichikuou/system3-sdl2.git
synced 2026-10-11 16:58:11 +03:00
Merge upstream changes: CRC32 updates
- Check CRC32 of both ADISK.DAT (storead as crc32_a) and BDISK.DAT (crc32_b) - Update the CRC32 database adding more titles
This commit is contained in:
+3
-3
@@ -169,7 +169,7 @@ AGS::AGS(NACT* parent, const char* fontfile) : nact(parent)
|
||||
// Bコマンド
|
||||
for(int i = 0; i < 10; i++) {
|
||||
// ウィンドウの初期位置はシステムによって異なる
|
||||
switch (nact->crc32) {
|
||||
switch (nact->crc32_a) {
|
||||
case CRC32_BUNKASAI:
|
||||
SET_TEXT(i, 24, 304, 616, 384, false);
|
||||
SET_MENU(i, 440, 18, 620, 178, true);
|
||||
@@ -220,9 +220,9 @@ AGS::AGS(NACT* parent, const char* fontfile) : nact(parent)
|
||||
SET_BOX(i, 0, 0, 0, 639, 399);
|
||||
}
|
||||
if (nact->sys_ver == 2) {
|
||||
if (nact->crc32 == CRC32_SDPS_TONO || nact->crc32 == CRC32_SDPS_KAIZOKU) {
|
||||
if(nact->crc32_a == CRC32_SDPS && (nact->crc32_b == CRC32_SDPS_TONO || nact->crc32_b == CRC32_SDPS_KAIZOKU)) {
|
||||
SET_BOX(0, 0, 40, 8, 598, 271);
|
||||
} else if (nact->crc32 == CRC32_PROSTUDENTG_FD) {
|
||||
} else if(nact->crc32_a == CRC32_PROSTUDENTG_FD) {
|
||||
SET_BOX(0, 0, 64, 13, 407, 289);
|
||||
SET_BOX(1, 0, 24, 298, 111, 390);
|
||||
SET_BOX(2, 0, 0, 0, 639, 307);
|
||||
|
||||
@@ -30,7 +30,7 @@ void AGS::load_cg(int page, int transparent)
|
||||
if(data && size > 0) {
|
||||
switch (nact->sys_ver) {
|
||||
case 1:
|
||||
switch (nact->crc32) {
|
||||
switch (nact->crc32_a) {
|
||||
case CRC32_BUNKASAI:
|
||||
load_vsp(data, page, transparent);
|
||||
break;
|
||||
@@ -47,10 +47,10 @@ void AGS::load_cg(int page, int transparent)
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if(nact->crc32 == CRC32_AYUMI_PROTO) {
|
||||
if(nact->crc32_a == CRC32_AYUMI_PROTO) {
|
||||
// あゆみちゃん物語 PROTO
|
||||
load_gl3(data, page, transparent);
|
||||
} else if(nact->crc32 == CRC32_SDPS_MARIA || nact->crc32 == CRC32_SDPS_TONO || nact->crc32 == CRC32_SDPS_KAIZOKU) {
|
||||
} else if(nact->crc32_a == CRC32_SDPS) {
|
||||
// Super D.P.S
|
||||
load_pms(data, page, transparent);
|
||||
} else {
|
||||
|
||||
+5
-5
@@ -40,7 +40,7 @@ void AGS::load_pms(uint8* data, int page, int transparent)
|
||||
tmp_palette[i * 16 + j] = SETPALETTE256(r, g, b);
|
||||
}
|
||||
}
|
||||
if(nact->crc32 == CRC32_RANCE41 || nact->crc32 == CRC32_RANCE42 || nact->crc32 == CRC32_HASHIRIONNA2) {
|
||||
if(nact->crc32_a == CRC32_RANCE41 || nact->crc32_a == CRC32_RANCE42 || nact->crc32_a == CRC32_HASHIRIONNA2) {
|
||||
// 上下16色は取得しない
|
||||
for(int i = 1; i < 15; i++) {
|
||||
for(int j = 0; j < 16; j++) {
|
||||
@@ -49,7 +49,7 @@ void AGS::load_pms(uint8* data, int page, int transparent)
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if(nact->crc32 == CRC32_MUGENHOUYOU && transparent != -1) {
|
||||
} else if(nact->crc32_a == CRC32_MUGENHOUYOU && transparent != -1) {
|
||||
// Uコマンドでは上下32色は取得しない
|
||||
for(int i = 2; i < 14; i++) {
|
||||
for(int j = 0; j < 16; j++) {
|
||||
@@ -71,8 +71,8 @@ void AGS::load_pms(uint8* data, int page, int transparent)
|
||||
|
||||
// パレット展開
|
||||
if (nact->sys_ver == 3) {
|
||||
if((extract_palette && extract_palette_cg[page]) || nact->crc32 == CRC32_FUNNYBEE_CD) {
|
||||
if(nact->crc32 == CRC32_RANCE41 || nact->crc32 == CRC32_RANCE42 || nact->crc32 == CRC32_HASHIRIONNA2) {
|
||||
if((extract_palette && extract_palette_cg[page]) || nact->crc32_a == CRC32_FUNNYBEE_CD) {
|
||||
if(nact->crc32_a == CRC32_RANCE41 || nact->crc32_a == CRC32_RANCE42 || nact->crc32_a == CRC32_HASHIRIONNA2) {
|
||||
// 上下16色は展開しない
|
||||
for(int i = 1; i < 15; i++) {
|
||||
for(int j = 0; j < 16; j++) {
|
||||
@@ -81,7 +81,7 @@ void AGS::load_pms(uint8* data, int page, int transparent)
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if(nact->crc32 == CRC32_MUGENHOUYOU && transparent != -1) {
|
||||
} else if(nact->crc32_a == CRC32_MUGENHOUYOU && transparent != -1) {
|
||||
// Uコマンドでは上下32色は展開しない
|
||||
for(int i = 2; i < 14; i++) {
|
||||
for(int j = 0; j < 16; j++) {
|
||||
|
||||
+2
-2
@@ -28,7 +28,7 @@ void AGS::load_vsp(uint8* data, int page, int transparent)
|
||||
}
|
||||
|
||||
// Zコマンドの処理
|
||||
if(nact->crc32 == CRC32_AMBIVALENZ_FD || nact->crc32 == CRC32_AMBIVALENZ_CD) {
|
||||
if(nact->crc32_a == CRC32_AMBIVALENZ_FD || nact->crc32_a == CRC32_AMBIVALENZ_CD) {
|
||||
// Z 0,numを無視する
|
||||
} else {
|
||||
if(palette_bank != -1) {
|
||||
@@ -48,7 +48,7 @@ void AGS::load_vsp(uint8* data, int page, int transparent)
|
||||
}
|
||||
|
||||
// パレット展開
|
||||
if(nact->crc32 == CRC32_FUNNYBEE_FD || nact->crc32 == CRC32_FUNNYBEE_CD || nact->crc32 == CRC32_FUNNYBEE_PATCH) {
|
||||
if(nact->crc32_a == CRC32_FUNNYBEE_FD || nact->crc32_a == CRC32_FUNNYBEE_CD || nact->crc32_a == CRC32_FUNNYBEE_PATCH) {
|
||||
if(extract_palette_cg[page]) {
|
||||
for(int i = 0; i < 16; i++) {
|
||||
screen_palette[base + i] = program_palette[base + i];
|
||||
|
||||
+36
-10
@@ -8,21 +8,46 @@
|
||||
#define _CRC32_H_
|
||||
|
||||
// ADISK.DATの先頭256bytes
|
||||
// SYSTEM1
|
||||
|
||||
#define CRC32_CRESCENT 0x42351f2c // クレセントムーンがぁる
|
||||
#define CRC32_BUNKASAI 0xc80f99b8 // あぶない文化祭前夜
|
||||
#define CRC32_CRESCENT 0x42351f2c // クレセントムーンがぁる
|
||||
#define CRC32_DPS 0x69ea4865 // D.P.S. - Dream Program System
|
||||
#define CRC32_FUKEI 0x026de326 // 婦警さんVX (ALICEの館3 UNITBASE/Y_SYUREN.LZH)
|
||||
#define CRC32_INTRUDER 0xa7520fb2 // Intruder -桜屋敷の探索-
|
||||
#define CRC32_DPS_SG 0xab4cda48 // D.P.S. SG
|
||||
#define CRC32_DPS_SG_FAHREN 0xe405d57c // D.P.S. SG - Fahren Fliegen
|
||||
#define CRC32_DPS_SG_KATEI 0x23e67d18 // D.P.S. SG - 家庭教師はステキなお仕事
|
||||
#define CRC32_DPS_SG_NOBUNAGA 0x2ec116f2 // D.P.S. SG - 信長の淫謀
|
||||
#define CRC32_DPS_SG2 0xab4cda48 // D.P.S. SG set2
|
||||
#define CRC32_DPS_SG2_ANTIQUE 0x41fe8b3d // D.P.S. SG set2 - ANTIQUE HOUSE
|
||||
#define CRC32_DPS_SG2_IKENAI 0x6b562c09 // D.P.S. SG set2 - いけない内科検診再び
|
||||
#define CRC32_DPS_SG2_AKAI 0x1098e78c // D.P.S. SG set2 - 朱い夜
|
||||
#define CRC32_DPS_SG3 0xb77ae133 // D.P.S. SG SG set3
|
||||
#define CRC32_DPS_SG3_RABBIT 0xa3228b6c // D.P.S. SG set3 - Rabbit P4P
|
||||
#define CRC32_DPS_SG3_SHINKON 0x09b4448a // D.P.S. SG set3 - しんこんさんものがたり
|
||||
#define CRC32_DPS_SG3_SOTSUGYOU 0xbc4525d8 // D.P.S. SG set3 - 卒業
|
||||
#define CRC32_FUKEI 0x026de326 // 婦警さんVX
|
||||
#define CRC32_INTRUDER 0xa7520fb2 // Intruder -桜屋敷の探索-
|
||||
#define CRC32_TENGU 0xc942ff58 // あぶないてんぐ伝説
|
||||
#define CRC32_VAMPIRE 0x957bcfbf // Little Vampire
|
||||
#define CRC32_BUNKASAI 0 // あぶない文化祭前夜? (未確認)
|
||||
#define CRC32_TOUSHIN_HINT 0xac337537 // 闘神都市 ヒントディスク
|
||||
#define CRC32_VAMPIRE 0x957bcfbf // Little Vampire
|
||||
#define CRC32_YAKATA 0x8cef6fa6 // ALICEの館
|
||||
|
||||
// SYSTEM2
|
||||
|
||||
#define CRC32_AYUMI_FD 0x4e2fed2a // あゆみちゃん物語 (FD)
|
||||
#define CRC32_AYUMI_HINT 0xf6bd963a // あゆみちゃん物語 ヒントディスク
|
||||
#define CRC32_AYUMI_PROTO 0x4e2f5678 // あゆみちゃん物語 PROTO
|
||||
#define CRC32_SDPS 0xc7a20cdf // Super D.P.S
|
||||
#define CRC32_SDPS_MARIA 0x80d4eaca // マリアとカンパン
|
||||
#define CRC32_SDPS_TONO 0xbb1edff1 // 遠野の森
|
||||
#define CRC32_SDPS_KAIZOKU 0xf81829e3 // 海賊家業
|
||||
#define CRC32_DALK_HINT 0x4793b843 // DALK ヒントディスク
|
||||
#define CRC32_DRSTOP 0x73fa86c4 // Dr. STOP!
|
||||
#define CRC32_PROSTUDENTG_FD 0x5ffbfee7 // Prostudent -G- (FD)
|
||||
#define CRC32_RANCE3_HINT 0x8d5ec610 // Rance3 ヒントディスク
|
||||
#define CRC32_SDPS 0xc7a20cdf // Super D.P.S
|
||||
#define CRC32_SDPS_MARIA 0x80d4eaca // Super D.P.S - マリアとカンパン
|
||||
#define CRC32_SDPS_TONO 0xbb1edff1 // Super D.P.S - 遠野の森
|
||||
#define CRC32_SDPS_KAIZOKU 0xf81829e3 // Super D.P.S - うれしたのし海賊稼業
|
||||
#define CRC32_YAKATA2 0x2df591ff // ALICEの館II
|
||||
|
||||
// SYSTEM3
|
||||
|
||||
#define CRC32_AMBIVALENZ_FD 0xa6b48dfe // AmbivalenZ (FD)
|
||||
#define CRC32_AMBIVALENZ_CD 0x4b10db69 // AmbivalenZ (CD)
|
||||
@@ -42,7 +67,8 @@
|
||||
#define CRC32_YAKATA3_CD 0x7f8f5e2a // アリスの館3 (CD)
|
||||
#define CRC32_YAKATA3_FD 0x58ebcc99 // アリスの館3 (FD)
|
||||
#define CRC32_HASHIRIONNA2 0x09f47cbd // 走り女2 (Rance 4.x ヒントディスク)
|
||||
#define CRC32_TOUSHIN2_SP 0x2172c7b2 // 闘神都市2 〜そして、それから〜
|
||||
#define CRC32_TOUSHIN2_GD 0xb5eba798 // 闘神都市2 グラフィックディスク
|
||||
#define CRC32_TOUSHIN2_SP 0x2172c7b2 // 闘神都市2 そして、それから…
|
||||
#define CRC32_OTOMESENKI 0x49a4db15 // 乙女戦記
|
||||
#define CRC32_NINGYO 0xd491e7ab // 人魚 -蘿子-
|
||||
#define CRC32_MUGENHOUYOU 0xbb27d1ba // 夢幻泡影
|
||||
|
||||
@@ -302,7 +302,7 @@ std::vector<uint8> MAKOMidi::generate_smf(int current_max)
|
||||
w.send_3bytes(0xb0 + play[i].channel, 0x0a, play[i].pan);
|
||||
}
|
||||
else if(d0 == 0xec) {
|
||||
if (nact->crc32 != CRC32_DPS)
|
||||
if(!(nact->crc32_a == CRC32_DPS || nact->crc32_a == CRC32_DPS_SG || nact->crc32_a == CRC32_DPS_SG2 || nact->crc32_a == CRC32_DPS_SG3))
|
||||
mute_flag = true;
|
||||
}
|
||||
else if(d0 == 0xf5) {
|
||||
@@ -570,7 +570,7 @@ void MAKOMidi::load_mda(int page)
|
||||
int size;
|
||||
uint8* data = NULL;
|
||||
if((data = dri->load(path, page, &size)) == NULL) {
|
||||
data = dri->load_mda(nact->crc32, page, &size);
|
||||
data = dri->load_mda(nact->crc32_a, page, &size);
|
||||
}
|
||||
|
||||
if(data) {
|
||||
|
||||
+17
-12
@@ -16,8 +16,8 @@ extern SDL_Window* g_window;
|
||||
|
||||
// 初期化
|
||||
|
||||
NACT::NACT(int sys_ver, uint32 crc32, const char* font_file, const char* playlist)
|
||||
: sys_ver(sys_ver), crc32(crc32)
|
||||
NACT::NACT(int sys_ver, uint32 crc32_a, uint32 crc32_b, const char* font_file, const char* playlist)
|
||||
: sys_ver(sys_ver), crc32_a(crc32_a), crc32_b(crc32_b)
|
||||
{
|
||||
// デバッグコンソール起動
|
||||
initialize_console();
|
||||
@@ -44,7 +44,7 @@ NACT::NACT(int sys_ver, uint32 crc32, const char* font_file, const char* playlis
|
||||
delete fio;
|
||||
|
||||
// ADISK.DAT
|
||||
if (crc32 == CRC32_PROG_OMAKE)
|
||||
if (crc32_a == CRC32_PROG_OMAKE)
|
||||
strcpy_s(adisk, 16, "AGAME.DAT");
|
||||
else
|
||||
strcpy_s(adisk, 16, "ADISK.DAT");
|
||||
@@ -295,8 +295,10 @@ void NACT::execute(T* impl)
|
||||
string[0] = cmd;
|
||||
string[1] = '\0';
|
||||
ags->draw_text(string);
|
||||
if(crc32 == CRC32_DPS && !ags->draw_menu) {
|
||||
text_refresh = false;
|
||||
if(crc32_a == CRC32_DPS || crc32_a == CRC32_DPS_SG || crc32_a == CRC32_DPS_SG2 || crc32_a == CRC32_DPS_SG3) {
|
||||
if(!ags->draw_menu) {
|
||||
text_refresh = false;
|
||||
}
|
||||
}
|
||||
|
||||
if(!ags->draw_menu && text_wait_enb && cmd != 0x20) {
|
||||
@@ -324,8 +326,10 @@ void NACT::execute(T* impl)
|
||||
string[1] = getd();
|
||||
string[2] = '\0';
|
||||
ags->draw_text(string);
|
||||
if(crc32 == CRC32_DPS && !ags->draw_menu) {
|
||||
text_refresh = false;
|
||||
if(crc32_a == CRC32_DPS || crc32_a == CRC32_DPS_SG || crc32_a == CRC32_DPS_SG2 || crc32_a == CRC32_DPS_SG3) {
|
||||
if(!ags->draw_menu) {
|
||||
text_refresh = false;
|
||||
}
|
||||
}
|
||||
|
||||
if(!ags->draw_menu && text_wait_enb) {
|
||||
@@ -418,14 +422,15 @@ void NACT::fatal(const char* format, ...) {
|
||||
}
|
||||
|
||||
NACT* NACT::create(const char* game_id, const char* font_file, const char* playlist) {
|
||||
uint32 crc32 = NACT::calc_crc32(game_id);
|
||||
int sys_ver = NACT::get_sys_ver(crc32);
|
||||
uint32 crc32_a = NACT::calc_crc32("ADISK.DAT", game_id);
|
||||
uint32 crc32_b = NACT::calc_crc32("BDISK.DAT", game_id);
|
||||
int sys_ver = NACT::get_sys_ver(crc32_a, crc32_b);
|
||||
switch (sys_ver) {
|
||||
case 1:
|
||||
return new NACT_Sys1(crc32, font_file, playlist);
|
||||
return new NACT_Sys1(crc32_a, crc32_b, font_file, playlist);
|
||||
case 2:
|
||||
return new NACT_Sys2(crc32, font_file, playlist);
|
||||
return new NACT_Sys2(crc32_a, crc32_b, font_file, playlist);
|
||||
default:
|
||||
return new NACT_Sys3(crc32, font_file, playlist);
|
||||
return new NACT_Sys3(crc32_a, crc32_b, font_file, playlist);
|
||||
}
|
||||
}
|
||||
|
||||
+8
-9
@@ -87,7 +87,7 @@ class NACT
|
||||
{
|
||||
public:
|
||||
static NACT* create(const char* game_id, const char* font_file, const char* playlist);
|
||||
NACT(int sys_ver, uint32 crc32, const char* font_file, const char* playlist);
|
||||
NACT(int sys_ver, uint32 crc32_a, uint32 crc32_b, const char* font_file, const char* playlist);
|
||||
virtual ~NACT();
|
||||
|
||||
protected:
|
||||
@@ -172,7 +172,7 @@ protected:
|
||||
#endif
|
||||
int mouse_x = 0, mouse_y = 0;
|
||||
|
||||
static uint32 calc_crc32(const char* game_id);
|
||||
static uint32 calc_crc32(const char* file_name, const char* game_id);
|
||||
|
||||
// Y27 ダイアログ
|
||||
void text_dialog();
|
||||
@@ -193,13 +193,14 @@ public:
|
||||
void select_sound(int dev);
|
||||
|
||||
const char* get_game_id();
|
||||
static const int get_sys_ver(uint32 crc32);
|
||||
static const int get_sys_ver(uint32 crc32_a, uint32 crc32_b);
|
||||
const char* get_title();
|
||||
|
||||
bool text_skip_enb; // メッセージスキップ
|
||||
bool text_wait_enb; // テキスト表示のウェイト有効/無効
|
||||
int sys_ver;
|
||||
uint32 crc32;
|
||||
uint32 crc32_a; // ADISK
|
||||
uint32 crc32_b; // BDISK for D.P.S -SG- and Super D.P.S
|
||||
|
||||
// for Y27
|
||||
char tvar[10][22];
|
||||
@@ -215,7 +216,7 @@ public:
|
||||
|
||||
class NACT_Sys1 : public NACT {
|
||||
public:
|
||||
NACT_Sys1(uint32 crc32, const char* font_file, const char* playlist);
|
||||
NACT_Sys1(uint32 crc32_a, uint32 crc32_b, const char* font_file, const char* playlist);
|
||||
void cmd_calc();
|
||||
void cmd_branch();
|
||||
void cmd_label_jump();
|
||||
@@ -258,8 +259,6 @@ private:
|
||||
uint16 cali();
|
||||
uint16 cali2();
|
||||
|
||||
int menu_max; // メニューの改ページ
|
||||
|
||||
// Intruder Zコマンド
|
||||
int paint_x;
|
||||
int paint_y;
|
||||
@@ -268,7 +267,7 @@ private:
|
||||
|
||||
class NACT_Sys2 : public NACT {
|
||||
public:
|
||||
NACT_Sys2(uint32 crc32, const char* font_file, const char* playlist);
|
||||
NACT_Sys2(uint32 crc32_a, uint32 crc32_b, const char* font_file, const char* playlist);
|
||||
void cmd_calc();
|
||||
void cmd_branch();
|
||||
void cmd_label_jump();
|
||||
@@ -314,7 +313,7 @@ private:
|
||||
|
||||
class NACT_Sys3 : public NACT {
|
||||
public:
|
||||
NACT_Sys3(uint32 crc32, const char* font_file, const char* playlist);
|
||||
NACT_Sys3(uint32 crc32_a, uint32 crc32_b, const char* font_file, const char* playlist);
|
||||
void cmd_calc();
|
||||
void cmd_branch();
|
||||
void cmd_label_jump();
|
||||
|
||||
+64
-73
@@ -13,52 +13,72 @@ namespace {
|
||||
const struct CRCTable {
|
||||
const char* id;
|
||||
int sys_ver;
|
||||
uint32 crc32;
|
||||
const char* title;
|
||||
uint32 crc32_a;
|
||||
uint32 crc32_b;
|
||||
} crc_table[] = {
|
||||
{"crescent", 1, CRC32_CRESCENT, "クレセントムーンがぁる"},
|
||||
{"dps", 1, CRC32_DPS, "D.P.S - Dream Program System"},
|
||||
{"fukei", 1, CRC32_FUKEI, "婦警さんVX"},
|
||||
{"intruder", 1, CRC32_INTRUDER, "Intruder -桜屋敷の探索-"},
|
||||
{"tengu", 1, CRC32_TENGU, "あぶないてんぐ伝説"},
|
||||
{"little_vampire", 1, CRC32_VAMPIRE, "Little Vampire"},
|
||||
{"bunkasai", 1, "あぶない文化祭前夜", CRC32_BUNKASAI},
|
||||
{"crescent", 1, "クレセントムーンがぁる", CRC32_CRESCENT},
|
||||
{"dps", 1, "D.P.S - Dream Program System", CRC32_DPS},
|
||||
{"dps_sg_fahren", 1, "D.P.S SG - Fahren Fliegen", CRC32_DPS_SG, CRC32_DPS_SG_FAHREN},
|
||||
{"dps_sg_katei", 1, "D.P.S SG - 家庭教師はステキなお仕事", CRC32_DPS_SG, CRC32_DPS_SG_KATEI},
|
||||
{"dps_sg_nobunaga", 1, "D.P.S SG - 信長の淫謀", CRC32_DPS_SG, CRC32_DPS_SG_NOBUNAGA},
|
||||
{"dps_sg2_antique", 1, "D.P.S SG set2 - ANTIQUE HOUSE", CRC32_DPS_SG2, CRC32_DPS_SG2_ANTIQUE},
|
||||
{"dps_sg2_ikenai", 1, "D.P.S SG set2 - いけない内科検診再び", CRC32_DPS_SG2, CRC32_DPS_SG2_IKENAI},
|
||||
{"dps_sg2_akai", 1, "D.P.S SG set2 - 朱い夜", CRC32_DPS_SG2, CRC32_DPS_SG2_AKAI},
|
||||
{"dps_sg3_rabbit", 1, "D.P.S SG set3 - Rabbit P4P", CRC32_DPS_SG3, CRC32_DPS_SG3_RABBIT},
|
||||
{"dps_sg3_shinkon", 1, "D.P.S SG set3 - しんこんさんものがたり", CRC32_DPS_SG3, CRC32_DPS_SG3_SHINKON},
|
||||
{"dps_sg3_sotsugyou", 1, "D.P.S SG set3 - 卒業", CRC32_DPS_SG3, CRC32_DPS_SG3_SOTSUGYOU},
|
||||
{"fukei", 1, "婦警さんVX", CRC32_FUKEI},
|
||||
{"intruder", 1, "Intruder -桜屋敷の探索-", CRC32_INTRUDER},
|
||||
{"tengu", 1, "あぶないてんぐ伝説", CRC32_TENGU},
|
||||
{"toushin_hint", 1, "闘神都市 ヒントディスク", CRC32_TOUSHIN_HINT},
|
||||
{"little_vampire", 1, "Little Vampire", CRC32_VAMPIRE},
|
||||
{"yakata", 1, "ALICEの館", CRC32_YAKATA},
|
||||
|
||||
{"ayumi_proto", 2, CRC32_AYUMI_PROTO, "あゆみちゃん物語 PROTO"},
|
||||
{"sdps_maria", 2, CRC32_SDPS_MARIA, "Super D.P.S"},
|
||||
{"sdps_tono", 2, CRC32_SDPS_TONO, "Super D.P.S"},
|
||||
{"sdps_kaizoku", 2, CRC32_SDPS_KAIZOKU, "Super D.P.S"},
|
||||
{"prog_fd", 2, CRC32_PROSTUDENTG_FD, "Prostudent G"},
|
||||
{"ayumi_fd", 2, "あゆみちゃん物語", CRC32_AYUMI_FD},
|
||||
{"ayumi_hint", 2, "あゆみちゃん物語 ヒントディスク", CRC32_AYUMI_HINT},
|
||||
{"ayumi_proto", 2, "あゆみちゃん物語 PROTO", CRC32_AYUMI_PROTO},
|
||||
{"dalk_hint", 2, "DALK ヒントディスク", CRC32_DALK_HINT},
|
||||
{"drstop", 2, "Dr. STOP!", CRC32_DRSTOP},
|
||||
{"prog_fd", 2, "Prostudent G", CRC32_PROSTUDENTG_FD},
|
||||
{"rance3_hint", 2, "Rance3 ヒントディスク", CRC32_RANCE3_HINT},
|
||||
{"sdps_maria", 2, "Super D.P.S - マリアとカンパン", CRC32_SDPS, CRC32_SDPS_MARIA},
|
||||
{"sdps_tono", 2, "Super D.P.S - 遠野の森", CRC32_SDPS, CRC32_SDPS_TONO},
|
||||
{"sdps_kaizoku", 2, "Super D.P.S - うれしたのし海賊稼業", CRC32_SDPS, CRC32_SDPS_KAIZOKU},
|
||||
{"yakata2", 2, "ALICEの館II", CRC32_YAKATA2},
|
||||
|
||||
{"ambivalenz_fd", 3, CRC32_AMBIVALENZ_FD, "AmbivalenZ −二律背反−"},
|
||||
{"ambivalenz_cd", 3, CRC32_AMBIVALENZ_CD, "AmbivalenZ −二律背反−"},
|
||||
{"dps_all", 3, CRC32_DPSALL, "D.P.S. 全部"},
|
||||
{"funnybee_cd", 3, CRC32_FUNNYBEE_CD, "宇宙快盗ファニーBee"},
|
||||
// {"funnybee_patch", 3, CRC32_FUNNYBEE_PATCH, "宇宙快盗ファニーBee"},
|
||||
{"funnybee_fd", 3, CRC32_FUNNYBEE_FD, "宇宙快盗ファニーBee"},
|
||||
{"onlyyou", 3, CRC32_ONLYYOU, "Only You −世紀末のジュリエット達−"},
|
||||
{"onlyyou_demo", 3, CRC32_ONLYYOU_DEMO, "Only You −世紀末のジュリエット達− デモ版"},
|
||||
{"prog_cd", 3, CRC32_PROSTUDENTG_CD, "Prostudent G"},
|
||||
{"prog_omake", 3, CRC32_PROG_OMAKE, "Prostudent G おまけ"},
|
||||
{"rance41", 3, CRC32_RANCE41, "ランス 4.1 〜お薬工場を救え!〜"},
|
||||
{"rance42", 3, CRC32_RANCE42, "ランス 4.2 〜エンジェル組〜"},
|
||||
{"ayumi_cd", 3, CRC32_AYUMI_CD, "あゆみちゃん物語"},
|
||||
{"ayumi_live_256", 3, CRC32_AYUMI_JISSHA_256, "あゆみちゃん物語 実写版"},
|
||||
{"ayumi_live_full", 3, CRC32_AYUMI_JISSHA_FULL, "あゆみちゃん物語 フルカラー実写版"},
|
||||
{"yakata3_cd", 3, CRC32_YAKATA3_CD, "アリスの館3"},
|
||||
{"yakata3_fd", 3, CRC32_YAKATA3_FD, "アリスの館3"},
|
||||
{"hashirionna2", 3, CRC32_HASHIRIONNA2, "走り女2"},
|
||||
{"toushin2_sp", 3, CRC32_TOUSHIN2_SP, "闘神都市2 そして、それから…"},
|
||||
{"otome", 3, CRC32_OTOMESENKI, "乙女戦記"},
|
||||
{"ningyo", 3, CRC32_NINGYO, "人魚 -蘿子-"},
|
||||
{"mugen", 3, CRC32_MUGENHOUYOU, "夢幻泡影"},
|
||||
{"ambivalenz_fd", 3, "AmbivalenZ −二律背反−", CRC32_AMBIVALENZ_FD},
|
||||
{"ambivalenz_cd", 3, "AmbivalenZ −二律背反−", CRC32_AMBIVALENZ_CD},
|
||||
{"dps_all", 3, "D.P.S. 全部", CRC32_DPSALL},
|
||||
{"funnybee_cd", 3, "宇宙快盗ファニーBee", CRC32_FUNNYBEE_CD},
|
||||
// {"funnybee_patch", 3, "宇宙快盗ファニーBee", CRC32_FUNNYBEE_PATCH},
|
||||
{"funnybee_fd", 3, "宇宙快盗ファニーBee", CRC32_FUNNYBEE_FD},
|
||||
{"onlyyou", 3, "Only You −世紀末のジュリエット達−", CRC32_ONLYYOU},
|
||||
{"onlyyou_demo", 3, "Only You −世紀末のジュリエット達− デモ版", CRC32_ONLYYOU_DEMO},
|
||||
{"prog_cd", 3, "Prostudent G", CRC32_PROSTUDENTG_CD},
|
||||
{"prog_omake", 3, "Prostudent G おまけ", CRC32_PROG_OMAKE},
|
||||
{"rance41", 3, "ランス 4.1 〜お薬工場を救え!〜", CRC32_RANCE41},
|
||||
{"rance42", 3, "ランス 4.2 〜エンジェル組〜", CRC32_RANCE42},
|
||||
{"ayumi_cd", 3, "あゆみちゃん物語", CRC32_AYUMI_CD},
|
||||
{"ayumi_live_256", 3, "あゆみちゃん物語 実写版", CRC32_AYUMI_JISSHA_256},
|
||||
{"ayumi_live_full", 3, "あゆみちゃん物語 フルカラー実写版", CRC32_AYUMI_JISSHA_FULL},
|
||||
{"yakata3_cd", 3, "アリスの館3", CRC32_YAKATA3_CD},
|
||||
{"yakata3_fd", 3, "アリスの館3", CRC32_YAKATA3_FD},
|
||||
{"hashirionna2", 3, "走り女2", CRC32_HASHIRIONNA2},
|
||||
{"toushin2_gd", 3,"闘神都市2 グラフィックディスク", CRC32_TOUSHIN2_GD},
|
||||
{"toushin2_sp", 3, "闘神都市2 そして、それから…", CRC32_TOUSHIN2_SP},
|
||||
{"otome", 3, "乙女戦記", CRC32_OTOMESENKI},
|
||||
{"ningyo", 3, "人魚 -蘿子-", CRC32_NINGYO},
|
||||
{"mugen", 3, "夢幻泡影", CRC32_MUGENHOUYOU},
|
||||
|
||||
{NULL, 0, 0, NULL},
|
||||
{NULL},
|
||||
};
|
||||
|
||||
const CRCTable* lookup(uint32 crc32)
|
||||
const CRCTable* lookup(uint32 crc32_a, uint32 crc32_b)
|
||||
{
|
||||
for (const CRCTable* t = crc_table; t->id; t++) {
|
||||
if (crc32 == t->crc32)
|
||||
if (crc32_a == t->crc32_a && (!t->crc32_b || crc32_b == t->crc32_b))
|
||||
return t;
|
||||
}
|
||||
return NULL;
|
||||
@@ -66,19 +86,19 @@ const CRCTable* lookup(uint32 crc32)
|
||||
|
||||
} // namespace
|
||||
|
||||
uint32 NACT::calc_crc32(const char* game_id)
|
||||
uint32 NACT::calc_crc32(const char* file_name, const char* game_id)
|
||||
{
|
||||
if (game_id) {
|
||||
for (const CRCTable* t = crc_table; t->id; t++) {
|
||||
if (strcmp(t->id, game_id) == 0)
|
||||
return t->crc32;
|
||||
return file_name[0] == 'A' ? t->crc32_a : t->crc32_b;
|
||||
}
|
||||
}
|
||||
|
||||
uint32 crc = 0;
|
||||
FILEIO* fio = new FILEIO();
|
||||
|
||||
if(fio->Fopen("ADISK.DAT", FILEIO_READ_BINARY)) {
|
||||
if(fio->Fopen(file_name, FILEIO_READ_BINARY)) {
|
||||
uint32 table[256];
|
||||
for(int i = 0; i < 256; i++) {
|
||||
uint32 c = i;
|
||||
@@ -100,56 +120,27 @@ uint32 NACT::calc_crc32(const char* game_id)
|
||||
}
|
||||
fio->Fclose();
|
||||
}
|
||||
if(crc == CRC32_SDPS) {
|
||||
// Super D.P.Sの場合はBDISK.DATのCRCを取る
|
||||
if(fio->Fopen("BDISK.DAT", FILEIO_READ_BINARY)) {
|
||||
uint32 table[256];
|
||||
for(int i = 0; i < 256; i++) {
|
||||
uint32 c = i;
|
||||
for(int j = 0; j < 8; j++) {
|
||||
if(c & 1) {
|
||||
c = (c >> 1) ^ 0xedb88320;
|
||||
} else {
|
||||
c >>= 1;
|
||||
}
|
||||
}
|
||||
table[i] = c;
|
||||
}
|
||||
// BDISK.DATの先頭256bytes
|
||||
crc = 0;
|
||||
for(int i = 0; i < 256; i++) {
|
||||
int d = fio->Fgetc();
|
||||
uint32 c = ~crc;
|
||||
c = table[(c ^ d) & 0xff] ^ (c >> 8);
|
||||
crc = ~c;
|
||||
}
|
||||
fio->Fclose();
|
||||
}
|
||||
}
|
||||
delete fio;
|
||||
#if 0
|
||||
printf("CRC: %x\n", crc);
|
||||
#endif
|
||||
return crc;
|
||||
}
|
||||
|
||||
const char* NACT::get_game_id()
|
||||
{
|
||||
if (const CRCTable* entry = lookup(crc32))
|
||||
if (const CRCTable* entry = lookup(crc32_a, crc32_b))
|
||||
return entry->id;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
const int NACT::get_sys_ver(uint32 crc32)
|
||||
const int NACT::get_sys_ver(uint32 crc32_a, uint32 crc32_b)
|
||||
{
|
||||
if (const CRCTable* entry = lookup(crc32))
|
||||
if (const CRCTable* entry = lookup(crc32_a, crc32_b))
|
||||
return entry->sys_ver;
|
||||
return 3;
|
||||
}
|
||||
|
||||
const char* NACT::get_title()
|
||||
{
|
||||
if (const CRCTable* entry = lookup(crc32))
|
||||
if (const CRCTable* entry = lookup(crc32_a, crc32_b))
|
||||
return entry->title;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
+30
-23
@@ -17,6 +17,9 @@
|
||||
#include "crc32.h"
|
||||
#include "../fileio.h"
|
||||
|
||||
// メニューの改ページ
|
||||
#define MENU_MAX (crc32_a == CRC32_INTRUDER ? 6 : 11)
|
||||
|
||||
#define WAIT(tm) \
|
||||
{ \
|
||||
Uint32 dwTime = SDL_GetTicks() + (tm); \
|
||||
@@ -60,12 +63,14 @@
|
||||
} \
|
||||
}
|
||||
|
||||
NACT_Sys1::NACT_Sys1(uint32 crc32, const char* font_file, const char* playlist)
|
||||
: NACT(1, crc32, font_file, playlist)
|
||||
NACT_Sys1::NACT_Sys1(uint32 crc32_a, uint32 crc32_b, const char* font_file, const char* playlist)
|
||||
: NACT(1, crc32_a, crc32_b, font_file, playlist)
|
||||
{
|
||||
menu_max = 6;
|
||||
switch (crc32) {
|
||||
switch (crc32_a) {
|
||||
case CRC32_DPS:
|
||||
case CRC32_DPS_SG:
|
||||
//case CRC32_DPS_SG2:
|
||||
case CRC32_DPS_SG3:
|
||||
text_refresh = false;
|
||||
strcpy_s(tvar[0], 22, "\x83\x4A\x83\x58\x83\x5E\x83\x80"); // "カスタム" in SJIS
|
||||
strcpy_s(tvar[1], 22, "\x83\x8A\x81\x5B\x83\x69\x83\x58"); // "リーナス" in SJIS
|
||||
@@ -76,7 +81,6 @@ NACT_Sys1::NACT_Sys1(uint32 crc32, const char* font_file, const char* playlist)
|
||||
strcpy_s(tvar[6], 22, "\x90\x5E\x97\x9D\x8E\x71"); // "真理子" in SJIS
|
||||
break;
|
||||
case CRC32_INTRUDER:
|
||||
menu_max = 11;
|
||||
paint_x = paint_y = map_page = 0;
|
||||
break;
|
||||
}
|
||||
@@ -84,7 +88,7 @@ NACT_Sys1::NACT_Sys1(uint32 crc32, const char* font_file, const char* playlist)
|
||||
|
||||
void NACT_Sys1::opening()
|
||||
{
|
||||
switch (crc32) {
|
||||
switch (crc32_a) {
|
||||
case CRC32_CRESCENT:
|
||||
mako->play_music(2);
|
||||
ags->load_cg(1, -1);
|
||||
@@ -316,8 +320,10 @@ void NACT_Sys1::cmd_open_menu()
|
||||
return;
|
||||
}
|
||||
|
||||
if(crc32 == CRC32_DPS && !text_refresh) {
|
||||
cmd_a();
|
||||
if(crc32_a == CRC32_DPS || crc32_a == CRC32_DPS_SG || crc32_a == CRC32_DPS_SG2 || crc32_a == CRC32_DPS_SG3) {
|
||||
if(!text_refresh) {
|
||||
cmd_a();
|
||||
}
|
||||
}
|
||||
|
||||
// クリック中の間は待機
|
||||
@@ -472,7 +478,7 @@ top:
|
||||
ags->menu_dest_y = 0;
|
||||
ags->draw_menu = true;
|
||||
|
||||
if(cnt <= menu_max) {
|
||||
if(cnt <= MENU_MAX) {
|
||||
// 1ページ内に全て表示できる
|
||||
for(int i = 0; i < MAX_VERB; i++) {
|
||||
if(chk[i]) {
|
||||
@@ -494,7 +500,7 @@ top2:
|
||||
ags->menu_dest_y += ags->menu_font_size + 2;
|
||||
}
|
||||
page = i + 1;
|
||||
if(index == menu_max - 1) {
|
||||
if(index == MENU_MAX - 1) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -647,7 +653,7 @@ top:
|
||||
ags->menu_dest_y = 0;
|
||||
ags->draw_menu = true;
|
||||
|
||||
if(cnt <= menu_max - 1) {
|
||||
if(cnt <= MENU_MAX - 1) {
|
||||
// 1ページ内に全て表示できる
|
||||
for(int i = 0; i < MAX_OBJ; i++) {
|
||||
if(chk[i]) {
|
||||
@@ -675,7 +681,7 @@ top2:
|
||||
ags->menu_dest_y += ags->menu_font_size + 2;
|
||||
}
|
||||
page = i + 1;
|
||||
if(index == menu_max - 2) {
|
||||
if(index == MENU_MAX - 2) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -832,8 +838,9 @@ void NACT_Sys1::cmd_a()
|
||||
// ウィンドウ更新
|
||||
ags->clear_text_window(text_window, true);
|
||||
|
||||
if (crc32 == CRC32_DPS)
|
||||
if(crc32_a == CRC32_DPS || crc32_a == CRC32_DPS_SG || crc32_a == CRC32_DPS_SG2 || crc32_a == CRC32_DPS_SG3) {
|
||||
text_refresh = true;
|
||||
}
|
||||
}
|
||||
|
||||
void NACT_Sys1::cmd_b()
|
||||
@@ -867,13 +874,13 @@ void NACT_Sys1::cmd_g()
|
||||
|
||||
output_console("\nG %d:", page);
|
||||
|
||||
if (crc32 == CRC32_INTRUDER) {
|
||||
if(crc32_a == CRC32_INTRUDER) {
|
||||
page = (page == 97) ? 96 : (page == 98) ? 97 : page;
|
||||
}
|
||||
|
||||
ags->load_cg(page, -1);
|
||||
|
||||
if (crc32 == CRC32_INTRUDER) {
|
||||
if(crc32_a == CRC32_INTRUDER) {
|
||||
if(page == 94) {
|
||||
WAIT(400);
|
||||
}
|
||||
@@ -1169,7 +1176,7 @@ void NACT_Sys1::cmd_u()
|
||||
|
||||
output_console("\nU %d,%d:", page, transparent);
|
||||
|
||||
if (crc32 == CRC32_INTRUDER) {
|
||||
if(crc32_a == CRC32_INTRUDER) {
|
||||
ags->load_cg(page, 11);
|
||||
|
||||
if(page == 5) {
|
||||
@@ -1210,7 +1217,7 @@ void NACT_Sys1::cmd_y()
|
||||
|
||||
output_console("\nY %d,%d:", cmd, param);
|
||||
|
||||
switch (crc32) {
|
||||
switch (crc32_a) {
|
||||
case CRC32_BUNKASAI:
|
||||
case CRC32_CRESCENT:
|
||||
case CRC32_DPS:
|
||||
@@ -1244,7 +1251,7 @@ void NACT_Sys1::cmd_y()
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
switch (crc32) {
|
||||
switch (crc32_a) {
|
||||
case CRC32_CRESCENT:
|
||||
for(int i = 39; i <= 48; i++)
|
||||
var[i] = 0;
|
||||
@@ -1266,12 +1273,12 @@ void NACT_Sys1::cmd_y()
|
||||
RND = (param == 0 || param == 1) ? 0 : random(param);
|
||||
break;
|
||||
case 7:
|
||||
if(crc32 == CRC32_DPS && param == 1) {
|
||||
if(crc32_a == CRC32_DPS && param == 1) {
|
||||
ags->box_fill(0, 40, 8, 598, 270, 0);
|
||||
}
|
||||
break;
|
||||
case 130:
|
||||
if (crc32 == CRC32_TENGU) {
|
||||
if (crc32_a == CRC32_TENGU) {
|
||||
WAIT(2000)
|
||||
ags->load_cg(180, -1);
|
||||
|
||||
@@ -1306,7 +1313,7 @@ void NACT_Sys1::cmd_y()
|
||||
RND = 0;
|
||||
break;
|
||||
case 255:
|
||||
if (crc32 == CRC32_DPS)
|
||||
if (crc32_a == CRC32_DPS)
|
||||
post_quit = false;
|
||||
else
|
||||
post_quit = true;
|
||||
@@ -1366,7 +1373,7 @@ void NACT_Sys1::cmd_y()
|
||||
|
||||
void NACT_Sys1::cmd_z()
|
||||
{
|
||||
if (crc32 == CRC32_CRESCENT) {
|
||||
if (crc32_a == CRC32_CRESCENT) {
|
||||
cmd_y();
|
||||
return;
|
||||
}
|
||||
@@ -1375,7 +1382,7 @@ void NACT_Sys1::cmd_z()
|
||||
|
||||
output_console("\nZ %d,%d:", cmd, param);
|
||||
|
||||
switch (crc32) {
|
||||
switch (crc32_a) {
|
||||
case CRC32_INTRUDER:
|
||||
if(cmd == 1 && 1 <= param && param <= 4) {
|
||||
const char* buf[4] = {
|
||||
|
||||
@@ -55,8 +55,8 @@
|
||||
} \
|
||||
}
|
||||
|
||||
NACT_Sys2::NACT_Sys2(uint32 crc32, const char* font_file, const char* playlist)
|
||||
: NACT(2, crc32, font_file, playlist)
|
||||
NACT_Sys2::NACT_Sys2(uint32 crc32_a, uint32 crc32_b, const char* font_file, const char* playlist)
|
||||
: NACT(2, crc32_a, crc32_b, font_file, playlist)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -790,7 +790,7 @@ void NACT_Sys2::cmd_b()
|
||||
ags->menu_w[index - 1].screen = NULL;
|
||||
}
|
||||
} else if(cmd == 2) {
|
||||
// if(crc32 == CRC32_PROSTUDENTG_FD) {
|
||||
// if(crc32_a == CRC32_PROSTUDENTG_FD) {
|
||||
// ags->menu_w[index - 1].frame = (index == 1 || index == 3) ? true : false;
|
||||
// } else
|
||||
ags->menu_w[index - 1].frame = p1 ? true : false;
|
||||
@@ -815,7 +815,7 @@ void NACT_Sys2::cmd_b()
|
||||
} else if(cmd == 4) {
|
||||
if(p5 == 0) {
|
||||
// ウィンドウ退避
|
||||
// if(crc32 == CRC32_PROSTUDENTG_FD) {
|
||||
// if(crc32_a == CRC32_PROSTUDENTG_FD) {
|
||||
// ags->text_w[index - 1].frame = (index == 1 || index == 3) ? true : false;
|
||||
// } else
|
||||
ags->text_w[index - 1].frame = p1 ? true : false;
|
||||
@@ -864,7 +864,7 @@ void NACT_Sys2::cmd_g()
|
||||
|
||||
output_console("\nG %d:", page);
|
||||
|
||||
if(crc32 == CRC32_SDPS_TONO || crc32 == CRC32_SDPS_KAIZOKU) {
|
||||
if(crc32_a == CRC32_SDPS && (crc32_b == CRC32_SDPS_TONO || crc32_b == CRC32_SDPS_KAIZOKU)) {
|
||||
if(20 <= page && page <= 100) {
|
||||
page--;
|
||||
}
|
||||
@@ -1308,7 +1308,7 @@ void NACT_Sys2::cmd_y()
|
||||
RND = (param == 0 || param == 1) ? 0 : random(param);
|
||||
break;
|
||||
case 7:
|
||||
if(crc32 != CRC32_SDPS_MARIA) {
|
||||
if(!(crc32_a == CRC32_SDPS && crc32_b == CRC32_SDPS_MARIA)) {
|
||||
ags->draw_box(param);
|
||||
}
|
||||
break;
|
||||
|
||||
+9
-10
@@ -13,8 +13,8 @@
|
||||
#include "../fileio.h"
|
||||
#include "texthook.h"
|
||||
|
||||
NACT_Sys3::NACT_Sys3(uint32 crc32, const char* font_file, const char* playlist)
|
||||
: NACT(3, crc32, font_file, playlist)
|
||||
NACT_Sys3::NACT_Sys3(uint32 crc32_a, uint32 crc32_b, const char* font_file, const char* playlist)
|
||||
: NACT(3, crc32_a, crc32_b, font_file, playlist)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -431,10 +431,9 @@ void NACT_Sys3::cmd_b()
|
||||
|
||||
if(cmd == 1) {
|
||||
// あゆみちゃん物語
|
||||
if(crc32 == CRC32_AYUMI_CD || crc32 == CRC32_AYUMI_JISSHA_256 || crc32 == CRC32_AYUMI_JISSHA_FULL) {
|
||||
if(crc32_a == CRC32_AYUMI_CD || crc32_a == CRC32_AYUMI_JISSHA_256 || crc32_a == CRC32_AYUMI_JISSHA_FULL) {
|
||||
p5 = 1;
|
||||
}
|
||||
|
||||
ags->menu_w[index - 1].sx = column ? p1 * 8 : p1 & 0xfff8;
|
||||
ags->menu_w[index - 1].sy = p2;
|
||||
ags->menu_w[index - 1].ex = column ? p3 * 8 - 1 : (p3 & 0xfff8) - 1;
|
||||
@@ -469,7 +468,7 @@ void NACT_Sys3::cmd_b()
|
||||
} else if(cmd == 4) {
|
||||
if(p5 == 0) {
|
||||
// ウィンドウ退避
|
||||
if(crc32 == CRC32_PROSTUDENTG_CD && p4) {
|
||||
if(crc32_a == CRC32_PROSTUDENTG_CD && p4) {
|
||||
// prostudent G オープニング画面化け対策
|
||||
if(ags->text_w[index - 1].window) {
|
||||
free(ags->text_w[index - 1].window);
|
||||
@@ -586,7 +585,7 @@ void NACT_Sys3::cmd_i()
|
||||
|
||||
// X方向はカラム単位で切り捨て
|
||||
sx = column ? sx * 8 : sx & 0xfff8;
|
||||
ex = column ? ex * 8 - 1 : (crc32 == CRC32_NINGYO) ? (ex & 0xfff8) + 7 : (ex & 0xfff8) - 1;
|
||||
ex = column ? ex * 8 - 1 : (crc32_a == CRC32_NINGYO) ? (ex & 0xfff8) + 7 : (ex & 0xfff8) - 1;
|
||||
dx = column ? dx * 8 : dx & 0xfff8;
|
||||
ags->copy(sx, sy, ex, ey, dx, dy);
|
||||
}
|
||||
@@ -1075,7 +1074,7 @@ void NACT_Sys3::cmd_u()
|
||||
|
||||
output_console("\nU %d,%d:", page, transparent);
|
||||
|
||||
if(crc32 == CRC32_RANCE41 || crc32 == CRC32_RANCE42) {
|
||||
if(crc32_a == CRC32_RANCE41 || crc32_a == CRC32_RANCE42) {
|
||||
transparent = (transparent == 28) ? 12 : transparent;
|
||||
}
|
||||
ags->load_cg(page, transparent);
|
||||
@@ -1413,7 +1412,7 @@ void NACT_Sys3::cmd_y()
|
||||
case 231:
|
||||
D01 = 640;
|
||||
D02 = (param == 1) ? ags->screen_height : 480;
|
||||
D03 = (crc32 == CRC32_YAKATA3_FD) ? 16 : 256;
|
||||
D03 = (crc32_a == CRC32_YAKATA3_FD) ? 16 : 256;
|
||||
break;
|
||||
case 232:
|
||||
if(ags->screen_height != param ? 480 : 400) {
|
||||
@@ -1500,13 +1499,13 @@ void NACT_Sys3::cmd_y()
|
||||
column = param ? false : true;
|
||||
break;
|
||||
case 252:
|
||||
RND = (crc32 == CRC32_YAKATA3_FD) ? 4 : 8;
|
||||
RND = (crc32_a == CRC32_YAKATA3_FD) ? 4 : 8;
|
||||
break;
|
||||
case 253:
|
||||
show_push = (param == 0) ? true : false;
|
||||
break;
|
||||
case 254:
|
||||
RND = (crc32 == CRC32_YAKATA3_CD || crc32 == CRC32_YAKATA3_FD || crc32 == CRC32_NINGYO) ? 1 : 0;
|
||||
RND = (crc32_a == CRC32_YAKATA3_CD || crc32_a == CRC32_YAKATA3_FD || crc32_a == CRC32_NINGYO) ? 1 : 0;
|
||||
break;
|
||||
case 255:
|
||||
post_quit = (param == 1) ? true : false;
|
||||
|
||||
Reference in New Issue
Block a user