Hola de nuevo
Antes de contestar he estado haciendo pruebas y me pasan cosas "raras".
Yo los juegos los hago SC1 pero redefino los colores de tinta y fondo de cada línea de los carácteres ASCII y me he dado cuenta que al hacer esto, aunque sigo en SC1 el BlueMSX me dice que estoy en SC2. La verdad es que no se muy bien como lo hago, yo simplemente lo copié de un sitio y lo que hago es poner el rango de carácteres ASCII que quiero cambiar y por supuesto las DATA con los graficos y colores
150 '***** GRAFICOS *****
160 DEFUSR3=&H7E
170 RESTORE 710
180 M1$="":M2$="":M3$=""
190 READ A$:IF A$<>"*" THEN M1$=M1$+CHR$(VAL("&h"+A$)):GOTO 190
200 READ A$:IF A$<>"*" THEN M2$=M2$+CHR$(VAL("&h"+A$)):GOTO 200
210 READ A$:IF A$<>"*" THEN M3$=M3$+CHR$(VAL("&h"+A$)):GOTO 210
220 A#=VARPTR(M1$)
230 DEFUSR=PEEK(A#+1)+PEEK(A#+2)*256
240 A#=VARPTR(M2$)
250 DEFUSR1=PEEK(A#+1)+PEEK(A#+2)*256
260 A#=VARPTR(M3$)
270 DEFUSR2=PEEK(A#+1)+PEEK(A#+2)*256
280 '***** REDEFINIMOS CARACTERES ASCII *****
290 S=0:RESTORE 750
300 FOR F%=(97*8) TO (113*8)+7:READ A$:VPOKE F%,VAL("&H"+A$):NEXT F%
310 F%=USR(0)
320 F%=USR1(0)
330 '***** PINTAMOS CARACTERES ASCII *****
340 RESTORE 930
350 FOR F%=&H2000+(97*8) TO &H2000+(113*8)+7:READ A$:VPOKE F%,VAL("&h"+A$):NEXT F%
460 F%=USR2(0)
470 F%=USR3(0)
480 RETURN
700 '***** DATAS C.M. *****
710 DATA 1,0,0,C5,E1,CD,4A,0,11,0,8,19,CD,4D,0,C5,E1,CD,4A,0,11,0,10,19,CD,4D,0,3,78,FE,8,20,E2,C9,*
720 DATA 1,1,20,21,0,20,CD,4A,0,C5,E1,CD,4D,0,3,78,FE,28,20,EF,C9,*
730 DATA 1,0,20,C5,E1,CD,4A,0,11,0,8,19,CD,4D,0,C5,E1,CD,4A,0,11,0,10,19,CD,4D,0,3,78,FE,28,20,E2,C9,*
La prueba que he hecho es dibujar un cuadro de 8x8 carácteres en la esquina de arriba a la izquierda:
FOR I=0 TO 7 : FOR J=0 TO 7 : VPOKE 6145+I+32*J,97+J : NEXT J : NEXT I
Y con los cursores mover un sprite por la pantalla. En SC1 va perfecto:
Pero he cambiado a SC2 y además del cuadro de 8x8 carácteres y el sprite que sale perfecto me aparecen 3 líneas que yo no he escrito:
Y si pongo SC4 también salen las 3 lineas pero ahora no aparece el sprite por ningún sitio por más que mueva los cursores:
Hace tiempo que ya intenté hacer esto ya vi que el SC2 tiene 3 tablas y no supe como solucionarlo, Pero por lo que dices parece que se puede arreglar y dejar en una sola tabla:
No tienes una única tabla como en SC1, pero se puede hacer sin problemas con un par de VPOKES y funciona bien en todos los MSX2.
¿ Como se podría hacer eso ?
Del sprite no he tocado nada como por ejemplo asignarle los colores por línea , ¿ puede ser por eso que no aparezca en pantalla, o hay que hacer algo distinto a SC1 y SC2 ?
Gracias por la instrucción para comprobar el tipo de MSX y buscaré "JLTur" a ver si puedo hacer más fácil lo de poner las letras del menu, puntos, vidas... y no tener que hacer un VPOKE para cada letra.
Saludos