Mensajes recientes

Páginas: [1] 2 3 ... 10
1
General / Re:Crowdfunding, Verkami y otros micromecenazgos
« Último mensaje por josepzin en Hoy a las 19:51:46 »
Los contenidos, la verdad está interesante :D

Citar
64 Nightmares será un libro de tapa dura de 232 páginas y se dividirá en varios capítulos:

Licencias repugnantes

A mediados de los años ochenta, muchas empresas de software se estaban dando cuenta de que otorgar licencias sobre una propiedad popular, ya fuera una película, un juego de arcade o una persona, era una forma segura de obtener reconocimiento instantáneo. Pero, naturalmente, no todo se tradujo bien en el C64: estos son algunos de los juegos con licencia más mal concebidos y lamentablemente producidos que adornaron la computadora Commodore.

Paciencia de un santo

Los desarrolladores hicieron maravillas con el C64; desafortunadamente, solo había una cierta cantidad que incluso los programadores más hábiles podían crear dentro de los límites de la computadora. ¿La solución? Haga que un juego sea difícil, para que dure más tiempo y el jugador obtenga una mejor relación calidad-precio. Si a esto le sumamos que los programadores a menudo realizan sus propias pruebas, los juegos difíciles son inevitables. Aquí está mi selección de los juegos más tortuosos y frustrantes del Commodore 64.

¡¿Qué hicieron?!

Era el comienzo de una industria y todos estaban encontrando su lugar, desde los departamentos de marketing hasta los desarrolladores, periodistas y editores. Mirando hacia atrás, tal vez sea injusto criticar y reírse de las cosas extrañas que hacía la gente en aquel entonces. Pero lo haremos de todos modos. Bienvenido a They Did What?!, un conjunto de pesadillas de codificación, publicación y marketing que desafían la razón hoy en día.

Simplemente horrible

Nadie se propone hacer un mal juego. Debido a la falta de experiencia, la intensa presión del tiempo y las limitaciones técnicas, a veces las cosas simplemente no funcionan. Pero es mejor haberlo intentado y fracasado que no haberlo intentado en absoluto. Bueno, en realidad, como demuestran estos juegos, a veces es mejor intentarlo, sí, pero tal vez intentar algo más…
2
General / Re:Nuevos juegos en desarrollo
« Último mensaje por josepzin en Hoy a las 19:30:37 »
Parece que alguien se está tomando el trabajo de colorear el Tony.

Citar
Maciek Malecki está trabajando en colorear el juego TONY para C64... los colores aparecerán en la actualización del juego, tal vez después de las vacaciones.



Enlace a la noticia: https://www.facebook.com/photo/?fbid=407151888839478&set=a.109199475301389

El original:
https://www.youtube.com/watch?v=me9UXscLtK0
3
General / Re:Crowdfunding, Verkami y otros micromecenazgos
« Último mensaje por Bieno en Hoy a las 17:42:46 »
Otro nuevo, escrito por Andrew Fisher, un veterano ya en la edición de libros sobre C64



https://www.kickstarter.com/projects/zzap642021annual/commodore-nightmares?ref=ksr_email_mktg_auto_user_new_friend_project
4
Ensamblador / Re:Rutinas de ensamblador con Laddh
« Último mensaje por PacoBlog64 en Hoy a las 17:28:07 »
Próximo capítulo: que el sprite pase los X > 255

Nos centraremos solo en esto porque lo merece. Al empezar a programar con sprites siempre nos encontraremos con este problema, en un byte solo caben valores de 0 a 255 pero en la pantalla visible se llega hasta la coordenada 346 x en horizontal. Para acceder a esa parte derecha de la pantalla hay que activar el bit correspondiente a cada sprite en el registro $d010, lda #1 sta $d010 para el sprite 0 por ejemplo, y señalar su nueva posición X volviendo a escribir 0 en su coordenada X, o sea 0=256, 1=257, etc, si seguimos avanzando hacia la derecha hasta 96 máximo que ya se saldría de la pantalla.
Y a la inversa si volvemos a la izquierda, habría que poner a 0 el bit correspondiente en el registro $d010 para que nos lo muestre en la parte izquierda de la pantalla, o sea, desactivar registro y poner el valor 255 en la coordenada X del sprite.
Esto es fácil de hacer con un sprite pero se complica cuando estas moviendo los 8 sprites por la pantalla, comprobar todas las posibles combinaciones de si están en el lado derecho o el izquierdo es arduo y farragoso si lo compruebas sprite por sprite, pero no hace mucho encontré una rutina de como lo controla el Richard Bayliss/TND en su excelente tutorial de Assemble it en https://tnd64.unikat.sk/ y es la rutina Expande que añadiremos a nuestro programa, con solo 11 mnemónicos, niquelao, ver para creer.
Ejecutar el programa y analizar la rutina en el listado, con esas simples líneas controla los 8 sprites, estén o no en pantalla en todo momento, lo que hace es crear unas variables spritepos para las coordenadas X,Y de los 8 sprites que estan al final del listado, y en la rutina EXPANDE las convierte a coordenadas hardware. Simple y efectivo. 
He añadido una rutina SpritesWave para que veáis como se mueven todos los sprites por pantalla.

Código: [Seleccionar]
; 10 SYS (2064) línea para que autoarranque el programa

*=$0801

        BYTE    $0E, $08, $0A, $00, $9E, $20, $28,  $32, $30, $36, $34, $29, $00, $00, $00

*=$0810 ;inicio del programa

v = $d000       ;variable que apunta al chip VIC, el que gestiona todo lo gráfico


        jsr musica      ;llama a rutina música por interrupciones
        jsr sprites     ;llamamos a la rutina para presentar el sprite en pantalla
loop    jsr raster_wait ;sin esto no veríamos nada, el código máquina es raaaaaapido               
        jsr PlayerControl ;la rutina para controlar el joystick
        jsr expande     ;controla msb de los sprites, > o < de 255 x
        jmp loop        ;vuelve al bucle principal


expande  ldx #$00       ;posición msb de los sprites
xloop    lda spritepos+1,x
         sta $d001,x
         lda spritepos,x
         asl        ;x position is more
         ror $d010  ;than 256 pixels
         sta $d000,x
         inx
         inx
         cpx #16
         bne xloop
         rts

SpritesWave
        lda contador
        tax
        inc contador

        lda tabla,x
        sta spritepos+4
        lda tabla+$100,x
        sta spritepos+5

        lda tabla,x
        sec
        sbc #10
        sta spritepos+6
        lda tabla+$100,x
        sta spritepos+7

        lda tabla,x
        sec
        sbc #20
        sta spritepos+8
        lda tabla+$100,x
        sta spritepos+9

        lda tabla,x
        sec
        sbc #30
        sta spritepos+2
        lda tabla+$100,x
        sta spritepos+3

        lda tabla,x
        sec
        sbc #40
        sta spritepos+10
        lda tabla+$100,x
        sta spritepos+11

        lda tabla,x
        sec
        sbc #50
        sta spritepos+12
        lda tabla+$100,x
        sta spritepos+13

        lda tabla,x
        sec
        sbc #60
        sta spritepos+14
        lda tabla+$100,x
        sta spritepos+15

        rts

MUSICA    sei
          lda #<irq
          ldx #>irq
          sta $314
          stx $315
          lda #$00
          JSR $1000     ;INITIALIZE MUSIC
          cli
          RTS

irq       lda #$01
          STA $D019     ; ACK ANY RASTER IRQS
          JSR $1003     ;PLAY THE MUSIC
          jsr SpritesWave
          jmp $ea31


PlayerControl
        LDA $DC00   ;LEEMOS JOY
        AND #31     ;LA CUATRO DIRECCIONES ARRIBA ABAJO IZQ DER   
        CMP #30     ;MAS DIAGONALES Y FUEGO
        BEQ ARR
        CMP #29
        BEQ ABJ
        CMP #27
        BEQ IZQ
        CMP #23
        BEQ DER
        cmp #22
        beq derar
        cmp #21
        beq derab
        CMP #25
        BEQ IZQab
        CMP #26
        BEQ IZQar
        cmp #15
        beq fuego
        rts

arr     dec spritepos+1 ;coordenada vertical del sprite 0
        rts
abj     inc spritepos+1
        rts
izq     dec spritepos   ;coordenada horizontal del sprite 0
        rts
der     inc spritepos
        rts
