nextric
Abandoned Uranium Working
Ganimedes new videogame developing
Posts: 16
|
Post by nextric on Dec 22, 2022 18:26:44 GMT
Si quieres volver a la versión sencilla instala de nuevo MPAGD-Sound-Mod-main. Para ello copia el archivo zip en tu ordenador, descomprímelo, entra en el directorio creado MPAGD-Sound-Mod-main y copia el contenido en el directorio Suite ZX ( video-Instrucciones) Comprueba que tengas los siguientes archivos en su ruta correspondiente: \MPAGD0.7.10\V0.7.10\Suite ZX\AGDsoundMod\AY\Arkos\bank4driver.asm \MPAGD0.7.10\V0.7.10\Suite ZX\AGDsoundMod\AY\Arkos\routines.asm \MPAGD0.7.10\V0.7.10\Suite ZX\AGDsoundMod\AY\MAGDmusicizer\asm\bank4driver.asm \MPAGD0.7.10\V0.7.10\Suite ZX\AGDsoundMod\AY\MAGDmusicizer\asm\routines.asm \MPAGD0.7.10\V0.7.10\Suite ZX\build.bat \MPAGD0.7.10\V0.7.10\Suite ZX\Splash screen.asm Yo tengo otro nombre en mi instalación para la carpeta \MPAGD0.7.10\V0.7.10 pero lo importante es que todo esté en su sitio como te indico. En este momento siempre puedes invocar la pantalla de carga o Splash Screen mediante una llamada a showSplash. Por ejemplo: call showSplash desde tu rutina de usuario. Para que funcionen las dos pantallas aplicamos los siguientes cambios en los archivos listados arriba. descarga este archivo View Attachmenten la carpeta Suite ZX, descomprime, sustituirás así los archivos de la lista, debería pedirte que confirmes sobrescribir los mismos para asegurarte que se copian en su lugar actualizando el código. Abre tu proyecto y agrega la rutina Splash screen.asm como rutina de usuario. User 16 debería funcionar. Para ello es obligado cargar screen2.scr en el directorio Tapes que encuentras en Suite ZX. Suerte! Muy buenas Ramón. He cortado por lo sano y he probado paso a paso. Me he bajado el MPAGD limpio. He instalado el MPAGD Sound MOD Y luego he copiado el parche de xavisan. He añadido la nueva rutina de usuario al MPAGD. He duplicado la screen para tener 2 y he añadido 2 ficheros de música al igual que mi proyecto. Lo he ejecutado añadiendo las llamadas USER 12 y USER 16 en el proyecto de ejemplo Geezer y todo funciona correctamente. Ya contento, simplemente he abierto mi proyecto y al construirlo he obtenido de nuevo el cuelgue al llamar al USER 16. O sea que no es algo que este mal propiamente dicho del MOD y la modificación. ¿Puede ser que mi proyecto use mas memoria que Geezer y por eso falle? No debería pero ser pero ..... es que no veo por donde van los tiros.
|
|
|
Post by ramon on Dec 22, 2022 22:56:00 GMT
Instalación correcta! Puedes mandarme el mensaje de la consola? La memoria del Mod se distribuye aproximadamente así:
Music player 49152 MUSICSTART 51310 FX4BANK (61440 + 1024) BANK4(+---------2K---------------------+----------------10K-------------------+------------4K-----------------)BANK4
BANK6(+---------------SCREEN------------------------------+--------------------SCREEN2---------------------)BANK6
No debería afectar a tu juego en el BANK0. A no ser que la música sea gigantesca y el AY player no sepa donde acaba ésta entonces puede colgarse.
Otro cuelgue puede ser debido a que llames SOUND n para ejecutar una música con un índice n incorrecto cuando usas ARKOS player Mod.
Prueba tu juego con menos música a ver que pasa y repasa las llamadas a rutinas de usuario.
|
|
|
Post by ramon on Dec 23, 2022 1:44:49 GMT
Con el MPAGD Sound Mod limpio es posible imprimir la pantalla de presentación de la siguiente manera: call showSplash en tu rutina de usuario. Para usar dos pantallas usa esta última versión del parche para dos pantallas. parche xavisan.rar (4.42 KB). Incluye la rutina de usuario Splash screen.asm Copia el parche en el directorio Suite ZX y descomprime allí para sobre-escribir el código. (las mismas instrucciones descritas en las publicaciones anteriores) ;--------------------------- ; ; Rutina User para savixan games Company 2022 ; Requiere MPAGD Sound Mod ; ;--------------------------- ; ; Rutina User para presentar Splash screen y FlashBlink ; ;---------------------------
cp 12 jp z,showSplash1 ; si acumulador (registro a) es 1 entonces salta a showSplash cp 16 jp z,showSplash2 ; si es 16 salta para pintar la otra pantalla cp 45 jp z,afbk ; en cambio si vale 45 ret
afbk ld c,a ; Set BC=blockcolour pointer ld b,0 ld hl,bcol ; Set HL=blockcolour table address add hl,bc ; Point to blockcolour ld a,(23693) ; Get COLOUR ld (hl),a ; Store COLOUR as blockcolour ret
showSplash1 ld hl,$c000 call showSplash ret
showSplash2 ld hl,$c000 + 8000 ; desde origen mas 8000 bites, donde está almacenada la segunda pantalla. call showSplash ret
|
|
nextric
Abandoned Uranium Working
Ganimedes new videogame developing
Posts: 16
|
Post by nextric on Dec 24, 2022 12:18:32 GMT
Con el MPAGD Sound Mod limpio es posible imprimir la pantalla de presentación de la siguiente manera: call showSplash en tu rutina de usuario. Para usar dos pantallas usa esta última versión del parche para dos pantallas. View Attachment. Incluye la rutina de usuario Splash screen.asm Copia el parche en el directorio Suite ZX y descomprime allí para sobre-escribir el código. (las mismas instrucciones descritas en las publicaciones anteriores) ;--------------------------- ; ; Rutina User para savixan games Company 2022 ; Requiere MPAGD Sound Mod ; ;--------------------------- ; ; Rutina User para presentar Splash screen y FlashBlink ; ;---------------------------
cp 12 jp z,showSplash1 ; si acumulador (registro a) es 1 entonces salta a showSplash cp 16 jp z,showSplash2 ; si es 16 salta para pintar la otra pantalla cp 45 jp z,afbk ; en cambio si vale 45 ret
afbk ld c,a ; Set BC=blockcolour pointer ld b,0 ld hl,bcol ; Set HL=blockcolour table address add hl,bc ; Point to blockcolour ld a,(23693) ; Get COLOUR ld (hl),a ; Store COLOUR as blockcolour ret
showSplash1 ld hl,$c000 call showSplash ret
showSplash2 ld hl,$c000 + 8000 ; desde origen mas 8000 bites, donde está almacenada la segunda pantalla. call showSplash ret
Nada algo raro pasa y no encuentro donde está el fallo, tiene que ser algo de mi código de MPAGD. Así que para quedarme con lo que quería me he tomado la libertad Ramón de tocar parte de tu código, jejeje. El objetivo es tener una pantalla de carga y tener almacenada una screen para mostrar en algún momento del juego. La cosa es que si almacenaba la screen aparecía durante el proceso de carga del juego. Es por eso que he modificado el cargador basic de 128k y comentando la línea que hace que se muestra la pantalla durante el proceso de carga. ¡Ya con esto tengo justo lo que quería y funciona sin problemas! 5 CLEAR VAL "24831":POKE 23739,111
10 LOAD "SC"SCREEN$
15 LOAD "MUD"CODE 24832:RANDOMIZE USR 24832
20 LOAD "AG"CODE 24832
80 RANDOMIZE USR 24832 Usamos la pantalla que se usa en la versión de 48k para que se cargue al principio. Almacenada en MPAGD\Suite ZX\Tape Y para eliminar que se muestre la pantalla durante la carga, editamos el fichero bank4driver.asm ubicado en MPAGD\Suite ZX\AGDsoundMod\AY\MAGDmusicizer\asm y comentamos la línea 36 InstallBank4:
ld a,16 ; for Divmmc
ld (23388),a
;push iy
;di
; carga presentación pantalla.
ld b,6
call bankScreen
ld hl,screeninc
ld de,$c000
call zx7bin
;call showSplash Con esto desactivamos que al cargar la pantalla se muestre. Esto es para desactivarlo en la carga del juego
; carga presentación pantalla 2. Para xavisan
ld b,6
call bankScreen
ld hl,screeninc2
ld de,$c000 + 8000
call zx7bin
; extract music player to 49152
; bank 4
call bank4
ld hl,ayplaybin
ld de,49152
call zx7bin
Esto evidentemente esta claro para tí, pero lo dejo por si alguién le pasa lo mismo y quiere adoptar esta opción. Si tengo mas tiempo, intento revisar pq puede pasar Ramón
|
|
|
Post by ramon on Dec 24, 2022 12:41:13 GMT
Prueba la versión del parche nueva que está en el último comentario publicado, cambio la rutina showsplash para que ahora se deba especificar la dirección origen de la pantalla mediante el registro hl. Esta rutina está alojada en la parte inferior del módulo. En efecto daba problemas con juegos grandes, no con músicas grandes. Ahora no me da problemas. Prueda a parchear con el enlace que dejé en el último Póster. De todas maneras estoy satisfecho de que te apañes tan bien con la infraestructura del montaje Soun Mod. Enhorabuena 👏.
|
|
nextric
Abandoned Uranium Working
Ganimedes new videogame developing
Posts: 16
|
Post by nextric on Dec 24, 2022 13:06:20 GMT
Prueba la versión del parche nueva que está en el último comentario publicado, cambio la rutina showsplash para que ahora se deba especificar la dirección origen de la pantalla mediante el registro hl. Esta rutina está alojada en la parte inferior del módulo. En efecto daba problemas con juegos grandes, no con músicas grandes. Ahora no me da problemas. Prueda a parchear con el enlace que dejé en el último Póster. De todas maneras estoy satisfecho de que te apañes tan bien con la infraestructura del montaje Soun Mod. Enhorabuena 👏. Pues en cuanto tenga un hueco la pruebo. Es verdad que no descargué la versión que pusiste en el comentario, pensaba que era la misma que había usado yo con anterioridad. Gracias por todo Ramón, por tu MOD y por tu atención a todos los que lo usamos en nuestros juegos. Tienes mejor soporte de tu MOD que alguna gran compañía con su software con la que tengo que lidiar a menudo, jajaja. Lo dicho, pruebo la nueva versión en cuanto me dejen un rato libre.
|
|
nextric
Abandoned Uranium Working
Ganimedes new videogame developing
Posts: 16
|
Post by nextric on Dec 24, 2022 17:41:29 GMT
Prueba la versión del parche nueva que está en el último comentario publicado, cambio la rutina showsplash para que ahora se deba especificar la dirección origen de la pantalla mediante el registro hl. Esta rutina está alojada en la parte inferior del módulo. En efecto daba problemas con juegos grandes, no con músicas grandes. Ahora no me da problemas. Prueda a parchear con el enlace que dejé en el último Póster. De todas maneras estoy satisfecho de que te apañes tan bien con la infraestructura del montaje Soun Mod. Enhorabuena 👏. ¡¡¡¡Funcionando perfectamente con el nuevo parche Ramón!!!!! ¡Ha funcionado a las mil maravillas! ¡¡Muchas gracias!!
|
|
|
Post by xavisan on Dec 30, 2022 22:37:22 GMT
¡Muy buenas xavisan y Ramón! El caso es que he estado probando también los tejemanejes que habéis estado haciendo los dos y os quería preguntar alguna cosita. ;---------------------------
;
; Rutina User para savixan games Company 2022
; Requiere MPAGD Sound Mod
;
;---------------------------
;
; Rutina User para presentar Splash screen y FlashBlink
;
;---------------------------
cp 12
jp z,showSplash ; si acumulador (registro a) es 1 entonces salta a showSplash
cp 16
jp z,showSplash2 ; si es 16 salta para pintar la otra pantalla
cp 54
jp z,afbk ; en cambio si vale 54 (Deberia de afectar al bloque 54)
ret
afbk ld c,a ; Set BC=blockcolour pointer
ld b,0
ld hl,bcol ; Set HL=blockcolour table address
add hl,bc ; Point to blockcolour
ld a,(23693) ; Get COLOUR
ld (hl),a ; Store COLOUR as blockcolour
ret
showSplash2 ; Volcado de pantalla
di ; esperad todos un momento!
ld b,6 ; quiero ver este banco de memoria
call bankScreen ; cambia a ese banco
ld hl,$c000 + 8000 ; desde origen mas 8000 bites, donde está almacenada la segunda pantalla.
ld de,$4000 ; hasta pantalla
ld bc,6912 ; todos estos bites
ldir ; cópialos
call bank0 ; mira ahora al banco 0 (el de siempre)
ei ; ya podeis seguir con vuestras cosas
ret ; gracias
He aplicado la modificación para la incorporación de la segunda pantalla. Realiza bien la compresión, y si llamo a la primera pantalla de lujo. Pero si llamo a la segunda cuelgue al canto. ¿Os pasa lo mismo a vosotros? Luego sobre el código de blink, no sé si estoy haciendo algo mal. Entiendo que en la llamada USER 54 (En este caso es el número de bloque que quiero que se vea afectado) debería de hacer el blink. Sin embargo, en mi caso se queda en blanco. He visto que había un código para AGD en el que le aplica primero "COLOUR" , pero no veo clara la aproximación que hace. At the MPAGD FB page, there was a question about the possibility to use flashing background blocks.
This is until v0.7.10 not possible with WinAGD but there is a trick to make background blocks flashing.
Each block of 8x8 pixels has a single byte of colour attribute packed as follows
Bit 7 6 5 4 3 2 1 0
F B P P P I I I
Bit 7 if set indicates the colour flashes between the fore and back colours.
Bit 6 if set indicates the colours are rendered bright.
Bits 5 to 3 contain the PAPER (background) colour 0..7
Bits 2 to 0 contain the INK (foreground) colour 0..7
The flash attribute alternates a cell between its foreground and background colours on a timer.
The bright attribute makes the foreground and background colours, err…, brighter.
The bright attribute nearly doubles the effective number of colours the spectrum could display.
I say nearly because bright black is still black.
So what do you have to do in MPAGD:
1) Create a file called BLINK.ASM and save it in the UserRoutines\Spectrum directory:
ld c,a ; Set BC=blockcolour pointer
ld b,0
ld hl,bcol ; Set HL=blockcolour table address
add hl,bc ; Point to blockcolour
ld a,(23693) ; Get COLOUR
ld (hl),a ; Store COLOUR as blockcolour
ret
2) Select BLINK.ASM as User routine in WinAGD
3) Now you can overwrite the colour (and setting the flash bit) of a block by doing this once in eg EVENT INTROMENU (before a screen is drawn):
COLOUR $87 ; Flashing black/white
USER 1 ; Set colour block 1
The COLOUR command is also used by text routines so set PAPER or COLOUR after calling USER otherwise the text is also flashing.
Repeat setting colour and calling USER <blocknummer> for every blocknumber you want to set.
You only have to do this once ..... or more if you want to change the colour of a block during gameplay.
¿Xavisan, tan solo utilizas la llamada a la rutina para activar el atributo Flash en el bloque? Gracias a los dos de antemano, sois unos cracks! ---- Lo sacaste al final? puedo ayudarte en algo??
|
|
nextric
Abandoned Uranium Working
Ganimedes new videogame developing
Posts: 16
|
Post by nextric on Jan 1, 2023 10:31:43 GMT
Gracias Xavisan, al final la rutina del Flash no me funcionaba pq tenía activado en el emulador el modo ULA Me estaba volviendo loco y no veía el fallo. Y el tema de las Screens Ramón lo modificó y ya funciona todo perfecto.
|
|
|
Post by xavisan on Jan 28, 2023 1:25:42 GMT
Gracias Xavisan, al final la rutina del Flash no me funcionaba pq tenía activado en el emulador el modo ULA Me estaba volviendo loco y no veía el fallo. Y el tema de las Screens Ramón lo modificó y ya funciona todo perfecto. Genial!! me alegra mucho , la parte de la segunda Screen tengo aún que actualizar el fichero para que me funcione mañana seguramente me pondré en ello. En lo que pueda ayudar aquí estoy.
|
|
|
Post by xavisan on Jan 31, 2023 23:37:55 GMT
Ya lo probé finalmente, ahora ya no falla la segunda screen, la verdad es que va muy bien, que crack estás hecho ramon
|
|
|
Post by pachic on Feb 14, 2023 16:59:16 GMT
Xavi, Ramón, Ya tengo otro idea listo , guardamos el screen pero y si cuando lo quiero traer solo lo quiero traer por partes (las 3 partes del display) y reubicarlas donde yo quiero Obvio que no puede ser cualquier reubicación para hacer una rutina fácil puede ser en las 3 partes que componen la pantalla esto hace que podamos reutilizar para distintas cosas ese screen
|
|
|
Post by xavisan on Feb 15, 2023 23:25:25 GMT
Xavi, Ramón, Ya tengo otro idea listo , guardamos el screen pero y si cuando lo quiero traer solo lo quiero traer por partes (las 3 partes del display) y reubicarlas donde yo quiero Obvio que no puede ser cualquier reubicación para hacer una rutina fácil puede ser en las 3 partes que componen la pantalla esto hace que podamos reutilizar para distintas cosas ese screen A que te refieres con ello, es que no termine de entender que quieres decir. /Xavi
|
|
|
Post by Jonathan Cauldwell on Feb 16, 2023 23:59:22 GMT
Apologies, Spanish is my 3rd language and I stopped following the conversation. However, AGD 5 has PEEK and POKE so you'll be able to write your own compression and decompression routines in AGD script.
|
|
|
Post by ramon on Feb 17, 2023 12:07:51 GMT
My sincere apologies for the excessive use of Spanish in your house, it will not happen again.
|
|