mirror of
https://github.com/holub/mame
synced 2025-04-20 15:32:45 +03:00
add support for a China internal ROM to kov2p sets [XingXing]
new clones Knights of Valour Super Heroes Plus / Sangoku Senki Super Heroes Plus (ver. 101) [XingXing] also a bit more on puzzli2
This commit is contained in:
parent
8a94f6a663
commit
2935400935
@ -2411,7 +2411,7 @@ ROM_START( kov2p )
|
||||
ROM_LOAD16_WORD_SWAP( "u8-27322.rom", 0x100000, 0x400000, CRC(3a2cc0de) SHA1(d7511478b34bfb03b2fb5b8268b60502d05b9414) )
|
||||
|
||||
ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
|
||||
ROM_LOAD( "kov2p_igs027a.bin", 0x000000, 0x04000, BAD_DUMP CRC(e0d7679f) SHA1(e1c2d127eba4ddbeb8ad173c55b90ac1467e1ca8) ) // NOT for this version, works with a hack
|
||||
ROM_LOAD( "kov2p_igs027a_china.bin", 0x000000, 0x04000, CRC(19a0bd95) SHA1(83e9f22512832a51d41c588debe8be7adb3b1df7) )
|
||||
|
||||
ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */
|
||||
ROM_LOAD( "v200-16.rom", 0x000000, 0x200000, CRC(16a0c11f) SHA1(ce449cef76ebd5657d49b57951e2eb0f132e203e) )
|
||||
@ -2442,7 +2442,7 @@ ROM_START( kov2p204 )
|
||||
ROM_LOAD16_WORD_SWAP( "v204-32m.rom", 0x100000, 0x400000, CRC(583e0650) SHA1(2e5656dd9c6cba9f84af9baa3f5f70cdccf9db47) )
|
||||
|
||||
ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
|
||||
ROM_LOAD( "kov2p_igs027a.bin", 0x000000, 0x04000, BAD_DUMP CRC(e0d7679f) SHA1(e1c2d127eba4ddbeb8ad173c55b90ac1467e1ca8) ) // NOT for this version, works with a hack
|
||||
ROM_LOAD( "kov2p_igs027a_china.bin", 0x000000, 0x04000, CRC(19a0bd95) SHA1(83e9f22512832a51d41c588debe8be7adb3b1df7) )
|
||||
|
||||
ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */
|
||||
ROM_LOAD( "v200-16.rom", 0x000000, 0x200000, CRC(16a0c11f) SHA1(ce449cef76ebd5657d49b57951e2eb0f132e203e) )
|
||||
@ -2473,7 +2473,7 @@ ROM_START( kov2p202 )
|
||||
ROM_LOAD16_WORD_SWAP( "v202.bin", 0x100000, 0x400000, CRC(e9b5aa0c) SHA1(39a776c8501e8557d305cfa56c997f9adeb6bcd2) )
|
||||
|
||||
ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
|
||||
ROM_LOAD( "kov2p_igs027a.bin", 0x000000, 0x04000, BAD_DUMP CRC(e0d7679f) SHA1(e1c2d127eba4ddbeb8ad173c55b90ac1467e1ca8) ) // NOT for this version, works with a hack
|
||||
ROM_LOAD( "kov2p_igs027a_china.bin", 0x000000, 0x04000, CRC(19a0bd95) SHA1(83e9f22512832a51d41c588debe8be7adb3b1df7) )
|
||||
|
||||
ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */
|
||||
ROM_LOAD( "v200-16.rom", 0x000000, 0x200000, CRC(16a0c11f) SHA1(ce449cef76ebd5657d49b57951e2eb0f132e203e) )
|
||||
@ -3304,6 +3304,33 @@ ROM_START( oldsplus )
|
||||
ROM_END
|
||||
|
||||
ROM_START( kovshp )
|
||||
ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
|
||||
PGM_68K_BIOS
|
||||
ROM_LOAD16_WORD_SWAP( "p0600h_101.rom", 0x100000, 0x400000, CRC(e1d89a19) SHA1(30e11c145652d03464b14d3cd09e4f35fff6120e) )
|
||||
|
||||
ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
|
||||
ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, BAD_DUMP CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) ) // this is the kovsh ARM rom, we intercept and modify protection calls
|
||||
|
||||
ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
|
||||
PGM_VIDEO_BIOS
|
||||
ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
|
||||
|
||||
ROM_REGION( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */
|
||||
ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
|
||||
ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
|
||||
ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
|
||||
ROM_LOAD( "a0540.rom", 0x1800000, 0x0800000, CRC(4fd3413e) SHA1(5e8f3e421342bf558c77e59635f9b5d713e825c2) )
|
||||
|
||||
ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
|
||||
ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
|
||||
ROM_LOAD( "b0540.rom", 0x0800000, 0x0800000, CRC(60999757) SHA1(118cf058e67858958bcb931e14f5d160c7de87cc) )
|
||||
|
||||
ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
|
||||
PGM_AUDIO_BIOS
|
||||
ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( kovshpa )
|
||||
ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
|
||||
PGM_68K_BIOS
|
||||
ROM_LOAD16_WORD_SWAP( "p0600h.rom", 0x100000, 0x400000, CRC(e251e8e4) SHA1(af5b7c81632a39e1450d932951bed634c76b84e8) )
|
||||
@ -3330,6 +3357,8 @@ ROM_START( kovshp )
|
||||
ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
|
||||
ROM_END
|
||||
|
||||
|
||||
|
||||
ROM_START( kovytzy )
|
||||
ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
|
||||
PGM_68K_BIOS
|
||||
@ -3983,10 +4012,10 @@ GAME( 2000, kov2102, kov2, pgm_arm_type2, kov2, pgm_arm_type2_state
|
||||
GAME( 2000, kov2101, kov2, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2, ROT0, "IGS", "Knights of Valour 2 / Sangoku Senki 2 (ver. 101, 101, 100HK)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // 11/29/00 11:03:08 V100 (Ext. Arm V100, Int. Arm V100HK)
|
||||
GAME( 2000, kov2100, kov2, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2, ROT0, "IGS", "Knights of Valour 2 / Sangoku Senki 2 (ver. 100, 100, 100HK)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // 11/29/00 11:03:08 V100 (Ext. Arm V100, Int. Arm V100HK)
|
||||
|
||||
// region provided by internal ARM rom
|
||||
GAME( 2001, kov2p, pgm, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2p, ROT0, "IGS", "Knights of Valour 2 Plus - Nine Dragons / Sangoku Senki 2 Plus - Nine Dragons (ver. M205XX)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) /* need internal rom of IGS027A */
|
||||
GAME( 2001, kov2p204, kov2p, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2p, ROT0, "IGS", "Knights of Valour 2 Plus - Nine Dragons / Sangoku Senki 2 Plus - Nine Dragons (ver. M204XX)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) /* need internal rom of IGS027A */
|
||||
GAME( 2001, kov2p202, kov2p, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2p, ROT0, "IGS", "Knights of Valour 2 Plus - Nine Dragons / Sangoku Senki 2 Plus - Nine Dragons (ver. M202XX)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) /* need internal rom of IGS027A */
|
||||
// region provided by internal ARM rom (we only have a China internal ROM and it doesn't seem to write the region code at all even if the 68k reads it, maybe this was only released in China?)
|
||||
GAME( 2001, kov2p, pgm, pgm_arm_type2, pgm, pgm_arm_type2_state, kov2p, ROT0, "IGS", "Knights of Valour 2 Plus - Nine Dragons / Sangoku Senki 2 Plus - Nine Dragons (ver. M205XX, 200, 100CN)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
|
||||
GAME( 2001, kov2p204, kov2p, pgm_arm_type2, pgm, pgm_arm_type2_state, kov2p, ROT0, "IGS", "Knights of Valour 2 Plus - Nine Dragons / Sangoku Senki 2 Plus - Nine Dragons (ver. M204XX, 200, 100CN)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
|
||||
GAME( 2001, kov2p202, kov2p, pgm_arm_type2, pgm, pgm_arm_type2_state, kov2p, ROT0, "IGS", "Knights of Valour 2 Plus - Nine Dragons / Sangoku Senki 2 Plus - Nine Dragons (ver. M202XX, 200, 100CN)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
|
||||
|
||||
// region provided by internal ARM rom
|
||||
GAME( 2001, martmast, pgm, pgm_arm_type2, martmast, pgm_arm_type2_state, martmast, ROT0, "IGS", "Martial Masters (ver. 104, 102, 102US)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // 68k V104, Ext Arm 102, Int Arm 102US
|
||||
@ -4101,7 +4130,8 @@ GAME( 2004, oldsplus, pgm, pgm_arm_type1_sim, oldsplus, pgm_arm_type1_
|
||||
// the game logo remains stuck on the screen during gameplay, but videos of the original board suggest this happens on real hardware as well
|
||||
// if the internal ROM can't be extracted (likely case, execute only area and NO chance of custom code execution at all due to lack of external ROM) then a reference simulator should probably be written based on the actual
|
||||
// kovsh code, tweaked based on tests done with this specific board to catch any different behaviors. These all seem to be for China only, they don't work as expected when set to other regions.
|
||||
GAME( 2004, kovshp, pgm, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovshp, ROT0, "IGS", "Knights of Valour Super Heroes Plus / Sangoku Senki Super Heroes Plus (ver. 100)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) /* need internal rom of IGS027A */
|
||||
GAME( 2004, kovshp, pgm, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovshp, ROT0, "IGS", "Knights of Valour Super Heroes Plus / Sangoku Senki Super Heroes Plus (ver. 101)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) /* need internal rom of IGS027A */
|
||||
GAME( 2004, kovshpa, kovshp, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovshp, ROT0, "IGS", "Knights of Valour Super Heroes Plus / Sangoku Senki Super Heroes Plus (ver. 100)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) /* need internal rom of IGS027A */
|
||||
// Seems to be an earlier version, uses same PCB as kovsh.
|
||||
GAME( 1999, kovytzy, pgm, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovshp, ROT0, "IGS", "Knights of Valour: Yi Tong Zhong Yuan / Sangoku Senki: Yi Tong Zhong Yuan (ver. 201, China)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) /* need internal rom of IGS027A */
|
||||
// this bootleg is very close to kovshp
|
||||
|
@ -2040,6 +2040,7 @@ int pgm_arm_type1_state::puzzli2_take_leveldata_value(UINT8 datvalue)
|
||||
UINT16 object_value;
|
||||
|
||||
// some of these might be due to bad decrypt values in the table
|
||||
////////////////////// regular fish group
|
||||
if (rawvalue==0x00) {object_value = 0x0100; printf("%02x <- fish type 0\n", rawvalue);}
|
||||
else if (rawvalue==0x01) {object_value = 0x0101; printf("%02x <- fish type 1\n", rawvalue);}
|
||||
else if (rawvalue==0x02) {object_value = 0x0102; printf("%02x <- fish type 2\n", rawvalue);}
|
||||
@ -2048,16 +2049,17 @@ int pgm_arm_type1_state::puzzli2_take_leveldata_value(UINT8 datvalue)
|
||||
else if (rawvalue==0x05) {object_value = 0x0105; printf("%02x <- fish type 5\n", rawvalue);}
|
||||
else if (rawvalue==0x06) {object_value = 0x0106; printf("%02x <- fish type 6\n", rawvalue);}
|
||||
else if (rawvalue==0x07) {object_value = 0x0107; printf("%02x <- fish type 7\n", rawvalue);}
|
||||
|
||||
else if (rawvalue==0x08) {object_value = 0x0100; printf("%02x <- unk object ?? 08\n", rawvalue);}
|
||||
|
||||
else if (rawvalue==0x0b) {object_value = 0x0100; printf("%02x <- unk object ?? 0b\n", rawvalue);}
|
||||
else if (rawvalue==0x0c) {object_value = 0x0100; printf("%02x <- unk object ?? 0c\n", rawvalue);}
|
||||
else if (rawvalue==0x0d) {object_value = 0x0100; printf("%02x <- unk object ?? 0d\n", rawvalue);}
|
||||
else if (rawvalue==0x0e) {object_value = 0x0100; printf("%02x <- unk object ?? 0e\n", rawvalue);}
|
||||
else if (rawvalue==0x0f) {object_value = 0x0100; printf("%02x <- unk object ?? 0f\n", rawvalue);}
|
||||
else if (rawvalue==0x10) {object_value = 0x0100; printf("%02x <- unk object ?? 10\n", rawvalue);}
|
||||
else if (rawvalue==0x11) {object_value = 0x0100; printf("%02x <- unk object ?? 11\n", rawvalue);}
|
||||
else if (rawvalue==0x08) {object_value = 0x0108; printf("%02x <- fish type 8\n", rawvalue);} // usually used to have the 2nd stripey type in a level
|
||||
// 09?
|
||||
// 0a?
|
||||
else if (rawvalue==0x0b) {object_value = 0xffff; printf("%02x <- unk object ?? 0b\n", rawvalue);}
|
||||
else if (rawvalue==0x0c) {object_value = 0xffff; printf("%02x <- unk object ?? 0c\n", rawvalue);}
|
||||
else if (rawvalue==0x0d) {object_value = 0xffff; printf("%02x <- unk object ?? 0d\n", rawvalue);}
|
||||
else if (rawvalue==0x0e) {object_value = 0xffff; printf("%02x <- unk object ?? 0e\n", rawvalue);}
|
||||
else if (rawvalue==0x0f) {object_value = 0xffff; printf("%02x <- unk object ?? 0f\n", rawvalue);}
|
||||
else if (rawvalue==0x10) {object_value = 0xffff; printf("%02x <- unk object ?? 10\n", rawvalue);}
|
||||
////////////////////// fish in bubble group
|
||||
else if (rawvalue==0x11) {object_value = 0xffff; printf("%02x <- unk object ?? 11\n", rawvalue);} // bubble type 0?
|
||||
else if (rawvalue==0x12) {object_value = 0x0121; printf("%02x <- fish in bubble (type 1?)\n", rawvalue);}
|
||||
else if (rawvalue==0x13) {object_value = 0x0122; printf("%02x <- fish in bubble (type 2?)\n", rawvalue);}
|
||||
else if (rawvalue==0x14) {object_value = 0x0123; printf("%02x <- fish in bubble (type 3?)??\n", rawvalue);}
|
||||
@ -2066,28 +2068,52 @@ int pgm_arm_type1_state::puzzli2_take_leveldata_value(UINT8 datvalue)
|
||||
else if (rawvalue==0x17) {object_value = 0x0126; printf("%02x <- fish in bubble (type 6?)\n", rawvalue);}
|
||||
else if (rawvalue==0x18) {object_value = 0x0127; printf("%02x <- fish in bubble (type 7?)\n", rawvalue);}
|
||||
else if (rawvalue==0x19) {object_value = 0x0128; printf("%02x <- fish in bubble (type 8?)\n", rawvalue);}
|
||||
|
||||
else if (rawvalue==0x1e) {object_value = 0x0100; printf("%02x <- unk object ?? 1e\n", rawvalue);}
|
||||
|
||||
else if (rawvalue==0x21) {object_value = 0x0100; printf("%02x <- unk object ?? 21\n", rawvalue);}// puzzli2
|
||||
else if (rawvalue==0x22) {object_value = 0x0140; printf("%02x <- fish in egg (type w?)\n", rawvalue);}
|
||||
else if (rawvalue==0x23) {object_value = 0x0141; printf("%02x <- fish in egg (type x?)\n", rawvalue);}
|
||||
else if (rawvalue==0x24) {object_value = 0x0142; printf("%02x <- fish in egg (type y?)\n", rawvalue);}
|
||||
else if (rawvalue==0x25) {object_value = 0x0143; printf("%02x <- fish in egg (type z?)\n", rawvalue);}
|
||||
else if (rawvalue==0x26) {object_value = 0x0100; printf("%02x <- unk object ?? 26\n", rawvalue);}
|
||||
else if (rawvalue==0x27) {object_value = 0x0100; printf("%02x <- unk object ?? 27\n", rawvalue);}
|
||||
else if (rawvalue==0x28) {object_value = 0x0100; printf("%02x <- unk object ?? 28\n", rawvalue);}
|
||||
else if (rawvalue==0x29) {object_value = 0x0100; printf("%02x <- unk object ?? 29\n", rawvalue);}
|
||||
else if (rawvalue==0x2a) {object_value = 0x0100; printf("%02x <- unk object ?? 2a\n", rawvalue);}
|
||||
|
||||
else if (rawvalue==0x32) {object_value = 0x0100; printf("%02x <- unk object ?? 32\n", rawvalue);} // puzzli2
|
||||
else if (rawvalue==0x33) {object_value = 0x0100; printf("%02x <- unk object ?? 33\n", rawvalue);} // puzzli2
|
||||
else if (rawvalue==0x35) {object_value = 0x0100; printf("%02x <- unk object ?? 35\n", rawvalue);}
|
||||
else if (rawvalue==0x38) {object_value = 0x0100; printf("%02x <- unk object ?? 38\n", rawvalue);} // puzzli2
|
||||
|
||||
else if (rawvalue==0x41) {object_value = 0x0100; printf("%02x <- unk object ?? 41\n", rawvalue);} // puzzli2
|
||||
else if (rawvalue==0x43) {object_value = 0x0100; printf("%02x <- unk object ?? 43\n", rawvalue);} // puzzli2
|
||||
|
||||
// 1a
|
||||
// 1b
|
||||
// 1c
|
||||
// 1d
|
||||
else if (rawvalue==0x1e) {object_value = 0xffff; printf("%02x <- unk object ?? 1e\n", rawvalue);}
|
||||
// 1e
|
||||
// 1f
|
||||
// 20
|
||||
else if (rawvalue==0x21) {object_value = 0xffff; printf("%02x <- unk object ?? 21\n", rawvalue);}// puzzli2
|
||||
////////////////////// fish in egg group
|
||||
else if (rawvalue==0x22) {object_value = 0x0140; printf("%02x <- fish in egg (type 0)\n", rawvalue);}
|
||||
else if (rawvalue==0x23) {object_value = 0x0141; printf("%02x <- fish in egg (type 1)\n", rawvalue);}
|
||||
else if (rawvalue==0x24) {object_value = 0x0142; printf("%02x <- fish in egg (type 2)\n", rawvalue);}
|
||||
else if (rawvalue==0x25) {object_value = 0x0143; printf("%02x <- fish in egg (type 3)\n", rawvalue);}
|
||||
else if (rawvalue==0x26) {object_value = 0x0144; printf("%02x <- fish in egg (type 4)\n", rawvalue);}
|
||||
else if (rawvalue==0x27) {object_value = 0x0145; printf("%02x <- fish in egg (type 5)\n", rawvalue);}
|
||||
else if (rawvalue==0x28) {object_value = 0x0146; printf("%02x <- fish in egg (type 6)\n", rawvalue);}
|
||||
else if (rawvalue==0x29) {object_value = 0x0147; printf("%02x <- fish in egg (type 7)\n", rawvalue);}
|
||||
else if (rawvalue==0x2a) {object_value = 0xffff; printf("%02x <- unk object ?? 2a\n", rawvalue);}
|
||||
// 2b
|
||||
// 2c
|
||||
// 2d
|
||||
// 2e
|
||||
// 2f
|
||||
// 30
|
||||
// 31
|
||||
else if (rawvalue==0x32) {object_value = 0xffff; printf("%02x <- unk object ?? 32\n", rawvalue);} // puzzli2
|
||||
////////////////////// don't fishing know yet group
|
||||
else if (rawvalue==0x33) {object_value = 0xffff; printf("%02x <- unk object ?? 33\n", rawvalue);} // puzzli2
|
||||
// 34
|
||||
else if (rawvalue==0x35) {object_value = 0xffff; printf("%02x <- unk object ?? 35\n", rawvalue);}
|
||||
// 36
|
||||
// 37
|
||||
else if (rawvalue==0x38) {object_value = 0xffff; printf("%02x <- unk object ?? 38\n", rawvalue);} // puzzli2
|
||||
// 39
|
||||
// 3a
|
||||
// 3b
|
||||
// 3c
|
||||
// 3d
|
||||
// 3e
|
||||
// 3f
|
||||
// 40
|
||||
else if (rawvalue==0x41) {object_value = 0xffff; printf("%02x <- unk object ?? 41\n", rawvalue);} // puzzli2
|
||||
// 42
|
||||
else if (rawvalue==0x43) {object_value = 0xffff; printf("%02x <- unk object ?? 43\n", rawvalue);} // puzzli2
|
||||
////////////////////// special objects follow
|
||||
else if (rawvalue==0xd0) {object_value = 0x0200; printf("%02x <- generic bubbles\n", rawvalue);}
|
||||
|
||||
else if (rawvalue==0xe0) {object_value = 0x8000; printf("%02x <- solid middle\n", rawvalue);}
|
||||
@ -2097,7 +2123,13 @@ int pgm_arm_type1_state::puzzli2_take_leveldata_value(UINT8 datvalue)
|
||||
else if (rawvalue==0xe4) {object_value = 0x8080; printf("%02x <- solid bottom slant down\n", rawvalue);} // sold slant bottom up
|
||||
|
||||
|
||||
else {object_value = 0x0100; printf("%02x <- unknown object\n", rawvalue);}
|
||||
else {object_value = 0xffff; printf("%02x <- unknown object\n", rawvalue);}
|
||||
|
||||
if (object_value==0xffff)
|
||||
{
|
||||
object_value = 0x110;
|
||||
popmessage("unknown object type %02x\n", rawvalue);
|
||||
}
|
||||
|
||||
int realrow = get_position_of_bit(m_row_bitmask, currentrow);
|
||||
|
||||
|
@ -180,28 +180,8 @@ DRIVER_INIT_MEMBER(pgm_arm_type2_state,kov2p)
|
||||
pgm_kov2p_decrypt(machine());
|
||||
kov2_latch_init();
|
||||
|
||||
UINT8 *mem8 = (UINT8 *)memregion("user1")->base();
|
||||
mem8[0xDE] = 0xC0;
|
||||
mem8[0xDF] = 0x46;
|
||||
mem8[0x4ED8] = 0xA8;// B0
|
||||
mem8[0x4EDC] = 0x9C;// A4
|
||||
mem8[0x4EE0] = 0x5C;// 64
|
||||
mem8[0x4EE4] = 0x94;// 9C
|
||||
mem8[0x4EE8] = 0xE8;// F0
|
||||
mem8[0x4EEC] = 0x6C;// 74
|
||||
mem8[0x4EF0] = 0xD4;// DC
|
||||
mem8[0x4EF4] = 0x50;// 58
|
||||
mem8[0x4EF8] = 0x80;// 88
|
||||
mem8[0x4EFC] = 0x9C;// A4
|
||||
mem8[0x4F00] = 0x28;// 30
|
||||
mem8[0x4F04] = 0x30;// 38
|
||||
mem8[0x4F08] = 0x34;// 3C
|
||||
mem8[0x4F0C] = 0x1C;// 24
|
||||
mem8[0x1FFFFC] = 0x33;
|
||||
mem8[0x1FFFFD] = 0x99;
|
||||
|
||||
// we only have a HK internal ROM dumped for now, allow us to override that for debugging purposes.
|
||||
machine().device("prot")->memory().space(AS_PROGRAM).install_write_handler(0x48000138, 0x4800013b, write32_delegate(FUNC(pgm_arm_type2_state::kov2_arm_region_w),this));
|
||||
// we only have a China internal ROM dumped for now, allow us to override that for debugging purposes.
|
||||
// machine().device("prot")->memory().space(AS_PROGRAM).install_write_handler(0x48000138, 0x4800013b, write32_delegate(FUNC(pgm_arm_type2_state::kov2_arm_region_w),this));
|
||||
}
|
||||
|
||||
WRITE32_MEMBER(pgm_arm_type2_state::martmast_arm_region_w )
|
||||
|
@ -9445,8 +9445,9 @@ dmnfrnt // (c) 2002 Demon Front
|
||||
dmnfrnta //
|
||||
dmnfrntb //
|
||||
dmnfrntpcb //
|
||||
kovshp // (c) 200? Knights of Valor Superheroes PLUS
|
||||
kovytzy // (c) 1999 Knights of Valour: Yi Tong Zhong Yuan
|
||||
kovshp // (c) 2004 Knights of Valor Superheroes PLUS
|
||||
kovshpa //
|
||||
kovytzy // (c) 1999 Knights of Valour: Yi Tong Zhong Yuan
|
||||
kovshxas // bootleg
|
||||
kovlsqh // bootleg
|
||||
kovlsqh2 // bootleg
|
||||
|
Loading…
Reference in New Issue
Block a user