diff --git a/src/mame/machine/pgmprot_igs027a_type1.c b/src/mame/machine/pgmprot_igs027a_type1.c index f119d136342..c0799e66707 100644 --- a/src/mame/machine/pgmprot_igs027a_type1.c +++ b/src/mame/machine/pgmprot_igs027a_type1.c @@ -588,47 +588,54 @@ void pgm_arm_type1_state::command_handler_puzzli2(int pc) // how is this selected? command 54? hackcount2++; - /* writes the following sequence before how to play - 00138278: 31 00fd - 00138278: 31 0087 - 00138278: 31 0032 - 00138278: 31 0029 - 00138278: 31 0031 - 00138278: 31 003f - 00138278: 31 00b0 - 00138278: 31 0035 - 00138278: 31 0071 - 00138278: 31 002d - 00138278: 31 00d5 - 00138278: 31 000d - 00138278: 31 0034 - 00138278: 31 0059 - 00138278: 31 00dd - 00138278: 31 0023 - 00138278: 31 007a - 00138278: 31 00f3 - 00138278: 31 0077 - 00138278: 31 0022 - 00138278: 31 0036 - 00138278: 31 002e - 00138278: 31 00b3 - 00138278: 31 0035 - 00138278: 31 0041 - 00138278: 31 005d - 00138278: 31 00d6 - 00138278: 31 000c - 00138278: 31 0036 - 00138278: 31 005e - 00138278: 31 0089 - 00138278: 31 003c - 00138278: 31 007a - 00138278: 31 00a2 - 00138278: 31 006d - 00138278: 31 0023 - 00138278: 31 0037 - 00138278: 31 003f - 00138278: 31 00b3 - 00138278: 31 0034 + /* writes the following sequence before how to play + each level has a different sequence written before it, size of sequence doesn't seem directly connected to level size (unlike the reads) + so it's probably compressed somehow as well as scrambled? 68k doesnt know in advance how big each lot of data is either, it only stops + writing when it gets a difference response from the MCU. + + (puzzli2 left, puzzli2 super right) (Stored at 153ea - 15411 in puzzli2s program) results read back are the same, the data for level 1 is at f916, there does seem to be some form of pattern every 16 bytes? + + 00138278: 31 00fd 001387de: 31 007e + 00138278: 31 0087 001387de: 31 000e + 00138278: 31 0032 001387de: 31 0098 + 00138278: 31 0029 001387de: 31 00a8 + 00138278: 31 0031 001387de: 31 007c + 00138278: 31 003f 001387de: 31 0043 + 00138278: 31 00b0 001387de: 31 00e4 + 00138278: 31 0035 001387de: 31 00a2 + 00138278: 31 0071 001387de: 31 006a + 00138278: 31 002d 001387de: 31 00e0 + 00138278: 31 00d5 001387de: 31 00ed + 00138278: 31 000d 001387de: 31 0024 + 00138278: 31 0034 001387de: 31 00bb + 00138278: 31 0059 001387de: 31 00bd + 00138278: 31 00dd 001387de: 31 002e + 00138278: 31 0023 001387de: 31 00d6 + 00138278: 31 007a 001387de: 31 002b + 00138278: 31 00f3 001387de: 31 007a + 00138278: 31 0077 001387de: 31 00dd + 00138278: 31 0022 001387de: 31 00a3 + 00138278: 31 0036 001387de: 31 007b + 00138278: 31 002e 001387de: 31 0052 + 00138278: 31 00b3 001387de: 31 00e7 + 00138278: 31 0035 001387de: 31 00a2 + 00138278: 31 0041 001387de: 31 005a + 00138278: 31 005d 001387de: 31 0090 + 00138278: 31 00d6 001387de: 31 00ee + 00138278: 31 000c 001387de: 31 0025 + 00138278: 31 0036 001387de: 31 00b9 + 00138278: 31 005e 001387de: 31 00ba + 00138278: 31 0089 001387de: 31 007a + 00138278: 31 003c 001387de: 31 00c9 + 00138278: 31 007a 001387de: 31 002b + 00138278: 31 00a2 001387de: 31 002b + 00138278: 31 006d 001387de: 31 00c7 + 00138278: 31 0023 001387de: 31 00a2 + 00138278: 31 0037 001387de: 31 007a + 00138278: 31 003f 001387de: 31 0043 + 00138278: 31 00b3 001387de: 31 00e7 + 00138278: 31 0034 001387de: 31 00a3 + */ @@ -668,6 +675,7 @@ void pgm_arm_type1_state::command_handler_puzzli2(int pc) }; + if (hackcount<61) { m_valueresponse = 0x002d0000 | retvals[hackcount];