Skip to content

Current Plug + Play PR - added 10 sets, 3 working + 1 software list entry #13875

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 35 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
3a81e4d
added mouse kids
Jun 24, 2025
fab9210
just add a note before I forget
Jun 25, 2025
04173c8
xavix2 - add blue dragon
Jun 25, 2025
1cfde99
a few more sets
Jun 25, 2025
e177736
some better names from AJR
Jun 25, 2025
2bdeb60
use this suggestion instead
Jun 25, 2025
adada72
use suggested title
Jun 26, 2025
5c6e2e1
gave soulbird some inputs (I think it only has the 3 buttons)
Jun 26, 2025
bc0fac0
mark soulbird as a bad dump, there's definitely a problem with some l…
Jun 26, 2025
745f046
replaced bad dump, is playable now
Jun 26, 2025
c74025d
make RAM that is external to the PPU external to the PPU
Jun 26, 2025
48ab2bd
added paintball trainer (gun hookup needs figuring out still)
Jun 26, 2025
a7a2fb6
added Mission Paintball
Jun 27, 2025
efc029b
make the guns work in the paintball games, needs some tweaking still
Jun 27, 2025
7a5334d
tweak inputs promote these 2
Jun 27, 2025
8a2ad62
remember to change the flags
Jun 27, 2025
9d713a4
added the duelmasters cartridge
Jun 27, 2025
1fee2d2
add some ram
Jun 27, 2025
f3e8a51
better Japanese
Jun 27, 2025
50a0cce
Merge branch 'mamedev:master' into 240625
mamehaze Jun 30, 2025
b3a353c
address feedback from previous PR
Jun 30, 2025
286fed6
added US Beyblade
Jun 30, 2025
efe5a40
fix date
Jun 30, 2025
931edd7
added another XaviX2
Jun 30, 2025
5b4d77a
better English name
Jun 30, 2025
253a291
better name again
Jun 30, 2025
5a2ba86
Merge branch 'mamedev:master' into 240625
mamehaze Jun 30, 2025
1579861
added the first dbz
Jul 1, 2025
6b1c789
fixed date
Jul 1, 2025
075f287
added Family Tetris
Jul 1, 2025
fbb9fbb
fix date
Jul 1, 2025
d028506
update a note
Jul 1, 2025
33b0cfd
Merge branch 'mamedev:master' into 240625
mamehaze Jul 2, 2025
151f8bd
Merge branch 'mamedev:master' into 240625
mamehaze Jul 2, 2025
c2cd582
Merge branch 'mamedev:master' into 240625
mamehaze Jul 2, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions hash/duelmast_cart.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
<?xml version="1.0"?>
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
<!--
license:CC0-1.0
-->
<softwarelist name="duelmast_cart" description="Takara Duel Masters: Duel Station cartridges">
<!-- cartridges contain the ROM only, the XaviX CPU and BIOS are in the base unit
***********************************************************************************
-->

<!-- only the single known cart exists for this system -->

<software name="ver1" supported="no">
<description>Duel Masters: Duel Station Ver.1</description>
<year>2003</year>
<publisher>Takara</publisher>
<info name="alt_title" value="デュエルマスターズ デュエルステーション専用カートリッジ Ver.1" />
<part name="cart" interface="ekara_cart">
<dataarea name="rom" size="0x800000">
<rom name="duelmasters_cart_ver1.u1" offset="0x000000" size="0x400000" crc="7ba0d51f" sha1="6227866c732ff0b5c9f5026ebabdf220a6c53cc1"/>
<rom name="duelmasters_cart_ver1.u3" offset="0x400000" size="0x400000" crc="1881fc17" sha1="daf201efac1073e790d94438dc49ac5b65df8d67"/>
</dataarea>
</part>
</software>

</softwarelist>
2 changes: 0 additions & 2 deletions src/devices/video/ppu2c0x_sh6578.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,6 @@ void ppu_sh6578_device::ppu_internal_map(address_map& map)
map(0x0000, 0x1fff).ram();
map(0x2000, 0x27ff).ram();
map(0x2800, 0x7fff).nopr();

