summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/pacman.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/pacman.cpp')
-rw-r--r--src/mame/drivers/pacman.cpp42
1 files changed, 40 insertions, 2 deletions
diff --git a/src/mame/drivers/pacman.cpp b/src/mame/drivers/pacman.cpp
index a12b651567c..2fc3cf84d96 100644
--- a/src/mame/drivers/pacman.cpp
+++ b/src/mame/drivers/pacman.cpp
@@ -655,6 +655,38 @@ READ8_MEMBER(pacman_state::maketrax_special_port3_r)
}
}
+READ8_MEMBER(pacman_state::mbrush_prot_r)
+{
+ uint8_t data = ioport("DSW1")->read() & 0x3f;
+
+ switch (offset)
+ {
+ case 0x00:
+ case 0x04:
+ case 0x07:
+ case 0x0e:
+ case 0x0f:
+ return 0xc0 | data;
+ case 0x40:
+ case 0x41:
+ case 0x47:
+ case 0x49:
+ case 0x4d:
+ case 0x5d:
+ return 0x00;
+ case 0x42:
+ case 0x43:
+ case 0x46:
+ case 0x4c:
+ case 0x50:
+ return 0x02;
+ case 0x7f:
+ return 0x10;
+ }
+
+ return data;
+}
+
READ8_MEMBER(pacman_state::korosuke_special_port2_r)
{
int data = ioport("DSW1")->read();
@@ -6867,6 +6899,12 @@ DRIVER_INIT_MEMBER(pacman_state,maketrax)
save_item(NAME(m_maketrax_counter));
}
+DRIVER_INIT_MEMBER(pacman_state,mbrush)
+{
+ /* set up protection handlers */
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x5080, 0x50ff, read8_delegate(FUNC(pacman_state::mbrush_prot_r),this));
+}
+
void pacman_state::korosuke_rom_decode()
{
uint8_t *rom = memregion("maincpu")->base();
@@ -7351,10 +7389,10 @@ GAME( 1981, maketrxb, crush, maketrax, maketrax, pacman_state, maketrax, ROT
GAME( 1981, korosuke, crush, korosuke, korosuke, pacman_state, korosuke, ROT90, "Alpha Denshi Co. / Kural Electric, Ltd.", "Korosuke Roller (Japan)", MACHINE_SUPPORTS_SAVE ) // ADK considers it a sequel?
GAME( 1981, crushrlf, crush, pacman, maketrax, pacman_state, 0, ROT90, "bootleg", "Crush Roller (Famare SA PCB)", MACHINE_SUPPORTS_SAVE )
GAME( 1981, crushbl, crush, pacman, maketrax, pacman_state, 0, ROT90, "bootleg", "Crush Roller (bootleg set 1)", MACHINE_SUPPORTS_SAVE )
-GAME( 1981, crushbl2, crush, maketrax, mbrush, pacman_state, maketrax, ROT90, "bootleg", "Crush Roller (bootleg set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, crushbl2, crush, maketrax, mbrush, pacman_state, mbrush, ROT90, "bootleg", "Crush Roller (bootleg set 2)", MACHINE_SUPPORTS_SAVE )
GAME( 1981, crushbl3, crush, maketrax, mbrush, pacman_state, maketrax, ROT90, "bootleg", "Crush Roller (bootleg set 3)", MACHINE_SUPPORTS_SAVE )
GAME( 1981, crushs, crush, crushs, crushs, pacman_state, 0, ROT90, "bootleg (Sidam)", "Crush Roller (bootleg set 4)", MACHINE_SUPPORTS_SAVE ) // Sidam PCB, no Sidam text
-GAME( 1981, mbrush, crush, maketrax, mbrush, pacman_state, maketrax, ROT90, "bootleg (Olympia)", "Magic Brush (bootleg of Crush Roller)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, mbrush, crush, maketrax, mbrush, pacman_state, mbrush, ROT90, "bootleg (Olympia)", "Magic Brush (bootleg of Crush Roller)", MACHINE_SUPPORTS_SAVE )
GAME( 1981, paintrlr, crush, pacman, paintrlr, pacman_state, 0, ROT90, "bootleg", "Paint Roller (bootleg of Crush Roller)", MACHINE_SUPPORTS_SAVE )
GAME( 1982, eyes, 0, pacman, eyes, pacman_state, eyes, ROT90, "Techstar (Rock-Ola license)", "Eyes (US set 1)", MACHINE_SUPPORTS_SAVE )