New systems marked not working

------------------------------
Bingo Planet (Rev C) (M1 Satellite board) [Hammy]
This commit is contained in:
Ivan Vangelista 2024-02-17 09:14:55 +01:00
parent 4176c1bcf9
commit a8274cfed5
2 changed files with 50 additions and 27 deletions

View File

@ -40024,10 +40024,11 @@ titlefj // 1993.03 Title Fight (Japan)
titlefu // 1993.04 Title Fight (US)
@source:sega/segasm1.cpp
tinkerbl // (c) 1990 Sega
bingplnt // (c) 1997 Sega
bingpty // (c) 1994 Sega
blicks // (c) 1991 Sega
carboule // (c) 1992 Sega
bingpty // (c) 1994 Sega
tinkerbl // (c) 1990 Sega
@source:sega/segasp.cpp
aminosan // 2010.?? Aminosan (satellite)

View File

@ -2,7 +2,7 @@
// copyright-holders:R. Belmont, David Haywood
/************************************************************************************************************
Sega System M1 medal games board (834-7795 standlone, 837-7571 networked)
Sega System M1 medal games board (834-7795 standalone, 837-7571 networked)
68000 - main CPU
Z80 - sound CPU
@ -21,7 +21,7 @@
TODO:
- Hopper
- tinkerbl, blicks: throws with "RAM data is BAD" at each soft reset, EEPROM?
- Bingo Party puts up a message about ROM version mismatch with the RAM and says to press the reset switch.
- Bingo Party and Bingo Planet put up a message about ROM version mismatch with the RAM and say to press the reset switch.
However, when this is done, the code simply locks up (BRA to itself) and doesn't initialize the RAM.
- Verify sound latch locations on Tinker Bell vs. the comms games
@ -41,20 +41,24 @@
************************************************************************************************************/
#include "emu.h"
#include "315_5296.h"
#include "segaic24.h"
#include "cpu/m68000/m68000.h"
#include "cpu/z80/z80.h"
#include "segaic24.h"
#include "315_5296.h"
#include "machine/gen_latch.h"
#include "machine/i8251.h"
#include "machine/mb8421.h"
#include "machine/nvram.h"
#include "machine/timer.h"
#include "sound/ymopn.h"
#include "emupal.h"
#include "screen.h"
#include "speaker.h"
namespace {
class systemm1_state : public driver_device
@ -72,14 +76,17 @@ public:
, m_ym(*this, "ym3438")
, m_io1(*this, "io1")
, m_io2(*this, "io2")
, m_soundlatch(*this, "soundlatch")
, m_soundlatch2(*this, "soundlatch2")
, m_soundlatch(*this, "soundlatch%u", 1U)
, m_soundbank(*this, "soundbank")
{
}
void m1base(machine_config &config);
void m1comm(machine_config &config);
protected:
virtual void machine_start() override;
private:
u32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
@ -98,10 +105,8 @@ private:
required_device<palette_device> m_palette;
required_device<ym3438_device> m_ym;
required_device<sega_315_5296_device> m_io1, m_io2;
required_device<generic_latch_8_device> m_soundlatch;
required_device<generic_latch_8_device> m_soundlatch2;
void machine_start() override;
required_device_array<generic_latch_8_device, 2> m_soundlatch;
required_memory_bank m_soundbank;
u16 m_paletteram[0x4000 / sizeof(u16)];
@ -245,7 +250,7 @@ void systemm1_state::mem_map(address_map &map)
map(0xe00000, 0xe0003f).rw(m_io1, FUNC(sega_315_5296_device::read), FUNC(sega_315_5296_device::write)).umask16(0x00ff);
map(0xe40000, 0xe40001).portr("DIP1");
map(0xe40005, 0xe40005).r(m_soundlatch2, FUNC(generic_latch_8_device::read)).w(m_soundlatch, FUNC(generic_latch_8_device::write));
map(0xe40005, 0xe40005).r(m_soundlatch[1], FUNC(generic_latch_8_device::read)).w(m_soundlatch[0], FUNC(generic_latch_8_device::write));
map(0xe80000, 0xe8003f).rw(m_io2, FUNC(sega_315_5296_device::read), FUNC(sega_315_5296_device::write)).umask16(0x00ff);
map(0xf00000, 0xf03fff).mirror(0x0fc000).ram().share("nvram");
@ -266,7 +271,7 @@ void systemm1_state::mem_comm_map(address_map &map)
void systemm1_state::z80_map(address_map &map)
{
map(0x0000, 0x9fff).rom().region("soundcpu", 0);
map(0xa000, 0xbfff).bankr("soundbank");
map(0xa000, 0xbfff).bankr(m_soundbank);
map(0xe000, 0xffff).ram();
}
@ -275,17 +280,19 @@ void systemm1_state::z80_io_map(address_map &map)
map.global_mask(0xff);
map(0x80, 0x83).mirror(0x0c).rw(m_ym, FUNC(ym3438_device::read), FUNC(ym3438_device::write));
map(0xa0, 0xa0).w(FUNC(systemm1_state::sound_bank_w));
map(0xc0, 0xc0).r(m_soundlatch, FUNC(generic_latch_8_device::read)).w(m_soundlatch2, FUNC(generic_latch_8_device::write));
map(0xc0, 0xc0).r(m_soundlatch[0], FUNC(generic_latch_8_device::read)).w(m_soundlatch[1], FUNC(generic_latch_8_device::write));
}
void systemm1_state::machine_start()
{
membank("soundbank")->configure_entries(0x00, 0x10, memregion("soundcpu")->base(), 0x2000);
m_soundbank->configure_entries(0x00, 0x10, memregion("soundcpu")->base(), 0x2000);
save_item(NAME(m_paletteram));
}
void systemm1_state::sound_bank_w(u8 data)
{
membank("soundbank")->set_entry(data & 0x0f);
m_soundbank->set_entry(data & 0x0f);
}
void systemm1_state::comm_map(address_map &map)
@ -625,11 +632,11 @@ void systemm1_state::m1base(machine_config &config)
SEGA_315_5296(config, m_io2, XTAL(16'000'000));
GENERIC_LATCH_8(config, m_soundlatch);
m_soundlatch->data_pending_callback().set_inputline(m_soundcpu, INPUT_LINE_NMI);
m_soundlatch->set_separate_acknowledge(false);
GENERIC_LATCH_8(config, m_soundlatch[0]);
m_soundlatch[0]->data_pending_callback().set_inputline(m_soundcpu, INPUT_LINE_NMI);
m_soundlatch[0]->set_separate_acknowledge(false);
GENERIC_LATCH_8(config, m_soundlatch2);
GENERIC_LATCH_8(config, m_soundlatch[1]);
}
void systemm1_state::m1comm(machine_config &config)
@ -641,7 +648,7 @@ void systemm1_state::m1comm(machine_config &config)
Z80(config, m_commcpu, 4'000'000); // unknown clock
m_commcpu->set_addrmap(AS_PROGRAM, &systemm1_state::comm_map);
I8251(config, "uart", 4000000); // unknown clock
I8251(config, "uart", 4'000'000); // unknown clock
mb8421_device &dpram(MB8421(config, "dpram"));
dpram.intl_callback().set_inputline("m1comm", 0);
@ -677,25 +684,39 @@ ROM_START( blicks )
ROM_END
ROM_START( bingpty ) // 1994/05/01 string
ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
ROM_REGION( 0x100000, "maincpu", 0 ) // 68000 code
ROM_LOAD16_BYTE( "epr-16648b.bin", 0x00000, 0x20000, CRC(e4fceb4c) SHA1(0a248bb328d2f6d72d540baefbe62838f4b76585) )
ROM_LOAD16_BYTE( "epr-16649b.bin", 0x00001, 0x20000, CRC(736d8bbd) SHA1(c359ad513d4a7693cbb1a27ce26f89849e894d05) )
ROM_REGION( 0x20000, "soundcpu", 0 ) /* Z80 Code */
ROM_REGION( 0x20000, "soundcpu", 0 ) // Z80 code
ROM_LOAD( "epr-14845.bin", 0x00000, 0x20000, CRC(90d47101) SHA1(7bc002c104e3dbde1986aaec54112d5658eab523) )
ROM_REGION( 0x8000, "m1comm", 0 ) /* Z80 Code */
ROM_REGION( 0x8000, "m1comm", 0 ) // Z80 code
ROM_LOAD( "epr-14221a.bin", 0x00000, 0x8000, CRC(a13e67a4) SHA1(4cd269c7f04a64ae7806c8784f86bf6553a25d85) )
// dumps of the X-Board part, and the LINK PCB are missing.
ROM_END
ROM_START( bingplnt ) // 1997/06/30 string
ROM_REGION( 0x100000, "maincpu", 0 ) // 68000 code
ROM_LOAD16_BYTE( "epr-19373c.ic8", 0x00000, 0x40000, CRC(965e5dba) SHA1(82eab3261ad610a43aa06206d6b44b6fe4aeb9d8) )
ROM_LOAD16_BYTE( "epr-19374c.ic7", 0x00001, 0x40000, CRC(ad305112) SHA1(8a33cf719074875c96a0e50db2ab7c7b6223924d) )
ROM_REGION( 0x20000, "soundcpu", 0 ) // Z80 code
ROM_LOAD( "epr-14845.bin", 0x00000, 0x20000, CRC(90d47101) SHA1(7bc002c104e3dbde1986aaec54112d5658eab523) )
ROM_REGION( 0x8000, "m1comm", 0 ) // Z80 code
ROM_LOAD( "epr-14221a.bin", 0x00000, 0x8000, CRC(a13e67a4) SHA1(4cd269c7f04a64ae7806c8784f86bf6553a25d85) )
// dumps of the X-Board part, and the LINK PCB are missing.
ROM_END
ROM_START( carboule ) // 1992.01.31 string
ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
ROM_REGION( 0x100000, "maincpu", 0 ) // 68000 code
ROM_LOAD16_BYTE( "epr-14427.ic8", 0x00000, 0x40000, CRC(2d904fc6) SHA1(7062f47d77d09906420118c85e1cb565bec345a7) )
ROM_LOAD16_BYTE( "epr-14428.ic7", 0x00001, 0x40000, CRC(97a317f4) SHA1(19bc4cf6b6c580caa44f36c929b445ed94b2d9eb) )
ROM_REGION( 0x20000, "soundcpu", 0 ) /* Z80 Code */
ROM_REGION( 0x20000, "soundcpu", 0 ) // Z80 code
ROM_LOAD( "epr-14429.ic104", 0x00000, 0x20000, CRC(1ff8262d) SHA1(fb90bd877b2dc65eb3e5495d6e21dee1f871fb44) )
ROM_REGION( 0x8000, "m1comm", 0 )
@ -714,4 +735,5 @@ GAME(1990, blicks, 0, m1base, blicks, systemm1_state, empty_init, ROT0, "Seg
// M1 comm multi-board games
GAME(1994, bingpty, 0, m1comm, bingpty, systemm1_state, empty_init, ROT0, "Sega", "Bingo Party Multicart (Rev B) (M1 Satellite board)", MACHINE_NOT_WORKING)
GAME(1997, bingplnt, 0, m1comm, bingpty, systemm1_state, empty_init, ROT0, "Sega", "Bingo Planet (Rev C) (M1 Satellite board)", MACHINE_NOT_WORKING) // title inferred from date, may be wrong
GAME(1992, carboule, 0, m1comm, bingpty, systemm1_state, empty_init, ROT0, "Sega", "Caribbean Boule (M1 Satellite board)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)