summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author Ivan Vangelista <mesgnet@yahoo.it>2026-05-22 18:35:18 +0200
committer Ivan Vangelista <mesgnet@yahoo.it>2026-05-22 18:35:18 +0200
commit94dbe503e69d2b38bafafaaf7d62ca85bcd4d93e (patch)
treef77224e1ec68f83661dd7c500582b452753c9dc5 /src
parent87fb754e40e83079645506b252bc405916da4642 (diff)
New systems marked not working
------------------------------ Ganso Janken Man [Darksoft, TeamEurope] Hello Kitty no Oshiro e Iko [Darksoft, TeamEurope] Itadaki Nyandora Kids [Darksoft, TeamEurope]
Diffstat (limited to 'src')
-rw-r--r--src/mame/mame.lst5
-rw-r--r--src/mame/skeleton/fdek_h8s.cpp109
-rw-r--r--src/mame/skeleton/hkcastle.cpp145
-rw-r--r--src/mame/sunwise/jankmg2.cpp10
4 files changed, 240 insertions, 29 deletions
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index 112bd86bf8f..6c7a4de746a 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -44225,6 +44225,7 @@ fc100
@source:skeleton/fdek_h8s.cpp
battkids
+nyankids
sirekids
@source:skeleton/fk1.cpp
@@ -44278,6 +44279,9 @@ hazl1552
@source:skeleton/hazl1420.cpp
hazl1420
+@source:skeleton/hkcastle.cpp
+hkcastle
+
@source:skeleton/hohnadam.cpp
hohnadam
@@ -45566,6 +45570,7 @@ anoworld
jankenmn
@source:sunwise/jankmg2.cpp
+jankmg
jankmg2
ppresent
diff --git a/src/mame/skeleton/fdek_h8s.cpp b/src/mame/skeleton/fdek_h8s.cpp
index 4b0eb4f333f..9f39a1fc88e 100644
--- a/src/mame/skeleton/fdek_h8s.cpp
+++ b/src/mame/skeleton/fdek_h8s.cpp
@@ -4,30 +4,7 @@
/*
FDEK (Fujidenshi Kogyo) H8-based medal games
-Battle Kids (?) runs on
-FDEK 07001A main PCB + FDEK 06001B CPU riser PCB
-main components:
-
-HDF2367VF33V main CPU with undumped internal ROM (on riser PCB)
-16 MHz XTAL (on riser PCB)
-TODO: square chip with XTAL on main PCB?
-3 push buttons (reset, last, test)
-
---
-
-Siren Kids runs on
-FDEK 0002AB-2A-2 PCB (note that the 0002AB-2A part is on a sticker, so it may
-cover the real PCB model)
-
-HD6412240FA20(H8S/2240) main CPU
-20AKSS5MT XTAL
-CXK5864BSP-10L SRAM
-YMZ280B-F
-16CKSS4JI XTAL
-3x bank of 8 switches (SW1-SW3)
-test push-button
-
-Siren Kids is part of Fuji Denshi’s (FDEK) Kids Series:
+Fuji Denshi’s (FDEK) Kids Series:
1 - サーカスキッズ - Circus Kids
2 - でるでるキッズ - Deru Deru Kids
@@ -56,8 +33,10 @@ These have different mechanics:
#include "emu.h"
+#include "cpu/h8/h83337.h"
#include "cpu/h8/h8s2245.h"
#include "cpu/h8/h8s2357.h"
+#include "cpu/h8500/h8520.h"
#include "sound/ymz280b.h"
#include "speaker.h"
@@ -73,6 +52,7 @@ public:
m_maincpu(*this, "maincpu")
{ }
+ void fdek_h83337(machine_config &config) ATTR_COLD;
void fdek_h8s2240(machine_config &config) ATTR_COLD;
void fdek_h8s2367(machine_config &config) ATTR_COLD;
@@ -80,6 +60,7 @@ private:
required_device<cpu_device> m_maincpu;
void battkids_program_map(address_map &map) ATTR_COLD;
+ void nyankids_program_map(address_map &map) ATTR_COLD;
void sirekids_program_map(address_map &map) ATTR_COLD;
};
@@ -101,6 +82,11 @@ void fdek_h8s_state::sirekids_program_map(address_map &map)
// map(0x600004, 0x600004).r // ?
}
+void fdek_h8s_state::nyankids_program_map(address_map &map)
+{
+ map(0x0000, 0xffff).rom();
+}
+
static INPUT_PORTS_START( battkids )
PORT_START("IN0")
@@ -141,6 +127,19 @@ static INPUT_PORTS_START( battkids )
INPUT_PORTS_END
+void fdek_h8s_state::fdek_h83337(machine_config &config)
+{
+ H83337(config, m_maincpu, 16_MHz_XTAL);
+ m_maincpu->set_addrmap(AS_PROGRAM, &fdek_h8s_state::nyankids_program_map);
+
+ HD6475208(config, "subcpu", 20_MHz_XTAL / 2).set_disable(); // divider not verified, but chip rated for 10 MHz
+
+ // sound hardware
+ SPEAKER(config, "mono").front_center();
+
+ YMZ280B(config, "ymz", 16_MHz_XTAL).add_route(ALL_OUTPUTS, "mono", 1.0);
+}
+
void fdek_h8s_state::fdek_h8s2240(machine_config &config)
{
H8S2241(config, m_maincpu, 20_MHz_XTAL); // TODO: wrong, should be 2240
@@ -163,8 +162,18 @@ void fdek_h8s_state::fdek_h8s2367(machine_config &config)
}
-// believed to be Battle Kids cause it came with its manual
-// reference video: https://www.youtube.com/watch?v=Mvth8x2z_H8
+/*
+believed to be Battle Kids cause it came with its manual
+reference video: https://www.youtube.com/watch?v=Mvth8x2z_H8
+
+FDEK 07001A main PCB + FDEK 06001B CPU riser PCB
+main components:
+
+HDF2367VF33V main CPU with undumped internal ROM (on riser PCB)
+16 MHz XTAL (on riser PCB)
+TODO: square chip with XTAL on main PCB?
+3 push buttons (reset, last, test)
+*/
ROM_START( battkids )
ROM_REGION( 0x60000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD( "internal", 0x00000, 0x60000, NO_DUMP )
@@ -174,7 +183,20 @@ ROM_START( battkids )
ROM_LOAD( "fbk7-0000_00-2.rom1", 0x000000, 0x400000, CRC(71ec966a) SHA1(b21a6fd42084073b5b87ca5d10f4952881c0dfb7) ) // 1xxxxxxxxxxxxxxxxxxxxx = 0xFF
ROM_END
-// reference video: https://www.youtube.com/watch?v=gieP-b1uuus
+/*
+reference video: https://www.youtube.com/watch?v=gieP-b1uuus
+
+FDEK 0002AB-2A-2 PCB (note that the 0002AB-2A part is on a sticker, so it may
+cover the real PCB model)
+
+HD6412240FA20(H8S/2240) main CPU
+20AKSS5MT XTAL
+CXK5864BSP-10L SRAM
+YMZ280B-F
+16CKSS4JI XTAL
+3x bank of 8 switches (SW1-SW3)
+test push-button
+*/
ROM_START( sirekids )
ROM_REGION( 0x20000, "maincpu", 0 )
ROM_LOAD( "fbk5-000000-1.ic20", 0x00000, 0x20000, CRC(4c99dae7) SHA1(702b58cbb657718c0be0768afcc6e027bd6cd029) ) // 1xxxxxxxxxxxxxxxx = 0xFF
@@ -184,8 +206,37 @@ ROM_START( sirekids )
ROM_LOAD( "fbk5-000000-3.ic12", 0x100000, 0x100000, CRC(95924aee) SHA1(ff0ceb2a684b8450b6b4f62277ecb8297c120212) )
ROM_END
+/*
+reference video: https://www.youtube.com/watch?v=eKAz_q5HOKc
+
+FDEK 01001B PCB
+
+HD64F3337CP16 (H8/3337) main CPU
+16AKSS22ET XTAL
+HD6475208P10 (H8/520) sub CPU
+20AKSS20T XTAL
+6264BLSBL RAM
+YMZ280B-F
+16CKSS1KT XTAL
+3x bank of 8 switches (SW1-SW3)
+on / test / off switch
+*/
+ROM_START( nyankids )
+ ROM_REGION( 0x20000, "maincpu", 0 )
+ ROM_LOAD( "internal.ic16", 0x00000, 0x0f000, NO_DUMP ) // used?
+ ROM_LOAD16_WORD_SWAP( "fck6-0200 02-1.ic15", 0x00000, 0x20000, CRC(d53c37a1) SHA1(ffa6fbc223293adca6bacb6053cfa370f5fe0b35) ) // 1xxxxxxxxxxxxxxxx = 0xFF
+
+ ROM_REGION( 0x4000, "subcpu", 0 )
+ ROM_LOAD( "internal.ic4", 0x0000, 0x4000, NO_DUMP )
+
+ ROM_REGION( 0x100000, "ymz", 0 )
+ ROM_LOAD( "fck6-0000 00-3.ic8", 0x00000, 0x80000, CRC(1c14708c) SHA1(4045a2b3571448264bc9d6b4cf790c951e26f88f) )
+ ROM_LOAD( "fck6-0000 00-4.ic10", 0x80000, 0x80000, CRC(95932314) SHA1(2878bbbe4521246d872aeb3566f28635e4bc0881) )
+ROM_END
+
} // anonymous namespace
-GAME( 2006, sirekids, 0, fdek_h8s2240, battkids, fdek_h8s_state, empty_init, ROT0, "FDEK", "Siren Kids", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL )
-GAME( 2007, battkids, 0, fdek_h8s2367, battkids, fdek_h8s_state, empty_init, ROT0, "FDEK", "Battle Kids", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL )
+GAME( 2000, nyankids, 0, fdek_h83337, battkids, fdek_h8s_state, empty_init, ROT0, "FDEK", "Itadaki Nyandora Kids", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL )
+GAME( 2006, sirekids, 0, fdek_h8s2240, battkids, fdek_h8s_state, empty_init, ROT0, "FDEK", "Siren Kids", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL )
+GAME( 2007, battkids, 0, fdek_h8s2367, battkids, fdek_h8s_state, empty_init, ROT0, "FDEK", "Battle Kids", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL )
diff --git a/src/mame/skeleton/hkcastle.cpp b/src/mame/skeleton/hkcastle.cpp
new file mode 100644
index 00000000000..370dea17443
--- /dev/null
+++ b/src/mame/skeleton/hkcastle.cpp
@@ -0,0 +1,145 @@
+// license:BSD-3-Clause
+// copyright-holders:
+
+/*
+ハローキティの お城へいこう (Hello Kitty no Oshiro e Ikō) (Let’s Go to Hello Kitty’s Castle)
+
+CPU-A PCB
+
+Z0840004PSC CPU
+4.0000 MHz XTAL
+LH5116-15 RAM
+NE555P
+2x TMP82C265BF-10 PPI (datasheet describes one as almost equivalent to 2x 8255)
+YM2413 OPL
+OKI M6295 ADPCM
+bank of 8 switches
+4x connector
+*/
+
+
+#include "emu.h"
+
+#include "cpu/z80/z80.h"
+#include "machine/i8255.h"
+#include "sound/okim6295.h"
+#include "sound/ymopl.h"
+
+#include "screen.h"
+#include "speaker.h"
+
+
+namespace {
+
+class hkcastle_state : public driver_device
+{
+public:
+ hkcastle_state(const machine_config &mconfig, device_type type, const char *tag) :
+ driver_device(mconfig, type, tag),
+ m_maincpu(*this, "maincpu")
+ { }
+
+ void hkcastle(machine_config &config) ATTR_COLD;
+
+private:
+ required_device<cpu_device> m_maincpu;
+
+ void program_map(address_map &map) ATTR_COLD;
+ void io_map(address_map &map) ATTR_COLD;
+};
+
+
+void hkcastle_state::program_map(address_map &map)
+{
+ map(0x0000, 0x9fff).rom();
+ map(0xd000, 0xd7ff).ram();
+ // map(0xf000, 0xf000).rw(); // IRQ ack?
+}
+
+void hkcastle_state::io_map(address_map &map)
+{
+ map.unmap_value_high();
+ map.global_mask(0xff);
+}
+
+
+static INPUT_PORTS_START( hkcastle )
+ PORT_START("IN0")
+ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("IN1")
+ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("DSW")
+ PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coinage ) ) PORT_DIPLOCATION("DS1:1,2")
+ PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C ) )
+ PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("DS1:3,4")
+ PORT_DIPSETTING( 0x0c, "Level 1 (simplest)" )
+ PORT_DIPSETTING( 0x08, "Level 2" )
+ PORT_DIPSETTING( 0x04, "Level 3" )
+ PORT_DIPSETTING( 0x00, "Level 4 (most difficult)" )
+ PORT_DIPNAME( 0x10, 0x10, "Demo Mode" ) PORT_DIPLOCATION("DS1:5") // ゲームデモ ?
+ PORT_DIPSETTING( 0x10, "Demo List" ) // デモリ ?
+ PORT_DIPSETTING( 0x00, "Demo Screen" ) // デモナシ ?
+ PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unused ) ) PORT_DIPLOCATION("DS1:6") // the following are unused according to the manual
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) ) PORT_DIPLOCATION("DS1:7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) PORT_DIPLOCATION("DS1:8")
+ PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+INPUT_PORTS_END
+
+
+void hkcastle_state::hkcastle(machine_config &config)
+{
+ Z80(config, m_maincpu, 4_MHz_XTAL);
+ m_maincpu->set_addrmap(AS_PROGRAM, &hkcastle_state::program_map);
+ m_maincpu->set_addrmap(AS_IO, &hkcastle_state::io_map);
+ m_maincpu->set_periodic_int(FUNC(hkcastle_state::irq0_line_hold), attotime::from_hz(60*4)); // TODO: proper IRQs, possibly from the NE555?
+
+ I8255A(config, "ppi0.a"); // first TMP82C265BF-10
+ I8255A(config, "ppi0.b");
+
+ I8255A(config, "ppi1.a"); // second TMP82C265BF-10
+ I8255A(config, "ppi1.b");
+
+ SPEAKER(config, "mono").front_center();
+
+ YM2413(config, "ym", 4_MHz_XTAL).add_route(ALL_OUTPUTS, "mono", 0.5); // absence of divider not verified
+
+ OKIM6295(config, "oki", 4_MHz_XTAL / 4, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.5); // divider and pin 7 not verified
+}
+
+
+ROM_START( hkcastle )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "hkaa.ic26", 0x00000, 0x10000, CRC(e76c28e1) SHA1(de1612ff3cfb361580174b0c6c6ab7ddca69851b) )
+
+ ROM_REGION( 0x40000, "oki", ROMREGION_ERASE00 )
+ ROM_LOAD( "am27c010.ic12", 0x00000, 0x20000, CRC(18d2feb1) SHA1(6e2f57c1deb188ea589b44bcc27bc59299bb7412) )
+ROM_END
+
+} // anonymous namespace
+
+
+GAME( 1998, hkcastle, 0, hkcastle, hkcastle, hkcastle_state, empty_init, ROT0, "I'MAX", "Hello Kitty no Oshiro e Iko", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL ) // date taken from the manual
diff --git a/src/mame/sunwise/jankmg2.cpp b/src/mame/sunwise/jankmg2.cpp
index 56e768ea645..f705295b48b 100644
--- a/src/mame/sunwise/jankmg2.cpp
+++ b/src/mame/sunwise/jankmg2.cpp
@@ -153,6 +153,15 @@ void jankmg2_state::jankmg2(machine_config &config)
}
+ROM_START( jankmg )
+ ROM_REGION( 0x4000, "maincpu", 0 )
+ ROM_LOAD( "gjk1.u17", 0x0000, 0x4000, CRC(61f5656a) SHA1(67de8e9bcd305b8e19b46f788d5925b0eeb0c72b) )
+
+ ROM_REGION( 0x40000, "dac_data", 0 )
+ ROM_LOAD( "gjk2.u13", 0x00000, 0x40000, CRC(36f361ce) SHA1(03f74ac18e5a53ed57485f8d66158f2260437c78) )
+ // 3 more unpopulated ROM spaces at u14, u15 and u16
+ROM_END
+
ROM_START( jankmg2 )
ROM_REGION( 0x4000, "maincpu", 0 )
ROM_LOAD( "gjv1.1.p.u17", 0x0000, 0x4000, CRC(1aa201e7) SHA1(943dff75a46775dd12aed07659dff3d961a58211) )
@@ -174,5 +183,6 @@ ROM_END
} // anonymous namespace
+GAME( 1995, jankmg, 0, jankmg2, jankmg2, jankmg2_state, empty_init, ROT0, "Sunwise", "Ganso Janken Man", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // date according to manual
GAME( 199?, jankmg2, 0, jankmg2, jankmg2, jankmg2_state, empty_init, ROT0, "Sunwise", "Ganso Janken Man 2", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
GAME( 199?, ppresent, 0, jankmg2, jankmg2, jankmg2_state, empty_init, ROT0, "Sunwise", "Pretty Present", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )