From 42ea8bef23c4af5537d8a538101069c320bc62dc Mon Sep 17 00:00:00 2001 From: DavidHaywood <28625134+DavidHaywood@users.noreply.github.com> Date: Mon, 2 Nov 2020 17:45:23 +0000 Subject: [PATCH] - fixed out of bounds access in vt1682_alu.cpp new WORKING machines ----- Plug 'N' Play Rockstar Guitar / Guitar Rock (PAL) [Peter Wilhelmsen, David Haywood, Team Europe] new NOT WORKING clones ----- Zippity (UK) [David Haywood, Team Europe] --- src/mame/drivers/generalplus_gpl32612.cpp | 7 ++++++ src/mame/drivers/spg2xx_shredmjr.cpp | 27 +++++++++++++++++------ src/mame/machine/vt1682_alu.cpp | 7 +----- src/mame/mame.lst | 2 ++ 4 files changed, 30 insertions(+), 13 deletions(-) diff --git a/src/mame/drivers/generalplus_gpl32612.cpp b/src/mame/drivers/generalplus_gpl32612.cpp index 1c9df04d370..4132440e503 100644 --- a/src/mame/drivers/generalplus_gpl32612.cpp +++ b/src/mame/drivers/generalplus_gpl32612.cpp @@ -190,6 +190,11 @@ ROM_START( zippity ) ROM_LOAD( "zippity_mt29f2g08aacwp_2cda8015.bin", 0x0000, 0x10800000, CRC(16248b63) SHA1(3607337588a68052ef5c495b496aa3e0449d3eb6) ) ROM_END +ROM_START( zippityuk ) + ROM_REGION( 0x10800000, "nandrom", ROMREGION_ERASE00 ) + ROM_LOAD( "29f2c08aacwp.u2", 0x0000, 0x10800000, CRC(27d172ae) SHA1(9ade19d7aa28fba13581e6879b39e3a7702260b0) ) +ROM_END + void generalplus_gpl32612_game_state::nand_init(int blocksize, int blocksize_stripped) { uint8_t* rom = memregion("nand")->base(); @@ -241,3 +246,5 @@ CONS( 200?, jak_dchp, 0, 0, gpl32612, gpl32612, generalplus_gp // Might not belong here, SoC is marked GPL32300A instead, but is still ARM based, and has GPNAND strings CONS( 201?, zippity, 0, 0, gpl32612, gpl32612, generalplus_gpl32612_game_state, empty_init, "LeapFrog", "Zippity (US)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING) +// TODO, check if code differs, or just unused areas of the NAND +CONS( 201?, zippityuk, zippity, 0, gpl32612, gpl32612, generalplus_gpl32612_game_state, empty_init, "LeapFrog", "Zippity (UK)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING) diff --git a/src/mame/drivers/spg2xx_shredmjr.cpp b/src/mame/drivers/spg2xx_shredmjr.cpp index f6df4ca0dcb..1ffdcb3f7bd 100644 --- a/src/mame/drivers/spg2xx_shredmjr.cpp +++ b/src/mame/drivers/spg2xx_shredmjr.cpp @@ -203,6 +203,11 @@ ROM_START( taikeegr ) ROM_LOAD16_WORD_SWAP( "taikee_guitar.bin", 0x000000, 0x800000, CRC(8cbe2feb) SHA1(d72e816f259ba6a6260d6bbaf20c5e9b2cf7140b) ) ROM_END +ROM_START( rockstar ) + ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) + ROM_LOAD16_WORD_SWAP( "29gl064.bin", 0x000000, 0x800000, CRC(40de50ff) SHA1(b33ae7a3d32911addf833998d7419f4830be5a07) ) +ROM_END + ROM_START( shredmjr ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) ROM_LOAD16_WORD_SWAP( "shredmasterjr.bin", 0x000000, 0x800000, CRC(95a6dcf1) SHA1(44893cd6ebe6b7f33a73817b72ae7be70c3126dc) ) @@ -221,16 +226,24 @@ ROM_END -// there are multiple versions of this with different songs, was also sold by dreamGEAR as 'Shredmaster Jr.' (different title screen) -// for the UK version the title screen always shows "Guitar Rock", however there are multiple boxes with different titles and song selections. -// ROM is glued on the underside and soldered to the PCB, very difficult to remove without damaging. -CONS( 2007, taikeegr, 0, 0, taikeegrp, taikeegr, shredmjr_game_state, init_taikeegr, "TaiKee", "Rockstar Guitar / Guitar Rock (PAL)", MACHINE_IMPERFECT_TIMING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // timing not quite correct yet -CONS( 2007, shredmjr, taikeegr, 0, shredmjr, taikeegr, shredmjr_game_state, init_taikeegr, "dreamGEAR", "Shredmaster Jr (NTSC)", MACHINE_IMPERFECT_TIMING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // ^ -// doesn't have a Senario logo ingame, but does on box. + +// These were all sold as different products, use a different sets of songs / presentation styles (2D or perspective gameplay, modified titlescreens etc.) +// and sometimes even slightly different hardware, so aren't set as clones of each other + +// box title not confirmed, Guitar Rock on title screen, has Bon Jovi etc. +CONS( 2007, taikeegr, 0, 0, taikeegrp, taikeegr, shredmjr_game_state, init_taikeegr, "TaiKee", "Guitar Rock (PAL)", MACHINE_IMPERFECT_TIMING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // timing not quite correct yet + +// Plug 'N' Play Rockstar Guitar on box, Guitar Rock on title screen, has Manic Street Preachers etc. +CONS( 2007, rockstar, 0, 0, taikeegrp, taikeegr, shredmjr_game_state, init_taikeegr, "Ultimate Products / TaiKee", "Plug 'N' Play Rockstar Guitar / Guitar Rock (PAL)", MACHINE_IMPERFECT_TIMING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // timing not quite correct yet + +// dreamGEAR branded presentation, modified hardware (buttons read in a different way) same song seletion as taikeegr +CONS( 2007, shredmjr, 0, 0, shredmjr, taikeegr, shredmjr_game_state, init_taikeegr, "dreamGEAR", "Shredmaster Jr (NTSC)", MACHINE_IMPERFECT_TIMING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // ^ + +// doesn't have a Senario logo ingame, but does on box. unique song selection CONS( 200?, guitarst, 0, 0, taikeegr, taikeegr, shredmjr_game_state, init_taikeegr, "Senario", "Guitar Star (US, Senario, NTSC)", MACHINE_IMPERFECT_TIMING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // ^ -// this one has a different song selection (same as one in the alt undumped Rockstar Guitar / Guitar Rock. It was sold as a different product, so hasn't been set as a clone. +// This one has the same songs as 'rockstar' but different game style / presentation. // Unit found in Ireland "imported by Cathay Product Sourcing Ltd." on the box, with address in Ireland // ITEM #01109 on instruction sheet, no manufacturer named on either box or instructions CONS( 200?, guitarstp, 0, 0, taikeegrp, guitarstp,shredmjr_game_state, init_taikeegr, "", "Guitar Star (Europe, PAL)", MACHINE_IMPERFECT_TIMING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // ^ diff --git a/src/mame/machine/vt1682_alu.cpp b/src/mame/machine/vt1682_alu.cpp index 5a1956209f7..59ed242e154 100644 --- a/src/mame/machine/vt1682_alu.cpp +++ b/src/mame/machine/vt1682_alu.cpp @@ -283,9 +283,7 @@ void vrt_vt1682_alu_device::alu_oprand_6_mult_w(uint8_t data) m_alu_out[1] = (result >> 8) & 0xff; m_alu_out[2] = (result >> 16) & 0xff; m_alu_out[3] = (result >> 24) & 0xff; - // 4/5 untouched? - m_alu_out[6] = 0x00; - m_alu_out[7] = 0x00; + // 4/5 untouched? or set to 0? } @@ -345,8 +343,5 @@ void vrt_vt1682_alu_device::alu_oprand_6_div_w(uint8_t data) m_alu_out[4] = remainder & 0xff; m_alu_out[5] = (remainder >> 8) & 0xff; - - m_alu_out[6] = 0x00; - m_alu_out[7] = 0x00; } } diff --git a/src/mame/mame.lst b/src/mame/mame.lst index c0a539e02ec..4ed25526608 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -14898,6 +14898,7 @@ jak_dchp jak_ddhp jak_prhp zippity +zippityuk @source:geneve.cpp geneve // 1987 Myarc Geneve 9640 @@ -38336,6 +38337,7 @@ sentx6pd @source:spg2xx_shredmjr.cpp taikeegr // +rockstar shredmjr // guitarst guitarstp