Karoshi MSX Community

Desarrollo MSX => Desarrollo (Español/Spanish) => Mensaje iniciado por: Darth_Fistro en 04 de Abril de 2007, 09:15:14 am



Título: Problema compilando con el asmsx
Publicado por: Darth_Fistro en 04 de Abril de 2007, 09:15:14 am
Bueno, esta maravillosa herramienta es como una novia. Es algo genial pero también te da sus malos momentos  ;)

Uso la 0.11 y tengo que poner nops, cortar comentarios y demás cuando al compilador le da por decir que tal o cual etiqueta no existe, y una vez me volví loco porque había puesto un punto en lugar de una coma en los datos tras una instrucción db y menuda se lió. Lo de ahora también es muy raro.

Pongo en situación: una rom de 32kb (empezando por la página 1). Uso la rutina de Robsy de dectección de slots justo al principio. Tengo el código al principio y los datos de caracteres al final. El juego empieza volcando todo y saltando al menú del juego (pantallita decorativa).

Pues bien, ahora comienzo a meter las DATAS de las fases (enemigos y tal). Meto una pantalla (no sé, sobre 20 o 30 bytes), etiqueto como ;PANTALLA_1, luego meto la dos, etc... Pues a partir de la décima, cuando compilo y ejecuto, en el menú sale todo en color amarillo, los caracteres mal definidos (todos como barras verticales) pero el juego sigue tal cual. Poniendo bucles infinitos en el menú he llegado hasta el punto donde se jode todo, justo al ejecutarse una rutina de impresión de caracteres al final del código. Parece como si tal rutina, además de los datos gráficos, estuviera fuera del alcance de la rom  ???. Supongo que si me hubiese pasado de los 32kb el compilador me avisaría. Además, usando la rutinilla de impresión de memoria libre con ENDCODE y tal, me da que aún quedan 12Kbs  :-\

He revisado la sintaxis de esas líneas DATAS y todo parece correcto, es más como digo con 10 pantallas va bien pero a partir de ahí se jode todo.

¿He de pasarlo a un asmsx superior y compilar ahí? Un fastidio porque tengo que llevar cada vez el programa a otro ordenador, pero si no hay más remedio...  :)

¡Saludos!


Título: Re: Problema compilando con el asmsx
Publicado por: jltursan en 04 de Abril de 2007, 09:19:20 am
Creo que el propio Robsy te recomendaría encarecidamente que actualizaras a la versión 0.12. En cualquier caso, me temo que si quieres estar seguro de si es un fallo tuyo o de compilación, vas a tener que usar otro compilador, ya sea el nuevo asMSX u otro; así saldrás de dudas.


Título: Re: Problema compilando con el asmsx
Publicado por: Jon_Cortazar en 04 de Abril de 2007, 09:36:57 am
Juanma, ese error me suena más a que sea del código, que del asmsx. Si, es cierto que a veces el asmsx tiene problemas con el parser, pero un fallo como ese de corrupción de gráficos me parece un poco extraño que sea debido a una compilación erronea... la rutina de definición de caracteres apunta a donde debe en RAM?... hay descompresión previa de datos?... podrías postear los pedazos de código relevantes?  ;)


Título: Re: Problema compilando con el asmsx
Publicado por: Darth_Fistro en 04 de Abril de 2007, 10:24:06 am
No hay compresión y la etiqueta apunta dentro de la rom. Acabo de darme cuenta de que no sólo parece como si esas etiquetas hubieran volado, sino que los textos que se deberían imprimir en el menú también. Sin embargo, un gráfico que está almacenado detrás de esas etiquetas sí aparece correctamente.

Los datos de las pantallas son:

;--------------------------
;PANTALLA 00
;--------------------------

db   0,  0,  0,   0,   0   ;lím <, lím >, control, sprderbase, sprizqbase
db   0,  0,  0,   0,   0
db   0,  0,  0,   0,   0
db   209,  0,  0,  0      ;Datos VRAM cada sprite
db   209,  0,  0,  0
db   209,  0,  0,  0   
db   0,  0         ;Coord.x,y nave 1
db   0,  0         ;Coord.x,y nave 2
dw   0            ;Coord.vram blindado o nodriza
db   0            ;Color nave 1
db   0            ;Color nave 2
dw   0            ;Coord. cañón der.
dw   0            ;Coord. cañón izq.
db   0            ;Spr.base nave 1
db   0           ;Spr.base nave 2
db   00000000b


y así para todas. En el momento que pego más de diez en el código ya se fastidia todo. Las rutinas de volcado de caracteres son las típicas de:

ld hl,CARACTERES
ld de,0
ld bc,255*8
call LDIRVM, etc e igual con los colores a partir de la 8192.


Título: Re: Problema compilando con el asmsx
Publicado por: nerlaska en 04 de Abril de 2007, 11:01:49 am
Pásate al SDCC! :-)


