User Tag List

Página 11 de 61 PrimerPrimer ... 78910111213141521 ... ÚltimoÚltimo
Resultados 151 al 165 de 902

Tema: [HILO OFICIAL] GameBoy Advance & GameBoy Development

  1. #151

    Fecha de ingreso
    Sep 2008
    Ubicación
    WORLD 9 - WARP ZONE!
    Mensajes
    14,749
    Mencionado
    30 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    193
    Agradecer Thanks Received 
    1,623
    Thanked in
    Agradecido 652 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    285
    si es un ejemplo de TONC de los que estoy siguiendo , toolbox, es es de las que llama a otros .h incluidos en el proecto TONC pero tmb hace uso de .h del devkitPRO.

    Pues no tengo torrent instalado ene sta máquina pero si lo puedes subir a otro tipo de sistema descargas mejor. pero vamos como veas.
    Última edición por jduranmaster; 21/06/2010 a las 15:43

  2. #152

    Fecha de ingreso
    Dec 2004
    Mensajes
    3,876
    Mencionado
    77 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    20
    Agradecer Thanks Received 
    341
    Thanked in
    Agradecido 201 veces en [ARG:2 UNDEFINED] posts
    Cita Iniciado por jduranmaster Ver mensaje
    si es un ejemplo de TONC de los que estoy siguiendo , toolbox, es es de las que llama a otros .h incluidos en el proecto TONC pero tmb hace uso de .h del devkitPRO.

    Pues no tengo torrent instalado ene sta máquina pero si lo puedes subir a otro tipo de sistema descargas mejor. pero vamos como veas.
    Con el cliente normal de bittorrent no debería haber problemas y si hay más gente interesada, más rápido bajará...

    Los .h del DevkitPro son simples defines... el meollo está en ToolBox. De hecho, ToolBox lo va construyendo poco a poco a medida que avanza el tutorial (aunque más que tutorial yo lo llamaría libro... TONC es un pedazo de curro).
    'A story in a game is like a story in a porn movie. It's supposed to be there but it's not that important' -John Carmack
    Ole, que grande el Johnny!

  3. #153

    Fecha de ingreso
    Sep 2008
    Ubicación
    WORLD 9 - WARP ZONE!
    Mensajes
    14,749
    Mencionado
    30 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    193
    Agradecer Thanks Received 
    1,623
    Thanked in
    Agradecido 652 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    285
    Cita Iniciado por saucjedi Ver mensaje
    Con el cliente normal de bittorrent no debería haber problemas y si hay más gente interesada, más rápido bajará...

    Los .h del DevkitPro son simples defines... el meollo está en ToolBox. De hecho, ToolBox lo va construyendo poco a poco a medida que avanza el tutorial (aunque más que tutorial yo lo llamaría libro... TONC es un pedazo de curro).
    ok usare el bittorrent pues. Más adelante va usando el ToolBox para hacer cosas cada vez más complicadillas, hay un ejemplo por ahi donde se cogen y hacen una especiae de animación con dos cadenas que esta supercurrado.

  4. #154

    Fecha de ingreso
    Jan 2006
    Ubicación
    Xixón, Asturies
    Mensajes
    2,741
    Mencionado
    20 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    0
    Agradecer Thanks Received 
    14
    Thanked in
    Agradecido 6 veces en [ARG:2 UNDEFINED] posts
    Tengo casi listo un nuevo ejemplo sobre como usar el timer de la gameboy y controlarlo mediante interrupciones, muy interesantes para obtener timings correctos y no preocuparnos de controlarlo a mano.
    Además usa la interrupción de VBlank para dibujar.
    Esta noche lo subo :-)

    LADECADENCE.NET GBCartflasher!!!

  5. #155

    Fecha de ingreso
    Sep 2008
    Ubicación
    WORLD 9 - WARP ZONE!
    Mensajes
    14,749
    Mencionado
    30 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    193
    Agradecer Thanks Received 
    1,623
    Thanked in
    Agradecido 652 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    285

  6. #156

    Fecha de ingreso
    Jan 2006
    Ubicación
    Xixón, Asturies
    Mensajes
    2,741
    Mencionado
    20 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    0
    Agradecer Thanks Received 
    14
    Thanked in
    Agradecido 6 veces en [ARG:2 UNDEFINED] posts
    Juas, al final han cambiao los planes y tenia una hora más libre, asi que aqui lo teneis:

    http://wiki.ladecadence.net/doku.php...dor#hola_timer

    :-)

    LADECADENCE.NET GBCartflasher!!!

  7. #157

    Fecha de ingreso
    Sep 2008
    Ubicación
    WORLD 9 - WARP ZONE!
    Mensajes
    14,749
    Mencionado
    30 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    193
    Agradecer Thanks Received 
    1,623
    Thanked in
    Agradecido 652 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    285
    lo acabo de probar, muy bueno como siempre tio. puedes explicar más en detalle estas dos rutinas?:

    Código:
    DibujaCronometro:
        ; decenas de horas
        ld      a, [_HORAS]
        and     $F0
        swap    a
        ld      [_POS_CRONOM], a
        ; horas
        ld      a, [_HORAS]
        and     $0F
        ld      [_POS_CRONOM+1], a
        ; :
        ld      a, 10
        ld      [_POS_CRONOM+2], a
        ; decenas de minutos
        ld      a, [_MINUTOS]
        and     $F0
        swap    a
        ld      [_POS_CRONOM+3], a
        ; minutos
        ld      a, [_MINUTOS]
        and     $0F
        ld      [_POS_CRONOM+4], a
        ; :
        ld      a, 10
        ld      [_POS_CRONOM+5], a
        ; decenas de segundos
        ld      a, [_SEGUNDOS]
        and     $F0
        swap    a
        ld      [_POS_CRONOM+6], a
        ; segundos
        ld      a, [_SEGUNDOS]
        and     $0F
        ld      [_POS_CRONOM+7], a
    
        ret
    
    ; Controla el tiempo
    ControlTimer:
        ld      a, [_CONTROL_TIEMPO]
        cp      20                      ; cada 20 interrupciones, pasa 1 seg
        jr      z, .incrementa
        inc     a                       ; si no, incrementamos y volvemos
        ld      [_CONTROL_TIEMPO], a
        ret
    .incrementa
        ; reseteamos el contador
        ld      a, 0
        ld      [_CONTROL_TIEMPO], a
        ; incrementamos los segundos
        ld      a, [_SEGUNDOS]
        inc     a
        daa
        cp      96              ; han pasado 60 segundos? (96 porque usamos BCD)
        jr      z, .minutos     ; si, a controlar los minutos
    
        ld      [_SEGUNDOS], a  ; no, guardamos y volvemos
        ret
    .minutos
        ld      a, 0
        ld      [_SEGUNDOS], a  ; incrementar el minuto, segundos a 0
    
        ld      a, [_MINUTOS]
        inc     a
        daa
        cp      96              ; han pasado 60 minutos?
        jr      z, .horas       ; si, a controlar las horas
    
        ld      [_MINUTOS], a   ; no, guardamos y volvemos
        ret
    .horas
        ld      a, 0
        ld      [_MINUTOS], a  ; incrementar el minuto, segundos a 0
    
        ld      a, [_HORAS]
        inc     a
        daa
        cp      36              ; han pasado 24 horas? (36 equivale a 24 en BCD)
        jr      z, .reset       ; si, a volver a empezar
    
        ld      [_HORAS], a   ; no, guardamos y volvemos
        ret
    .reset
        call    Resetea
    
        ret

  8. #158

    Fecha de ingreso
    Jan 2006
    Ubicación
    Xixón, Asturies
    Mensajes
    2,741
    Mencionado
    20 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    0
    Agradecer Thanks Received 
    14
    Thanked in
    Agradecido 6 veces en [ARG:2 UNDEFINED] posts
    Ahora si me tengo que pirar, de noche las explico.

    LADECADENCE.NET GBCartflasher!!!

  9. #159

    Fecha de ingreso
    Jun 2010
    Ubicación
    Gazth-Sonika
    Mensajes
    618
    Mencionado
    0 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    31
    Agradecer Thanks Received 
    0
    Thanked in
    Agradecido 0 veces en [ARG:2 UNDEFINED] posts
    Vaya este hilo es muy interesante. Aun conservo mi vieja GameBoy Advance con cartucho flashcart, y una GameBoy color Transparente. Si las roms que se han hecho para GBA son compatibles con el FlashCart de GBA las probare.

  10. #160

    Fecha de ingreso
    Jan 2006
    Ubicación
    Xixón, Asturies
    Mensajes
    2,741
    Mencionado
    20 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    0
    Agradecer Thanks Received 
    14
    Thanked in
    Agradecido 6 veces en [ARG:2 UNDEFINED] posts
    Bien vamos con las explicaciones. Primero voy a explicar ControlTimer, porque nos ayudará a explicar mejor la otra.

    Código:
    ; Controla el tiempo
    ControlTimer:
        ld      a, [_CONTROL_TIEMPO]
        cp      20                      ; cada 20 interrupciones, pasa 1 seg
        jr      z, .incrementa
        inc     a                       ; si no, incrementamos y volvemos
        ld      [_CONTROL_TIEMPO], a
        ret
    Como explico en el tutorial, tenemos que con el timer a 4096Hz y con el timer con valor inicial 51, se llama a la interrupción del timer cada aprox 0.05 segundos, asi que para contar de 1 en 1 segundos para el cronómetro, lo que hacemos aqui es contar las veces que se llama a esta subrutina, si se la ha llamado 20 veces, han pasado 0.05 * 20 = 1 segundo, asi que vamos a modificar el tiempo, si no, incrementamos el contador y volvemos.

    Código:
    .incrementa
        ; reseteamos el contador
        ld      a, 0
        ld      [_CONTROL_TIEMPO], a
        ; incrementamos los segundos
        ld      a, [_SEGUNDOS]
        inc     a
        daa
        cp      96              ; han pasado 60 segundos? (96 porque usamos BCD)
        jr      z, .minutos     ; si, a controlar los minutos
    
        ld      [_SEGUNDOS], a  ; no, guardamos y volvemos
        ret
    Bien, ahora vamos a incrementar el tiempo ya que ha pasado 1 segundo, primero reseteamos el contador de veces que se llama a la función, porque como han pasado 20, tenemos que volver a contar desde cero.

    Luego vamos a aumentar los segundos. Cargamos en A los segundos, y le sumamos uno, entonces tenemos que ver si el resultado es mayor que 60, porque si es asi, tenemos que poner los segundos a cero, y sumar un minuto. Pero veis que uso daa. daa es una instrucción, que lo que hace es convertir el contenido de A a BCD (Binary Coded Decimal), si conoceis BCD, los numeros binarios en lugar de guardarse tal cual, se guardan en un byte de manera que cada 4 bits representan un numero del 0 al 9, y no del 0 al 15 como podria ser en base 2 normal. Esto es muy útil porque aunque con un byte sólo podemos guardar de 0 a 99, en cada medio byte tengo unidades y decenas respectivamente del número de segundos/minutos/horas, y esto nos será muy útil para luego dibujarlos. Asi que convierto el contenido de A en BCD y lo comparo con 60 (que en BCD es 0110 (6) y 0000 (0), 01100000 y eso es 96 representado en binario normal, que es lo que entiende el procesador al comparar, que el contenido en binario sea igual, por eso comparo con 96), si tenemos mas de 60 segundos, salto a aumentar los minutos, si no, guardo el resultado en los segundos, y vuelvo.

    Código:
    .minutos
        ld      a, 0
        ld      [_SEGUNDOS], a  ; incrementar el minuto, segundos a 0
    
        ld      a, [_MINUTOS]
        inc     a
        daa
        cp      96              ; han pasado 60 minutos?
        jr      z, .horas       ; si, a controlar las horas
    
        ld      [_MINUTOS], a   ; no, guardamos y volvemos
        ret
    .horas
        ld      a, 0
        ld      [_MINUTOS], a  ; incrementar el minuto, segundos a 0
    
        ld      a, [_HORAS]
        inc     a
        daa
        cp      36              ; han pasado 24 horas? (36 equivale a 24 en BCD)
        jr      z, .reset       ; si, a volver a empezar
    
        ld      [_HORAS], a   ; no, guardamos y volvemos
        ret
    .reset
        call    Resetea
    
        ret
    Y aqui es casi lo mismo para los minutos y las horas. Para los minutos, lo primero que hago es poner los segundos a cero (59-->0) y luego incremento los minutos y hago lo mismo que con los segundos, comprobar si han pasado 60 y en caso afrimativo ir a aumentar las horas, y si no volver. Y con las horas igual, sólo que si llegan a pasar 24 horas, reseteo, pongo todo a cero, y ale, a volver a empezar.


    Y ahora explico la rutina que dibuja el cronómetro, que es muy sencilla.
    Al inicio he definido una constante llamada _POS_CRONOM, tal que: _SCRN0+32*4+6. ¿Que significa eso? _SCRN0 era la dirección en memoria del mapa de fondo, donde se guarda que tile pintar en cada posición de los 32*32 tiles de fondo. Si a eso le sumo 32*4, obtengo, 32 bytes más adelante * 4 = La cuarta linea, y si le sumo 6, pues la cuarta linea de la pantalla, más 6 posiciones, el punto donde empezaré a dibujar el cronómetro.
    Y a partir de aqui es muy sencillo. Tengo que empezar a dibujar por las decenas de horas, luego las horas, luego los dos puntos, luego decenas de minutos... etc. Pues viendo el principio de la rutina:
    Código:
        ; decenas de horas
        ld      a, [_HORAS]
        and     $F0
        swap    a
        ld      [_POS_CRONOM], a
        ; horas
        ld      a, [_HORAS]
        and     $0F
        ld      [_POS_CRONOM+1], a
        ; :
        ld      a, 10
        ld      [_POS_CRONOM+2], a
    Cargo en el registro A, el contenido de la variable horas, como está guardada en BCD, sé que en el medio byte superior tengo las decenas de horas y en el inferior las unidades. Asi que para dibujar las decenas, hago un and de su contenido con $F0, que es %11110000, asi que esto borra el contenido de la media parte baja, dejando igual la media parte alta, y entonces haciendo swap, cambio la media parte alta por la media baja, con lo que ahora tengo en A, sólo el número de decenas de horas. Entonces simplemente cargo ese número en la posición _POS_CRONOM, que me meterá ese número en esa posición del mapa de pantalla. Sabemos que la gameboy, dibuja el fondo cogiendo los tiles de la lista de tiles segun el número que le digamos, entonces meterá en esa posición de fondo el tile número igual al número de decenas de horas. Como nuestros tiles del 0 al 9 son precisamente los dibujos de los números del 0 al 9, la gameboy dibujará en esa posición el número correspondiente a las decenas de horas.
    Luego para las unidades de horas, hacemos algo similar, pero lo que hacemos es el and contrario, con $0F, porque sólo nos interesa quedarnos con la parte baja (las unidades) y entonces no necesitamos el swap y dibujamos directamente el tile correspondiente al número, pero ahora en_POS_CRONOM+1, porque queremos dibujarlo una posición más a la derecha.
    Luego dibujamos los dos puntos (tile 10), y hacemos lo mismo para decenas de minuto, unidades de minuto, etc, simplemente añadiendo posiciones a la dirección inicial para dibujar el resto de números.
    Última edición por xzakox; 21/06/2010 a las 23:22

    LADECADENCE.NET GBCartflasher!!!

  11. #161

    Fecha de ingreso
    Jun 2010
    Ubicación
    Gazth-Sonika
    Mensajes
    618
    Mencionado
    0 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    31
    Agradecer Thanks Received 
    0
    Thanked in
    Agradecido 0 veces en [ARG:2 UNDEFINED] posts
    Que pedazo de tutorial para GBA y GB, entre xzakox y jduranmaster habeis puesto un motón de ejemplos muy guapos. espero contribuir en algo a este hilo.

  12. #162

    Fecha de ingreso
    Sep 2008
    Ubicación
    WORLD 9 - WARP ZONE!
    Mensajes
    14,749
    Mencionado
    30 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    193
    Agradecer Thanks Received 
    1,623
    Thanked in
    Agradecido 652 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    285

  13. #163

    Fecha de ingreso
    Oct 2006
    Ubicación
    Lima - Perú
    Mensajes
    672
    Mencionado
    0 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    44
    Agradecer Thanks Received 
    14
    Thanked in
    Agradecido 10 veces en [ARG:2 UNDEFINED] posts

    ............

    Hola Jduranmaster, de verdad me has sorprendido con todo lo que has hecho... el otro dia te prometí probar en mi GBA todos tus trabajos, dejame decirte que TODOS FUNCIONAN PERFECTAMENTE, usando GBA Sp + EZ FLASH IV (fw 1.67).

    Lo que si me gustó mucho es el Flashback Legends... que genialidad, aunque cuando pongo "español" salgan textos en francés... no se porque.

    Recuerdo que alguna vez encontre un reproductor de mp3 para la GBA, lamentablemente la version 2.0 era de pago, la 1.0 si la llegué a usar, si gustas revisar te dejo en enlace:

    http://gbatemp.net/t208044-translati...ha-and-options

    Y la verdad siempre quise publicar un tutorial usando esa aplicación pero por limitaciones en el idioma no lo llegue a concretar (sobre todo la version 2.0).

    Espero que mi comentario no este fuera de lugar... se que uds hablan de roms, texturas y demás.... pero es que yo quería saber si hubieran algunas otras opciones.... el visor de imágenes del EZ Flash me parece genial por ejemplo.

    Y bueno, mucha suerte y éxitos en el proyecto Jduranmaster.... se que conseguirás cosas increíbles.... si hay algo en que te pueda ayudar, solo avísame.

  14. #164

    Fecha de ingreso
    Sep 2008
    Ubicación
    WORLD 9 - WARP ZONE!
    Mensajes
    14,749
    Mencionado
    30 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    193
    Agradecer Thanks Received 
    1,623
    Thanked in
    Agradecido 652 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    285
    Cita Iniciado por Allen_S Ver mensaje
    Hola Jduranmaster, de verdad me has sorprendido con todo lo que has hecho... el otro dia te prometí probar en mi GBA todos tus trabajos, dejame decirte que TODOS FUNCIONAN PERFECTAMENTE, usando GBA Sp + EZ FLASH IV (fw 1.67).

    Lo que si me gustó mucho es el Flashback Legends... que genialidad, aunque cuando pongo "español" salgan textos en francés... no se porque.

    Recuerdo que alguna vez encontre un reproductor de mp3 para la GBA, lamentablemente la version 2.0 era de pago, la 1.0 si la llegué a usar, si gustas revisar te dejo en enlace:

    http://gbatemp.net/t208044-translati...ha-and-options

    Y la verdad siempre quise publicar un tutorial usando esa aplicación pero por limitaciones en el idioma no lo llegue a concretar (sobre todo la version 2.0).

    Espero que mi comentario no este fuera de lugar... se que uds hablan de roms, texturas y demás.... pero es que yo quería saber si hubieran algunas otras opciones.... el visor de imágenes del EZ Flash me parece genial por ejemplo.

    Y bueno, mucha suerte y éxitos en el proyecto Jduranmaster.... se que conseguirás cosas increíbles.... si hay algo en que te pueda ayudar, solo avísame.

    Tranqui, no te preocuopes. El FlashBack Legends, que conste que no es mio. Es de un grupo Francés de desarrolladores. Yo tmb lo he probado en le GBA con Flashcart y simepre me sale en idioma francés, supongo que o esta mal hecha la selección de idioma, o bien es que no está implementado y coge el de por defecto.

    Lo del reproductor de MP3 para GBA lo mirare, y si quieres podemos comentarlo por aqui. SALUDOS.

  15. #165

    Fecha de ingreso
    Jun 2010
    Ubicación
    Gazth-Sonika
    Mensajes
    618
    Mencionado
    0 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    31
    Agradecer Thanks Received 
    0
    Thanked in
    Agradecido 0 veces en [ARG:2 UNDEFINED] posts
    Una preguntilla, tmb podemos subir a este hilo cosas que hayamos hecho de ROM-Hacking?

Página 11 de 61 PrimerPrimer ... 78910111213141521 ... ÚltimoÚltimo

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •