From 9177a1914709c5c4199e6136ecceba2b52e1f696 Mon Sep 17 00:00:00 2001 From: stonedDiscord Date: Thu, 11 Sep 2025 14:17:23 +0200 Subject: [PATCH 1/9] polarstar2 --- src/mame/mame.lst | 1 + src/mame/skeleton/shoken_md06.cpp | 21 +++++++++++++++++++-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 4d506df3e9cd5..3aa16a4fbed12 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -43874,6 +43874,7 @@ shine @source:skeleton/shoken_md06.cpp petitlot +polarstar2 @source:skeleton/si5500.cpp si5500 diff --git a/src/mame/skeleton/shoken_md06.cpp b/src/mame/skeleton/shoken_md06.cpp index 6dbd5e25b0aa0..6de96a6ae7731 100644 --- a/src/mame/skeleton/shoken_md06.cpp +++ b/src/mame/skeleton/shoken_md06.cpp @@ -25,6 +25,7 @@ DIP sheets are available #include "cpu/z80/kl5c80a12.h" #include "machine/msm6242.h" +#include "sound/okim9810.h" #include "emupal.h" #include "screen.h" @@ -42,6 +43,7 @@ class shoken_md06_state : public driver_device { } void petitlot(machine_config &config) ATTR_COLD; + void polarstar(machine_config &config) ATTR_COLD; private: required_device m_maincpu; @@ -145,13 +147,28 @@ void shoken_md06_state::petitlot(machine_config &config) // TODO: sound related ICs aren't present? } +void shoken_md06_state::polarstar(machine_config &config) +{ + petitlot(config); + + okim9810_device &oki(OKIM9810(config, "oki", 16_MHz_XTAL / 12)); + oki.add_route(ALL_OUTPUTS, "mono", 1.0); //divider guessed +} ROM_START( petitlot ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "md06_ver4_1.ic6", 0x00000, 0x10000, CRC(ebc81f10) SHA1(28ac52aeadfbf792da95c01b16fb88f7a5eb1d4e) ) // 1xxxxxxxxxxxxxxx = 0xFF ROM_END -} // anonymous namespace +ROM_START( polarstar2 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "polarstar2_mk04_ver.4.5.ic8", 0x00000, 0x20000, CRC(80d71047) SHA1(4253f0d3273bce22202d34a08f092fa72f7760a0) ) + + ROM_REGION( 0x80000, "oki", 0 ) + ROM_LOAD( "polarstar_mb01_sound-b.ic35", 0x00000, 0x80000, CRC(ef01200e) SHA1(5cd70c9d307302e689aa7903e2d65b0ce50091ca) ) +ROM_END +} // anonymous namespace -GAME( 2001, petitlot, 0, petitlot, petitlot, shoken_md06_state, empty_init, ROT0, "Shoken", "Petit Lot (ver. 4.1)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL ) +GAME( 199?, polarstar2, 0, polarstar, petitlot, shoken_md06_state, empty_init, ROT0, "Shoken", "Polar Star 2 (ver. 4.5)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL ) +GAME( 2001, petitlot, 0, petitlot, petitlot, shoken_md06_state, empty_init, ROT0, "Shoken", "Petit Lot (ver. 4.1)", MACHINE_NO_SOUND_HW | MACHINE_NOT_WORKING | MACHINE_MECHANICAL ) From 84d224be1b81a6e362f754f81f27fb4b741e4eca Mon Sep 17 00:00:00 2001 From: stonedDiscord Date: Thu, 11 Sep 2025 21:40:55 +0200 Subject: [PATCH 2/9] fix date and hash --- src/mame/skeleton/shoken_md06.cpp | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/mame/skeleton/shoken_md06.cpp b/src/mame/skeleton/shoken_md06.cpp index 6de96a6ae7731..967a705da6bb0 100644 --- a/src/mame/skeleton/shoken_md06.cpp +++ b/src/mame/skeleton/shoken_md06.cpp @@ -55,14 +55,18 @@ class shoken_md06_state : public driver_device void shoken_md06_state::program_map(address_map &map) { - map(0x00000, 0x04fff).rom(); + map(0x00000, 0x08fff).rom(); + map(0x09000, 0x0cfff).ram(); map(0xe0000, 0xe3fff).ram(); + map(0xfcc00, 0xfffff).ram(); } void shoken_md06_state::io_map(address_map &map) { map.global_mask(0xff); - map.unmap_value_high(); + map(0x40, 0x40).nopw(); + map(0x80, 0x80).noprw(); + map(0x90, 0x90).noprw(); } @@ -161,14 +165,14 @@ ROM_START( petitlot ) ROM_END ROM_START( polarstar2 ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "polarstar2_mk04_ver.4.5.ic8", 0x00000, 0x20000, CRC(80d71047) SHA1(4253f0d3273bce22202d34a08f092fa72f7760a0) ) + ROM_REGION( 0x20000, "maincpu", 0 ) + ROM_LOAD( "polarstar2_mk04_ver.4.5.ic8", 0x00000, 0x20000, CRC(13a7b9dc) SHA1(64aa5591aa676cbb9e00327ac62209b6854c4416) ) - ROM_REGION( 0x80000, "oki", 0 ) - ROM_LOAD( "polarstar_mb01_sound-b.ic35", 0x00000, 0x80000, CRC(ef01200e) SHA1(5cd70c9d307302e689aa7903e2d65b0ce50091ca) ) + ROM_REGION( 0x100000, "oki", 0 ) + ROM_LOAD( "polarstar_mb01_sound-b.ic35", 0x00000, 0x100000, CRC(606ae52c) SHA1(6a60f4b1c6ac893cafa373c8af7d2c826304f152) ) ROM_END } // anonymous namespace -GAME( 199?, polarstar2, 0, polarstar, petitlot, shoken_md06_state, empty_init, ROT0, "Shoken", "Polar Star 2 (ver. 4.5)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL ) GAME( 2001, petitlot, 0, petitlot, petitlot, shoken_md06_state, empty_init, ROT0, "Shoken", "Petit Lot (ver. 4.1)", MACHINE_NO_SOUND_HW | MACHINE_NOT_WORKING | MACHINE_MECHANICAL ) +GAME( 2010, polarstar2, 0, polarstar, petitlot, shoken_md06_state, empty_init, ROT0, "Shoken", "Polar Star 2 (ver. 4.5)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL ) From 8a7dd1aa08fe675edee9e1a76fa8ebd771926887 Mon Sep 17 00:00:00 2001 From: stonedDiscord Date: Fri, 12 Sep 2025 15:57:44 +0200 Subject: [PATCH 3/9] 09 sent to 3b --- src/mame/skeleton/shoken_md06.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/mame/skeleton/shoken_md06.cpp b/src/mame/skeleton/shoken_md06.cpp index 967a705da6bb0..92767de03f65a 100644 --- a/src/mame/skeleton/shoken_md06.cpp +++ b/src/mame/skeleton/shoken_md06.cpp @@ -66,7 +66,8 @@ void shoken_md06_state::io_map(address_map &map) map.global_mask(0xff); map(0x40, 0x40).nopw(); map(0x80, 0x80).noprw(); - map(0x90, 0x90).noprw(); + + map(0x3b, 0x3b).rw("oki", FUNC(okim9810_device::read), FUNC(okim9810_device::write)); } From 23d241c6946ab89a7cb9e03fe7800fa9c897f314 Mon Sep 17 00:00:00 2001 From: stonedDiscord Date: Wed, 8 Oct 2025 19:25:18 +0200 Subject: [PATCH 4/9] sound io map --- src/mame/skeleton/shoken_md06.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/mame/skeleton/shoken_md06.cpp b/src/mame/skeleton/shoken_md06.cpp index 92767de03f65a..2cfea741d0a92 100644 --- a/src/mame/skeleton/shoken_md06.cpp +++ b/src/mame/skeleton/shoken_md06.cpp @@ -50,6 +50,7 @@ class shoken_md06_state : public driver_device void program_map(address_map &map) ATTR_COLD; void io_map(address_map &map) ATTR_COLD; + void sound_io_map(address_map &map) ATTR_COLD; }; @@ -62,6 +63,13 @@ void shoken_md06_state::program_map(address_map &map) } void shoken_md06_state::io_map(address_map &map) +{ + map.global_mask(0xff); + map(0x40, 0x40).nopw(); + map(0x80, 0x80).noprw(); +} + +void shoken_md06_state::sound_io_map(address_map &map) { map.global_mask(0xff); map(0x40, 0x40).nopw(); @@ -155,6 +163,7 @@ void shoken_md06_state::petitlot(machine_config &config) void shoken_md06_state::polarstar(machine_config &config) { petitlot(config); + m_maincpu->set_addrmap(AS_IO, &shoken_md06_state::sound_io_map); okim9810_device &oki(OKIM9810(config, "oki", 16_MHz_XTAL / 12)); oki.add_route(ALL_OUTPUTS, "mono", 1.0); //divider guessed From bae11e02a7bd4012ffd8711d13b03602a7261d5f Mon Sep 17 00:00:00 2001 From: stonedDiscord Date: Wed, 29 Oct 2025 13:46:31 +0100 Subject: [PATCH 5/9] add docs and merge --- src/mame/skeleton/shoken_md06.cpp | 30 ++++++++++-------------------- 1 file changed, 10 insertions(+), 20 deletions(-) diff --git a/src/mame/skeleton/shoken_md06.cpp b/src/mame/skeleton/shoken_md06.cpp index 2cfea741d0a92..33cda6e87a1e8 100644 --- a/src/mame/skeleton/shoken_md06.cpp +++ b/src/mame/skeleton/shoken_md06.cpp @@ -18,6 +18,13 @@ push-button (reset?) unpopulates spaces marked for MSM9810B and ROM DIP sheets are available + +ポーラスター2 (Polar Star 2) by Showa Giken (Shoken) +'MB-01 MAIN-B' PCB: +KL5C80A12CFP CPU +RTC62423 RTC +push-button (reset?) +16.00000 MHz XTAL */ @@ -65,20 +72,11 @@ void shoken_md06_state::program_map(address_map &map) void shoken_md06_state::io_map(address_map &map) { map.global_mask(0xff); + map(0x3b, 0x3b).rw("oki", FUNC(okim9810_device::read), FUNC(okim9810_device::write)); map(0x40, 0x40).nopw(); map(0x80, 0x80).noprw(); } -void shoken_md06_state::sound_io_map(address_map &map) -{ - map.global_mask(0xff); - map(0x40, 0x40).nopw(); - map(0x80, 0x80).noprw(); - - map(0x3b, 0x3b).rw("oki", FUNC(okim9810_device::read), FUNC(okim9810_device::write)); -} - - static INPUT_PORTS_START( petitlot ) PORT_START("IN0") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) @@ -157,14 +155,6 @@ void shoken_md06_state::petitlot(machine_config &config) // sound hardware SPEAKER(config, "mono").front_center(); - // TODO: sound related ICs aren't present? -} - -void shoken_md06_state::polarstar(machine_config &config) -{ - petitlot(config); - m_maincpu->set_addrmap(AS_IO, &shoken_md06_state::sound_io_map); - okim9810_device &oki(OKIM9810(config, "oki", 16_MHz_XTAL / 12)); oki.add_route(ALL_OUTPUTS, "mono", 1.0); //divider guessed } @@ -184,5 +174,5 @@ ROM_END } // anonymous namespace -GAME( 2001, petitlot, 0, petitlot, petitlot, shoken_md06_state, empty_init, ROT0, "Shoken", "Petit Lot (ver. 4.1)", MACHINE_NO_SOUND_HW | MACHINE_NOT_WORKING | MACHINE_MECHANICAL ) -GAME( 2010, polarstar2, 0, polarstar, petitlot, shoken_md06_state, empty_init, ROT0, "Shoken", "Polar Star 2 (ver. 4.5)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL ) +GAME( 2001, petitlot, 0, petitlot, petitlot, shoken_md06_state, empty_init, ROT0, "Shoken", "Petit Lot (ver. 4.1)", MACHINE_NO_SOUND_HW | MACHINE_NOT_WORKING | MACHINE_MECHANICAL ) +GAME( 2010, polarstar2, 0, petitlot, petitlot, shoken_md06_state, empty_init, ROT0, "Shoken", "Polar Star 2 (ver. 4.5)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL ) From 9b7ae72d882db0d0830a1cd3c5b5f90a716354bc Mon Sep 17 00:00:00 2001 From: stonedDiscord Date: Wed, 29 Oct 2025 15:44:15 +0100 Subject: [PATCH 6/9] oki warning --- src/mame/skeleton/shoken_md06.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/mame/skeleton/shoken_md06.cpp b/src/mame/skeleton/shoken_md06.cpp index 33cda6e87a1e8..fe9c896ed55c4 100644 --- a/src/mame/skeleton/shoken_md06.cpp +++ b/src/mame/skeleton/shoken_md06.cpp @@ -151,6 +151,11 @@ void shoken_md06_state::petitlot(machine_config &config) m_maincpu->set_addrmap(AS_IO, &shoken_md06_state::io_map); RTC62423(config, "rtc", 0); +} + +void shoken_md06_state::polarstar(machine_config &config) +{ + petitlot(config); // sound hardware SPEAKER(config, "mono").front_center(); @@ -174,5 +179,5 @@ ROM_END } // anonymous namespace -GAME( 2001, petitlot, 0, petitlot, petitlot, shoken_md06_state, empty_init, ROT0, "Shoken", "Petit Lot (ver. 4.1)", MACHINE_NO_SOUND_HW | MACHINE_NOT_WORKING | MACHINE_MECHANICAL ) -GAME( 2010, polarstar2, 0, petitlot, petitlot, shoken_md06_state, empty_init, ROT0, "Shoken", "Polar Star 2 (ver. 4.5)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL ) +GAME( 2001, petitlot, 0, petitlot, petitlot, shoken_md06_state, empty_init, ROT0, "Shoken", "Petit Lot (ver. 4.1)", MACHINE_NO_SOUND_HW | MACHINE_NOT_WORKING | MACHINE_MECHANICAL ) +GAME( 2004, polarstar2, 0, polarstar, petitlot, shoken_md06_state, empty_init, ROT0, "Shoken", "Polar Star 2 (ver. 4.5)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL ) From 9677ccab737f0fcccc2082f5bc6a37d7453b344f Mon Sep 17 00:00:00 2001 From: stonedDiscord Date: Fri, 31 Oct 2025 13:38:53 +0100 Subject: [PATCH 7/9] forgot about io map --- src/mame/skeleton/shoken_md06.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/mame/skeleton/shoken_md06.cpp b/src/mame/skeleton/shoken_md06.cpp index fe9c896ed55c4..fdc41c25a4871 100644 --- a/src/mame/skeleton/shoken_md06.cpp +++ b/src/mame/skeleton/shoken_md06.cpp @@ -77,6 +77,13 @@ void shoken_md06_state::io_map(address_map &map) map(0x80, 0x80).noprw(); } +void shoken_md06_state::sound_io_map(address_map &map) +{ + map.global_mask(0xff); + map(0x40, 0x40).nopw(); + map(0x80, 0x80).noprw(); +} + static INPUT_PORTS_START( petitlot ) PORT_START("IN0") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) @@ -156,6 +163,7 @@ void shoken_md06_state::petitlot(machine_config &config) void shoken_md06_state::polarstar(machine_config &config) { petitlot(config); + m_maincpu->set_addrmap(AS_IO, &shoken_md06_state::sound_io_map); // sound hardware SPEAKER(config, "mono").front_center(); From fe93bc62584d896c35d61de7fec428d932ee250c Mon Sep 17 00:00:00 2001 From: stonedDiscord Date: Fri, 31 Oct 2025 21:43:14 +0100 Subject: [PATCH 8/9] no dips --- src/mame/skeleton/shoken_md06.cpp | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/src/mame/skeleton/shoken_md06.cpp b/src/mame/skeleton/shoken_md06.cpp index fdc41c25a4871..edf2e9a9f4c70 100644 --- a/src/mame/skeleton/shoken_md06.cpp +++ b/src/mame/skeleton/shoken_md06.cpp @@ -149,6 +149,28 @@ static INPUT_PORTS_START( petitlot ) // TODO: 5 10-position rotary switches INPUT_PORTS_END +static INPUT_PORTS_START( polarstar ) + PORT_START("IN0") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("IN1") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) +INPUT_PORTS_END + void shoken_md06_state::petitlot(machine_config &config) { @@ -174,7 +196,7 @@ void shoken_md06_state::polarstar(machine_config &config) ROM_START( petitlot ) ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "md06_ver4_1.ic6", 0x00000, 0x10000, CRC(ebc81f10) SHA1(28ac52aeadfbf792da95c01b16fb88f7a5eb1d4e) ) // 1xxxxxxxxxxxxxxx = 0xFF + ROM_LOAD( "md06_ver4_1.ic6", 0x00000, 0x10000, CRC(ebc81f10) SHA1(28ac52aeadfbf792da95c01b16fb88f7a5eb1d4e) ) // 1xxxxxxxxxxxxxxx = 0xff ROM_END ROM_START( polarstar2 ) @@ -187,5 +209,5 @@ ROM_END } // anonymous namespace -GAME( 2001, petitlot, 0, petitlot, petitlot, shoken_md06_state, empty_init, ROT0, "Shoken", "Petit Lot (ver. 4.1)", MACHINE_NO_SOUND_HW | MACHINE_NOT_WORKING | MACHINE_MECHANICAL ) -GAME( 2004, polarstar2, 0, polarstar, petitlot, shoken_md06_state, empty_init, ROT0, "Shoken", "Polar Star 2 (ver. 4.5)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL ) +GAME( 2001, petitlot, 0, petitlot, petitlot, shoken_md06_state, empty_init, ROT0, "Shoken", "Petit Lot (ver. 4.1)", MACHINE_NO_SOUND_HW | MACHINE_NOT_WORKING | MACHINE_MECHANICAL ) +GAME( 2004, polarstar2, 0, polarstar, polarstar, shoken_md06_state, empty_init, ROT0, "Shoken", "Polar Star 2 (ver. 4.5)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL ) From 24802e5dc9e298e5e56871fe08cbf809542b4890 Mon Sep 17 00:00:00 2001 From: stonedDiscord Date: Sat, 1 Nov 2025 11:43:31 +0100 Subject: [PATCH 9/9] sound fix --- src/mame/skeleton/shoken_md06.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/mame/skeleton/shoken_md06.cpp b/src/mame/skeleton/shoken_md06.cpp index edf2e9a9f4c70..8d2b3599a2e1f 100644 --- a/src/mame/skeleton/shoken_md06.cpp +++ b/src/mame/skeleton/shoken_md06.cpp @@ -72,7 +72,6 @@ void shoken_md06_state::program_map(address_map &map) void shoken_md06_state::io_map(address_map &map) { map.global_mask(0xff); - map(0x3b, 0x3b).rw("oki", FUNC(okim9810_device::read), FUNC(okim9810_device::write)); map(0x40, 0x40).nopw(); map(0x80, 0x80).noprw(); } @@ -80,6 +79,7 @@ void shoken_md06_state::io_map(address_map &map) void shoken_md06_state::sound_io_map(address_map &map) { map.global_mask(0xff); + map(0x3b, 0x3b).rw("oki", FUNC(okim9810_device::read), FUNC(okim9810_device::write)); map(0x40, 0x40).nopw(); map(0x80, 0x80).noprw(); } @@ -209,5 +209,5 @@ ROM_END } // anonymous namespace -GAME( 2001, petitlot, 0, petitlot, petitlot, shoken_md06_state, empty_init, ROT0, "Shoken", "Petit Lot (ver. 4.1)", MACHINE_NO_SOUND_HW | MACHINE_NOT_WORKING | MACHINE_MECHANICAL ) -GAME( 2004, polarstar2, 0, polarstar, polarstar, shoken_md06_state, empty_init, ROT0, "Shoken", "Polar Star 2 (ver. 4.5)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL ) +GAME( 2001, petitlot, 0, petitlot, petitlot, shoken_md06_state, empty_init, ROT0, "Shoken", "Petit Lot (ver. 4.1)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL ) +GAME( 2004, polarstar2, 0, polarstar, polarstar, shoken_md06_state, empty_init, ROT0, "Shoken", "Polar Star 2 (ver. 4.5)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL )