summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2019-12-15 23:44:43 -0500
committer AJR <ajrhacker@users.noreply.github.com>2019-12-15 23:44:45 -0500
commit6f4c97a8a6c732a8c2412d044b76c7b855d28145 (patch)
treed6b09be4e8cda0d0fd84ee5290878e13fc056e8d
parent033e54d938b8f63682ee6eb06e8cb1b79eb56423 (diff)
bbl380: Identify MCU and note bad dump (nw)
-rw-r--r--src/mame/drivers/bbl380.cpp21
1 files changed, 16 insertions, 5 deletions
diff --git a/src/mame/drivers/bbl380.cpp b/src/mame/drivers/bbl380.cpp
index 794b3be9299..e75842a5332 100644
--- a/src/mame/drivers/bbl380.cpp
+++ b/src/mame/drivers/bbl380.cpp
@@ -4,10 +4,9 @@
// the BBL 380 - 180 in 1 features similar menus / presentation / games to the 'ORB Gaming Retro Arcade Pocket Handheld Games Console with 153 Games' (eg has Matchstick Man, Gang Tie III etc.)
// https://www.youtube.com/watch?v=NacY2WHd-CY
-// contains 6502 code
-
#include "emu.h"
+#include "cpu/m6502/st2205u.h"
#include "screen.h"
#include "emupal.h"
#include "speaker.h"
@@ -17,6 +16,7 @@ class bbl380_state : public driver_device
public:
bbl380_state(const machine_config &mconfig, device_type type, const char *tag) :
driver_device(mconfig, type, tag),
+ m_maincpu(*this, "maincpu"),
m_palette(*this, "palette"),
m_screen(*this, "screen")
{ }
@@ -29,6 +29,9 @@ private:
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void bbl380_map(address_map &map);
+
+ required_device<st2xxx_device> m_maincpu;
required_device<palette_device> m_palette;
required_device<screen_device> m_screen;
};
@@ -46,14 +49,20 @@ void bbl380_state::machine_reset()
{
}
+void bbl380_state::bbl380_map(address_map &map)
+{
+ map(0x000000, 0x3fffff).rom().region("maincpu", 0); // not correct
+}
+
static INPUT_PORTS_START( bbl380 )
INPUT_PORTS_END
void bbl380_state::bbl380(machine_config &config)
{
- // unknown CPU, 6502 based
+ ST2205U(config, m_maincpu, 8000000); // unknown clock; type guessed
+ m_maincpu->set_addrmap(AS_DATA, &bbl380_state::bbl380_map);
- SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ SCREEN(config, m_screen, SCREEN_TYPE_LCD); // RGB LCD
m_screen->set_refresh_hz(60);
m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
m_screen->set_size(64*8, 32*8);
@@ -66,7 +75,9 @@ void bbl380_state::bbl380(machine_config &config)
ROM_START( bbl380 )
ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASEFF )
- ROM_LOAD( "bbl 380 180 in 1.bin", 0x000000, 0x400000, CRC(146c88da) SHA1(7f18526a6d8cf991f86febce3418d35aac9f49ad) )
+ ROM_LOAD( "st2205u_otp.bin", 0x000000, 0x004000, NO_DUMP ) // internal OTPROM BIOS
+ ROM_LOAD( "bbl 380 180 in 1.bin", 0x000000, 0x400000, CRC(146c88da) SHA1(7f18526a6d8cf991f86febce3418d35aac9f49ad) BAD_DUMP )
+ // 0x0022XX, 0x0026XX, 0x002AXX, 0x002CXX, 0x002DXX, 0x0031XX, 0x0036XX, etc. should not be FF fill
ROM_END
CONS( 200?, bbl380, 0, 0, bbl380, bbl380, bbl380_state, empty_init, "BaoBaoLong", "BBL380 - 180 in 1", MACHINE_IS_SKELETON )