mirror of
https://github.com/mamedev/mame.git
synced 2024-11-16 07:48:32 +01:00
kill duplicate Sega Beena driver, merge content with existing one (nw)
This commit is contained in:
parent
e7cfd6cf8b
commit
abd9a7ab8c
6 changed files with 67 additions and 108 deletions
|
@ -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? -->
|
||||
<!-- you must byteswap ROMs to see text, due to endian? -->
|
||||
<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>
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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)
|
|
@ -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 )
|
||||
|
|
|
@ -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 //
|
||||
|
||||
|
|
|
@ -52,7 +52,6 @@ amstr_pc.cpp
|
|||
amstrad.cpp
|
||||
amust.cpp
|
||||
anzterm.cpp
|
||||
apbeena.cpp
|
||||
apc.cpp
|
||||
apexc.cpp
|
||||
apf.cpp
|
||||
|
|
Loading…
Reference in a new issue