derar   inc spritepos
        dec spritepos+1
        rts
derab   inc spritepos
        inc spritepos+1
        rts
izqab   dec spritepos
        inc spritepos+1
        rts
izqar   dec spritepos
        dec spritepos+1
        rts
fuego   inc $d020       ;cambia color del borde pantalla
        rts

raster_wait             ;espera línea raster 255, el raster pasa 50 veces por segundo
l       LDA #$ff        ;en pantalla
        CMP $D012
        BNE l
        BIT $d011
        BMI l
        rts

*=2368  ; la forma del sprite
 byte 9,86,0
 byte 37,86,0
 byte 149,86,0
 byte 85,86,0
 byte 85,170,170
 byte 86,37,86
 byte 86,37,86
 byte 86,37,86
 byte 86,37,90
 byte 86,42,168
 byte 86,42,168
 byte 86,47,250
 byte 86,47,254
 byte 86,47,254
 byte 86,47,254
 byte 86,42,170
 byte 85,170,0
 byte 85,86,0
 byte 149,86,0
 byte 37,86,0
 byte 9,86,0

sprites lda #255
        sta v+21        ;activamos todos los sprites
        sta v+28        ;activamos modo multicolor del sprite 0
        lda #37         ;puntero para indicar donde estan los datos del sprite, 37*64=2368
        sta 2040
        sta 2041
        sta 2042
        sta 2043
        sta 2044
        sta 2045
        sta 2046
        sta 2048
        lda #1          ;color sprites
        sta v+39
        lda #9          ;color sprites
        sta v+40
        lda #3          ;color sprites
        sta v+41
        lda #4          ;color sprites
        sta v+42
        lda #5          ;color sprites
        sta v+43
        lda #6          ;color sprites
        sta v+44
        lda #7          ;color sprites
        sta v+45
        lda #8          ;color sprites
        sta v+46

        lda #14         ;color multicolor 1, para todos los sprites
        sta v+37
        lda #2          ;color multicolor 2, para todos los sprites
        sta v+38
        lda #100        ;coordenadas x,y del sprite 0
        sta spritepos
        sta spritepos+1
        rts

*=$1000
incbin"commodore_64.sid",126

contador        byte 0

spritepos       BYTE $00,$00 ;SPRITE 0 X/Y
                BYTE $00,$00 ;SPRITE 1 X/Y
                BYTE $00,$00 ;SPRITE 2 X/Y
                BYTE $00,$00 ;SPRITE 3 X/Y
                BYTE $00,$00 ;SPRITE 4 X/Y
                BYTE $00,$00 ;SPRITE 5 X/Y
                BYTE $00,$00 ;SPRITE 6 X/Y
                BYTE $00,$00 ;SPRITE 7 X/Y

tabla     BYTE $B6,$B6,$B6,$B6,$B3,$B0,$AD,$AA,$A7,$A4,$A1,$9E,$9B,$98,$95,$92,$8F,$8C
          BYTE $89,$86,$83,$80,$7D,$7A,$77,$74,$71,$6E,$6B,$68,$65,$62,$5F,$5C,$59,$56,$53,$50
          BYTE $4D,$4A,$47,$44,$41,$3E,$3B,$38,$35,$32,$2F,$2C,$29,$26,$23,$20,$1D,$1A,$17,$14
          BYTE $11,$0E,$0B,$08,$05,$02,$FF,$FC,$F9,$F6,$FC,$FC,$FC,$FF,$02,$05,$08,$0B,$0E,$11
          BYTE $14,$17,$1A,$1D,$20,$23,$26,$29,$2C,$2F,$32,$35,$38,$3B,$3E,$41,$44,$47,$4A,$4D
          BYTE $50,$53,$56,$59,$5C,$5F,$62,$65,$68,$6B,$6E,$71,$74,$77,$7A,$7D,$80,$83,$86,$89
          BYTE $8C,$8F,$92,$95,$98,$9B,$9E,$A1,$A4,$A7,$AA,$AD,$B0,$B3,$B6,$B6,$B9,$B9,$B9,$B9
          BYTE $B9,$B9,$B6,$B3,$B0,$AD,$AA,$A7,$A4,$A1,$9E,$9B,$98,$95,$92,$8F,$8C,$89,$86,$83
          BYTE $80,$7D,$7A,$77,$74,$71,$6E,$6B,$68,$65,$62,$5F,$5C,$59,$56,$53,$50,$4D,$4A,$47
          BYTE $44,$41,$3E,$3B,$38,$35,$32,$2F,$2C,$29,$26,$23,$20,$1D,$1A,$17,$14,$11,$0E,$0B
          BYTE $08,$05,$02,$FF,$FC,$F9,$F6,$F6,$F6,$F6,$F6,$F6,$F6,$F6,$F6,$F6,$F6,$F6,$F6,$F6
          BYTE $F6,$F6,$F6,$F6,$F6,$F6,$F6,$F6,$F6,$F6,$F6,$F6,$F6,$F6,$F6,$F6,$F6,$F6,$F6,$F6
          BYTE $F6,$F6,$F6,$F6,$F6,$F6,$F6,$F6,$F6,$F6,$F6,$F6,$F6,$F6,$F6,$F6,$F6,$E6,$36,$36
          BYTE $36,$36,$36,$36,$36,$36,$36,$36,$36,$36,$36,$36,$36,$36,$36,$36,$36,$36,$36,$36
          BYTE $36,$36,$36,$36,$36,$36,$36,$36,$36,$36,$36,$36,$36,$36,$36,$36,$36,$36,$36,$36
          BYTE $36,$36,$36,$36,$36,$36,$36,$36,$36,$36,$36,$36,$36,$36,$36,$36,$36,$36,$36,$36
          BYTE $36,$36,$36,$36,$36,$36,$72,$72,$72,$72,$72,$72,$72,$72,$72,$72,$72,$72,$72,$72
          BYTE $72,$72,$72,$72,$72,$72,$72,$72,$72,$72,$72,$72,$72,$72,$72,$72,$72,$72,$72,$72
          BYTE $72,$72,$72,$72,$72,$72,$72,$72,$72,$72,$72,$72,$72,$72,$72,$72,$72,$72,$72,$72
          BYTE $72,$72,$72,$72,$72,$72,$72,$72,$72,$72,$72,$72,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4
          BYTE $B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4
          BYTE $B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4
          BYTE $B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4
          BYTE $B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4
          BYTE $B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4
          BYTE $B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$5A

Excelente explicación, simplemente añadir que la posición x=0 para los sprites está 24 píxeles a la izquierda del 0 de los caracteres, esto es así para poder hacer que un sprite aparezca píxel a píxel por el margen izquierdo, desde detrás del borde. Por ejemplo, si tienes el registro $d010 a 0 y pones $d000 (posición x del primer sprite) a 0 y $d001 (posición y del primer sprite) a 100 , el sprite no se verá porque quedará detrás del borde izquierdo. La última posición en la que puedes poner un sprite por la derecha es la que indicas por lo mismo, para poder esconderlo total o parcialmente en el borde derecho.
5
Ensamblador / Re:Rutinas de ensamblador con Laddh
« Último mensaje por Laddh en Hoy a las 11:32:09 »
Próximo capítulo: que el sprite pase los X > 255

Nos centraremos solo en esto porque lo merece. Al empezar a programar con sprites siempre nos encontraremos con este problema, en un byte solo caben valores de 0 a 255 pero en la pantalla visible se llega hasta la coordenada 346 x en horizontal. Para acceder a esa parte derecha de la pantalla hay que activar el bit correspondiente a cada sprite en el registro $d010, lda #1 sta $d010 para el sprite 0 por ejemplo, y señalar su nueva posición X volviendo a escribir 0 en su coordenada X, o sea 0=256, 1=257, etc, si seguimos avanzando hacia la derecha hasta 96 máximo que ya se saldría de la pantalla.
Y a la inversa si volvemos a la izquierda, habría que poner a 0 el bit correspondiente en el registro $d010 para que nos lo muestre en la parte izquierda de la pantalla, o sea, desactivar registro y poner el valor 255 en la coordenada X del sprite.
Esto es fácil de hacer con un sprite pero se complica cuando estas moviendo los 8 sprites por la pantalla, comprobar todas las posibles combinaciones de si están en el lado derecho o el izquierdo es arduo y farragoso si lo compruebas sprite por sprite, pero no hace mucho encontré una rutina de como lo controla el Richard Bayliss/TND en su excelente tutorial de Assemble it en https://tnd64.unikat.sk/ y es la rutina Expande que añadiremos a nuestro programa, con solo 11 mnemónicos, niquelao, ver para creer.
Ejecutar el programa y analizar la rutina en el listado, con esas simples líneas controla los 8 sprites, estén o no en pantalla en todo momento, lo que hace es crear unas variables spritepos para las coordenadas X,Y de los 8 sprites que estan al final del listado, y en la rutina EXPANDE las convierte a coordenadas hardware. Simple y efectivo. 
He añadido una rutina SpritesWave para que veáis como se mueven todos los sprites por pantalla.

