Tutorial de programacion para NES - Básico

Foro sobre la N.E.S. Aqui esta el verdadero mejunje donde podreis conversar.

Responder
Avatar de Usuario
Diskover
##El Jefe##
Mensajes: 488
Registrado: Lun, 27 Oct 2003, 20:59
Ubicación: Planeta Tierra
Contactar:

Re: Tutorial de programacion para NES - Básico

Mensaje por Diskover » Dom, 27 Nov 2011, 20:20

EDITO

Ok, ahora entiendo lo que pasa. Era equal.

Y ahora funciona bien. Con greater se debía hacer un chocho por que me imagino que greater signifique igual o mayor ¿no?

EDITO: Jajaja, casi respondemos a la vez XD XD XD
No dejes de visitar www.RetroNES.net la mejor pagina sobre la NES 8 bits de Nintendo, ¡Y en español!

Avatar de Usuario
sewave
Nintender@
Mensajes: 100
Registrado: Dom, 15 May 2005, 22:28
Contactar:

Re: Tutorial de programacion para NES - Básico

Mensaje por sewave » Dom, 27 Nov 2011, 20:24

Si, el greater sirve para mayor o igual

Avatar de Usuario
Diskover
##El Jefe##
Mensajes: 488
Registrado: Lun, 27 Oct 2003, 20:59
Ubicación: Planeta Tierra
Contactar:

Re: Tutorial de programacion para NES - Básico

Mensaje por Diskover » Dom, 27 Nov 2011, 20:28

Código: Seleccionar todo

if(equal) {
      lda #1
      sta situacion
      pantallas ()


lda #160
sta mira_x
lda #125
sta mira_y

}

Pongo esto debajo del codigo de pasar pantalla para reiniciar la posicion de la mira, pero no hace ni caso ¿no es raro?
No dejes de visitar www.RetroNES.net la mejor pagina sobre la NES 8 bits de Nintendo, ¡Y en español!

Avatar de Usuario
sewave
Nintender@
Mensajes: 100
Registrado: Dom, 15 May 2005, 22:28
Contactar:

Re: Tutorial de programacion para NES - Básico

Mensaje por sewave » Dom, 27 Nov 2011, 20:31

Tendras que hacer sta en el metasprite tambien.

Avatar de Usuario
Diskover
##El Jefe##
Mensajes: 488
Registrado: Lun, 27 Oct 2003, 20:59
Ubicación: Planeta Tierra
Contactar:

Re: Tutorial de programacion para NES - Básico

Mensaje por Diskover » Dom, 27 Nov 2011, 20:58

Ok, perfecto.

Y ya por ultimo: Estoy tratando de que la primera pantalla la #0 que es la primera que arranca, este 5 segundo y luego pase a la siguiente, a la #1

No hay tu tía. Aparece la pantalla e inmediatamente pasa a la siguiente, sin respetar el tiempo que quiero que haga. Este es el codigo que hago:

Código: Seleccionar todo

.
.
.
   forever {
   lda #0
   sta situacion

      inc frames
      lda frames
      cmp #300
      if (equal) {

         lda #1
         sta situacion
         pantallas()
              //Bucle principal, se ejecutara siempre
              forever {
              doFrame()      
               }
          }
   }
}
No dejes de visitar www.RetroNES.net la mejor pagina sobre la NES 8 bits de Nintendo, ¡Y en español!

Avatar de Usuario
sewave
Nintender@
Mensajes: 100
Registrado: Dom, 15 May 2005, 22:28
Contactar:

Re: Tutorial de programacion para NES - Básico

Mensaje por sewave » Dom, 27 Nov 2011, 21:19

Jeje, vas a tener que buscar otro metodo porque la NES es una maquina de 8 bits y 300 no cabe en 8 bits ;)
De momento pon 240 que son 4 segundos.

Avatar de Usuario
Diskover
##El Jefe##
Mensajes: 488
Registrado: Lun, 27 Oct 2003, 20:59
Ubicación: Planeta Tierra
Contactar:

Re: Tutorial de programacion para NES - Básico

Mensaje por Diskover » Dom, 27 Nov 2011, 21:23

Ok, lo pongo por ejemplo a 200, pero sigue sin funcionar ¿no es raro? Pasa del bucle que le pongo, carga directamente doFrame()
No dejes de visitar www.RetroNES.net la mejor pagina sobre la NES 8 bits de Nintendo, ¡Y en español!

Avatar de Usuario
sewave
Nintender@
Mensajes: 100
Registrado: Dom, 15 May 2005, 22:28
Contactar:

Re: Tutorial de programacion para NES - Básico

Mensaje por sewave » Dom, 27 Nov 2011, 21:28

Pues a no ser que tengas el frames cargado a un numero alto antes de entrar en ese bucle forever, no veo que puede estar mal.
De todos modos, seria mejor que hicieras algo tal que:

Código: Seleccionar todo

lda #0
sta frames
do {
    lda frames
    clc
    adc #1
    cmp #200
} while(not equal)
//luego el forever del doframe

Para esperar 200 frames antes del bucle principal, no poner un forever dentro del otro.

Avatar de Usuario
Diskover
##El Jefe##
Mensajes: 488
Registrado: Lun, 27 Oct 2003, 20:59
Ubicación: Planeta Tierra
Contactar:

Re: Tutorial de programacion para NES - Básico

Mensaje por Diskover » Dom, 27 Nov 2011, 21:37

Nada, me sigue haciendo lo mismo: Carga la pantalla principal e inmediatamente carga la siguiente sin esperar esos 4 segundos.

Código: Seleccionar todo

   do {
      inc frames
      clc
      adc #1
      cmp #200
   }   while (not equal)
   lda #1
   sta situacion
   pantallas()
   //Bucle principal, se ejecutara siempre
   forever {
      doFrame()      
   }
}
No dejes de visitar www.RetroNES.net la mejor pagina sobre la NES 8 bits de Nintendo, ¡Y en español!

Avatar de Usuario
sewave
Nintender@
Mensajes: 100
Registrado: Dom, 15 May 2005, 22:28
Contactar:

Re: Tutorial de programacion para NES - Básico

Mensaje por sewave » Dom, 27 Nov 2011, 21:48

Diskover escribió:Nada, me sigue haciendo lo mismo: Carga la pantalla principal e inmediatamente carga la siguiente sin esperar esos 4 segundos.

Código: Seleccionar todo

   do {
      inc frames
      clc
      adc #1
      cmp #200
   }   while (not equal)
   lda #1
   sta situacion
   pantallas()
   //Bucle principal, se ejecutara siempre
   forever {
      doFrame()      
   }
}

Prueba con:

Código: Seleccionar todo

   
      do {
                int_waitVbl()
      lda frames
      clc
      adc #1
                sta frames
      cmp #200
   }   while (not equal)
   lda #1
   sta situacion
   pantallas()
   //Bucle principal, se ejecutara siempre
   forever {
      doFrame()      
   }
}

Sin el int_waitVbl() no espera a que pase un frame y el incremento pasa en un visto y no visto xD
Última edición por sewave el Dom, 27 Nov 2011, 21:52, editado 1 vez en total.

Responder