mirror of
https://github.com/holub/mame
synced 2025-04-23 00:39:36 +03:00
snowbros.cpp: dumped MCU for cookbib2 and cookbib2a [Caps0ff]
This commit is contained in:
parent
557cef8352
commit
d54b046090
@ -228,17 +228,17 @@ void snowbros_state::sound_io_map(address_map &map)
|
||||
// probably not endian safe
|
||||
void snowbros_state::prot_p0_w(uint8_t data)
|
||||
{
|
||||
uint16_t word = m_hyperpac_ram[(0xe000/2)+m_semicom_prot_offset];
|
||||
uint16_t word = m_hyperpac_ram[m_semicom_prot_base + m_semicom_prot_offset];
|
||||
word = (word & 0xff00) | (data << 0);
|
||||
m_hyperpac_ram[(0xe000/2)+m_semicom_prot_offset] = word;
|
||||
m_hyperpac_ram[m_semicom_prot_base + m_semicom_prot_offset] = word;
|
||||
}
|
||||
|
||||
// probably not endian safe
|
||||
void snowbros_state::prot_p1_w(uint8_t data)
|
||||
{
|
||||
uint16_t word = m_hyperpac_ram[(0xe000/2)+m_semicom_prot_offset];
|
||||
uint16_t word = m_hyperpac_ram[m_semicom_prot_base + m_semicom_prot_offset];
|
||||
word = (word & 0x00ff) | (data << 8);
|
||||
m_hyperpac_ram[(0xe000/2)+m_semicom_prot_offset] = word;
|
||||
m_hyperpac_ram[m_semicom_prot_base + m_semicom_prot_offset] = word;
|
||||
}
|
||||
|
||||
void snowbros_state::prot_p2_w(uint8_t data)
|
||||
@ -2327,8 +2327,8 @@ ROM_START( hyperpac )
|
||||
ROM_REGION( 0x10000, "soundcpu", 0 ) /* Z80 Code */
|
||||
ROM_LOAD( "hyperpac.u1", 0x00000, 0x10000 , CRC(03faf88e) SHA1(a8da883d4b765b809452bbffca37ff224edbe86d) )
|
||||
|
||||
ROM_REGION( 0x10000, "protection", 0 ) /* Intel 87C52 MCU Code */
|
||||
ROM_LOAD( "at89c52.bin", 0x00000, 0x2000 , CRC(291f9326) SHA1(e440ce7d92188faa86e02e7f9db4ec6bce21efd3) ) /* decapped */
|
||||
ROM_REGION( 0x2000, "protection", 0 ) /* Intel 87C52 MCU Code */
|
||||
ROM_LOAD( "at89c52.bin", 0x0000, 0x2000 , CRC(291f9326) SHA1(e440ce7d92188faa86e02e7f9db4ec6bce21efd3) ) /* decapped */
|
||||
|
||||
ROM_REGION( 0x040000, "oki", 0 ) /* Samples */
|
||||
ROM_LOAD( "hyperpac.j15", 0x00000, 0x40000, CRC(fb9f468d) SHA1(52857b1a04c64ac853340ebb8e92d98eabea8bc1) )
|
||||
@ -2595,13 +2595,8 @@ ROM_START( cookbib2 )
|
||||
ROM_REGION( 0x10000, "soundcpu", 0 ) /* Z80 Code */
|
||||
ROM_LOAD( "unico_07.u1", 0x00000, 0x10000 , CRC(f59f1c9a) SHA1(2830261fd55249e015514fcb4cf8392e83b7fd0d) ) // 27C512
|
||||
|
||||
ROM_REGION( 0x10000, "cpu2", 0 ) /* Intel 87C52 MCU Code */
|
||||
ROM_LOAD( "87c52.mcu", 0x00000, 0x10000 , NO_DUMP ) /* can't be dumped */
|
||||
|
||||
ROM_REGION( 0x200, "user1", 0 ) /* Data from Shared RAM */
|
||||
/* this is not a real rom but instead the data extracted from
|
||||
shared ram, the MCU puts it there */
|
||||
ROM_LOAD16_WORD_SWAP( "protdata.bin", 0x00000, 0x200 , CRC(ae6d8ed5) SHA1(410cdacb9b90ea345c0e4be85e60a138f45a51f1) )
|
||||
ROM_REGION( 0x2000, "protection", 0 ) /* P87C52EBPN (XSC6407A) Code (8052) */
|
||||
ROM_LOAD( "p87c52ebpn.bin", 0x0000, 0x2000 , CRC(ef042cef) SHA1(3089d5a3cb5ed663a8d89d59e427a06cffcd6219) ) /* dumped via laser glitching */
|
||||
|
||||
ROM_REGION( 0x040000, "oki", 0 ) /* Samples */
|
||||
ROM_LOAD( "unico_06.uj15", 0x00000, 0x20000, CRC(5e6f76b8) SHA1(725800143dfeaa6093ed5fcc5b9f15678ae9e547) ) // 27C010
|
||||
@ -2621,13 +2616,8 @@ ROM_START( cookbib2a )
|
||||
ROM_REGION( 0x10000, "soundcpu", 0 ) /* Z80 Code */
|
||||
ROM_LOAD( "unico_07.u1", 0x00000, 0x10000 , CRC(f59f1c9a) SHA1(2830261fd55249e015514fcb4cf8392e83b7fd0d) ) // 27C512
|
||||
|
||||
ROM_REGION( 0x10000, "cpu2", 0 ) /* Intel 87C52 MCU Code */
|
||||
ROM_LOAD( "87c52.mcu", 0x00000, 0x10000 , NO_DUMP ) /* can't be dumped */
|
||||
|
||||
ROM_REGION( 0x200, "user1", 0 ) /* Data from Shared RAM */
|
||||
/* this is not a real rom but instead the data extracted from
|
||||
shared ram, the MCU puts it there */
|
||||
ROM_LOAD16_WORD_SWAP( "protdata.bin", 0x00000, 0x200 , CRC(ae6d8ed5) SHA1(410cdacb9b90ea345c0e4be85e60a138f45a51f1) )
|
||||
ROM_REGION( 0x2000, "protection", 0 ) /* P87C52EBPN (XSC6407A) Code (8052) */
|
||||
ROM_LOAD( "p87c52ebpn.bin", 0x0000, 0x2000 , CRC(ef042cef) SHA1(3089d5a3cb5ed663a8d89d59e427a06cffcd6219) ) /* dumped via laser glitching */
|
||||
|
||||
ROM_REGION( 0x040000, "oki", 0 ) /* Samples */
|
||||
ROM_LOAD( "unico_06.uj15", 0x00000, 0x20000, CRC(5e6f76b8) SHA1(725800143dfeaa6093ed5fcc5b9f15678ae9e547) ) // 27C010
|
||||
@ -2647,15 +2637,15 @@ ROM_START( cookbib2b )
|
||||
ROM_REGION( 0x10000, "soundcpu", 0 ) /* Z80 Code */
|
||||
ROM_LOAD( "u1.512", 0x00000, 0x10000 , CRC(f59f1c9a) SHA1(2830261fd55249e015514fcb4cf8392e83b7fd0d) )
|
||||
|
||||
ROM_REGION( 0x10000, "cpu2", 0 ) /* Intel 87C52 MCU Code */
|
||||
ROM_LOAD( "87c52.mcu", 0x00000, 0x10000 , NO_DUMP ) /* can't be dumped */
|
||||
ROM_REGION( 0x2000, "protection", 0 ) /* P87C52EBPN (XSC6407A) Code (8052) */
|
||||
ROM_LOAD( "87c52.mcu", 0x0000, 0x2000 , NO_DUMP ) /* not dumped yet */
|
||||
|
||||
ROM_REGION( 0x200, "user1", 0 ) /* Data from Shared RAM */
|
||||
/* this is not a real rom but instead the data extracted from
|
||||
shared ram, the MCU puts it there
|
||||
|
||||
this one is hacked from the cookbib2 one, absolute code jump needed to be changed at least */
|
||||
ROM_LOAD16_WORD_SWAP( "protdata_alt.bin", 0x00000, 0x200, BAD_DUMP CRC(bc136ead) SHA1(96459c2ccf7f95880421ba082c2414fa1040f3ed) )
|
||||
ROM_LOAD16_WORD_SWAP( "protdata_alt.bin", 0x000, 0x200, BAD_DUMP CRC(bc136ead) SHA1(96459c2ccf7f95880421ba082c2414fa1040f3ed) )
|
||||
|
||||
ROM_REGION( 0x040000, "oki", 0 ) /* Samples */
|
||||
ROM_LOAD( "uj15.010", 0x00000, 0x20000, CRC(5e6f76b8) SHA1(725800143dfeaa6093ed5fcc5b9f15678ae9e547) )
|
||||
@ -2843,6 +2833,9 @@ ROM_END
|
||||
|
||||
void snowbros_state::init_cookbib2()
|
||||
{
|
||||
save_item(NAME(m_semicom_prot_offset));
|
||||
|
||||
m_semicom_prot_base = 0xf000 / 2;
|
||||
}
|
||||
|
||||
|
||||
@ -2958,6 +2951,7 @@ void snowbros_state::init_toto()
|
||||
void snowbros_state::init_hyperpac()
|
||||
{
|
||||
save_item(NAME(m_semicom_prot_offset));
|
||||
m_semicom_prot_base = 0xe000 / 2;
|
||||
}
|
||||
|
||||
|
||||
@ -2985,8 +2979,8 @@ GAME( 1996, toto, 0, snowbros, snowbros, snowbros_state, init_to
|
||||
GAME( 1993, finalttr, 0, finalttr, finalttr, snowbros_state, empty_init, ROT0, "Jeil Computer System", "Final Tetris", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1995, hyperpac, 0, semicom_mcu, hyperpac, snowbros_state, init_hyperpac, ROT0, "SemiCom", "Hyper Pacman", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1995, hyperpacb, hyperpac, semicom, hyperpac, snowbros_state, empty_init, ROT0, "bootleg", "Hyper Pacman (bootleg)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1996, cookbib2, 0, semiprot, cookbib2, snowbros_state, init_cookbib2, ROT0, "SemiCom", "Cookie & Bibi 2 (set 1)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1996, cookbib2a, cookbib2, semiprot, cookbib2, snowbros_state, init_cookbib2, ROT0, "SemiCom", "Cookie & Bibi 2 (set 2)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1996, cookbib2, 0, semicom_mcu, cookbib2, snowbros_state, init_cookbib2, ROT0, "SemiCom", "Cookie & Bibi 2 (set 1)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1996, cookbib2a, cookbib2, semicom_mcu, cookbib2, snowbros_state, init_cookbib2, ROT0, "SemiCom", "Cookie & Bibi 2 (set 2)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1996, cookbib2b, cookbib2, semiprot, cookbib2, snowbros_state, init_cookbib2, ROT0, "SemiCom", "Cookie & Bibi 2 (set 3)", MACHINE_SUPPORTS_SAVE ) // older? test mode looks even worse on this, but neither shows the correct dip info anyway
|
||||
GAME( 1996, toppyrap, 0, semiprot, toppyrap, snowbros_state, empty_init, ROT0, "SemiCom", "Toppy & Rappy", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1997, cookbib3, 0, semiprot, cookbib3, snowbros_state, init_cookbib3, ROT0, "SemiCom", "Cookie & Bibi 3", MACHINE_SUPPORTS_SAVE )
|
||||
|
@ -26,7 +26,8 @@ public:
|
||||
m_soundlatch(*this, "soundlatch"),
|
||||
m_pandora(*this, "pandora"),
|
||||
m_hyperpac_ram(*this, "hyperpac_ram"),
|
||||
m_bootleg_spriteram16(*this, "spriteram16b")
|
||||
m_bootleg_spriteram16(*this, "spriteram16b"),
|
||||
m_semicom_prot_base(0)
|
||||
{ }
|
||||
|
||||
void _4in1(machine_config &config);
|
||||
@ -67,6 +68,7 @@ private:
|
||||
int m_sb3_music_is_playing;
|
||||
int m_sb3_music;
|
||||
uint8_t m_semicom_prot_offset;
|
||||
uint16_t m_semicom_prot_base;
|
||||
uint16_t m_yutnori_prot_val;
|
||||
|
||||
void snowbros_flipscreen_w(uint8_t data);
|
||||
|
Loading…
Reference in New Issue
Block a user