Código: [Seleccionar]
; 10 SYS (2064) línea para que autoarranque el programa

*=$0801

        BYTE    $0E, $08, $0A, $00, $9E, $20, $28,  $32, $30, $36, $34, $29, $00, $00, $00

*=$0810 ;inicio del programa

v = $d000       ;variable que apunta al chip VIC, el que gestiona todo lo gráfico


        jsr musica      ;llama a rutina música por interrupciones
        jsr sprites     ;llamamos a la rutina para presentar el sprite en pantalla
loop    jsr raster_wait ;sin esto no veríamos nada, el código máquina es raaaaaapido               
        jsr PlayerControl ;la rutina para controlar el joystick
        jsr expande     ;controla msb de los sprites, > o < de 255 x
        jmp loop        ;vuelve al bucle principal


expande  ldx #$00       ;posición msb de los sprites
xloop    lda spritepos+1,x
         sta $d001,x
         lda spritepos,x
         asl        ;x position is more
         ror $d010  ;than 256 pixels
         sta $d000,x
         inx
         inx
         cpx #16
         bne xloop
         rts

SpritesWave
        lda contador
        tax
        inc contador

        lda tabla,x
        sta spritepos+4
        lda tabla+$100,x
        sta spritepos+5

        lda tabla,x
        sec
        sbc #10
        sta spritepos+6
        lda tabla+$100,x
        sta spritepos+7

        lda tabla,x
        sec
        sbc #20
        sta spritepos+8
        lda tabla+$100,x
        sta spritepos+9

        lda tabla,x
        sec
        sbc #30
        sta spritepos+2
        lda tabla+$100,x
        sta spritepos+3

        lda tabla,x
        sec
        sbc #40
        sta spritepos+10
        lda tabla+$100,x
        sta spritepos+11

        lda tabla,x
        sec
        sbc #50
        sta spritepos+12
        lda tabla+$100,x
        sta spritepos+13

        lda tabla,x
        sec
        sbc #60
        sta spritepos+14
        lda tabla+$100,x
        sta spritepos+15

        rts

MUSICA    sei
          lda #<irq
          ldx #>irq
          sta $314
          stx $315
          lda #$00
          JSR $1000     ;INITIALIZE MUSIC
          cli
          RTS

irq       lda #$01
          STA $D019     ; ACK ANY RASTER IRQS
          JSR $1003     ;PLAY THE MUSIC
          jsr SpritesWave
          jmp $ea31


PlayerControl
        LDA $DC00   ;LEEMOS JOY
        AND #31     ;LA CUATRO DIRECCIONES ARRIBA ABAJO IZQ DER   
        CMP #30     ;MAS DIAGONALES Y FUEGO
        BEQ ARR
        CMP #29
        BEQ ABJ
        CMP #27
        BEQ IZQ
        CMP #23
        BEQ DER
        cmp #22
        beq derar
        cmp #21
        beq derab
        CMP #25
        BEQ IZQab
        CMP #26
        BEQ IZQar
        cmp #15
        beq fuego
        rts

arr     dec spritepos+1 ;coordenada vertical del sprite 0
        rts
abj     inc spritepos+1
        rts
izq     dec spritepos   ;coordenada horizontal del sprite 0
        rts
der     inc spritepos
        rts
derar   inc spritepos
        dec spritepos+1
        rts
derab   inc spritepos
        inc spritepos+1
        rts
izqab   dec spritepos
        inc spritepos+1
        rts
izqar   dec spritepos
        dec spritepos+1
        rts
fuego   inc $d020       ;cambia color del borde pantalla
        rts

