Perfecto. Entonces veo que no te será ningún problema salvar tu mapa como un CODE "..." o exportarlo como un binario desde Spectaculator.
Yo trabajo con Spectaculator, y lo que hago es lo siguiente:
1.- Mediante un proceso que luego explicaremos, desde "128 BASIC" cargo el bloque o los bloques extras en las RAM extra del 128K.
2.- Escribo " LOAD "" " en el editor.
3.- Introduzco la cinta que genera ZX Basic (arrastrándola a la ventana de Spectaculator, por ejemplo).
4.- Ahora está todo "preparado": grabo el estado en un snapshot en formato .szx
¿Por qué?
Porque el formato .szx, además de guardar toda la memoria y el estado del procesador, guarda los dispositivos que estén asociados. En nuestro caso: la cinta.
De este modo, cada vez que vuelvo a compilar con ZX Basic, con cargar el .szx en Spectaculator se carga automáticamente la cinta recién regenerada por ZX Basic y con pulsar ENTER ejecuto el LOAD "" que había escrito antes de guardar el snapshot, con lo que se carga el juego y lo puedo probar.
¿Pillamos esto?
Fourspriter 2.0
Moderador: na_th_an
Re: Fourspriter 2.0
Como diría Rorshach: "Urm..."
Re: Fourspriter 2.0
Salvar el mapa con el code no es para nada problema alguno, exportarlo a binario, no me ha tocado hacerlo pero supongo que sera tocar alguna opcion por los "menuses" (no tengo aqui ahora mismo el spectaculator).
Lo del szx, no lo conocía, pero me parece realmente util (siempre que "empiezo" tengo que cargar el juego, luego cambiar de cinta, cargar el mapa y hacer randomize usr)
Recapitulando en lo que quieres hacer:
Cargamos el editor (esta vez en memoria mas baja), hacemos el mapa a partir de la direccion 49152, salvamos code""
cargamos juego (poniendo al principio casi del todo el dim(a,b) como la rutina de leer la pantalla de memoria, y el "switcher" de bancos)
a la hora de "leer" cambiamos de banco, cuando termina, ponemos el banco original... y a seguir
¿mas o menos es eso?
Lo que no se (seguro que si busco encuentro) es cambiar de banco
Lo del szx, no lo conocía, pero me parece realmente util (siempre que "empiezo" tengo que cargar el juego, luego cambiar de cinta, cargar el mapa y hacer randomize usr)
Recapitulando en lo que quieres hacer:
Cargamos el editor (esta vez en memoria mas baja), hacemos el mapa a partir de la direccion 49152, salvamos code""
cargamos juego (poniendo al principio casi del todo el dim(a,b) como la rutina de leer la pantalla de memoria, y el "switcher" de bancos)
a la hora de "leer" cambiamos de banco, cuando termina, ponemos el banco original... y a seguir
¿mas o menos es eso?
Lo que no se (seguro que si busco encuentro) es cambiar de banco
Re: Fourspriter 2.0
No te preocupes que iremos paso por paso
Por lo pronto da igual donde genere el mapa el editor de mapas, nosotros luego ya lo vamos a cargar en la dirección correcta.
Luego te pongo el siguiente paso, ahora ando liao con la publicación de cierto güego
XD
![Sonrisa :-)](./images/smilies/icon_e_smile.gif)
Luego te pongo el siguiente paso, ahora ando liao con la publicación de cierto güego
![Muy Feliz :D](./images/smilies/icon_e_biggrin.gif)
Como diría Rorshach: "Urm..."
Re: Fourspriter 2.0
No te preocupes... lo primero es lo primero... xD, además yo ahora no estoy en "mi pc" y no tengo siquiera una triste corchoneta....
Paso a paso xDD pero me emociono, veo tantos KS libres jajaja
Si se hace (que va a ser que si) el tema de paginacion, incluso podria bajar la direccion de compilacion a 26000 o incluso 25000 (da igual que este contenida, no importa TANTO el timing en este juego) y ganarle 5 o 6 ks mas para puzzles, objetos y mas cosas ¿no?
Paso a paso xDD pero me emociono, veo tantos KS libres jajaja
Si se hace (que va a ser que si) el tema de paginacion, incluso podria bajar la direccion de compilacion a 26000 o incluso 25000 (da igual que este contenida, no importa TANTO el timing en este juego) y ganarle 5 o 6 ks mas para puzzles, objetos y mas cosas ¿no?
Re: Fourspriter 2.0
Pos claro. Ten en cuenta que, aunque vayamos a paginar, puedes ocupar todos los 48K base. Como mientras pongamos otra RAM a partir de 49152 lo único que vamos a estar haciendo es copiar datos a un array, y luego pondremos de nuevo RAM0, no pasa nada. Por eso es importante que tanto el array como el código que haga la copia queden en una dirección baja y por eso hay que ponerlos lo más arriba que puedas de tu programa.
Tengo que preparar unas cosillas para poder explicarlo mejor (es que nunca lo he hecho para ZX Basic, pero no debería dar demasiados problemas). El problema es que estoy de mudanza y hasta el jueves creo que no me volveré a conectar a internet, ni siquiera en el curro :-/
Tengo que preparar unas cosillas para poder explicarlo mejor (es que nunca lo he hecho para ZX Basic, pero no debería dar demasiados problemas). El problema es que estoy de mudanza y hasta el jueves creo que no me volveré a conectar a internet, ni siquiera en el curro :-/
Como diría Rorshach: "Urm..."
Re: Fourspriter 2.0
Ni te preocupes, yo voy escupiendo mas codigo, preparando cosas con un mapa reducido para poder testear, y luego ya paginaremos, haremos el mapa mas grande y reubicaremos en cada "habitacion" sus objetos (esto si que lo hago metiendo a mano numeros en el juego)...
Bueno tanto como los 48 ks base... intente hacer una prueba a cargar pantallas a partir de la 24000, haciendo un clear en 23999 (evidentemente), y no podia ni hacer el cargador basic con un par de load""code, un screen y un randomize usr, me quedaba sin memoria para eso jajajajajaja
Bueno tanto como los 48 ks base... intente hacer una prueba a cargar pantallas a partir de la 24000, haciendo un clear en 23999 (evidentemente), y no podia ni hacer el cargador basic con un par de load""code, un screen y un randomize usr, me quedaba sin memoria para eso jajajajajaja
Re: Fourspriter 2.0
Perfe.
Básicamente lo que quiero preparar es la rutina de copia, o al menos hacer pruebas. También he preguntado en los foros de ZX Basic si puedo controlar donde pone ZX Basic la pila, porque si la pila la pone en la memoria que se pagina pueden pasar cosas divertidas XD
¿Cómo es el array donde almacenas cada pantalla?
Básicamente lo que quiero preparar es la rutina de copia, o al menos hacer pruebas. También he preguntado en los foros de ZX Basic si puedo controlar donde pone ZX Basic la pila, porque si la pila la pone en la memoria que se pagina pueden pasar cosas divertidas XD
¿Cómo es el array donde almacenas cada pantalla?
Como diría Rorshach: "Urm..."
Re: Fourspriter 2.0
el array de cada pantalla?
Tengo un array p(10,10) as uByte
no se si te refieres a eso... luego las pantallas se almacenan en la memoria todas seguidas como un churro
y cada vez que entro a una pantalla nueva, se lee de la direccion de memoria adecuada y pasa los 50 bytes (recordemos que meto 2 tiles en un solo byte) al array y un byte mas para el tipo de enemigos
cosas muy divertidas... mola
Tengo un array p(10,10) as uByte
no se si te refieres a eso... luego las pantallas se almacenan en la memoria todas seguidas como un churro
y cada vez que entro a una pantalla nueva, se lee de la direccion de memoria adecuada y pasa los 50 bytes (recordemos que meto 2 tiles en un solo byte) al array y un byte mas para el tipo de enemigos
cosas muy divertidas... mola
Re: Fourspriter 2.0
Vale, a ver si puedo apañar algo y vengo el jueves con el material para explicarlo todo (porque no puedo explicar algo que nunca he hecho, por mucho que yo piense que se puede hacer fácilmente
)
![Riendo :lol:](./images/smilies/icon_lol.gif)
Como diría Rorshach: "Urm..."
Re: Fourspriter 2.0
Ok, tu tranquilo que bastante me estas ayudando... grasias de hantebraso hamijo
¿Quién está conectado?
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 135 invitados