Nueva utilidad para ordenar pantallas de carga -> Version B21 :D

Moderador: Fundadores

Avatar de Usuario
Spirax
Aspirante a demonio
Aspirante a demonio
Mensajes: 207
Registrado: 09 Oct 2017, 17:03
Ubicación: Leganes (Madrid)
Contactar:

Nueva utilidad para ordenar pantallas de carga -> Version B21 :D

Mensaje por Spirax » 18 Ene 2018, 19:22

Bueno, nueva, nueva no se.
lo que se es que la he echo yo este año, jajajaja

a lo mejor ya hay algo asi, pero como no pretendo inventar la rueda ..... jajajaja a lo mejor a alguno le vale y vemos cosas tan chulas como el Abu Simbel adjunto que he modificado yo... :twisted:

al lio.
llevaba desde el milenio pasado desconectado del mundillo del Spectrum hasta que hace unos meses me pico otra vez el gusanillo :P

hace poco tube contacto con el tzxduino/Maxduino que nos permite cargar lo juegos en tzx directamente al spectrum original sin modificaciones en el Spectrum.
despues empece a ver como acelerar las cargas, releyendo mucho sobre como funcionaba la rutina de cargando leches. consegui un programilla llamado OTLA que permitia convertir una imagen .z80 en un tzx con carga rapida, y consegi que me funcionara a 3000bauds, nunca a 6000, pero esa es otra historia que vendra mas adelante.
con el uso del tzxdino y las imagenes originales de juegos en tzx, recorde los que tenian protecion alkatraz con carga de pantallas muy chulas ejemplo el Xevious.
y me puse a ivestigar con el objetivo de hacer algo parecido.
Resultado de mis investigaciones surgio la necesidad del programa que comparto hoy en modo beta (Diria Alfa ya que no lo ha probado nadie mas que yo)

El progama nos permite cargar una pantalla de 6912 bytes en carga normal sin cabecera, para poder crearnos una tabla de posiciones.
una vez cargada entramos en modo de edicion.
lo primero que tenemos que hacer el buscar un hueco en la pantalla para recolocar el contador de caracteres que usamos en el modeo edicion. nota aunque no haya ningun hueco podemos marcar los caracteres donde esta el marcador sin problemas, mover con las teclas opqa y pulsar "u" en un area libre, esto cogera los colores de esa posicion y los usara como papel y tinta, si por un casual esa posicion estuviera invertida podemos invertir los colores pulsando i.
y a partir de aqui es ir selecionando con el espacio los caracteres por el orden que queremos cargarlos. esto nos ira borrando la pantalla.
para volver al menu pulsamos "m" y podemos probar en memoria como nos iria quedando con "p"
una vez acabado podemos grabar la pila y los datos en cinta.

podemos recuperar una pila para seguir con la edicion si tenemos una pantalla en memoria y probar el efecto de cargar desde cinta a velocidad normal.
si cargamos una pantalla se reiniciara la pila, por lo que si lo que queremos es seguir editando primero cargar la pantalla y luego la pila.

ale sin mas preambulos os dejo dos adjuntos, uno con el programa y otro con una modificacion de mi cosecha sobre el Abu SImbel.

no dispongo de much tiempo asi que no espereis actualizaciones continuas.
la rutina de carga es la de la rom modicada para cargar usando la pila de datos en el stack. publicare los fuentes para que la podais usar en vuestras cargas mientras afino la de carga rapida ;)

a ver que os parece espero vuestros comentarios.
abu resubido, le amplie el tiempo del tono guia con el borde negro.
os dejo un par de videos para veais como van quedando las pantallas
video 1 -> https://www.youtube.com/watch?v=zBLRH_JPs4A Abu simbel (version previa de carga pero la pantalla carga igual)
video 2 -> https://www.youtube.com/watch?v=tvGl3Bghcrc Atic Atac, Carga completa (al ser de Ultimate no se puede distribuir publicamente, pero si puedo compartir la tabla de posiciones de carga de pantalla ;) )
Video 3 -> https://www.youtube.com/watch?v=blLDB337Bfk Army Moves, usado el programa Ordena para cargar la pantalla desde cinta a velocidad normal


edito :
hay una neva version en este hilo.
viewtopic.php?f=62&t=6657&p=126644#p126644

saludos
Adjuntos
Abu Simbel Profanation.zip
tzx modificado por spirax, con pantalla de carga reordenada, y carga ultra rapida, para cargar con tzxduino, maxduino en spectrum originales o usar en emuladores para ver como queda :)
(24.92 KiB) Descargado 13 veces
Ordena B13.zip
Programa para crear tablas y cargar pantallas recolocadas ;)
(2 KiB) Descargado 13 veces
Última edición por Spirax el 09 Jul 2018, 16:43, editado 5 veces en total.

Avatar de Usuario
Kyp
Demonio segundo orden
Demonio segundo orden
Mensajes: 1933
Registrado: 30 Sep 2013, 14:54
Ubicación: Madrid
Contactar:

Re: Nueva utilidad para ordenar pantallas de carga :D

Mensaje por Kyp » 18 Ene 2018, 21:36

Probando en emulador... Spin 0.7... En modo 128 +2 funciona bien pero en modo 48K sale corrupta la pantalla y da un R Tape loading error al terminar de cargar la pantalla.
Independientemente de eso... Que muy bien como carga la pantalla :D

Avatar de Usuario
Spirax
Aspirante a demonio
Aspirante a demonio
Mensajes: 207
Registrado: 09 Oct 2017, 17:03
Ubicación: Leganes (Madrid)
Contactar:

Re: Nueva utilidad para ordenar pantallas de carga :D

Mensaje por Spirax » 18 Ene 2018, 22:14

Hola Kyp.
gracias por probarlo.
efectivamoente en la ultima modificacion que hice le rebaje el syncronismo del tono guia a la pantalla de 2000 a 1500 sin darme cuenta y parece que no le sentó bien..
lo raro que un gomas sin modificar con el maxduino iva bien que es en el que hago las pruebas, por defecto tengo el spectaculator en modo 128k, jejeje y tambien iva bien.
lo probe y vi que efectivamente en el spectaculator hacia algo raro, si despues del r-tape error le das al run y reinicias la carga desde el 1er bloque turbo ya cargaba bien.

pero he resubido una nueva version del abu simbel corregido.
sino te importa vuelve a bajarlo y lo pruebas de nuevo.

te veo en retroparla :|

Avatar de Usuario
dandare
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 3246
Registrado: 09 Feb 2016, 15:09
Ubicación: I Register
Contactar:

Re: Nueva utilidad para ordenar pantallas de carga :D

Mensaje por dandare » 18 Ene 2018, 23:25

muy resultón. Sí señor. Enhorabuena.
Imagen
Imagen

Avatar de Usuario
mad3001
Demonio tercer orden
Demonio tercer orden
Mensajes: 582
Registrado: 25 Nov 2015, 00:15
Ubicación: Mostoles(Madrid)
Contactar:

Re: Nueva utilidad para ordenar pantallas de carga :D

Mensaje por mad3001 » 18 Ene 2018, 23:36

Queda chulo, no se porqué al leer pensaba que era carga con un contador o algo así...(al estilo ranarama)... será que despues de cenar y tomar una cervecita uno entiende peor las cosas :))
No somos dioses sino aporreadores de teclas y destripadores de Hardware con ganas de soltar los nervios en algo productivo e interesante

Avatar de Usuario
dandare
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 3246
Registrado: 09 Feb 2016, 15:09
Ubicación: I Register
Contactar:

Re: Nueva utilidad para ordenar pantallas de carga :D

Mensaje por dandare » 19 Ene 2018, 10:51

mad3001 escribió:
18 Ene 2018, 23:36
Queda chulo, no se porqué al leer pensaba que era carga con un contador o algo así...(al estilo ranarama)... será que despues de cenar y tomar una cervecita uno entiende peor las cosas :))
Yo también entendí eso al principio :D
Imagen
Imagen

Avatar de Usuario
Kyp
Demonio segundo orden
Demonio segundo orden
Mensajes: 1933
Registrado: 30 Sep 2013, 14:54
Ubicación: Madrid
Contactar:

Re: Nueva utilidad para ordenar pantallas de carga :D

Mensaje por Kyp » 19 Ene 2018, 11:22

Spirax escribió:
18 Ene 2018, 22:14
pero he resubido una nueva version del abu simbel corregido.
sino te importa vuelve a bajarlo y lo pruebas de nuevo.
Ahora si. Funciona tanto en modo 48K como en 128K +2
A ver si encuentro un rato y lo pruebo en el Spectrum 'real'.

Me encanta el efecto de ir cargando la pantalla de forma desordenada. La primera vez que lo vi fue en el Fairlight y me quedé pasmao :o

Hace no mucho estuve buscando juegos que hicieran lo mismo (buscar juegos con protección Alkatraz en WOS) y aunque hay unos pocos, que además tengan una pantalla chula son muy muy pocos.

Avatar de Usuario
Spirax
Aspirante a demonio
Aspirante a demonio
Mensajes: 207
Registrado: 09 Oct 2017, 17:03
Ubicación: Leganes (Madrid)
Contactar:

Re: Nueva utilidad para ordenar pantallas de carga :D

Mensaje por Spirax » 19 Ene 2018, 12:01

dandare escribió:
19 Ene 2018, 10:51
mad3001 escribió:
18 Ene 2018, 23:36
Queda chulo, no se porqué al leer pensaba que era carga con un contador o algo así...(al estilo ranarama)... será que despues de cenar y tomar una cervecita uno entiende peor las cosas :))
Yo también entendí eso al principio :D
si, perdon, esa parte la tengo que explicar un poco mejor.
el contador es solo para llevar un contador de los caracteres usados como referencia durante la edicion, de 0 a 768, que son los maximos que deberia de haber.
la idea es que al poner el contador usamos si existe una parte vacia de la pantalla con lo cual no necesariamente tenemos que usar las 768 posiciones.
al arrancar nuestro cargador ponemos el PAPER y BORDER como el fondo y las partes vacias no hace falta selecionarlas.
cargamos la tabla y despues la pantalla.

