Karoshi MSX Community

MSX Actualidad => General => Mensaje iniciado por: toniman en 28 de Enero de 2011, 10:10:02 am



Título: Un programa que convierta caracteres de SC2 a data para basic.
Publicado por: toniman en 28 de Enero de 2011, 10:10:02 am
Hola.

¿Conoceis algun programa que al meterle un archivo grafico de sc2 saque los datas para basic?
Es que yo soy algo paquete para hacerlo a mano.


Título: Re: Un programa que convierta caracteres de SC2 a data para basic.
Publicado por: pentacour en 28 de Enero de 2011, 10:42:06 am
Buenas!

nMSXtiles http://pentacour.com/blog/msx/nmsxtiles-v0-6 permite importar un png (que puede ser una captura de un emulador ) y después exportarlo como datos. No se si es lo que buscas.

Saludos!


Título: Re: Un programa que convierta caracteres de SC2 a data para basic.
Publicado por: toniman en 28 de Enero de 2011, 11:09:29 am
Gracias, es este tipo de datos:

130 '***** DATAS GRAFICOS *****
140 DATA 30,30,78,30,30,78,78,78
150 DATA 00,01,03,03,03,03,01,00
160 DATA FC,FE,B2,00,C3,8C,FF,FE
170 '***** DATAS COLOR GRAFICOS *****
180 DATA 61,61,21,A1,A1,A1,B1,B1
190 DATA A1,A1,A1,B1,B1,A1,A1,A1
200 DATA A1,A1,A5,A5,4F,A5,A1,61

Es posible?


Título: Re: Un programa que convierta caracteres de SC2 a data para basic.
Publicado por: pentacour en 28 de Enero de 2011, 12:21:00 pm
Más o menos. Te lo da en decimal (para una futura versión se podrá elegir a hexadecimal). Prueba a instalarlo, crea un proyecto vacío y elige la opción de Export ASM y mira si el fichero lo puedes adaptar a tus necesidades.

Cualquier cosa me comentas!


Título: Re: Un programa que convierta caracteres de SC2 a data para basic.
Publicado por: pitpan en 28 de Enero de 2011, 02:13:44 pm
Hola!

Te dejo un conversor múltiple para línea de comandos que me hice en 2005 y no he llegado a usar nunca. Soporta bastantes formatos de salida diferentes, pero para lo que tú quieres necesitas hacer lo siguiente:

bin2txt -b fichero.bin > salida.txt

Donde, evidentemente, el "fichero.bin" es el archivo de origen y "salida.txt" el de salida. Como ves, emplea una redirección, si no incluyes el "> salida.txt" te mostrará el resultado de la conversión en pantalla directamente.

El formato de salida "BASIC" te generará los datos de la forma siguiente

10 DATA &H00,&HFF ...

Por lo tanto, tendrás que quitarle tú a mano con un editor de texto la parte del "&H" (te vale un comando de substitución automática).

En la carpeta comprimida encontrarás la versión para Win32/consola (.EXE) y para Linux de 32 bits (igual tendrías que darle permisos de ejecución a la versión Linux con un chmod +x o algo así).

Ya me contarás...


Título: Re: Un programa que convierta caracteres de SC2 a data para basic.
Publicado por: pitpan en 28 de Enero de 2011, 02:17:54 pm
Ojo. Ahora que me doy cuenta, no sé si es lo que querías.

BIN2TXT convierte archivos binarios a diferentes formatos de texto, pero evidentmente no te convierte el formato de imagen para que sea visible en un MSX. Eso tienes que hacerlo en una herramienta aparte.

Si te bajas una distribución oficial del asMSX encontrarás una herramienta que se llama PCX2MSX (o algo así) que te convierte imágenes en formato PCX (muy cutre) y que cumplan las restricciones de color de SCREEN 2 a dos ficheros binarios, uno con los datos de patrones (.CHR) y otro con los datos de colores (.CLR).

Si coges esos CHR y CLR los puedes convertir a DATAs con la otra herramienta, BIN2TXT.

A ver si esto te ayuda...


Título: Re: Un programa que convierta caracteres de SC2 a data para basic.
Publicado por: toniman en 28 de Enero de 2011, 06:50:12 pm
Muchas gracias a los dos. Mirare a ver si puedo conseguirlo.

Vereis, resulta que Kotai me ha dicho que quiere hacer un juego de carreras conmigo, de perspectiva frontal, como Pitstop 2 (la carretera es parecida a la del Hyper Rally), entonces, lo que hemos quedado el y yo es en que yo le daria varias posiciones de carretera, pongamos 5 posiciones, curva fuerte, curva floja, recta y a la derecha igual. Cada posicion de la carretera tiene 3 frames de animacion en los caracteres de SC2. Luego tengo que pasar los graficos a datas hexadecimales, pero yo no lo he hecho nunca, me va a dar el lio :)

Yo lo que quiero es que el programador coja mis carreteras en sc2 como tiles de un grafico, ahorrando asi el tener que pintar nada por codigo, tan solo poner los tiles como si fuera un mapa.

El caso es que si veis las pantallas de pitstop 2 que he hecho, la carretera tiene a los lados unas franjas que se moverian dando la sensacion de que se va corriendo.

el caso es que el grafico de la carretera es, bordes verdes, linea de borde de la carretera (minimo 4 pixels de ancho), carretera de color gris.

El caso es que una vez pintados los tiles que componen la carretera y los bordes, que estan ya predefinidos en un mapa, tan solo hay que cambiar las lineas de color verticalmente para hacer que la carretera de sensacion de que se mueve, haciendo franjas de color verde oscuro para los bordes y para la linea de la carretera franjas rojas. Supongo que solo cambiando las tablas de colores, no las tablas de caracteres. Pero como no se programar...

¿Lo veis muy dificil de hacer?


Título: Re: Un programa que convierta caracteres de SC2 a data para basic.
Publicado por: pitpan en 29 de Enero de 2011, 03:29:53 pm
En BASIC no hay futuro. Es decir, es demasiado lento como para planteárselo siquiera, de verdad.

Te dejo un ejemplo de buen juego de carreras programado en BASIC, cortesía de la gente del MRC (vínculo al foro correspondiente (http://www.msx.org/forumtopic4442p270.html)). Como comprenderás, hacer algo más complejo o con más carga gráfica es imposible desde el BASIC. Y observa el grado de ofuscación del código...

Código:
1 J=S-J*(J<96-S):K=J\16:FORW=0TO2:VPOKE8208+W,P(W+K):NEXT:IFTTHENRESUMENEXTELSEONERRORGOTO1:DEFINTA-Y:COLOR15,5,1:KEYOFF:SCREEN2,3,0:U=255:V=32:FORX=-1TO1:FORY=0TO31:M=16-Y\2:LINE(M-X*((SIN(Y^.8/6)-(Y<16))*6-M-2)+(X<1),V+X*V+Y)-STEP(Y+1,0)
2 P(Y\4)=50-15*(Y\12AND1):NEXTY,X:N=14336:FORI=0TO383:VPOKEN+I,VPEEK((IAND7)+(IAND8)*V+(IAND48)\2+(IAND448)*8):NEXT:S$="3##B#C#c$B'r$B&s3#%##C#3%S';%S&s;##2#3#B#R#B#<=c'##c'#@C#)#2#,s##&wfw:w3w4w$w3w#w4w,DD0CDDDS0CDSDK0CDKDC0CDC":SOUND3,14
3 SCREEN1:FORO=0TO53:Y=0:FORM=MTOM+1:Y=Y*96+ASC(MID$(S$,M))-35:NEXT:FORK=KTOK+Y\256:VPOKEK+N+I+8335*(O>V),YANDU:NEXTK,O:FORI=UTO1023:O=VPEEK(I):VPOKEI,(OORO\2)\(2-(IAND4)\4):NEXT:FORI=ITO1279:O=IANDV:VPOKE6432+(IAND63),228+8*(IAND3)-O'dvik
4 W=2^(IAND7):J=O*U\W\64:VPOKEI+512,JAND-W:VPOKEI+768,JOR-WANDU:J=8-O\8:VPOKEI,(JANDI)*U\J:NEXT:R=N\2:VPOKE8192,14:VPOKE1209,U:PLAY"v15o5arararo6aa":FORW=9TO10:PUTSPRITEW,(16+64*W,159),14,W-3:SOUNDW,14:N=N+9:NEXT:TIME=0:SOUND5,83:FORT=2TOR
5 PUTSPRITE0,(X+80,156),1,12:G=G+F*S\2:LOCATE1,1:D=96-(NAND127):Y=D>0:D=D*D\96(:PRINTUSING"SPEED:##0kmh  !  RANK:###";S;CHR$(76-L*4);N\128-82(:FORW=8216TO8219:G=G+8AND31:VPOKEW,86+(GAND16):VPOKE4+W,85+G\24:NEXT:@:Q=O:IFC<TTHENC=9+T+TMOD99
6 O=PEEK(-1043):T=T+S-1:F=B:B=(R-T>99)*(1-CMOD3):L=(QANDO+Q)+LAND1:S=S+(0=(OAND64))-(0=(OANDV))*(2-((S>9)=-L)):S=(S>14+L*6)*(L+2)-(S>0)*(S-1)(:FORW=3TO4:PUTSPRITEW+1,(F*10+W*V,95),14,4*B+W+1:PUTSPRITE3+W,(W*V,127),14,4*F+3+W:NEXT:NYYRIKKI
7 PUTSPRITE1,(115-(D<34)*((24-D)*B+F*10)+(E-64)*D\225,-Y*(98+D)-31),6,15-D\25-(T>R)*9:M=(X>72)-(X<0):E=NAND128:N=N+9-S:S=S*((X-15-E\3)\15<>0ORD<73)*(M=0):SOUND4,U-S*9(:X=X+5*(M-(0=(OAND128))+(0=(OAND16)))-S*B\4:FORW=0TO0:W=PLAY(0):NEXTW,T
8 S=15:Z$=SPACE$(S)+"Race Over  Time ="+STR$((TIME\(6-PEEK(43)\128))/10)+"s":FORN=0TOU:D=88-3*N:LOCATE6,4:PUTSPRITE0,(116-(36-X)*D\126,(68+D)-(D<0)*128),1,S-D\24:+:PRINTMID$(Z$+Z$,NMOD38+1,S):SOUND(1ANDN)+9,-(D>0)*D\6:NEXT:SCREEN0:CLEAR

Ensamblador. Ponte tú con ello - para averiguar como diseñador lo que se puede hacer y lo que no - y que Kotai también se anime, que de verdad que es más fácil hacer algunas cosas directamente en ensamblador que encontrar la forma para hacerlas en BASIC.


Título: Re: Un programa que convierta caracteres de SC2 a data para basic.
Publicado por: toniman en 31 de Enero de 2011, 12:02:04 am
Muchas gracias, hablare con Kotai para ver que podriamos hacer... :)