Título: Re: Problema compilando con el asmsx
Publicado por: Darth_Fistro en 04 de Abril de 2007, 11:29:24 am
¡Seguro que también hace de las suyas! No, gracias  ;)


Título: Re: Problema compilando con el asmsx
Publicado por: Jon_Cortazar en 04 de Abril de 2007, 12:08:33 pm
me podrías pasar el código por mail? -prometo no desvelar nada (gratis)-  ;)


Título: Re: Problema compilando con el asmsx
Publicado por: Darth_Fistro en 04 de Abril de 2007, 12:12:13 pm
Gracias, Jon  :) Voy a intentar primero pasarlo a un portátil donde tengo el XP y la última versión del asmsx para ver que no sea un fallo de programación. Si me veo en las últimas, te haré entonces perder valioso tiempo mirando código guarrissembler, jejejeje  ;D


Título: Re: Problema compilando con el asmsx
Publicado por: nerlaska en 04 de Abril de 2007, 12:27:59 pm
el SDCC va fino como el coral :)


Título: Re: Problema compilando con el asmsx
Publicado por: pentacour en 04 de Abril de 2007, 12:49:34 pm
Pues a mi me pasó algo parecido pero al final era que estaba mal comprimida esa pantalla y al descomprimir me corrompía todo lo que podía y más.

¿Haces algo con esos bytes de la pantalla 11 antes de que se corrompan los gráficos? ¿Y si metes los bytes de la 11 en la 0 también pasa solo con 10 pantallas?¿La rutina de impresión de caracteres está jodida (no si está en rom claro), o ya ha jodido alguien antes los datos que quiere volcar a VRAM?

[Offtopic al post] Ejem, Jon, ¿te acuerdas de mi? ...  ::) No, tranquilo, estoy haciendo otras cosas  ;) [/Offtopic al post]





Título: Re: Problema compilando con el asmsx
Publicado por: Darth_Fistro en 04 de Abril de 2007, 01:12:27 pm
No hago nada raro, es más, como dije, con menos de diez pantallas funciona bien. Hago un copy/paste y meto alguna pantalla más en blanco y se fastidia todo. Tengo que investigar a fondo, me temo  :-\


Título: Re: Problema compilando con el asmsx
Publicado por: Jon_Cortazar en 04 de Abril de 2007, 01:40:36 pm
[Offtopic al post] Ejem, Jon, ¿te acuerdas de mi? ...  ::) No, tranquilo, estoy haciendo otras cosas  ;) [/Offtopic al post]

De hecho, si :), luego te pongo un mail... pirataaaa!...  :-* :D


Título: Re: Problema compilando con el asmsx
Publicado por: pentacour en 04 de Abril de 2007, 01:51:46 pm
De hecho, si :), luego te pongo un mail... pirataaaa!...  :-* :D
;D  ;D  ;D  :D  :D  :D


Título: Re: Problema compilando con el asmsx
Publicado por: Darth_Fistro en 04 de Abril de 2007, 03:13:46 pm
Qué va, lo he probado en un XP con la última versión del asmsx (0.12f1) y pasa lo mismo. Eso sí, no sé si en la última versión RANDOM y RANDOMIZE son palabras clave del compilador, porque me daba error de sintaxis en una etiqueta llamada así y tuve que renombrarla.

El error es muy extraño. Parece que a medida que voy añadiendo pantallas, se van perdiendo los datos que al final del programa. Primero son los gráficos, luego los textos que van almacenados depués. Si es un error de programación debe ser algo muy tonto, porque no hago nada raro y lo único que hago es copy/paste de los datos de las pantallas al editor de textos, y además el problema no está en una rutina que vuelque pantallas o algo así, sino en la propia presentación del programa, que no vuelca las pantallas para nada.


Título: Re: Problema compilando con el asmsx
Publicado por: pentacour en 04 de Abril de 2007, 03:47:33 pm
La verdad es que el fallo de las etiquetas a veces hace dudar de que el compilador introduzca algún error, pero tiene pinta que sea un error tonto, y esos son los peores de encontrar  ???

Si copias los datos de las pantallas 11 en adelante, pero sin ponerles etiquetas, solo como relleno ¿también falla? Si falla solo al poner etiquetas, entonces sí que habría que dudar del compilador, pero es extraño.


Título: Re: Problema compilando con el asmsx
Publicado por: pitpan en 04 de Abril de 2007, 03:53:09 pm
Juanma, si estás utilizando un offset para saber dónde tienes los datos de las distintas pantallas, asegúrate que si los desplazamientos son de más de 8 bits también estés utilizando tú contadores de más de 8 bits. Si no, estarás leyendo algo fuera de lugar. Lo digo porque me ha pasado alguna vez y el resultado se parecía bastante a lo que comentas.