raster_wait             ;espera línea raster 255, el raster pasa 50 veces por segundo
l       LDA #$ff        ;en pantalla
        CMP $D012
        BNE l
        BIT $d011
        BMI l
        rts

*=2368  ; la forma del sprite
 byte 9,86,0
 byte 37,86,0
 byte 149,86,0
 byte 85,86,0
 byte 85,170,170
 byte 86,37,86
 byte 86,37,86
 byte 86,37,86
 byte 86,37,90
 byte 86,42,168
 byte 86,42,168
 byte 86,47,250
 byte 86,47,254
 byte 86,47,254
 byte 86,47,254
 byte 86,42,170
 byte 85,170,0
 byte 85,86,0
 byte 149,86,0
 byte 37,86,0
 byte 9,86,0

sprites lda #255
        sta v+21        ;activamos todos los sprites
        sta v+28        ;activamos modo multicolor del sprite 0
        lda #37         ;puntero para indicar donde estan los datos del sprite, 37*64=2368
        sta 2040
        sta 2041
        sta 2042
        sta 2043
        sta 2044
        sta 2045
        sta 2046
        sta 2048
        lda #1          ;color sprites
        sta v+39
        lda #9          ;color sprites
        sta v+40
        lda #3          ;color sprites
        sta v+41
        lda #4          ;color sprites
        sta v+42
        lda #5          ;color sprites
        sta v+43
        lda #6          ;color sprites
        sta v+44
        lda #7          ;color sprites
        sta v+45
        lda #8          ;color sprites
        sta v+46

        lda #14         ;color multicolor 1, para todos los sprites
        sta v+37
        lda #2          ;color multicolor 2, para todos los sprites
        sta v+38
        lda #100        ;coordenadas x,y del sprite 0
        sta spritepos
        sta spritepos+1
        rts

*=$1000
incbin"commodore_64.sid",126

contador        byte 0

spritepos       BYTE $00,$00 ;SPRITE 0 X/Y
                BYTE $00,$00 ;SPRITE 1 X/Y
                BYTE $00,$00 ;SPRITE 2 X/Y
                BYTE $00,$00 ;SPRITE 3 X/Y
                BYTE $00,$00 ;SPRITE 4 X/Y
                BYTE $00,$00 ;SPRITE 5 X/Y
                BYTE $00,$00 ;SPRITE 6 X/Y
                BYTE $00,$00 ;SPRITE 7 X/Y

