Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
Federico Muttis
@fmuttis
a ver q tal se comporta el coso patcheado este cuando haya que usarlo enserio, pero bueno, pude cargar el logo y eso
claro, los seniores tienen vida social y no contestan un sabado a las 2am
besis!
Ricardo Quesada
@ricardoquesada
:+1:
Damián Silvani
@munshkr
@fmuttis grosso!!
Federico Muttis
@fmuttis
mande el commit recien, que tenia otras cosas tambien asi que es un commit despelotado, me habia faltado patchear una cosita en pefchain, ahora andan los 2 ejemplos en pal-n y ntsc =)
Sebastian 'topo' Muniz
@smuniz
Genio
Damián Silvani
@munshkr
buenísimo! veo muchos nops mágicos, como debuggearon esto?
Damián Silvani
@munshkr
pensando mucho? probando a manopla en las c64s?
Federico Muttis
@fmuttis
en un vice compilado con --enable-debug, corri CPU trace para la version que andaba (PAL-B) y para la que no (PAL-N), el trace es un .txt masomenos grande que tiene cada instruccion de asm que ejecuta el cpu desde que le das trace hasta que lo frenas. la lista empieza con una columna que dice en que direccion esta la instruccion que esta ejecutando
comparando esas direcciones (o sea, parseando el trace para que quede solo eso), diff de pal-n contra pal-b dio que el checksum de lo que se habia recibido de la diskettera era incorrecto
a todo esto, le habia mandado un mail al developer, que me dijo que "debe tener que ver con que el CPU de la pal-n ejecuta mas rapido, entonces hay un problema de timing con el codigo que se ejecuta en la diskettera" (spindle sube un cacho de codigo a la diskettera para fast-loadear)
con el topo habiamos estado viendo estos dias como pinga estaba implementado eso "a grandes razgos", y esas instrucciones que son rodeadas por los nops que agregamos, son las que tienen que ver con usar el puerto serie (los accesos a dd00 en stage1.s)
una vez que le pegue a la cantidad de nops y donde ponerlos, el checksum dejo de dar mal
el problema siguiente fue que el primer stage de spindle, lo que hace es copiar parte de su codigo a las paginas c y d (0c00-0cff y 0d00-0dff), pero al agregar esos nops, el codigo ya no entraba en 0xff * 2 bytes <.<
entonces hubo que copiar el resto a la pagina e (0e00-0eff)
ete aqui que spindle usaba esa pagina para bajar el second stage... entonces tuve que mover ese puntero/define para que en vez de 0e00-0eff use 0f00-0fff
Federico Muttis
@fmuttis
con eso anduvo example-spin/
despues, para que ande example-pefchain/, toque pefchain.c, que tenia hardcodeado LAST_RESERVED_PAGE = 0xe... y ahora es 0xf :)
y en un lugarcito, pefchain.c usaba LAST_RESERVED_PAGE para calcular donde meter blank pages (algo tipo address = LAST_RESERVED_PAGE+1)
pero 0xf + 1 = 0x10! que es donde suelen estar los .SID!
....asi que puse address = 0 aprovechando que el chabon tenia un cacho de codigo muerto justito ahi abajo que calculaba "un address conveniente" para blank pages segun todos los .efo que encadena (vaya uno a saber por que tenia anulado ese codigo.. ya traera problemas supongo)
y bueno listo, ahi anduvo todo =)
ah lo de darme cuenta del quilombo de que el codigo no entraba en la pagina fue con el mismo cpu trace.. y por que el developer tambien habia dicho que "ah y guarda que por ahi se te acaba la pagina y lo vas a tener que manejar"
btw subi vicpack, asi que hay soporte para fli y hires y esas cosas.. que voy a ir integrando a /src/.. corregi el fli que viene en vicpack para que ande en todas las normas tambien (o eso parece, no tiene sentido que haya quedado multinorma..)
Federico Muttis
@fmuttis
ah no, no es exactamente multinorma, en pal-b anda pero se ve un cacho gris horrible =P
Damián Silvani
@munshkr
wow! impresionante lo apretado que estaba spindle ja, bueno, supongo que este tipo de cosas como "no me entra en memoria" o "estoy pisando otras cosas" nos vamos a chocar continuamente :)
Federico Muttis
@fmuttis
:P
Federico Muttis
@fmuttis
habemus fli
Sebastian 'topo' Muniz
@smuniz
Esaaaaa
Damián Silvani
@munshkr
grosso!
Federico Muttis
@fmuttis
;D
Damián Silvani
@munshkr
@fmuttis che, estoy portando el coso de sprites que hice a spindle... cómo sabe mkpef donde poner la data de imagenes etc? tiene que tener 2 bytes adelante del archivo?
Federico Muttis
@fmuttis
Exactamente :) 2 bytes little endian, fijate en part/mc que es facil pq tiene un solo grafico. Usamos extension .c64 para todos los archivos binarios para que el make clean no se los lleve puestos :)
Despues probalo en el script (../../) para generar el .d64 y ver si anda bien.. guarda que hires_s anda mal, podes sacarlo del script para q no te joda
(Acordate de correr x64 -model drean, que tenemos cosas q no andan mas en pal-b)
Damián Silvani
@munshkr
ahh cierto!
por spindle lo decís? o por los parts que tenemos?
Federico Muttis
@fmuttis
Por los parts, fli no creo que ande en palb por ej
Igual si anda el prg dentro del part despues se ve:p
Damián Silvani
@munshkr
see ahí lo prob
probé*
el hires_w_sprites no anda en spindle, pero por separado si
bah, desde el script no anda quiero decir, el prg que viene del pef de la parte sí
puede ser?
Damián Silvani
@munshkr
@fmuttis ahí pude portar la rom de sprites, no más tuve un problema con que xa65 me reconociera una variable en la zeropage, tengo que investigar un toque eso de los ejemplos de spindle...
ah, y desde script anda bien también! aunque si lo pongo después de mc o fli se rompe todo :P se ve que hay algo que no estamos reseteando o algo por el estilo
Federico Muttis
@fmuttis
Niiiice :))
Federico Muttis
@fmuttis
ahi lo fixie eso, era que no estaba inicializado $d016 creo, o $d018, o uno de esos. fixie part/hires que tenia el mismo bardo, y ahora todos andan felizmente entremezclados como sea =)
Ricardo Quesada
@ricardoquesada
ea, hay alguien aca?