summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author hap <happppp@users.noreply.github.com>2020-01-08 11:05:31 +0100
committer hap <happppp@users.noreply.github.com>2020-01-08 11:05:46 +0100
commite680c90e2be38d968bcc045b94e0f067408bde5c (patch)
tree41ff4cd27cd95f95cb9f685ea30fb09670446245
parent2315b259655753d018c1f8e7795f574ffd5478f6 (diff)
misc: add notes (nw)
-rw-r--r--hash/mephisto_mm1.xml4
-rw-r--r--hash/mephisto_mm2.xml4
-rw-r--r--hash/mephisto_mm4.xml4
-rw-r--r--hash/mephisto_mm5.xml4
-rw-r--r--hash/mephisto_smondial2.xml (renamed from hash/smondial2.xml)9
-rw-r--r--src/mame/drivers/cgang.cpp2
-rw-r--r--src/mame/drivers/mephisto_brikett.cpp5
-rw-r--r--src/mame/drivers/mephisto_modular_tm.cpp5
-rw-r--r--src/mame/drivers/mephisto_montec.cpp8
-rw-r--r--src/mame/drivers/mephisto_polgar.cpp18
-rw-r--r--src/mame/drivers/model1.cpp5
-rw-r--r--src/mame/drivers/model2.cpp3
-rw-r--r--src/mame/drivers/saitek_stratos.cpp26
13 files changed, 58 insertions, 39 deletions
diff --git a/hash/mephisto_mm1.xml b/hash/mephisto_mm1.xml
index f2455393a5d..b2801768afb 100644
--- a/hash/mephisto_mm1.xml
+++ b/hash/mephisto_mm1.xml
@@ -1,9 +1,10 @@
<?xml version="1.0"?>
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
+<softwarelist name="mephisto_mm1" description="Mephisto MM I Modules">
+
<!-- HG 170 module is exclusively used with MM I -->
-<softwarelist name="mephisto_mm1" description="Mephisto MM I Modules">
<software name="hg170">
<description>Mephisto HG 170 Opening Library</description>
<year>1983</year>
@@ -14,4 +15,5 @@
</dataarea>
</part>
</software>
+
</softwarelist>
diff --git a/hash/mephisto_mm2.xml b/hash/mephisto_mm2.xml
index 948b2d09e06..6903a3b0954 100644
--- a/hash/mephisto_mm2.xml
+++ b/hash/mephisto_mm2.xml
@@ -1,9 +1,10 @@
<?xml version="1.0"?>
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
+<softwarelist name="mephisto_mm2" description="Mephisto MM II Modules">
+
<!-- HG 240 module is exclusively used with MM II -->
-<softwarelist name="mephisto_mm2" description="Mephisto MM II Modules">
<software name="hg240">
<description>Mephisto HG 240 Opening Library</description>
<year>1984</year>
@@ -14,4 +15,5 @@
</dataarea>
</part>
</software>
+
</softwarelist>
diff --git a/hash/mephisto_mm4.xml b/hash/mephisto_mm4.xml
index 969848881fd..0a84f46ce9c 100644
--- a/hash/mephisto_mm4.xml
+++ b/hash/mephisto_mm4.xml
@@ -1,9 +1,10 @@
<?xml version="1.0"?>
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
+<softwarelist name="mephisto_mm4" description="Mephisto MM IV Modules">
+
<!-- HG 440 module is exclusively used with MM IV -->
-<softwarelist name="mephisto_mm4" description="Mephisto MM IV Modules">
<software name="hg440">
<description>Mephisto HG 440 Opening Library</description>
<year>1987</year>
@@ -14,4 +15,5 @@
</dataarea>
</part>
</software>
+
</softwarelist>
diff --git a/hash/mephisto_mm5.xml b/hash/mephisto_mm5.xml
index 1b6b243732f..7223239cbe9 100644
--- a/hash/mephisto_mm5.xml
+++ b/hash/mephisto_mm5.xml
@@ -1,9 +1,10 @@
<?xml version="1.0"?>
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
+<softwarelist name="mephisto_mm5" description="Mephisto MM V Modules">
+
<!-- HG 550 module is exclusively used with MM V -->
-<softwarelist name="mephisto_mm5" description="Mephisto MM V Modules">
<software name="hg550">
<description>Mephisto HG 550 Opening Library</description>
<year>1990</year>
@@ -14,4 +15,5 @@
</dataarea>
</part>
</software>
+
</softwarelist>
diff --git a/hash/smondial2.xml b/hash/mephisto_smondial2.xml
index 49ce1ac73ce..170a6e41a70 100644
--- a/hash/smondial2.xml
+++ b/hash/mephisto_smondial2.xml
@@ -1,15 +1,18 @@
<?xml version="1.0"?>
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
-<softwarelist name="smondial2" description="Mephisto Super Mondial II cartridges">
+
+<softwarelist name="mephisto_smondial2" description="Mephisto Super Mondial II Modules">
+
<software name="college">
<description>College Module</description>
- <year>1989</year>
+ <year>1988</year>
<publisher>Hegener + Glaser</publisher>
<part name="cart" interface="smondial2_cart">
<dataarea name="rom" size="0x4000">
- <rom name="college_module.bin" size="0x4000" crc="02fbdf33" sha1="7d1c87b446ef00f4a533f5193f33b3e05af9ff33" offset="0" />
+ <rom name="college_7.7.88" size="0x4000" crc="02fbdf33" sha1="7d1c87b446ef00f4a533f5193f33b3e05af9ff33" offset="0" /> <!-- TC57256AD-12, first half empty -->
<rom size="0x4000" offset="0" loadflag="continue"/>
</dataarea>
</part>
</software>
+
</softwarelist>
diff --git a/src/mame/drivers/cgang.cpp b/src/mame/drivers/cgang.cpp
index 2c92c1d111d..20caf5eebd6 100644
--- a/src/mame/drivers/cgang.cpp
+++ b/src/mame/drivers/cgang.cpp
@@ -352,7 +352,7 @@ void cgang_state::refresh_motor_output()
m_en_count[i] = int((m_en_pos[i] / float(CG_MOTOR_LIMIT)) * 100.0 + 0.5);
}
- m_door_count = int((m_door_motor_pos / float(DOOR_MOTOR_LIMIT)) * 100.0 + 0.5);
+ m_door_count = (m_conf->read() & 1) ? int((m_door_motor_pos / float(DOOR_MOTOR_LIMIT)) * 100.0 + 0.5) : 0;
}
diff --git a/src/mame/drivers/mephisto_brikett.cpp b/src/mame/drivers/mephisto_brikett.cpp
index bb688c7b334..76b196f8cc1 100644
--- a/src/mame/drivers/mephisto_brikett.cpp
+++ b/src/mame/drivers/mephisto_brikett.cpp
@@ -251,6 +251,7 @@ READ8_MEMBER(brikett_state::input_r)
WRITE8_MEMBER(brikett_state::esb_w)
{
+ // CDP1852 SR + DO0-DO7 goes to external port, to chessboard
if (!m_inputs[5].read_safe(0))
{
// chessboard disabled
@@ -258,14 +259,14 @@ WRITE8_MEMBER(brikett_state::esb_w)
return;
}
- // CDP1852 SR clocks CD4017, goes to external port together with DO0-DO7
+ // SR clocks CD4017
// 4017 Q0: N/C
// 4017 Q1 + d0-d7: 74374 to led data
// 4017 Q2 + d0-d7: 74373 to row select
// 4017 Q2-Q9: column select
m_esb_select = (m_esb_select + 1) % 10;
- // d0-d7 ANDed together: 4017 reset
+ // DO0-DO7 ANDed together: 4017 reset
if (data == 0xff)
m_esb_select = 0;
diff --git a/src/mame/drivers/mephisto_modular_tm.cpp b/src/mame/drivers/mephisto_modular_tm.cpp
index b610812f4ad..80b4e909701 100644
--- a/src/mame/drivers/mephisto_modular_tm.cpp
+++ b/src/mame/drivers/mephisto_modular_tm.cpp
@@ -6,6 +6,9 @@ Mephisto Turniermaschinen (dedicated in-house chesscomputers used at tournaments
and their limited-release home versions. These are mephisto_modular hardware
generation, see that driver for more information.
+V versions were sold in limited quantities by Hobby Computer Centrale.
+T versions were the ones used in actual tournaments, some of them sold to fans.
+
The Bavaria board does not work on these. Not only does it not have the connector
for it, but no software 'driver' either.
@@ -18,6 +21,8 @@ but ROM has many differences.
BTANB:
- lyon32t8 still says "2048Kbyte" even though it uses 8MB RAM
+===============================================================================
+
Hardware notes:
V(Verkauf?) home version:
diff --git a/src/mame/drivers/mephisto_montec.cpp b/src/mame/drivers/mephisto_montec.cpp
index 700abb676de..cead900c07d 100644
--- a/src/mame/drivers/mephisto_montec.cpp
+++ b/src/mame/drivers/mephisto_montec.cpp
@@ -14,7 +14,7 @@
- holding CL+INFO+BOOK on boot load the test mode
TODO:
- - split driver into several files?
+ - split driver into several files? need to make PCF2112T device
- why are megaiv/smondial2 beeps noisy?
**************************************************************************************************/
@@ -591,7 +591,7 @@ void mephisto_montec_state::smondial2(machine_config &config)
m_maincpu->set_addrmap(AS_PROGRAM, &mephisto_montec_state::smondial2_mem);
GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "smondial2_cart");
- SOFTWARE_LIST(config, "cart_list").set_original("smondial2");
+ SOFTWARE_LIST(config, "cart_list").set_original("mephisto_smondial2");
config.set_default_layout(layout_mephisto_smondial2);
}
@@ -652,6 +652,6 @@ CONS( 1986, smondial, 0, 0, smondial, megaiv, mephisto_montec_s
CONS( 1986, smondialb, smondial, 0, megaiv, megaiv, mephisto_montec_state, empty_init, "Hegener + Glaser", "Mephisto Super Mondial (Ver B)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
CONS( 1987, montec, 0, 0, montec, montec, mephisto_montec_state, empty_init, "Hegener + Glaser", "Mephisto Monte Carlo", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
CONS( 1987, mondial2, 0, 0, mondial2, mondial2, mephisto_montec_state, empty_init, "Hegener + Glaser", "Mephisto Mondial II", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
-CONS( 1989, smondial2, 0, 0, smondial2, smondial2, mephisto_montec_state, empty_init, "Hegener + Glaser", "Mephisto Super Mondial II", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
-CONS( 1989, megaiv, 0, 0, megaiv, megaiv, mephisto_montec_state, empty_init, "Hegener + Glaser", "Mephisto Mega IV", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
+CONS( 1988, smondial2, 0, 0, smondial2, smondial2, mephisto_montec_state, empty_init, "Hegener + Glaser", "Mephisto Super Mondial II", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
+CONS( 1988, megaiv, 0, 0, megaiv, megaiv, mephisto_montec_state, empty_init, "Hegener + Glaser", "Mephisto Mega IV", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
CONS( 1990, monteciv, montec, 0, monteciv, montec, mephisto_montec_state, empty_init, "Hegener + Glaser", "Mephisto Monte Carlo IV LE", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
diff --git a/src/mame/drivers/mephisto_polgar.cpp b/src/mame/drivers/mephisto_polgar.cpp
index 3691af2d614..c6c109017e3 100644
--- a/src/mame/drivers/mephisto_polgar.cpp
+++ b/src/mame/drivers/mephisto_polgar.cpp
@@ -7,7 +7,7 @@ Mephisto Polgar and RISC
The chess engine in Mephisto Risc is also compatible with Tasc's The ChessMachine.
TODO:
-- Mephisto Risc maincpu is more likely 5MHz, but LCD doesn't like it
+- Mephisto Risc maincpu is maybe 5MHz? but LCD doesn't like it
- split driver into several files? mrisc for example is completely different hw
**************************************************************************************************/
@@ -301,7 +301,7 @@ void mephisto_academy_state::machine_reset()
void mephisto_polgar_state::polgar(machine_config &config)
{
- m65c02_device &maincpu(M65C02(config, "maincpu", XTAL(4'915'200)));
+ m65c02_device &maincpu(M65C02(config, "maincpu", XTAL(4'915'200))); // RP65C02G
maincpu.set_addrmap(AS_PROGRAM, &mephisto_polgar_state::polgar_mem);
maincpu.set_periodic_int(FUNC(mephisto_polgar_state::nmi_line_pulse), attotime::from_hz(XTAL(4'915'200) / (1 << 13)));
@@ -323,7 +323,7 @@ void mephisto_polgar_state::polgar(machine_config &config)
void mephisto_polgar_state::polgar10(machine_config &config)
{
polgar(config);
- subdevice<m65c02_device>("maincpu")->set_clock(XTAL(10'000'000));
+ subdevice<m65c02_device>("maincpu")->set_clock(9.8304_MHz_XTAL); // W65C02P-8
}
void mephisto_risc_state::mrisc(machine_config &config)
@@ -353,7 +353,7 @@ void mephisto_risc_state::mrisc(machine_config &config)
void mephisto_milano_state::milano(machine_config &config)
{
- polgar(config);
+ polgar(config); // CPU: W65C02P-8, 4.9152Mhz
subdevice<m65c02_device>("maincpu")->set_addrmap(AS_PROGRAM, &mephisto_milano_state::milano_mem);
MEPHISTO_BUTTONS_BOARD(config.replace(), m_board);
@@ -363,7 +363,7 @@ void mephisto_milano_state::milano(machine_config &config)
void mephisto_academy_state::academy(machine_config &config)
{
- polgar(config);
+ polgar(config); // CPU: VL65NC02-04PC, 4.9152Mhz
subdevice<m65c02_device>("maincpu")->set_addrmap(AS_PROGRAM, &mephisto_academy_state::academy_mem);
hc259_device &outlatch(HC259(config.replace(), "outlatch"));
@@ -407,11 +407,11 @@ ROM_START(academy)
ROMX_LOAD("acad4000.bin", 0x4000, 0x4000, CRC(ee1222b5) SHA1(98541d87755a7186b69b9723cc4adbd07f20f0e2), ROM_BIOS(0))
ROMX_LOAD("acad8000.bin", 0x8000, 0x8000, CRC(a967922b) SHA1(1327903ff89bf96d72c930c400f367ae19e3ec68), ROM_BIOS(0))
ROM_SYSTEM_BIOS( 1, "de", "German" )
- ROMX_LOAD("academy_2_4000.bin", 0x4000, 0x4000, CRC(900a0001) SHA1(174a6bc3bde55994c603e232fcb45fccd62f11f6), ROM_BIOS(1))
- ROMX_LOAD("academy_1_8000.bin", 0x8000, 0x8000, CRC(e313d084) SHA1(ced5712d34fcc81bedcd741b7ac9e2ba17bf5235), ROM_BIOS(1))
+ ROMX_LOAD("academy_16k_6.3.89", 0x4000, 0x4000, CRC(900a0001) SHA1(174a6bc3bde55994c603e232fcb45fccd62f11f6), ROM_BIOS(1))
+ ROMX_LOAD("academy_32k_6.3.89", 0x8000, 0x8000, CRC(e313d084) SHA1(ced5712d34fcc81bedcd741b7ac9e2ba17bf5235), ROM_BIOS(1))
ROM_SYSTEM_BIOS( 2, "de_old", "German Old" )
- ROMX_LOAD("acad4000_de.bin", 0x4000, 0x4000, CRC(fb4d83c4) SHA1(f5132042c3b5a17c173f81eaa57e313ff0bb848e), ROM_BIOS(2))
- ROMX_LOAD("acad8000_de.bin", 0x8000, 0x8000, CRC(478155db) SHA1(d363ab6d5bc0f47a6cdfa5132b77535ef8da8256), ROM_BIOS(2))
+ ROMX_LOAD("academy_16k_04.10.88", 0x4000, 0x4000, CRC(fb4d83c4) SHA1(f5132042c3b5a17c173f81eaa57e313ff0bb848e), ROM_BIOS(2))
+ ROMX_LOAD("academy_32k_04.10.88", 0x8000, 0x8000, CRC(478155db) SHA1(d363ab6d5bc0f47a6cdfa5132b77535ef8da8256), ROM_BIOS(2))
ROM_END
ROM_START(milano)
diff --git a/src/mame/drivers/model1.cpp b/src/mame/drivers/model1.cpp
index c7f285aaba2..2bb45614ea9 100644
--- a/src/mame/drivers/model1.cpp
+++ b/src/mame/drivers/model1.cpp
@@ -1705,8 +1705,6 @@ void model1_state::model1(machine_config &config)
m_tgp_copro->set_addrmap(AS_IO, &model1_state::copro_io_map);
m_tgp_copro->set_addrmap(mb86233_device::AS_RF, &model1_state::copro_rf_map);
- MB8421(config, m_dpram, 0);
-
S24TILE(config, m_tiles, 0, 0x3fff).set_palette(m_palette);
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
@@ -1717,12 +1715,15 @@ void model1_state::model1(machine_config &config)
PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 8192);
+ // create SEGA_MODEL1IO device *after* SCREEN device
model1io_device &ioboard(SEGA_MODEL1IO(config, "ioboard", 0));
ioboard.read_callback().set(m_dpram, FUNC(mb8421_device::left_r));
ioboard.write_callback().set(m_dpram, FUNC(mb8421_device::left_w));
ioboard.in_callback<0>().set_ioport("IN.0");
ioboard.in_callback<1>().set_ioport("IN.1");
+ MB8421(config, m_dpram, 0);
+
SEGAM1AUDIO(config, m_m1audio, 0);
m_m1audio->rxd_handler().set(m_m1uart, FUNC(i8251_device::write_rxd));
diff --git a/src/mame/drivers/model2.cpp b/src/mame/drivers/model2.cpp
index a3cec69c9c7..7a679b25a22 100644
--- a/src/mame/drivers/model2.cpp
+++ b/src/mame/drivers/model2.cpp
@@ -2548,6 +2548,7 @@ void model2o_state::model2o(machine_config &config)
model2_timers(config);
model2_screen(config);
+ // create SEGA_MODEL1IO device *after* SCREEN device
model1io_device &ioboard(SEGA_MODEL1IO(config, "ioboard", 0));
ioboard.set_default_bios_tag("epr14869c");
ioboard.read_callback().set("dpram", FUNC(mb8421_device::left_r));
@@ -2560,7 +2561,7 @@ void model2o_state::model2o(machine_config &config)
SEGAM1AUDIO(config, m_m1audio, 0);
m_m1audio->rxd_handler().set(m_uart, FUNC(i8251_device::write_rxd));
- I8251(config, m_uart, 8000000); // uPD71051C, clock unknown
+ I8251(config, m_uart, 8000000); // uPD71051C, clock unknown
m_uart->txd_handler().set(m_m1audio, FUNC(segam1audio_device::write_txd));
clock_device &uart_clock(CLOCK(config, "uart_clock", 500000)); // 16 times 31.25MHz (standard Sega/MIDI sound data rate)
diff --git a/src/mame/drivers/saitek_stratos.cpp b/src/mame/drivers/saitek_stratos.cpp
index e0f757e3292..b7d88ad52d1 100644
--- a/src/mame/drivers/saitek_stratos.cpp
+++ b/src/mame/drivers/saitek_stratos.cpp
@@ -1,7 +1,7 @@
// license:BSD-3-Clause
// copyright-holders:Olivier Galibert, hap
// thanks-to:Berger
-/***************************************************************************
+/******************************************************************************
SciSys/Saitek Stratos chesscomputer family (1987-1990)
(SciSys renamed themselves to Saitek in 1987)
@@ -18,7 +18,17 @@ When not using -autosave, press that button before exiting MAME, or NVRAM can ge
If that happens, the chesscomputer will become unresponsive on next boot. To force a
cold boot, press ACL, then hold the PLAY button and press GO.
-*******************************************************************************
+TODO:
+- emulate LCD at lower level, probably an MCU with embedded LCDC
+- LCD status bit handling is guessed. stratos expects it to be high after lcd command 0xf,
+ but tking2 won't work if it's done that way, and corona is different too
+- irq timing is derived from the main XTAL, but result should be similar with 5MHz and 5.67MHz,
+ there are a couple of "FREQ. SEL" nodes on the PCB, maybe related (not the ones in input ports)
+- tking(old revisions) and stratos slow responsive buttons, related to irq timing, but if that's changed,
+ the led blinking and in-game clock is too fast
+- does nvram.u7 work? it's cleared during boot, but not used after
+
+===============================================================================
Hardware notes:
- W65C02 or R65C02 at 5MHz or ~5.6MHz (for latter, box says 6MHz but that's a marketing lie)
@@ -40,17 +50,7 @@ as such by the chesscomputer community. Saitek simply advertised them as an impr
The initial Stratos/Turbo King (PRG ROM labels known: M,K,L,P) are probably engine version B,
very few bytes difference between revisions. The first Corona is engine version C.
-TODO:
-- emulate LCD at lower level, probably an MCU with embedded LCDC
-- LCD status bit handling is guessed. stratos expects it to be high after lcd command 0xf,
- but tking2 won't work if it's done that way, and corona is different too
-- irq timing is derived from the main XTAL, but result should be similar with 5MHz and 5.67MHz,
- there are a couple of "FREQ. SEL" nodes on the PCB, maybe related (not the ones in input ports)
-- tking(old revisions) and stratos slow responsive buttons, related to irq timing, but if that's changed,
- the led blinking and in-game clock is too fast
-- does nvram.u7 work? it's cleared during boot, but not used after
-
-***************************************************************************/
+******************************************************************************/
#include "emu.h"
#include "includes/saitek_stratos.h"