tabla     BYTE $B6,$B6,$B6,$B6,$B3,$B0,$AD,$AA,$A7,$A4,$A1,$9E,$9B,$98,$95,$92,$8F,$8C
          BYTE $89,$86,$83,$80,$7D,$7A,$77,$74,$71,$6E,$6B,$68,$65,$62,$5F,$5C,$59,$56,$53,$50
          BYTE $4D,$4A,$47,$44,$41,$3E,$3B,$38,$35,$32,$2F,$2C,$29,$26,$23,$20,$1D,$1A,$17,$14
          BYTE $11,$0E,$0B,$08,$05,$02,$FF,$FC,$F9,$F6,$FC,$FC,$FC,$FF,$02,$05,$08,$0B,$0E,$11
          BYTE $14,$17,$1A,$1D,$20,$23,$26,$29,$2C,$2F,$32,$35,$38,$3B,$3E,$41,$44,$47,$4A,$4D
          BYTE $50,$53,$56,$59,$5C,$5F,$62,$65,$68,$6B,$6E,$71,$74,$77,$7A,$7D,$80,$83,$86,$89
          BYTE $8C,$8F,$92,$95,$98,$9B,$9E,$A1,$A4,$A7,$AA,$AD,$B0,$B3,$B6,$B6,$B9,$B9,$B9,$B9
          BYTE $B9,$B9,$B6,$B3,$B0,$AD,$AA,$A7,$A4,$A1,$9E,$9B,$98,$95,$92,$8F,$8C,$89,$86,$83
          BYTE $80,$7D,$7A,$77,$74,$71,$6E,$6B,$68,$65,$62,$5F,$5C,$59,$56,$53,$50,$4D,$4A,$47
          BYTE $44,$41,$3E,$3B,$38,$35,$32,$2F,$2C,$29,$26,$23,$20,$1D,$1A,$17,$14,$11,$0E,$0B
          BYTE $08,$05,$02,$FF,$FC,$F9,$F6,$F6,$F6,$F6,$F6,$F6,$F6,$F6,$F6,$F6,$F6,$F6,$F6,$F6
          BYTE $F6,$F6,$F6,$F6,$F6,$F6,$F6,$F6,$F6,$F6,$F6,$F6,$F6,$F6,$F6,$F6,$F6,$F6,$F6,$F6
          BYTE $F6,$F6,$F6,$F6,$F6,$F6,$F6,$F6,$F6,$F6,$F6,$F6,$F6,$F6,$F6,$F6,$F6,$E6,$36,$36
          BYTE $36,$36,$36,$36,$36,$36,$36,$36,$36,$36,$36,$36,$36,$36,$36,$36,$36,$36,$36,$36
          BYTE $36,$36,$36,$36,$36,$36,$36,$36,$36,$36,$36,$36,$36,$36,$36,$36,$36,$36,$36,$36
          BYTE $36,$36,$36,$36,$36,$36,$36,$36,$36,$36,$36,$36,$36,$36,$36,$36,$36,$36,$36,$36
          BYTE $36,$36,$36,$36,$36,$36,$72,$72,$72,$72,$72,$72,$72,$72,$72,$72,$72,$72,$72,$72
          BYTE $72,$72,$72,$72,$72,$72,$72,$72,$72,$72,$72,$72,$72,$72,$72,$72,$72,$72,$72,$72
          BYTE $72,$72,$72,$72,$72,$72,$72,$72,$72,$72,$72,$72,$72,$72,$72,$72,$72,$72,$72,$72
          BYTE $72,$72,$72,$72,$72,$72,$72,$72,$72,$72,$72,$72,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4
          BYTE $B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4
          BYTE $B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4
          BYTE $B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4
          BYTE $B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4
          BYTE $B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4
          BYTE $B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$B4,$5A
6
Ensamblador / Re:Rutinas de ensamblador con Laddh
« Último mensaje por josepzin en Hoy a las 00:13:40 »
Transpolando esto del sonido al video, es como si se tuviera que:
- Definir el RGB de la paleta de los 16 colores disponibles
- Crear las rutinas que ponen los pixels en pantalla
- Y luego el gráfico en si, que son los datos que aporta el tracker.

Si la analogía no sirve es que no lo entendí jaja no me peguen...
7
General / Re:Tiendas y novedades de software
« Último mensaje por josepzin en Mayo 02, 2024, 19:33:29 »
Cierto, parece ser un tema de propiedad intelectual, se han quitado lios de encima al cambiar de nombre.

Citar
Zurich, 8 de abril de 2024 – Un anuncio reciente ha generado oleadas de anticipación en toda la comunidad de Commodore 64 cuando un pequeño equipo de entusiastas, reconocidos en la escena C64, revelaron su último proyecto. Anunciado originalmente el 1 de abril de 2024, como un homenaje a un clásico juego de plataformas de 40 años, el proyecto enfrentó obstáculos inesperados para alinearse con la propiedad intelectual original.

A la luz de estos obstáculos y con el máximo respeto por la propiedad intelectual original, el equipo ha tomado la decisión de someterse a revisiones importantes para garantizar un lanzamiento exitoso. El juego, ahora titulado "Timo's Castle", promete ofrecer una experiencia de juego retro inolvidable manteniendo estándares éticos y legales.
8
General / Re:Tiendas y novedades de software
« Último mensaje por Bieno en Mayo 02, 2024, 19:21:57 »
Imagino que cuando dice "of that game", el THAT se refiere al original.

Aquí el anuncio sobre el cambio desde el propio Itch.io
https://romwer.itch.io/hc/devlog/720014/press-release-name-change
9
General / Re:Tiendas y novedades de software
« Último mensaje por josepzin en Mayo 02, 2024, 19:15:26 »
Se refiere al "autor" original del Henrys House???
10
Eventos / Re:Retrobarcelona 2024
« Último mensaje por josepzin en Mayo 02, 2024, 19:13:53 »
Este año preveo mucha asistencia al espacio de Xplora...
Páginas: [1] 2 3 ... 10