New systems marked not working

------------------------------
Shimura Ken no Bakatono-sama Ooedomatsuri [hammy]
Sweetheart [Recreativos Piscis]
This commit is contained in:
Ivan Vangelista 2023-02-21 16:19:10 +01:00
parent 7e15a8d51c
commit 8dd917457a
3 changed files with 152 additions and 15 deletions

View File

@ -34193,6 +34193,8 @@ vandykejal2 // UPL-90064 (c) Jaleco
@source:nmk/nmkmedal.cpp
drail // NTC / NMK
hpierrot // NTC / NMK
omatsuri // NMK
sweethrt // NMK
trocana // NTC / NMK
@source:nmk/powerins.cpp

View File

@ -7098,8 +7098,9 @@ ROM_START( hachamf )
ROM_LOAD16_BYTE( "7.93", 0x00000, 0x20000, CRC(9d847c31) SHA1(1d370d8db9cadadb9c2cb213e32f681947d81b7f) ) // internally reports as 19th Sep. 1991
ROM_LOAD16_BYTE( "6.94", 0x00001, 0x20000, CRC(de6408a0) SHA1(2df77fecd44d2d8b0444abd4545923213ed76b2d) )
ROM_REGION( 0x10000, "audiocpu", 0 ) // unknown - sound CPU ??????
ROM_LOAD( "1.70", 0x00000, 0x10000, CRC(9e6f48fc) SHA1(aeb5bfecc025b5478f6de874792fc0f7f54932be) )
ROM_REGION( 0x10000, "audiocpu", 0 ) // for the NMK-113 custom (a TMP90C041 MCU in disguise with internal program ROM)
ROM_LOAD( "1.70", 0x00000, 0x10000, CRC(9e6f48fc) SHA1(aeb5bfecc025b5478f6de874792fc0f7f54932be) )
ROM_LOAD( "nmk-113", 0x00000, 0x04000, NO_DUMP ) // internal ROM, maps over the first 0x4000 of the above external ROM
ROM_REGION( 0x020000, "fgtile", 0 )
ROM_LOAD( "5.95", 0x000000, 0x020000, CRC(29fb04a2) SHA1(9654b90a66d0e2a0f9cd369cab29cdd0c6f77869) ) // 8x8 tiles
@ -7124,8 +7125,9 @@ ROM_START( hachamfa) // reportedly a Korean PCB / version
ROM_LOAD16_BYTE( "7.ic93", 0x00000, 0x20000, CRC(f437e52b) SHA1(061a75a7a9734034d1c499fc0bc2d8a61bb26da4) ) // internally reports as 19th Sep. 1991
ROM_LOAD16_BYTE( "6.ic94", 0x00001, 0x20000, CRC(60d340d0) SHA1(3c6f862901b403d6ddf58823af7d6e3f67573788) )
ROM_REGION( 0x10000, "audiocpu", 0 ) // unknown - sound CPU ??????
ROM_LOAD( "1.70", 0x00000, 0x10000, CRC(9e6f48fc) SHA1(aeb5bfecc025b5478f6de874792fc0f7f54932be) )
ROM_REGION( 0x10000, "audiocpu", 0 ) // for the NMK-113 custom (a TMP90C041 MCU in disguise with internal program ROM)
ROM_LOAD( "1.70", 0x00000, 0x10000, CRC(9e6f48fc) SHA1(aeb5bfecc025b5478f6de874792fc0f7f54932be) )
ROM_LOAD( "nmk-113", 0x00000, 0x04000, NO_DUMP ) // internal ROM, maps over the first 0x4000 of the above external ROM
ROM_REGION( 0x020000, "fgtile", 0 ) // Smaller NMK logo plus alternate Distributed by UPL Company Limited starting at tile 0xF80
ROM_LOAD( "5.ic95", 0x000000, 0x020000, CRC(a2c1e25d) SHA1(cf09cbfd9afc7e3907fef6b26fb269b743f2e036) ) // 8x8 tiles

View File