Para descartar que sea un problema del asMSX, te recomiendo que analices el fichero SYM y analices si las direcciones parecen más o menos adecuadas para los datos incluidos.


Título: Re: Problema compilando con el asmsx
Publicado por: Darth_Fistro en 05 de Abril de 2007, 09:42:33 am
El caso es que el error se produce en la pantalla de presentación, antes de volcar ninguna pantalla del juego, por tanto no hago llamadas a esa rutina. Simplemente los típicos LDIRVM para volcar los caracteres y algún texto. De todas formas, como el archivo SYM parece correcto, voy a aprovechar para depurar bien todo el programa por si saliera el fallo. Tengo que hacerlo línea a línea porque lo hice en la época del Buggy y el programa es una joya, VPOKEs y VPEEKs repartidos a lo largo de todo el código, detección de colisiones con tiles leyendo directamente en la pantalla en lugar de usar buffers... vamos, una auténtica guarrería. Así mato dos pájaros de un tiro, dadme tiempo y si después de un limpiado sigue la cosa igual ya os aviso.

Muchas gracias a todos, por supuesto  :D


Título: Re: Problema compilando con el asmsx
Publicado por: Darth_Fistro en 05 de Abril de 2007, 09:56:27 am
Ya está, Edu, con tanto comentario en el listado se me había pasado que comenzaba con START directamente en el código principal saltándose tu rutina de detección de la segunda página, con lo que al pasarme de los 16kb se jodía todo. ¡Mea culpa,soy  idiotaaa!  :-[ Perdón por la molestia pero me había entrado el ataque de pánico e impotencia  :-[ Al menos la buena noticia es que la rom sigue adelante  :)

¡Gracias!  :D


Título: Re: Problema compilando con el asmsx
Publicado por: Darth_Fistro en 05 de Abril de 2007, 09:58:06 am
Mierda, es algo que nunca miro porque TODOS los códigos fuente que tengo empiezan en tu rutina directamente, pero este lo empecé hace mucho tiempo y el START apuntaba directamente al INICIO, ¡qué fallo más tonto! (baneadme una temporada, plís)  :D


Título: Re: Problema compilando con el asmsx
Publicado por: Dioniso en 05 de Abril de 2007, 10:01:31 am
MSX FOREVER (hasta que saquen un ZX81 con TMS, PSG y 64K de RAM)

Pero eso será un MSX en una caja de Spectrum  >:(

 ;)


Título: Re: Problema compilando con el asmsx
Publicado por: Jon_Cortazar en 05 de Abril de 2007, 10:12:33 am
Mierda, es algo que nunca miro porque TODOS los códigos fuente que tengo empiezan en tu rutina directamente, pero este lo empecé hace mucho tiempo y el START apuntaba directamente al INICIO, ¡qué fallo más tonto! (baneadme una temporada, plís)  :D

Nunca, nunca!!!!, ahora que se te ve tan animado!. Fallos así los tiene cualquiera, hombre!, ahora... a por todas!!!  ;)


Título: Re: Problema compilando con el asmsx
Publicado por: Darth_Fistro en 05 de Abril de 2007, 10:22:14 am
Citar
Pero eso será un MSX en una caja de Spectrum  >:(
 ;)

jejeje, sería un MSX con teclado de membrana y más portátil  ;)


Título: Re: Problema compilando con el asmsx
Publicado por: MsxKun en 05 de Abril de 2007, 11:15:46 am
Mierda, es algo que nunca miro porque TODOS los códigos fuente que tengo empiezan en tu rutina directamente, pero este lo empecé hace mucho tiempo y el START apuntaba directamente al INICIO, ¡qué fallo más tonto! (baneadme una temporada, plís)  :D

Nunca, nunca!!!!, ahora que se te ve tan animado!. Fallos así los tiene cualquiera, hombre!, ahora... a por todas!!!  ;)

Si si, totalmente de acuerdo. Cosas similares me han pasado.
Pero es un buen motivo para aprovechar y darle un buen par de patadas..  ;D Aprovechemos que se deja...


Título: Re: Problema compilando con el asmsx
Publicado por: Darth_Fistro en 05 de Abril de 2007, 12:06:27 pm
No abuse, please  ;D


Título: Re: Problema compilando con el asmsx
Publicado por: kabish en 25 de Abril de 2007, 12:11:34 pm
No te preocupes q meteduras de pata las hay peores.

Yo por ejemplo modificaba un codigo fuente mientras compilaba otro. Y mientras decia "rayos, esta rutina no funciona como habia pensado .." pues dos horas de mi vida perdidas ..  :D

.. pues hasta de eso se aprende.

Animo !!


Título: Re: Problema compilando con el asmsx
Publicado por: Darth_Fistro en 25 de Abril de 2007, 02:06:42 pm
Jajaja, me ha pasado también cantidad de veces  :D