map(0x8000, 0xffff).ram(); // machine specific?
}

void ppu_sh6578_device::device_start()
Expand Down
24 changes: 17 additions & 7 deletions src/mame/mame.lst
Original file line number Diff line number Diff line change
Expand Up @@ -35320,20 +35320,22 @@ m82
@source:nintendo/nes_sh6578.cpp
6578cjz1
6578cjz2
ablwikid
bancook
bandgpad
bandggcn
bandgpad
bb6578
cpatrolm
dancmix3
ts_handy11
ablwikid
dgun806
max10in1
maxx5in1
maxx6in1
max10in1
vsmaxx25
mousekid
soulbird
ts_handy11
vsmaxx15
dgun806
vsmaxx25

@source:nintendo/nes_vt02_vt03.cpp
88in1joy
Expand Down Expand Up @@ -46537,6 +46539,7 @@ carlecfg
pvmil8
pvmilfin
pvwwcas
rad_ftet
rad_sinv
rad_tetr
sudelan
Expand Down Expand Up @@ -46772,6 +46775,8 @@ lpetshop
lxairjet
lxspidaj
mattelcs
mpntball
mpntbalt
mylpony
ordentv
pballpup
Expand Down Expand Up @@ -47020,6 +47025,7 @@ shtscore
teleshi
teleship
trkfldch
trkfldchj

@source:tvgames/tvgame.cpp
tvgame
Expand Down Expand Up @@ -47109,6 +47115,7 @@ taikodp
taitons1
taitons2
tak_beyb
tak_beyu
tak_comt
tak_daig
tak_gin
Expand All @@ -47130,11 +47137,14 @@ tvpc_tom

@source:tvgames/xavix2.cpp
ban_db2j
ltv_naru
ban_dbz
ban_bldj
ban_naru
domfitad
dombikec
epo_dabj
epo_dtcj
epo_pabj
epo_sskj

@source:tvgames/xavix_2000.cpp
Expand Down
80 changes: 63 additions & 17 deletions src/mame/nintendo/nes_sh6578.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
#include "screen.h"
#include "speaker.h"
#include "machine/bankdev.h"
#include "machine/nvram.h"
#include "machine/timer.h"

#define LOG_DMA (1U << 1)
Expand All @@ -45,14 +46,23 @@ class nes_sh6578_state : public driver_device
m_screen(*this, "screen"),
m_apu(*this, "nesapu"),
m_timer(*this, "timer"),
m_in(*this, "IN%u", 0U)
m_in(*this, "IN%u", 0U),
m_ext(*this, "EXT")
{ }

void nes_sh6578(machine_config& config);
void nes_sh6578_pal(machine_config& config);

void init_nes_sh6578();

int unknown_random_r()
{
if (!machine().side_effects_disabled())
return machine().rand();
else
return 0;
}

protected:
virtual void machine_start() override ATTR_COLD;
virtual void machine_reset() override ATTR_COLD;
Expand Down Expand Up @@ -128,6 +138,7 @@ class nes_sh6578_state : public driver_device

void rom_map(address_map &map) ATTR_COLD;
void nes_sh6578_map(address_map &map) ATTR_COLD;
void ppu_map(address_map &map);

//uint16_t get_tileaddress(uint8_t x, uint8_t y, bool ishigh);

Expand All @@ -140,6 +151,7 @@ class nes_sh6578_state : public driver_device
uint8_t m_previo;
uint8_t m_iolatch[2];
required_ioport_array<2> m_in;
required_ioport m_ext;
};

class nes_sh6578_abl_wikid_state : public nes_sh6578_state
Expand All @@ -165,18 +177,6 @@ class nes_sh6578_max10in1_state : public nes_sh6578_state
virtual void machine_reset() override ATTR_COLD;
};

class nes_sh6578_cjz_state : public nes_sh6578_state
{
public:
nes_sh6578_cjz_state(const machine_config& mconfig, device_type type, const char* tag) :
nes_sh6578_state(mconfig, type, tag)
{ }

protected:
// TODO, work out the I/O and anything else specific to this machine
virtual uint8_t extio_r() override { return machine().rand(); }
};

