Autor Tema: Haciendo un juego compatible con PAL y NTSC a la vez  (Leído 4341 veces)

riq

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 566
    • Ver Perfil
    • From the C64 until today, a developer's perspective
Haciendo un juego compatible con PAL y NTSC a la vez
« en: Enero 15, 2015, 20:32:18 »
Hola,

¿Alguien tiene experience haciendo un juego compatible con PAL y NTSC a la vez?

Leí las diferencias técnicas entre ambos, y también vi que se puede detectar en runtime fácilmente cuando estas en PAL y cuando NTSC ( http://codebase64.org/doku.php?id=base:detect_pal_ntsc )

Mi duda más bien básica:
¿Cual es la mejor manera para que el juego funcione a la misma velocidad tanto en NTSC como en PAL?
¿Se pone un "delay" en si estas en NTSC? ¿tienen algún ejemplo que muestro como hacerlo?

Gracias!



Carlos

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 651
    • Ver Perfil
Re:Haciendo un juego compatible con PAL y NTSC a la vez
« Respuesta #1 en: Enero 15, 2015, 21:23:24 »
La teoría es sencilla, el funcionamiento diferente si el juego es PAL o NTSC es debido a que la mayoría de juegos sincronizan alguna (o varias) de sus rutinas con el refresco de pantalla (el famoso raster).

El refresco es diferente en PAL y NTSC, una pantalla PAL se refresca 50 veces por segundo mientras que una NTSC lo hace 60. Por lo tanto si hemos sincronizado el código para que algo se ejecute a determinada velocidad en PAL se verá mas rápido en NTSC y viceversa.

Soluciones hay varias, una es no sincronizar con los raster sino con el timer del CIA que es independiente de si es PAL o NTSC. Otra es detectar al principio del programa si estamos en un sistema PAL o NTSC (y por lo tanto refrescando a 50 o 60 veces por segundo) y tener en cuenta eso a la hora de sincronizar el código.

riq

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 566
    • Ver Perfil
    • From the C64 until today, a developer's perspective
Re:Haciendo un juego compatible con PAL y NTSC a la vez
« Respuesta #2 en: Enero 16, 2015, 00:45:08 »
Gracias Carlos.

¿Tenes idea donde puedo encontras más información?
¿O conoces de algún juego open source que use alguno de esos métodos?

Estoy ahora leyendo el código del Metal Warrior 4 ( http://cadaver.homeftp.net/games.htm ) para ver bien que usan.

Pero si conoces de algún ejemplo más sencillo que eso, te agradecería.

Gracias!

Carlos

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 651
    • Ver Perfil
Re:Haciendo un juego compatible con PAL y NTSC a la vez
« Respuesta #3 en: Enero 16, 2015, 01:19:21 »
Un ejemplo de sincronización de código con las interrupciones del CIA: http://codebase64.org/doku.php?id=base:timerinterrupts

riq

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 566
    • Ver Perfil
    • From the C64 until today, a developer's perspective
Re:Haciendo un juego compatible con PAL y NTSC a la vez
« Respuesta #4 en: Enero 16, 2015, 01:37:29 »
gracias! eso era exactamente lo que estaba buscando :)

josepzin

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 13906
  • Commodoreador web
    • Ver Perfil
    • Mi blog
Re:Haciendo un juego compatible con PAL y NTSC a la vez
« Respuesta #5 en: Enero 16, 2015, 15:30:57 »
Lo que no esté en Codebase64...
www.retroinvaders.com | www.commodoreplus.org  | josepzin.blogspot.com