summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Ivan Vangelista <mesgnet@yahoo.it>2021-07-13 18:29:20 +0200
committer Ivan Vangelista <mesgnet@yahoo.it>2021-07-13 18:29:20 +0200
commitb6af12a9d40e882cbfc3bb1e052c8e98acae5003 (patch)
tree7c4770198443c169d73f389bcf5049befe0002d2
parentd47a1a68924c99d6cdf55fcb61e0ca7d753c0be0 (diff)
- chexx.cpp: changed olihockey and clone to MACHINE_IMPERFECT_SOUND since they do produce some (bad) sounds
- cointek.cpp: minor update to the preliminary decryption - konamigx.cpp: corrected mtwinbee title
-rw-r--r--src/mame/drivers/chexx.cpp20
-rw-r--r--src/mame/drivers/cointek.cpp13
-rw-r--r--src/mame/drivers/konamigx.cpp2
3 files changed, 22 insertions, 13 deletions
diff --git a/src/mame/drivers/chexx.cpp b/src/mame/drivers/chexx.cpp
index 30f3b651632..b40d3e0b6da 100644
--- a/src/mame/drivers/chexx.cpp
+++ b/src/mame/drivers/chexx.cpp
@@ -87,7 +87,7 @@ appears to run on very similar hardware, with a AY8912 but no Digitalker.
#include "chexx.lh"
-#define MAIN_CLOCK XTAL(4'000'000)
+namespace {
class chexx_state : public driver_device
{
@@ -426,8 +426,7 @@ void chexx_state::update()
m_digitalker->digitalker_0_cms_w(CLEAR_LINE);
m_digitalker->digitalker_0_cs_w(CLEAR_LINE);
- address_space &space = m_maincpu->space(AS_PROGRAM);
- m_digitalker->digitalker_data_w(space, 0, sample, 0);
+ m_digitalker->digitalker_data_w(sample);
m_digitalker->digitalker_0_wr_w(ASSERT_LINE);
m_digitalker->digitalker_0_wr_w(CLEAR_LINE);
@@ -438,11 +437,11 @@ void chexx_state::update()
void chexx_state::chexx(machine_config &config)
{
- M6502(config, m_maincpu, MAIN_CLOCK/2);
+ M6502(config, m_maincpu, XTAL(4'000'000) / 2);
m_maincpu->set_addrmap(AS_PROGRAM, &chexx_state::mem);
// via
- MOS6522(config, m_via, MAIN_CLOCK/4);
+ MOS6522(config, m_via, XTAL(4'000'000) / 4);
m_via->readpa_handler().set(FUNC(chexx_state::via_a_in));
m_via->readpb_handler().set(FUNC(chexx_state::via_b_in));
@@ -460,7 +459,7 @@ void chexx_state::chexx(machine_config &config)
// sound hardware
SPEAKER(config, "mono").front_center();
- DIGITALKER(config, m_digitalker, MAIN_CLOCK);
+ DIGITALKER(config, m_digitalker, XTAL(4'000'000));
m_digitalker->add_route(ALL_OUTPUTS, "mono", 0.16);
}
@@ -469,7 +468,7 @@ void faceoffh_state::faceoffh(machine_config &config)
chexx(config);
m_maincpu->set_addrmap(AS_PROGRAM, &faceoffh_state::mem);
- AY8910(config, m_aysnd, MAIN_CLOCK/2);
+ AY8910(config, m_aysnd, XTAL(4'000'000) / 2);
m_aysnd->add_route(ALL_OUTPUTS, "mono", 0.30);
}
@@ -584,7 +583,10 @@ ROM_START( faceoffh )
ROM_FILL( 0xe000, 0x2000, 0xff ) // unpopulated
ROM_END
+} // Anonymous namespace
+
+
GAME( 1983, chexx83, 0, chexx, chexx83, chexx_state, empty_init, ROT270, "ICE", "Chexx (EM Bubble Hockey, 1983 1.1)", MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_NO_SOUND )
GAME( 1983, faceoffh, chexx83, faceoffh, chexx83, faceoffh_state, empty_init, ROT270, "SoftLogic (Entertainment Enterprises, Ltd. license)", "Face-Off (EM Bubble Hockey)", MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_IMPERFECT_SOUND )
-GAME( 1985, olihockey, 0, chexx, chexx83, chexx_state, empty_init, ROT270, "Inor", "Olimpic Hockey (EM Bubble Hockey, set 1)", MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_NO_SOUND )
-GAME( 1985, olihockeya, olihockey, chexx, chexx83, chexx_state, empty_init, ROT270, "Inor", "Olimpic Hockey (EM Bubble Hockey, set 2)", MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_NO_SOUND )
+GAME( 1985, olihockey, 0, chexx, chexx83, chexx_state, empty_init, ROT270, "Inor", "Olimpic Hockey (EM Bubble Hockey, set 1)", MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_IMPERFECT_SOUND )
+GAME( 1985, olihockeya, olihockey, chexx, chexx83, chexx_state, empty_init, ROT270, "Inor", "Olimpic Hockey (EM Bubble Hockey, set 2)", MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_IMPERFECT_SOUND )
diff --git a/src/mame/drivers/cointek.cpp b/src/mame/drivers/cointek.cpp
index eb18f3b6fb5..b72e93f6dda 100644
--- a/src/mame/drivers/cointek.cpp
+++ b/src/mame/drivers/cointek.cpp
@@ -20,7 +20,11 @@ The daughter card has a big box on it labelled as follows:
Mask Microcomputer
CODE NUM
-The daughter board is connected to the main board via 40 pin socket
+The daughter board is connected to the main board via 40 pin socket.
+
+TODO:
+- decryption is only preliminary. The game puts some strings at 0xc000 and at 0xf800 then stops in a loop reading 0xf810;
+- after decryption is completed, everything else.
*/
#include "emu.h"
@@ -64,6 +68,7 @@ void cointek_state::prg_map(address_map &map)
{
map(0x0000, 0xbfff).rom(); // banking?
map(0xc000, 0xc7ff).ram();
+ map(0xf800, 0xffff).ram();
}
void cointek_state::io_map(address_map &map)
@@ -130,6 +135,7 @@ void cointek_state::cointek(machine_config &config)
z80_device &audiocpu(Z80(config, "audiocpu", 12_MHz_XTAL / 3)); // divisor guessed
audiocpu.set_addrmap(AS_PROGRAM, &cointek_state::audio_prg_map);
audiocpu.set_addrmap(AS_IO, &cointek_state::audio_io_map);
+ audiocpu.set_disable(); // TODO: disabled for now to avoid clogging the error log
I8255(config, "ppi1");
I8255(config, "ppi2");
@@ -205,8 +211,9 @@ void cointek_state::init_unkct()
{
uint8_t *rom = memregion("maincpu")->base();
- for (int i = 0; i < 0x8000; i++) // TODO: Is this all there is to it? Is the second ROM scrambled, too?
- rom[i] = bitswap<8>(rom[i], 7, 6, 3, 4, 5, 2, 1, 0);
+ for (int i = 0; i < 0x10000; i++) // TODO: This is only enough to show some strings, but the encryption is conditional, possibly based on addresses. The second ROM is also conditionally scrambled.
+ if (!(i & 0x1000))
+ rom[i] = bitswap<8>(rom[i], 7, 6, 3, 4, 5, 2, 1, 0);
}
} // Anonymous namespace
diff --git a/src/mame/drivers/konamigx.cpp b/src/mame/drivers/konamigx.cpp
index b9ea08309b8..3f6f69aaa27 100644
--- a/src/mame/drivers/konamigx.cpp
+++ b/src/mame/drivers/konamigx.cpp
@@ -4039,7 +4039,7 @@ GAME( 1994, gokuparo, fantjour, gokuparo, gokuparo, konamigx_state, init_ko
GAME( 1994, crzcross, konamigx, gokuparo, puzldama, konamigx_state, init_posthack, ROT0, "Konami", "Crazy Cross (ver EAA)", MACHINE_IMPERFECT_GRAPHICS )
GAME( 1994, puzldama, crzcross, gokuparo, puzldama, konamigx_state, init_posthack, ROT0, "Konami", "Taisen Puzzle-dama (ver JAA)", MACHINE_IMPERFECT_GRAPHICS )
-GAME( 1995, mtwinbee, konamigx, tbyahhoo, gokuparo, konamigx_state, init_posthack, ROT0, "Konami", "Magical Twin Bee! (ver EAA)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1995, mtwinbee, konamigx, tbyahhoo, gokuparo, konamigx_state, init_posthack, ROT0, "Konami", "Magical Twin Bee (ver EAA)", MACHINE_IMPERFECT_GRAPHICS )
GAME( 1995, tbyahhoo, mtwinbee, tbyahhoo, gokuparo, konamigx_state, init_posthack, ROT0, "Konami", "Twin Bee Yahhoo! (ver JAA)", MACHINE_IMPERFECT_GRAPHICS )
GAME( 1995, tkmmpzdm, konamigx, konamigx_6bpp, tokkae, konamigx_state, init_konamigx, ROT0, "Konami", "Tokimeki Memorial Taisen Puzzle-dama (ver JAB)", MACHINE_IMPERFECT_GRAPHICS )