Einzelnen Beitrag anzeigen
  #4433  
Alt 18.04.2021, 17:18
fhub fhub ist offline
Lebende Foren Legende
 
Registriert seit: 19.04.2010
Beiträge: 2.857
Abgegebene Danke: 567
Erhielt 6.914 Danke für 1.560 Beiträge
Aktivitäten Langlebigkeit
5/20 15/20
Heute Beiträge
0/3 sssss2857
AW: Mess Emulator für diverse Schachcomputer ist fertig!

Hi hap,

after your change of the SmartBoard driver the LED blinking is indeed much better now!

But there's still one serious logical bug in this SmartBoard driver since Sandro has created this driver - I guess Sandro just didn't think about these situations:
Whenever you try to chose a piece on the S.BOARD INTERFACE, the driver checks if this piece is still 'available' ("if (piece_available(...)"), and this method leads to 2 serious problems:
1) You can't put the wanted piece on the board after a pawn promotion, when this piece is still on the board (either 1 queen or 2 rooks/bishops/knights), i.e. you can't promote to a 2nd queen for example.
2) And the same problem exists when you want to setup a position: it's not possible to chose more than 1 queen or 2 rooks/bishops/knights of the same colour, although the Tasc R30 accepts such positions of course.

In my CB-Emu package I've fixed this problem long time ago (in MessExtra/MessChess) by simply commenting out this piece test in the following routine:
Code:
bool tasc_sb30_device::piece_available(uint8_t id)
{
// hack: allow selecting every piece in 'spawn_cb' (necessary for promotion!)
/*
	for (int y = 0; y < 8; y++)
		for (int x = 0; x < 8; x++)
		{
			if (m_board->read_piece(x, y) == id)
				return false;
		}
*/
	return true;
}
Of course this could have been done in different ways, but this method was just the shortest way to skip this test, and I've not found any problems yet - you can promote to any piece and also setup positions with more than the usual 1 or 2 pieces of the same kind.

Just an information for you - I don't know if you want to fix this problem also in the MAME driver (maybe in any other way) ...

Regards,
Franz
Mit Zitat antworten