diff options
| author | 2026-05-22 18:35:18 +0200 | |
|---|---|---|
| committer | 2026-05-22 18:35:18 +0200 | |
| commit | 94dbe503e69d2b38bafafaaf7d62ca85bcd4d93e (patch) | |
| tree | f77224e1ec68f83661dd7c500582b452753c9dc5 /src | |
| parent | 87fb754e40e83079645506b252bc405916da4642 (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.lst | 5 | ||||
| -rw-r--r-- | src/mame/skeleton/fdek_h8s.cpp | 109 | ||||
| -rw-r--r-- | src/mame/skeleton/hkcastle.cpp | 145 | ||||
| -rw-r--r-- | src/mame/sunwise/jankmg2.cpp | 10 |
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 ) |
