mojontwins / MK1

MT Engine MK1 para ZX Spectrum (La Churrera)
GNU General Public License v2.0
63 stars 11 forks source link

Behs desplazados en el modo COMPRESSED_LEVELS #22

Closed TartessosGames closed 6 months ago

TartessosGames commented 6 months ago

Pues con esta issue termino ya con los reportes de los problemillas que me he ido encontrando.

Los Behs a partir del tile 17 en adelante parecen estar desplazados. En el siguiente enlace he subido un rar con el src de LALA en modo 128k + UNPACKED_MAP + COMPRESSED_LEVELS:

https://github.com/TartessosGames/Pruebas/blob/main/Prueba%20behs%20desplazados.rar

He puesto los tiles desde el 17 ordenados por colores en 2 hileras y los he colocado en la pantalla de inicio del juego y en la adyacente, para que sea fácil de comprobar:

work

3

Los behs son los siguientes :

2

los behs dentro del recuadro naranja están invertidos, es decir, los 8 se comportan como 0, y los 0 como 8. Los que se encuentran dentro del recuadro verde se comportan correctamente. (En la captura de pantalla del juego, LALA no debería estar apoyada en el tile blanco, ya que su behs es 0)

He realizado también la misma prueba cambiando los behs a esta otra configuración:

1

En este caso, el comportamiento del tile 17 es correcto, pero el del resto de tiles se invierte hasta el último. Están todos dentro del recuadro naranja.

En el modo un solo nivel, es decir, sin COMPRESSED_LEVELS, no se da este problema, sin embargo, en modo COMPRESSED_LEVELS + PACKED_MAP también ocurre. En esta última configuración es como estoy montando mi proyecto, y tengo que desplazar los behs de los tiles de decoración.

mojontwins commented 6 months ago

No he podido mirarlo en profundidad, pero creo que sé cual es el problema: el conversor que lee el archivo txt de los behs está hecho en FreeBASIC, que es un clon de QuickBasic, usando la lectura de valores numéricos de fichero que trae incorporada. Esta lectura va leyendo valores numéricos y los separa por diversos hitos: comas y saltos de linea. La coma del final sumada al salto de linea hace que se lea un valor "inexistente" que se interpreta como un 0 y que se intercala justo ahí, desplazando al resto. Si pones todos los behs en una sola linea o quitas la coma del final obtendrás los datos correctos.

Como ahora no puedo encargarme de reescribir el conversor para encargarme yo mismo de parsear el txt y tener en cuenta este "glitch", lo voy a documentar.

Gracias.

TartessosGames commented 6 months ago

Lo acabo de comprobar, y seguro que es lo del conversor. Poniendo todos los behs en una fila no ocurre el problema. No obstante, dejo la issue abierta para que la cierres tu mismo cuando lo documentes o consideres. De nada, y un saludo.

mojontwins commented 6 months ago

Modificada la doc, por el momento, para hacer hincapié en que hay que ser amables y comprensivos con el conversor, que es tontete :D