uint8_t nes_sh6578_state::bank_r(int bank, uint16_t offset)
{
uint32_t address;
Expand Down Expand Up @@ -444,7 +444,7 @@ void nes_sh6578_abl_wikid_state::io_w(uint8_t data)
uint8_t nes_sh6578_state::extio_r()
{
logerror("%s: extio_r\n", machine().describe_context());
return 0x00;
return m_ext->read();
}

void nes_sh6578_state::extio_w(uint8_t data)
Expand Down Expand Up @@ -535,6 +535,9 @@ static INPUT_PORTS_START(nes_sh6578)

PORT_START("IN1")
PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )

PORT_START("EXT")
PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
INPUT_PORTS_END

static INPUT_PORTS_START(bancook)
Expand All @@ -543,6 +546,23 @@ static INPUT_PORTS_START(bancook)

PORT_START("IN1")
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )

PORT_START("EXT")
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(FUNC(nes_sh6578_state::unknown_random_r))
INPUT_PORTS_END

static INPUT_PORTS_START(soulbird)
PORT_START("IN0")
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )

PORT_START("IN1")
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )

PORT_START("EXT")
PORT_BIT( 0x1f, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON3 )
INPUT_PORTS_END


Expand Down Expand Up @@ -614,6 +634,12 @@ uint32_t nes_sh6578_state::screen_update(screen_device& screen, bitmap_rgb32& bi
return m_ppu->screen_update(screen, bitmap, cliprect);
}

void nes_sh6578_state::ppu_map(address_map &map)
{
map(0x8000, 0xffff).ram().share("nvram"); // machine specific? soulbird seems to expect fc00-fc7f to save at least
}


