Einzelnen Beitrag anzeigen
  #27  
Alt 08.11.2019, 13:50
Tibono Tibono ist offline
TASC R30
 
Registriert seit: 22.05.2018
Ort: Frankreich
Alter: 62
Land:
Beiträge: 458
Abgegebene Danke: 2.141
Erhielt 1.109 Danke für 362 Beiträge
Aktivitäten Langlebigkeit
7/20 6/20
Heute Beiträge
1/3 ssssss458
Re: MessChess und Arena - Fragen und Antworten

Hallo alle,

I go on with some tips: (English language, sorry - my German is too bad)

bug in fexc68k.lua (Fidelity Excel 68000):
currently:
Code:
function interface.setup_machine()
--	send_input(":IN.0", 0x80, 0.5) -- NEW GAME
--	emu.wait(1.0)
--	send_input(":IN.0", 0x01, 0.5) -- CLEAR
	emu.wait(1.0)

	interface.cur_level = "a1"
	interface.setlevel()
end

function interface.start_play(init)
	sb_reset_board(":board")
	emu.wait(1.0)
	send_input(":IN.0", 0x02, 1) -- MOVE
end
reset board needs to be moved, should be:
Code:
function interface.setup_machine()
	sb_reset_board(":board")
	emu.wait(1.0)
--	send_input(":IN.0", 0x80, 0.5) -- NEW GAME
--	emu.wait(1.0)
--	send_input(":IN.0", 0x01, 0.5) -- CLEAR
--	emu.wait(1.0)

	interface.cur_level = "a1"
	interface.setlevel()
end

function interface.start_play(init)
	send_input(":IN.0", 0x02, 1) -- MOVE
end

Additional delay potentially needed for letting the engines start smoothly in automated tournaments:

I experienced several times some engines failing to start correctly (MessChess process starts, but when the GUI wants to send further input, the emulated device is not in a position to receive, and the game & tournament hang). The device nevertheless later answers correctly to manual commands, showing evidence a protocol timing issue between the GUI and the engine.

This mostly happens with tournaments fast starts, such as those driven by ArenaSwiss, but may also happen with basic tournaments fully managed in Arena GUI, at start, when both opponents engage playing and both engines need to boot.

Perhaps this only happens using weak hardware such as my old laptop, requiring more time for the engines to be fully ready after booting, so use this tip only if any useful for you:

- edit init.lua (located in CB-Emu\MessChess\plugins\chessengine)
- find function board_reset()
- add a convenient pause before interface.setup_machine(), such as:
Code:
local function board_reset()
	game_started = false
.... cropped lines....
		{ -3,-5,-4,-2,-1,-4,-5,-3 }}

	if interface.setup_machine then
		emu.wait(5)
		interface.setup_machine()
	end
end
and same after any board reset (not all devices use a board reset)
Code:
local function sb_reset_board(tag)
	send_input(tag .. ":UI", 0x0200, 0.09)	-- SensorBoard RESET
	emu.wait(5)
end
This 5s pause will add to the ones already included device per device and individually tuned (most often 1s like for above fexc68k, more time for some slow booting devices, e.g. 5s for Saitek Risc 2500). With an added 5s the reset wait ranges then from 6 to 10 seconds or so, according to the device.

These two additional pauses slightly delay the device start-up but it is a one-off extra delay, worth the gained reliability at tournaments start-up.

Hint #1: do not use Arena tournament setting in Start/Quit tab 'Additional delay during engine start phase' to provide a pause (so let value=0), as during this wait the GUI uses high CPU - ruining the expected more comfortable start for the MessChess engines.

Hint #2: use the mess.cmd syntax I suggested above in previous post, should you experience some performance issue in automated tournaments - moreover should you like to set >100% emulation speed!

Gruß, Eric
Mit Zitat antworten
Folgende 2 Benutzer sagen Danke zu Tibono für den nützlichen Beitrag:
fhub (08.11.2019), Luis (08.11.2019)