explico un poco mas como funciona el programa mientras me currare un mini manual y compartire los fuentes de la rutina de carga de la rom modificada para usar la tabla de direcciones.

como podeis ver nos vamos moviendo por la pantalla en modo atributo de 32 columnas (0 a 31) x 24 filas (0 a 23)
cada vez que selecionamos un caracter de 8x8+atributos, calculo la posicion del primer byte del caracter basandome en la fila columna en la que estamos.
y guardo solo dicha posicion en una tabla.
y aumento el tamaño de la tabla en +2
si borramos una posicion, cojo la posicion del ultimo caracter de la tabla, elimino la direccion de la tabla y restauro la pantalla con lo que tenia.

al finalizar la edicion tendremos una tabla con las direcciones de todas las posiciones de inicio del caracter ( que ocupa 2 bytes por direccion + 2 bytes al final a 0 para marcar el final de la tabla) asi la tabla es menor para la carga. despues antes de cargar la pantalla añadimos a la tabla las posiciones de los atributos calculados.

como en tiempo de carga no se pueden exceder los calculos entre bits en tiempo real o se dessincroniza la carga y en la tabla solo guardo la posicion del 1er byte lo que hago es.
cargamos la tabla de direcciones inial como temporal y antes de iniciar la carga de los datos de la pantalla, re-calculamos la tabla con las direcciones de los attributos de cada caracter.
y creamos una tabla nueva con direccion inicial de caracter+direccion de attributos,
a la hora de cargar seguimos este patron cogemos la primera direccion de la tabla, la usamos como ix para la primera linea del caracter, incrementamos ixh con lo cual pasamos a la siguiente linea de caracter y asi hasta completar las 8 lineas del caracter,
despues cogemos la siguiente direccion de la pila recalculada que sera la direccion del attributo del caracter actual que calculamos antes de iniciar la carga.
y asi hasta completar la tabla.

espero explicarme bien, jajaja me lio me lio y lo enredo y es mas facil de lo que parece leyendolo.

saludos
en breve os pogo el source la rutina de carga empleada en el programa.

com decia el maximo deberia de ser 768, pero no le he puesto limite por lo siguiente.
se podria hacer que al principio pusiera un logo o mensaje para despues completar la carga de la pantalla reescribiendo encima de lo anterior.
a ver si me curro un ejemplo de esto cuando tenga algo mas de tiempo.
saludos
Última edición por Spirax el 19 Ene 2018, 16:20, editado 1 vez en total.

Avatar de Usuario
dandare
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 3246
Registrado: 09 Feb 2016, 15:09
Ubicación: I Register
Contactar:

Re: Nueva utilidad para ordenar pantallas de carga :D

Mensaje por dandare » 19 Ene 2018, 13:53

Sí, ya me hice una pantalla. Si te parece bien, saca los fuentes y vemos en detalle el proceso B-)
Imagen
Imagen

Avatar de Usuario
Spirax
Aspirante a demonio
Aspirante a demonio
Mensajes: 207
Registrado: 09 Oct 2017, 17:03
Ubicación: Leganes (Madrid)
Contactar:

Re: Nueva utilidad para ordenar pantallas de carga :D

Mensaje por Spirax » 19 Ene 2018, 16:18

dandare escribió:
19 Ene 2018, 13:53
Sí, ya me hice una pantalla. Si te parece bien, saca los fuentes y vemos en detalle el proceso B-)
jajaja no me has dado tiempo, le estaba poniendo unos cuantos comentarios.
solo he comentado los cambios sobre la rutina de carga de la rom y lo que he echo yo
por favor no seais muy criticos, no soy programador por lo que seguro que hay cosas que hago mal ;) (o me entretengo mucho como con el creapia sin usar ix, jajaja)
adjunto un minicargador y los fuentes de la rutina de carga

el tap lo que hace es carga un mini basic para cargar el codigo de carga en 54100, y despues ya nos permite cargar la pila y pantalla ordenada creadas con el OrdenaB13, carga la pila con la rutina de la rom y ejecuta el cargador para la pantalla.

a ver como salgo parado de los comentarios de los que pilotan en CM ;)
se incluye es asm listo para compilar con sjasmplus

edito:
perdon para los que ya se lo habian descargado, con las prisas no me di cuennta el .tap de dentro del fichero compimido hay que renombarlo a .tzx o mejor bajarse otra vez el nuevo ;)
lo resubo para los que se lo descarguen a partir de ahora y añado una pantalla prueba.tzx para poder probar el cargador.

en la prueba vereis a que me refiero con hacer un cls con el papel que necesitemos antes de cargar la pantalla, jejeje
cargarlo tal cual y despues probar a poner PAPER 0: INK 0: BORDER 0: CLS : RUN
y volver a cargar la prueba
saludos
:mrgreen:
Adjuntos
cargador.zip
(8.01 KiB) Descargado 10 veces

Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado