sb30: does not have multiple queens, pawn promotion is set up in software (nw)

This commit is contained in:
hap 2019-06-30 13:33:06 +02:00
parent 6d4a81795e
commit 5916c9a300
3 changed files with 11 additions and 7 deletions

View File

@ -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

View File

@ -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 )

View File

@ -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))