kill duplicate Sega Beena driver, merge content with existing one (nw)

This commit is contained in:
DavidHaywood 2019-03-20 16:35:40 +00:00
parent e7cfd6cf8b
commit abd9a7ab8c
6 changed files with 67 additions and 108 deletions

View file

@ -1,18 +1,29 @@
<?xml version="1.0"?>
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
<softwarelist name="sega_beena_cart" description="Sega Beena Cartridges">
<!-- you must byteswap ROMs to see text, due to endian? -->
<software name="fpc" supported="no">
<description>Fresh Pretty Cure</description> <!-- is this the correct title? -->
<software name="frpc" supported="no">
<description>Issho ni Henshin Fresh Pretty Cure</description>
<year>2009</year>
<publisher>Sega</publisher>
<part name="cart" interface="sega_beena_cart">
<dataarea name="rom" size="0x800000">
<rom name="beena.bin" size="0x800000" crc="afa3466c" sha1="b49914f97db95f611489487f558d13d7cceb3299" offset="0" />
<dataarea name="rom" size="0x800000" width="32" endianness="big">
<rom loadflag="load16_word_swap" name="beena.bin" size="0x800000" crc="afa3466c" sha1="b49914f97db95f611489487f558d13d7cceb3299" offset="0" />
</dataarea>
<dataarea name="pages" size="0x2000000"> <!-- book pages -->
<rom name="0 - 0001.png" size="0x1ca26ec" crc="d8e18a54" sha1="887a96931bf622cb673f2550323ad3923eff337e" offset="0" />
<rom name="0 - 0002.png" size="0x1e37a3d" crc="62ae3535" sha1="d8f6c19c466715df5a568ac7cac8dacb53f2e04a" offset="0" />
<rom name="0 - 0003.png" size="0x1ce4f16" crc="fe6c72d9" sha1="2c4412eb518fbac2e8519c87e53270d960ecab53" offset="0" />
<rom name="0 - 0004.png" size="0x19a864d" crc="edede3ea" sha1="81914894358c74064aa5f9e980ac37f7140f80c3" offset="0" />
<rom name="0 - 0005.png" size="0x18998f4" crc="16837cc0" sha1="eb86b2943cf603a63cd5b94faa0d06ee8a3139d6" offset="0" />
<rom name="0 - 0006.png" size="0x195b7e5" crc="3e307e6d" sha1="23ed9ab2a4122d7cb33d8d6174ca901b88647b4d" offset="0" />
<rom name="0 - 0007.png" size="0x195df07" crc="efccbb5b" sha1="83de26d52cb6578d8323551a289223c8a305e37d" offset="0" />
<rom name="0 - 0008.png" size="0x18a9dd8" crc="7455ebb2" sha1="34576eee067534535cda838a9e94794e2cfee585" offset="0" />
<rom name="0 - 0009.png" size="0x17a5c57" crc="59ead843" sha1="29c4cd7929cfd68f41d65024ee5ca3cc62fa4a8b" offset="0" />
<rom name="0 - 0010.png" size="0x186546b" crc="6d3d8c91" sha1="9909322c09277ddd306f10f9a04a897b0fe74961" offset="0" />
<rom name="0 - 0011.png" size="0x179d3a8" crc="c3911254" sha1="2d2932e97a0b20a9b5e5fd78a3bbad0f1e146813" offset="0" />
<rom name="0 - 0012.png" size="0x187a9df" crc="f1cdc95d" sha1="aa926c9360edcecdaa3a9ce1b5e17ee61048cee4" offset="0" />
</dataarea>
</part>
</software>
</softwarelist>

View file

