Karoshi MSX Community
05 de Julio de 2021, 01:00:32 pm *
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.

Ingresar con nombre de usuario, contraseña y duración de la sesión
Noticias:
 
   Inicio   Ayuda Buscar Ingresar Registrarse  
Páginas: [1] 2 3
  Imprimir  
Autor Tema: SR5 -> SR2  (Leído 16845 veces)
0 Usuarios y 1 Visitante están viendo este tema.
Imanok
Karoshi Hero
*****
Mensajes: 626


« : 17 de Enero de 2006, 12:21:00 pm »

A ver...

Tengo un juego de patrones en un SR5 (que ya cumple las restricciones del SR2 y blablabla). Hay alguna utilidad con la que pueda convertir ese juego de patrones a DATA's en basic??

Graaaaaacias paaaaayos!
En línea
SapphiRe
Visitante
« Respuesta #1 : 17 de Enero de 2006, 12:30:52 pm »

A ver...

Tengo un juego de patrones en un SR5 (que ya cumple las restricciones del SR2 y blablabla). Hay alguna utilidad con la que pueda convertir ese juego de patrones a DATA's en basic??

Pues puedes hacer un programita en BASIC que lo haga. Básicamente sería:

Cargas la pantalla en SC5.
Cada patrón está formado por un bloque de 8x8, así que primero tenemos que hacer una rutina para convertir un byte. Si (X,Y) son las coordenadas de inicio del byte a convertir...

Código:
B=0
I=POINT(X,Y)
FOR A=X TO X+7
B=B*2
IF POINT(A,Y) = I THEN B=B+1 ELSE P=POINT(A,Y)
NEXT
C=I*16+P

Ahora tienes en B el byte para la tabla de patrones y en C el byte para la tabla de colores. Si repites esto con todos los bytes ya puedes convertir tu pantalla SC5 en SC2. Lo mejor sería pokear en RAM y luego guardarlo todo con un BSAVE, más eficiente que los DATA, aunque también puedes generar un fichero de texto con los DATA.

Tú decides.

Saludos
--
SapphiRe
En línea
Imanok
Karoshi Hero
*****
Mensajes: 626


« Respuesta #2 : 17 de Enero de 2006, 01:07:37 pm »

Pues puedes hacer un programita en BASIC que lo haga. Básicamente sería:

Cargas la pantalla en SC5.
Cada patrón está formado por un bloque de 8x8, así que primero tenemos que hacer una rutina para convertir un byte. Si (X,Y) son las coordenadas de inicio del byte a convertir...

Ya, ya... me refería a si ya existía algo que lo hiciese... para evitarme hacerlo yo mismo...

Lo mejor sería pokear en RAM y luego guardarlo todo con un BSAVE, más eficiente que los DATA, aunque también puedes generar un fichero de texto con los DATA.

Pero si quiero hacer una rom, lo suyo serían los data's, no?...
« Última modificación: 17 de Enero de 2006, 01:09:33 pm por Imanok » En línea
SapphiRe
Visitante
« Respuesta #3 : 17 de Enero de 2006, 01:13:51 pm »

Pero si quiero hacer una rom, lo suyo serían los data's, no?...

Al contrario, los datos en RAM serían mejor, siempre se pueden meter a capón en la ROM y ocupan mucho menos que los DATA's...
En línea
jltursan
Karoshi Forum's Guru
*******
Mensajes: 1516


¿Que es lo que has aprendido hoy?


WWW Email
« Respuesta #4 : 17 de Enero de 2006, 03:11:43 pm »

Citar
Al contrario, los datos en RAM serían mejor, siempre se pueden meter a capón en la ROM y ocupan mucho menos que los DATA's...

¡Esasto!, te ahorras la valiosa memoria que ocupan las lineas con DATA. Si esos datos los vas a integrar en una ROM BASIC puedes utilizar <publicidad una vez más>este programita</publicidad una vez más> con el que podrás crear el binario de la ROM (de 16Kb) a partir de un listado TOKENIZADO de BASIC y el binario con los datos de gráficos, rutinas de CM, música, etc.
En línea

Doom dee doom dee doom
Imanok
Karoshi Hero
*****
Mensajes: 626


« Respuesta #5 : 17 de Enero de 2006, 04:21:51 pm »

Pero admite varios binarios o ha de ser un binario con todo?
En línea
jltursan
Karoshi Forum's Guru
*******
Mensajes: 1516


¿Que es lo que has aprendido hoy?


WWW Email
« Respuesta #6 : 17 de Enero de 2006, 04:53:31 pm »

Bueno la idea es que sea solo 1 binario, ¿por qué?; pues porque en este tipo de ROMs sueles andar muy pillado de sitio y no tiene sentido el tener varios ficheros con huecos por enmedio. También es cierto que el programa podría pedir varios binarios y el sólo irlos colocando consecutivamente en memoria; pero en su momento y como a mi me gusta tenerlo todo muy controlado, preferí ser yo el que los juntara y planificara en un solo archivo Tongue
Para los que usan Windows, siempre se puede hacer COPY /B FILE1+FILE2 FILE3 y así se juntas todos los trozos en uno.
En línea

Doom dee doom dee doom
Imanok
Karoshi Hero
*****
Mensajes: 626


« Respuesta #7 : 19 de Enero de 2006, 11:12:37 am »

Más preguntillas sobre el Romcreator...

Imaginemos que tengo un programa en basic que hace un bload de un BIN que te carga los tres sets de patrones en VRAM. Al usar el Romcreator me vale ese mismo BIN o ha de retocarse de alguna forma?
En línea
jltursan
Karoshi Forum's Guru
*******
Mensajes: 1516


¿Que es lo que has aprendido hoy?


WWW Email
« Respuesta #8 : 19 de Enero de 2006, 05:27:37 pm »

Funciona perfectamente. La ROM de 16K que se crea, contiene todos los datos binarios que tú desde el programa cargarías normalmente con BLOAD. SI te fijas, en el programa hay un mapa de memoría de la página 2 en el que puedes ver gráficamente como quedan los bloques de BASIC y los binarios.
En línea

Doom dee doom dee doom
Imanok
Karoshi Hero
*****
Mensajes: 626


« Respuesta #9 : 20 de Enero de 2006, 12:35:46 am »

Funciona perfectamente. La ROM de 16K que se crea, contiene todos los datos binarios que tú desde el programa cargarías normalmente con BLOAD. SI te fijas, en el programa hay un mapa de memoría de la página 2 en el que puedes ver gráficamente como quedan los bloques de BASIC y los binarios.

Y cómo hago que se ejecute el binario??... o sea si antes, teniendo todo en un mismo directorio, ejecutaba el binario desde el programa basic con un bload, cómo hago que se ejecute ahora que está 'incrustado' en la rom??  Huh

Perdona mi pardillismo...
En línea
jltursan
Karoshi Forum's Guru
*******
Mensajes: 1516


¿Que es lo que has aprendido hoy?


WWW Email
« Respuesta #10 : 20 de Enero de 2006, 12:59:40 am »

Citar
ejecutaba el binario desde el programa basic con un bload

Cuando haces un BLOAD"xxxx",R, lo que haces son dos cosas: cargar el binario en memoria (que en la ROM a todos los efectos es como si ya lo hubieras cargado, te ahorras el BLOAD) y ejecutar algo en CM que tengas en ese binario, esto último lo puedes hacer con un DEFUSR=&Hxxxx, siendo xxxx la dirección en la que comenzará esa rutina.
Vamos, que la principal diferencia entre el BASIC de ambas versiones de tu programa es que antes tendrías un BLOAD"xxx",R y ahora no tendrás que usar BLOAD, sino únicamente un DEFUSR con su correspondiente USR. En ese binario, como es lógico, puedes tener de todo, más rutinas CM para definir con otros DEFUSR, datos gráficos que podrás usar directamente desde el BASIC, etc.
Lo único que tienes que tener claro es donde acaba tu programa BASIC y donde situas ese binario, que deberá estar comprendido entre ese final del BASIC y la última dirección de la página 2 ($BFFF)
En cuanto hagas alguna pruebecilla lo veras claro, clarete... Wink
En línea

