diff options
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 |
commit | 5916c9a300223f13f2d4b93b34e3073ef6f43cac (patch) | |
tree | 98360b01a9582e99444792be20a6db42ea97dbb4 | |
parent | 6d4a81795eeb610a79ac5153507f47464258ee81 (diff) |
sb30: does not have multiple queens, pawn promotion is set up in software (nw)
-rw-r--r-- | src/mame/drivers/risc2500.cpp | 11 | ||||
-rw-r--r-- | src/mame/drivers/tasc.cpp | 3 | ||||
-rw-r--r-- | src/mame/machine/smartboard.cpp | 4 |
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)) |