@ -3040,7 +3040,6 @@ files {
createMESSProjects(_target, _subtarget, "segacons")
files {
MAME_DIR .. "src/mame/drivers/apbeena.cpp",
MAME_DIR .. "src/mame/drivers/dccons.cpp",
MAME_DIR .. "src/mame/includes/dccons.h",
MAME_DIR .. "src/mame/machine/dccons.cpp",

View file

@ -1,85 +0,0 @@
// license:BSD-3-Clause
// copyright-holders:R. Belmont
/***************************************************************************
apbeena.cpp
Skeleton driver for the Sega Advanced Pico BEENA
H/W is custom Sega SoC with ARM7TDMI core at 81 MHz.
TODO:
Everything!
Needs the internal BIOS dumped.
***************************************************************************/
#include "emu.h"
#include "cpu/arm7/arm7.h"
class beena_state : public driver_device
{
public:
beena_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
m_maincpu(*this, "arm7")
{ }
void beena(machine_config &config);
private:
void machine_start() override;
void machine_reset() override;
void beena_arm7_map(address_map &map);
required_device<arm7_cpu_device> m_maincpu;
};
void beena_state::beena_arm7_map(address_map &map)
{
map(0x00000000, 0x000001ff).rom().region("cart", 0);
map(0x80000000, 0x807fffff).rom().region("cart", 0);
}
static INPUT_PORTS_START( beena )
INPUT_PORTS_END
void beena_state::machine_reset()
{
}
void beena_state::machine_start()
{
}
void beena_state::beena(machine_config &config)
{
ARM7_BE(config, m_maincpu, 81'000'000);
m_maincpu->set_addrmap(AS_PROGRAM, &beena_state::beena_arm7_map);
}
ROM_START( apb_frpc )
ROM_REGION32_BE( 0x80000, "bios", 0 ) // SoC internal BIOS
ROM_LOAD16_WORD_SWAP( "beenabios.bin", 0x000000, 0x080000, NO_DUMP )
ROM_REGION32_BE( 0x800000, "cart", 0 ) // cartridge ROM
ROM_LOAD16_WORD_SWAP( "freshprettycure.bin", 0x000000, 0x800000, CRC(afa3466c) SHA1(b49914f97db95f611489487f558d13d7cceb3299) )
ROM_REGION( 0x2000000, "pages", 0 ) // book pages
ROM_LOAD( "0 - 0010.png", 0x000000, 0x186546b, CRC(6d3d8c91) SHA1(9909322c09277ddd306f10f9a04a897b0fe74961) )
ROM_LOAD( "0 - 0011.png", 0x000000, 0x179d3a8, CRC(c3911254) SHA1(2d2932e97a0b20a9b5e5fd78a3bbad0f1e146813) )
ROM_LOAD( "0 - 0005.png", 0x000000, 0x18998f4, CRC(16837cc0) SHA1(eb86b2943cf603a63cd5b94faa0d06ee8a3139d6) )
ROM_LOAD( "0 - 0007.png", 0x000000, 0x195df07, CRC(efccbb5b) SHA1(83de26d52cb6578d8323551a289223c8a305e37d) )
ROM_LOAD( "0 - 0008.png", 0x000000, 0x18a9dd8, CRC(7455ebb2) SHA1(34576eee067534535cda838a9e94794e2cfee585) )
ROM_LOAD( "0 - 0002.png", 0x000000, 0x1e37a3d, CRC(62ae3535) SHA1(d8f6c19c466715df5a568ac7cac8dacb53f2e04a) )
ROM_LOAD( "0 - 0004.png", 0x000000, 0x19a864d, CRC(edede3ea) SHA1(81914894358c74064aa5f9e980ac37f7140f80c3) )
ROM_LOAD( "0 - 0003.png", 0x000000, 0x1ce4f16, CRC(fe6c72d9) SHA1(2c4412eb518fbac2e8519c87e53270d960ecab53) )
ROM_LOAD( "0 - 0009.png", 0x000000, 0x17a5c57, CRC(59ead843) SHA1(29c4cd7929cfd68f41d65024ee5ca3cc62fa4a8b) )
ROM_LOAD( "0 - 0006.png", 0x000000, 0x195b7e5, CRC(3e307e6d) SHA1(23ed9ab2a4122d7cb33d8d6174ca901b88647b4d) )
ROM_LOAD( "0 - 0012.png", 0x000000, 0x187a9df, CRC(f1cdc95d) SHA1(aa926c9360edcecdaa3a9ce1b5e17ee61048cee4) )
ROM_LOAD( "0 - 0001.png", 0x000000, 0x1ca26ec, CRC(d8e18a54) SHA1(887a96931bf622cb673f2550323ad3923eff337e) )
ROM_END
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS
CONS( 2009, apb_frpc, 0, 0, beena, beena, beena_state, empty_init, "Sega", "Advanced Pico BEENA: Issho ni Henshin Fresh Pretty Cure", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)

View file

@ -1,36 +1,46 @@
// license:BSD-3-Clause
// copyright-holders:David Haywood
// copyright-holders:R. Belmont
/******************************************************************************
Sega Beena
non-video 'book' based learning system, like LeapPad etc.
apbeena.cpp
unknown CPU type (inside Sega custom?)
Skeleton driver for the Sega Advanced Pico BEENA
H/W is custom Sega SoC with ARM7TDMI core at 81 MHz.
TODO:
Everything!
Needs the internal BIOS dumped.
Component list / PCB diagram
cartridge ROM has 'edinburgh' in the header, maybe a system codename?
ROM is also full of OGG files containing the string 'Encoded with Speex speex-1.0.4'
as well as .mid files for music
TODO: component list!
*******************************************************************************/
#include "emu.h"
#include "bus/generic/slot.h"
#include "bus/generic/carts.h"
#include "cpu/arm7/arm7.h"
#include "softlist.h"
#include "speaker.h"
#include "screen.h"
class sega_beena_state : public driver_device
{
public:
sega_beena_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag)
, m_maincpu(*this, "arm7")
, m_cart(*this, "cartslot")
, m_cart_region(nullptr)
, m_bank(*this, "cartbank")
{ }
void sega_beena(machine_config &config);
@ -39,12 +49,24 @@ private:
virtual void machine_start() override;
virtual void machine_reset() override;
uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
DECLARE_DEVICE_IMAGE_LOAD_MEMBER(cart);
void beena_arm7_map(address_map &map);
required_device<arm7_cpu_device> m_maincpu;
required_device<generic_slot_device> m_cart;
memory_region *m_cart_region;
optional_memory_bank m_bank;
};
void sega_beena_state::beena_arm7_map(address_map &map)
{
map(0x00000000, 0x000001ff).rom().bankr("cartbank");
map(0x80000000, 0x807fffff).rom().bankr("cartbank");
}
void sega_beena_state::machine_start()
{
// if there's a cart, override the standard mapping
@ -52,6 +74,9 @@ void sega_beena_state::machine_start()
{
std::string region_tag;
m_cart_region = memregion(region_tag.assign(m_cart->tag()).append(GENERIC_ROM_REGION_TAG).c_str());
m_bank->configure_entries(0, (m_cart_region->bytes() + 0x7fffff) / 0x800000, m_cart_region->base(), 0x800000);
m_bank->set_entry(0);
}
}
@ -66,6 +91,7 @@ DEVICE_IMAGE_LOAD_MEMBER(sega_beena_state, cart)
m_cart->rom_alloc(size, GENERIC_ROM16_WIDTH, ENDIANNESS_LITTLE);
m_cart->common_load_rom(m_cart->get_rom_base(), size, "rom");
return image_init_result::PASS;
}
@ -73,11 +99,22 @@ static INPUT_PORTS_START( sega_beena )
INPUT_PORTS_END
uint32_t sega_beena_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
return 0;
}
void sega_beena_state::sega_beena(machine_config &config)
{
// unknown CPU
ARM7_BE(config, m_maincpu, 81'000'000);
m_maincpu->set_addrmap(AS_PROGRAM, &sega_beena_state::beena_arm7_map);
// no screen
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
screen.set_refresh_hz(60);
screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
screen.set_size(640, 480);
screen.set_visarea(0, 640-1, 0, 480-1);
screen.set_screen_update(FUNC(sega_beena_state::screen_update));
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
@ -85,15 +122,16 @@ void sega_beena_state::sega_beena(machine_config &config)
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "sega_beena_cart");
m_cart->set_width(GENERIC_ROM16_WIDTH);
m_cart->set_device_load(device_image_load_delegate(&sega_beena_state::device_image_load_cart, this));
m_cart->set_must_be_loaded(true);
SOFTWARE_LIST(config, "cart_list").set_original("sega_beena_cart");
}
ROM_START( beena )
ROM_REGION( 0x100000, "maincpu", ROMREGION_ERASEFF )
// no BIOS or internal to CPU
ROM_REGION32_BE( 0x80000, "bios", 0 ) // SoC internal BIOS
ROM_LOAD16_WORD_SWAP( "beenabios.bin", 0x000000, 0x080000, NO_DUMP )
ROM_END
// year, name, parent, compat, machine, input, class, init, company, fullname, flags
CONS( 200?, beena, 0, 0, sega_beena, sega_beena, sega_beena_state, empty_init, "Sega", "Beena", MACHINE_IS_SKELETON )
CONS( 2009, beena, 0, 0, sega_beena, sega_beena, sega_beena_state, empty_init, "Sega", "Advanced Pico BEENA", MACHINE_IS_SKELETON )

View file

@ -1292,9 +1292,6 @@ spcpostn // (c) 1986 Sega / Nasco"
@source:anzterm.cpp
anzterm // Burroughs EF315-I220
@source:apbeena.cpp
apb_frpc
@source:apc.cpp
apc //

View file

@ -52,7 +52,6 @@ amstr_pc.cpp
amstrad.cpp
amust.cpp
anzterm.cpp
apbeena.cpp
apc.cpp
apexc.cpp
apf.cpp