void nes_sh6578_state::nes_sh6578(machine_config& config)
{
/* basic machine hardware */
Expand All @@ -625,6 +651,7 @@ void nes_sh6578_state::nes_sh6578(machine_config& config)
PPU_SH6578(config, m_ppu, RP2A03_NTSC_XTAL);
m_ppu->set_cpu_tag(m_maincpu);
m_ppu->int_callback().set_inputline(m_maincpu, INPUT_LINE_NMI);
m_ppu->set_addrmap(AS_PROGRAM, &nes_sh6578_state::ppu_map);

/* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
Expand All @@ -637,6 +664,8 @@ void nes_sh6578_state::nes_sh6578(machine_config& config)

TIMER(config, m_timer).configure_generic(FUNC(nes_sh6578_state::timer_expired));

NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1);

/* sound hardware */
SPEAKER(config, "mono").front_center();

Expand Down Expand Up @@ -687,6 +716,11 @@ ROM_START( bancook )
ROM_LOAD( "mx27c8000.ic2", 0x00000, 0x100000, CRC(865bef26) SHA1(82820eac162a2b4b4b5da894df4bfc5521d4f89b) )
ROM_END

ROM_START( soulbird )
ROM_REGION( 0x100000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD( "soulbird.ic1", 0x00000, 0x100000, CRC(307c7f95) SHA1(488ed8de5c22122581e89219889fe4f7e5d5bc96) )
ROM_END

ROM_START( ts_handy11 )
ROM_REGION( 0x100000, "maincpu", 0 )
ROM_LOAD( "tvplaypowercontroller.bin", 0x00000, 0x100000, CRC(9c7fe9ff) SHA1(c872e91ca835b66c9dd3b380e8374b51f12bcae0) ) // 29LV008B
Expand Down Expand Up @@ -752,6 +786,11 @@ ROM_START( dancmix3 )
ROM_LOAD( "e28f008sa.u5", 0x00000, 0x100000, CRC(faf6480c) SHA1(68bf79910e091443aecc7bf256cd5378a04c550e) )
ROM_END

ROM_START( mousekid )
ROM_REGION( 0x100000, "maincpu", 0 )
ROM_LOAD( "mousekid.ic2", 0x00000, 0x100000, CRC(465d5b5a) SHA1(a27f01ccc7b741b51ea4a9e4455dc4cee4420a89) )
ROM_END

} // anonymous namespace


Expand Down Expand Up @@ -786,17 +825,24 @@ CONS( 1997, bandgpad, 0, 0, nes_sh6578, nes_sh6578, nes_sh6578_state, i

CONS( 1997, bandggcn, 0, 0, nes_sh6578, nes_sh6578, nes_sh6578_state, init_nes_sh6578, "Bandai", "Go! Go! Connie-chan! Asobou Mouse", MACHINE_NOT_WORKING )

// uses a mouse and buttons (no keyboard)
// テレビであそぼう! ミッキー&ミニー マウスキッズ
CONS( 1997, mousekid, 0, 0, nes_sh6578, bancook, nes_sh6578_state, init_nes_sh6578, "Tomy", "Terebi de Asobou! Mickey & Minnie Mouse Kids (Japan)", MACHINE_NOT_WORKING )

// おジャ魔女どれみのTVでマジカルクッキング
CONS( 2001, bancook, 0, 0, nes_sh6578, bancook, nes_sh6578_cjz_state, init_nes_sh6578, "Bandai", "Ojamajo Doremi no TV de Magical Cooking (Japan)", MACHINE_NOT_WORKING )
CONS( 2001, bancook, 0, 0, nes_sh6578, bancook, nes_sh6578_state, init_nes_sh6578, "Bandai", "Ojamajo Doremi no TV de Magical Cooking (Japan)", MACHINE_NOT_WORKING )

// there's no SEEPROM, it uses a CR2032 to keep some RAM data alive
CONS( 2001, soulbird, 0, 0, nes_sh6578, soulbird, nes_sh6578_state, init_nes_sh6578, "Bandai", "Hyakujuu Sentai Gaoranger: DX Soul Bird (Japan)", 0 )

CONS( 200?, cpatrolm, 0, 0, nes_sh6578_pal, nes_sh6578, nes_sh6578_state, init_nes_sh6578, "TimeTop", "City Patrolman", MACHINE_NOT_WORKING )

CONS( 200?, bb6578, 0, 0, nes_sh6578, nes_sh6578, nes_sh6578_state, init_nes_sh6578, "DaiDaiXing Electronics", "TV Games Baseball (SH6578 hardware)", MACHINE_NOT_WORKING )

// these don't boot much further than the timetop logo and a splash screen
// 超级知识大富翁 (Chāojí Zhīshì Dà Fùwēng)
CONS( 200?, 6578cjz1, 0, 0, nes_sh6578, nes_sh6578, nes_sh6578_cjz_state, init_nes_sh6578, "TimeTop", "Chaoji Zhishi Da Fuweng 1", MACHINE_NOT_WORKING )
CONS( 200?, 6578cjz2, 0, 0, nes_sh6578, nes_sh6578, nes_sh6578_cjz_state, init_nes_sh6578, "TimeTop", "Chaoji Zhishi Da Fuweng 2", MACHINE_NOT_WORKING )
CONS( 200?, 6578cjz1, 0, 0, nes_sh6578, bancook, nes_sh6578_state, init_nes_sh6578, "TimeTop", "Chaoji Zhishi Da Fuweng 1", MACHINE_NOT_WORKING )
CONS( 200?, 6578cjz2, 0, 0, nes_sh6578, bancook, nes_sh6578_state, init_nes_sh6578, "TimeTop", "Chaoji Zhishi Da Fuweng 2", MACHINE_NOT_WORKING )

// Super Moto 3 https://youtu.be/DR5Y_r6C_qk - has JungleTac copyrights intact, and appears to have the SH6578 versions of the games

Expand Down
2 changes: 2 additions & 0 deletions src/mame/nintendo/vt1682.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6252,6 +6252,8 @@ void vt1682_anpncpc_state::anpncpc(machine_config& config)
m_io->portf_in().set(FUNC(vt1682_anpncpc_state::iof_i2c_r));
m_io->portf_out().set(FUNC(vt1682_anpncpc_state::iof_i2c_w));

// has a GPBA02A-HL011 I/O extender on the keyboard PCB

I2C_24C64(config, m_seeprom);
}

Expand Down
Loading
Loading