summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame
diff options
context:
space:
mode:
author hap <happppp@users.noreply.github.com>2019-06-30 13:33:06 +0200
committer hap <happppp@users.noreply.github.com>2019-06-30 13:33:06 +0200
commit5916c9a300223f13f2d4b93b34e3073ef6f43cac (patch)
tree98360b01a9582e99444792be20a6db42ea97dbb4 /src/mame
parent6d4a81795eeb610a79ac5153507f47464258ee81 (diff)
sb30: does not have multiple queens, pawn promotion is set up in software (nw)
Diffstat (limited to 'src/mame')
-rw-r--r--src/mame/drivers/risc2500.cpp11
-rw-r--r--src/mame/drivers/tasc.cpp3
-rw-r--r--src/mame/machine/smartboard.cpp4
3 files changed, 11 insertions, 7 deletions
diff --git a/src/mame/drivers/risc2500.cpp b/src/mame/drivers/risc2500.cpp
index 20fe814bbe1..36803729ee5 100644
--- a/src/mame/drivers/risc2500.cpp
+++ b/src/mame/drivers/risc2500.cpp
@@ -8,8 +8,11 @@ The chess engine is also compatible with Tasc's The ChessMachine software.
Was the hardware+software subcontracted to Tasc? It has similarities with Tasc R30.
TODO:
-- Sound is too short and high pitch, better when you underclock the cpu.
- Is cpu cycle timing wrong? or waitstate on p1000_w?
+- bootrom disable timer shouldn't be needed, real ARM has already fetched the next opcode
+- Sound is too short and high pitched, better when you underclock the cpu.
+ Is cpu cycle timing wrong? I suspect conditional branch timing due to cache miss
+ (pipeline has to refill). The delay loop between writing to the speaker is simply:
+ SUBS R2, R2, #$1, BNE $2000cd8
******************************************************************************/
@@ -367,5 +370,5 @@ ROM_END
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
-CONS( 1992, risc, 0, 0, risc2500, risc2500, risc2500_state, empty_init, "Saitek", "Kasparov RISC 2500", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
-CONS( 1995, montreux, 0, 0, risc2500, risc2500, risc2500_state, empty_init, "Saitek", "Mephisto Montreux", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) // after Saitek bought Hegener & Glaser
+CONS( 1992, risc, 0, 0, risc2500, risc2500, risc2500_state, empty_init, "Saitek", "Kasparov RISC 2500", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_SOUND )
+CONS( 1995, montreux, 0, 0, risc2500, risc2500, risc2500_state, empty_init, "Saitek", "Mephisto Montreux", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_SOUND ) // after Saitek bought Hegener & Glaser
diff --git a/src/mame/drivers/tasc.cpp b/src/mame/drivers/tasc.cpp
index cb729420a16..a4ea39d29dd 100644
--- a/src/mame/drivers/tasc.cpp
+++ b/src/mame/drivers/tasc.cpp
@@ -33,6 +33,7 @@ notes:
- holding UP+DOWN on boot load the TestMode
TODO:
+- bootrom disable timer shouldn't be needed, real ARM has already fetched the next opcode
- sound is too high pitched, same problem as in risc2500
******************************************************************************/
@@ -271,4 +272,4 @@ ROM_END
******************************************************************************/
// YEAR NAME PARENT CMP MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS
-CONS( 1993, tascr30, 0, 0, tasc, tasc, tasc_state, empty_init, "Tasc", "ChessSystem R30", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
+CONS( 1993, tascr30, 0, 0, tasc, tasc, tasc_state, empty_init, "Tasc", "ChessSystem R30", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_SOUND )
diff --git a/src/mame/machine/smartboard.cpp b/src/mame/machine/smartboard.cpp
index 523cb763be8..50c7a5ac15f 100644
--- a/src/mame/machine/smartboard.cpp
+++ b/src/mame/machine/smartboard.cpp
@@ -194,7 +194,7 @@ uint8_t tasc_sb30_device::spawn_cb(offs_t offset)
if (piece_available(1 + SB30_WHITE_ROOK1)) piece_id = SB30_WHITE_ROOK1;
else if (piece_available(1 + SB30_WHITE_ROOK2)) piece_id = SB30_WHITE_ROOK2;
}
- else if (offset == 5)
+ else if (offset == 5 && piece_available(1 + SB30_WHITE_QUEEN))
piece_id = SB30_WHITE_QUEEN;
else if (offset == 6 && piece_available(1 + SB30_WHITE_KING))
@@ -216,7 +216,7 @@ uint8_t tasc_sb30_device::spawn_cb(offs_t offset)
if (piece_available(1 + SB30_BLACK_ROOK1)) piece_id = SB30_BLACK_ROOK1;
else if (piece_available(1 + SB30_BLACK_ROOK2)) piece_id = SB30_BLACK_ROOK2;
}
- else if (offset == 11)
+ else if (offset == 11 && piece_available(1 + SB30_BLACK_QUEEN))
piece_id = SB30_BLACK_QUEEN;
else if (offset == 12 && piece_available(1 + SB30_BLACK_KING))