document.write('
Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. ; @salida   Carry: Flag bajado si el sistema sobre el que se ejecuta el juego es una Super Game Boy
  2. check_sgb:
  3.     di
  4.     ld      hl, MltReqTwoPlayers    ; Seleccionamos el modo de dos jugadores
  5.     call    sgbpackettransfer
  6.     ld      a,  P1F_4 | P1F_5
  7.     ld      [rP1], a                ; Desactivamos la lectura de teclas y pad para leer el identificador del siguiente controlador
  8.     ld      a, [rP1]
  9.     ld      a, [rP1]
  10.     ld      a, [rP1]
  11.     ld      a, [rP1]                ; Varias lecturas para evitar el "bouncing" de los valores del registro
  12.     ld      ba                   ; Almacenamos el identificador del primer controlador
  13.     ; Simulamos una lectura del controlador
  14.     ld      a,  P1F_5
  15.     ld      [rP1]a               ; Activamos la lectura de la cruceta
  16.     ld      a,  P1F_4
  17.     ld      [rP1]a               ; Activamos la lectura de los botones
  18.     ld      a,  P1F_4 | P1F_5
  19.     ld      [rP1], a                ; Desactivamos la lectura de teclas y pad para leer el identificador del siguiente controlador
  20.     ld      a, [rP1]
  21.     ld      a, [rP1]
  22.     ld      a, [rP1]
  23.     ld      a, [rP1]
  24.     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
  25.     jr      nz, check_sgb_0
  26.     and     a                       ; Bajamos el flag de carry
  27.     ret                             ; No se está ejecutando en una Super Game Boy
  28. check_sgb_0:
  29.     ld      hl, MltReqOnePlayer
  30.     call    sgbpackettransfer       ; Volvemos al modo un jugador
  31.     scf                             ; Subimos el flag de carry
  32.     ret                             ; Se está ejecutando en una Super Game Boy
');