Doom dee doom dee doom
nitrofurano
Karoshi Maniac
****
Mensajes: 259



WWW
« Respuesta #11 : 20 de Enero de 2006, 02:32:36 am »

my 'lazy' method would be (getting back to the start of the thread): (sorry this message being in english)
- running your stuff on an emulator, take a screenshot displaying all patterns you may have, or even from original pictures (png, bmp, tiff...) you may have too
- edit the resultant picture you have in a 256 character pattern screen - 256x64 pixels (a bit like the pp file resulting from the fmsx-dos screenshot), or use a converter  (like that ones from me, Robsy, etc... )
- the result maybe should be binary - use a hex editor (like Hex Workshop) or some code script (me and Robsy as well may have somewhere a bin to .asm or bin to hexdump converter) - converting later to msx-basic is not that difficult

i think that's all...
En línea
Imanok
Karoshi Hero
*****
Mensajes: 626


« Respuesta #12 : 20 de Enero de 2006, 08:51:28 am »

Cuando haces un BLOAD"xxxx",R, lo que haces son dos cosas: cargar el binario en memoria (que en la ROM a todos los efectos es como si ya lo hubieras cargado, te ahorras el BLOAD) y ejecutar algo en CM que tengas en ese binario, esto último lo puedes hacer con un DEFUSR=&Hxxxx, siendo xxxx la dirección en la que comenzará esa rutina.

Ok, ya capto.

Lo único que tienes que tener claro es donde acaba tu programa BASIC y donde situas ese binario, que deberá estar comprendido entre ese final del BASIC y la última dirección de la página 2 ($BFFF)

Esa es otra... de cuánta 'zona libre segura' de memoria se dispone como mínimo??... es decir, dónde acaba la memoria disponible del basic como máximo y hasta donde me queda libre (en el peor de los casos)??... es para no ir tocando la dirección de inicio del binario a medida que va creciendo el programa basic.

En cuanto hagas alguna pruebecilla lo veras claro, clarete... Wink

Eso espero... Undecided
« Última modificación: 21 de Enero de 2006, 10:57:51 am por Imanok » En línea
Imanok
Karoshi Hero
*****
Mensajes: 626


« Respuesta #13 : 21 de Enero de 2006, 10:59:34 am »

No me había dado cuenta de que mi último post había salido como el culo... lo acabo de editar.
En línea
jltursan
Karoshi Forum's Guru
*******
Mensajes: 1516


¿Que es lo que has aprendido hoy?


WWW Email
« Respuesta #14 : 21 de Enero de 2006, 11:31:46 am »

Citar
Esa es otra... de cuánta 'zona libre segura' de memoria se dispone como mínimo??... es decir, dónde acaba la memoria disponible del basic como máximo y hasta donde me queda libre (en el peor de los casos)??... es para no ir tocando la dirección de inicio del binario a medida que va creciendo el programa basic

Para ver hasta donde se extiende tu BASIC, puedes cargar el archivo .BAS (tokenizado) en el ROMCreator y te indicará el rango de memoria que ocupa, el binario podrá ocupar la zona comprendida entre la dirección de fin del BASIC y la direccion $BFFF, ni un byte más, ni un byte menos. Sad
Aunque eso no es del todo cierto, claro. Si en el binario tienes datos comprimidos, los puedes descomprimir libremente en la página 3 ($C000) que siempre es RAM; así podrás aprovechar aún más el poco espacio libre que te deje el BASIC Wink
En línea

Doom dee doom dee doom
Páginas: [1] 2 3
  Imprimir  
 
Ir a:  

Impulsado por MySQL Impulsado por PHP Powered by SMF 1.1.21 | SMF © 2013, Simple Machines XHTML 1.0 válido! CSS válido!