; @salida Carry: Flag bajado si el sistema sobre el que se ejecuta el juego es una Super Game Boy
check_sgb:
di
ld hl, MltReqTwoPlayers ; Seleccionamos el modo de dos jugadores
call sgbpackettransfer
ld a, P1F_4 | P1F_5
ld [rP1], a ; Desactivamos la lectura de teclas y pad para leer el identificador del siguiente controlador
ld a, [rP1]
ld a, [rP1]
ld a, [rP1]
ld a, [rP1] ; Varias lecturas para evitar el "bouncing" de los valores del registro
ld b, a ; Almacenamos el identificador del primer controlador
; Simulamos una lectura del controlador
ld a, P1F_5
ld [rP1], a ; Activamos la lectura de la cruceta
ld a, P1F_4
ld [rP1], a ; Activamos la lectura de los botones
ld a, P1F_4 | P1F_5
ld [rP1], a ; Desactivamos la lectura de teclas y pad para leer el identificador del siguiente controlador
ld a, [rP1]
ld a, [rP1]
ld a, [rP1]
ld a, [rP1]
cp b ; Si el identificador de ambos controladores es el mismo significa que no ha habido respuesta a la petición del modo de dos jugadores y que no nos encontramos en una Super Game Boy
jr nz, check_sgb_0
and a ; Bajamos el flag de carry
ret ; No se está ejecutando en una Super Game Boy
check_sgb_0:
ld hl, MltReqOnePlayer
call sgbpackettransfer ; Volvemos al modo un jugador
scf ; Subimos el flag de carry
ret ; Se está ejecutando en una Super Game Boy