@ -9,6 +9,7 @@
#include "machine/nmk112.h"
#include "sound/okim6295.h"
#include "sound/okim6376.h"
#include "sound/ymz280b.h"
#include "speaker.h"
@ -69,6 +70,51 @@ NMK MAC94104 - main CPU board, stickered 957G. 0144
- 2 x 8-dip banks
- 5 x connectors
Other PCBs unknown
-------
Sweetheart by NMK
PCBs:
NMK MAC96114 - main CPU board, stickered 9607 M. M.
- NMK-113 2321 9140EBI - A TMP90C041 MCU with internal program ROM, possibly grafted to a NMK-112? Seen also on Hacha Mecha Fighter PCBs
- 16.0000 MHz XTAL
- MCU external ROM. In this case, internal ROM is not used, as the /EA pin (External Access) is asserted, so all the program code is located in the external EPROM.
- 2 x Oki M6295
- 4 x Oki ROMs (identical pairs)
- 2 x 8-dip banks (don't seem to be on PCB)
- 9 x connectors
NMK MAC96115 - lamp / leds board
- 7 x connectors
- lamp
- 8 x LEDs
NMK MAC96116
- 4 x connectors
- TTLs
NMK MAC96117
- 5 x connectors
- TTLs
-------
Shimura Ken no Bakatono-sama Ooedomatsuri by NMK
Video of the game: https://www.youtube.com/watch?v=9HGdS2ydZDo
NMK MAC98205-1 - main CPU board, stickered 99040048
- Toshiba TMP90C041AN
- 16.0000 MHz XTAL
- main CPU ROM
- YMZ280B-F
- 2 x YMZ ROMs
- NMK001 custom
- NMK003 custom
- 2 x 8-dip banks
- 9 x connectors
Other PCBs unknown
*/
@ -110,17 +156,29 @@ class hpierrot_state : public nmkmedal_state
public:
hpierrot_state(const machine_config &mconfig, device_type type, const char *tag)
: nmkmedal_state(mconfig, type, tag)
, m_oki(*this, "oki")
{ }
void drail(machine_config &config);
void hpierrot(machine_config &config);
void sweethrt(machine_config &config);
private:
void drail_mem_map(address_map &map);
void mem_map(address_map &map);
void sweethrt_mem_map(address_map &map);
};
required_device<okim6295_device> m_oki;
class omatsuri_state : public nmkmedal_state
{
public:
omatsuri_state(const machine_config &mconfig, device_type type, const char *tag)
: nmkmedal_state(mconfig, type, tag)
{ }
void omatsuri(machine_config &config);
private:
void mem_map(address_map &map);
};
@ -166,6 +224,29 @@ void hpierrot_state::drail_mem_map(address_map &map)
map(0xc000, 0xc7ff).ram();
}
void hpierrot_state::sweethrt_mem_map(address_map &map)
{
map(0x0000, 0x7fff).rom().region("maincpu", 0);
map(0x8000, 0x8000).portr("IN0");
map(0x8001, 0x8001).portr("IN1");
map(0x8002, 0x8002).portr("IN2");
map(0x8003, 0x8003).portr("IN3");
map(0x8004, 0x8004).portr("IN4");
map(0x8005, 0x8005).portr("IN5");
map(0x9000, 0x9007).w("nmk112", FUNC(nmk112_device::okibank_w));
//map(0xa000, 0xa00f).w() // to the mechanical parts?? or leds / lamps?
map(0xb000, 0xb000).rw("oki", FUNC(okim6295_device::read), FUNC(okim6295_device::write));
map(0xb800, 0xb800).rw("oki2", FUNC(okim6295_device::read), FUNC(okim6295_device::write));
map(0xc000, 0xdfff).ram();
}
void omatsuri_state::mem_map(address_map &map)
{
map(0x0000, 0x9fff).rom().region("maincpu", 0);
map(0xd000, 0xefff).ram();
}
static INPUT_PORTS_START( trocana )
PORT_START("IN0")
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("0.0") PORT_CODE(KEYCODE_1)
@ -238,7 +319,7 @@ void hpierrot_state::hpierrot(machine_config &config)
m_maincpu->set_addrmap(AS_PROGRAM, &hpierrot_state::mem_map);
SPEAKER(config, "mono").front_center();
OKIM6295(config, m_oki, 16_MHz_XTAL / 16, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0); // divider and pin not verified
OKIM6295(config, "oki", 16_MHz_XTAL / 16, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0); // divider and pin not verified
}
void hpierrot_state::drail(machine_config &config)
@ -250,7 +331,35 @@ void hpierrot_state::drail(machine_config &config)
nmk112.set_rom0_tag("oki");
SPEAKER(config, "mono").front_center();
OKIM6295(config, m_oki, 16_MHz_XTAL / 16, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0); // divider and pin not verified
OKIM6295(config, "oki", 16_MHz_XTAL / 16, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0); // divider and pin not verified
}
void hpierrot_state::sweethrt(machine_config &config)
{
TMP90841(config, m_maincpu, 16_MHz_XTAL / 2); // actually a NMK-113 custom
m_maincpu->set_addrmap(AS_PROGRAM, &hpierrot_state::sweethrt_mem_map);
nmk112_device &nmk112(NMK112(config, "nmk112", 0)); // actually thought to be included in the NMK-113 custom
nmk112.set_rom0_tag("oki");
nmk112.set_rom1_tag("oki2");
SPEAKER(config, "mono").front_center();
OKIM6295(config, "oki", 16_MHz_XTAL / 16, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0); // divider and pin not verified
OKIM6295(config, "oki2", 16_MHz_XTAL / 16, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0); // divider and pin not verified
}
void omatsuri_state::omatsuri(machine_config &config)
{
TMP90841(config, m_maincpu, 16_MHz_XTAL / 2);
m_maincpu->set_addrmap(AS_PROGRAM, &omatsuri_state::mem_map);
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
ymz280b_device &ymz(YMZ280B(config, "ymz", 16_MHz_XTAL));
ymz.add_route(0, "lspeaker", 1.0);
ymz.add_route(1, "rspeaker", 1.0);
}
@ -268,20 +377,44 @@ ROM_START( trocana )
ROM_LOAD( "tro1e.u12", 0x00000, 0x10000, CRC(f285043f) SHA1(6691091c1ecdab10c390db1d82c9d1d1dd0ded1f) ) // 1xxxxxxxxxxxxxxx = 0xFF
ROM_REGION(0x80000, "oki", 0)
ROM_LOAD( "tro2.u16", 0x00000, 0x80000, CRC(c801d8ca) SHA1(f57026f5386467c054299556dd8665e62557aa91) )
ROM_LOAD( "tro2.u16", 0x00000, 0x80000, CRC(c801d8ca) SHA1(f57026f5386467c054299556dd8665e62557aa91) )
ROM_END
ROM_START( hpierrot )
ROM_REGION(0x10000, "maincpu", 0)
ROM_LOAD( "v8210.u44", 0x00000, 0x10000, CRC(313d5d07) SHA1(2802c88a21a311d552e8f2bd9e588ca7450f695d) ) // 1xxxxxxxxxxxxxxx = 0xFF
ROM_LOAD( "v8210.u44", 0x00000, 0x10000, CRC(313d5d07) SHA1(2802c88a21a311d552e8f2bd9e588ca7450f695d) ) // 1xxxxxxxxxxxxxxx = 0xFF
ROM_REGION(0x80000, "oki", 0)
ROM_LOAD( "sound.u27", 0x00000, 0x80000, CRC(fb6b4361) SHA1(7aaecf55efe219cb0b5eb93fee329b8e6ce0b307) )
ROM_LOAD( "sound.u27", 0x00000, 0x80000, CRC(fb6b4361) SHA1(7aaecf55efe219cb0b5eb93fee329b8e6ce0b307) )
ROM_END
} // Anonymous namespace
ROM_START( sweethrt )
ROM_REGION(0x10000, "maincpu", 0)
ROM_LOAD( "sweethart-typeb-v96b290.u55", 0x00000, 0x10000, CRC(d5ccce6d) SHA1(ef4c1a19df0bcf7961dc8df0ebc7a1654f4a86ca) ) // 1xxxxxxxxxxxxxxx = 0xFF
ROM_REGION(0x140000, "oki", 0) // NMK112 device expects the first 0x40000 bytes to be left empty.
ROM_LOAD( "sweethart-typeb-sound-2.u37", 0x40000, 0x80000, CRC(19caa092) SHA1(0a12e8524abdd09259e8f8c00f26807f2f2ef525) )
ROM_LOAD( "sweethart-typeb-sound-3.u38", 0xc0000, 0x80000, CRC(03255848) SHA1(dfecc863e6b9dec7aa0b2430b43a3d6d9b15bbea) ) // 1xxxxxxxxxxxxxxxxxx = 0xFF
ROM_REGION(0x140000, "oki2", 0) // identical to the above
ROM_LOAD( "sweethart-typeb-sound-4.u18", 0x40000, 0x80000, CRC(19caa092) SHA1(0a12e8524abdd09259e8f8c00f26807f2f2ef525) )
ROM_LOAD( "sweethart-typeb-sound-5.u19", 0xc0000, 0x80000, CRC(03255848) SHA1(dfecc863e6b9dec7aa0b2430b43a3d6d9b15bbea) ) // 1xxxxxxxxxxxxxxxxxx = 0xFF
ROM_END
ROM_START( omatsuri ) // seems to hit some unimplemented CPU regs
ROM_REGION(0x10000, "maincpu", 0)
ROM_LOAD( "1bv994220.1", 0x00000, 0x10000, CRC(c67907f5) SHA1(9e3a8eddc4dd315bcd9e577808e4f913fc30bba0) )
ROM_REGION(0x100000, "ymz", 0)
ROM_LOAD( "2", 0x00000, 0x80000, CRC(39c9d3a8) SHA1(9ea7e1ab51d68f014e15b09ac421d51441712a47) )
ROM_LOAD( "3", 0x80000, 0x80000, CRC(0e6afb1f) SHA1(e016a684fb41acb55057797b22a07dab72ff9e9d) )
ROM_END
} // anonymous namespace
GAME( 1995, drail, 0, drail, trocana, hpierrot_state, empty_init, ROT0, "NTC / NMK", "Dream Rail", MACHINE_IS_SKELETON_MECHANICAL ) // NMK LTD, N.T.C., H07051, V39, TEST2, V07 strings
GAME( 1996, trocana, 0, trocana, trocana, trocana_state, empty_init, ROT0, "NTC / NMK", "Trocana", MACHINE_IS_SKELETON_MECHANICAL ) // NMK LTD, NTC LTD, V96313 strings
GAME( 1996, hpierrot, 0, hpierrot, trocana, hpierrot_state, empty_init, ROT0, "NTC / NMK", "Happy Pierrot", MACHINE_IS_SKELETON_MECHANICAL ) // NTC LTD, NMK LTD, V96821 strings
GAME( 1995, drail, 0, drail, trocana, hpierrot_state, empty_init, ROT0, "NTC / NMK", "Dream Rail", MACHINE_IS_SKELETON_MECHANICAL ) // NMK LTD, N.T.C., H07051, V39, TEST2, V07 strings
GAME( 1996, trocana, 0, trocana, trocana, trocana_state, empty_init, ROT0, "NTC / NMK", "Trocana", MACHINE_IS_SKELETON_MECHANICAL ) // NMK LTD, NTC LTD, V96313 strings
GAME( 1996, hpierrot, 0, hpierrot, trocana, hpierrot_state, empty_init, ROT0, "NTC / NMK", "Happy Pierrot", MACHINE_IS_SKELETON_MECHANICAL ) // NTC LTD, NMK LTD, V96821 strings
GAME( 1996, sweethrt, 0, sweethrt, trocana, hpierrot_state, empty_init, ROT0, "NMK", "Sweetheart", MACHINE_IS_SKELETON_MECHANICAL ) // NMK LTD, V96B29° strings
GAME( 1999, omatsuri, 0, omatsuri, trocana, omatsuri_state, empty_init, ROT0, "NMK / Sega", "Shimura Ken no Bakatono-sama Ooedomatsuri", MACHINE_IS_SKELETON_MECHANICAL ) // NMK LTD, V99422 strings. Cabinet has NMK logo, manual has Sega logo