|
Post by xavisan on Nov 24, 2022 21:25:10 GMT
Yo sé que me pongo denso, pero comerse 7 k de una pantalla en la memoria es mucho para la 48 SI se pudiera poner en la otra memoria de la 128k seria un golazo pero no tengo ni idea Saludos Eso ya sería la bomba! ya verdad. aúnque si se comprimieran posiblemente si sería posible hacerlo (pienso, tampoco lo se seguro la verdad).
|
|
|
Post by ramon on Nov 24, 2022 21:46:31 GMT
you got it man: Last versionejemplo de user routine: ;------------------------------------------------ ; Print Screen from Bank 6 in 128k models ; Requires MPAGD Sound Mod ;------------------------------------------------ call showSplash ret
|
|
|
Post by xavisan on Nov 24, 2022 22:20:23 GMT
you got it man: Last versionejemplo de user routine: ;------------------------------------------------ ; Print Screen from Bank 6 in 128k models ; Requires MPAGD Sound Mod ;------------------------------------------------ call showSplash ret Que chulo! vamos a probarlo Muchas gracias!!!
|
|
|
Post by xavisan on Nov 24, 2022 22:51:54 GMT
you got it man: Last versionejemplo de user routine: ;------------------------------------------------ ; Print Screen from Bank 6 in 128k models ; Requires MPAGD Sound Mod ;------------------------------------------------ call showSplash ret Que chulo! vamos a probarlo Muchas gracias!!! Pues nada, incapaz de saber como poder utilizarlo, sinceramente. Porqué el código (y disculpa mi ignorancia) desde dentro de MPAGD no hace nada y desde un fichero asm tampoco (el resto lo realiza todo sin problemas). Y en GITHUB, indica que lo que hay es de hace 2 años. No está actualizado parece ser. Hay que descargarlo con GIT si no, no es posible descargar la actualización de los 6 ficheros. (de todas formas no he conseguido hacerlo funcionar, ya que me interesa utilizar otra pantalla que no sea la principal y tampoco he visto donde especificar que pantalla cargar no la de presentación si no otra ;-) ).
|
|
|
Post by ramon on Nov 25, 2022 5:59:24 GMT
Esto es lo que está actualizado, lo he comprobado. AGDsoundMod_actualizacion.rar (2.38 KB) Descomprime dentro de Suite ZX. Recuerda cambiar el modelo 128k en el emulador. LLama a la pantalla con una rutina de usuario mediante el código: call showSplash Muchas gracias por probar esto, yo sé como funciona; pero es muy útil que tu me hagas ver los errores de implantación cuando intentas usarlo tu. Gracias por tu paciencia. Este es el código añadido, previa carga de la pantalla en un programa Loader especial; el cual usa el banco 6 para guardar la pantalla. Después la copiamos a la dirección de memoria hex 4000 para verla.
bankScreen: ; swap to bank asigned in b @ 49152 - 16k ;di ld a,(23388) and 248 or b ld bc,32765 ld (23388),a out (c),a ;ei ret
showSplash
; 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 ; desde origen 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
|
|
|
Post by xavisan on Nov 25, 2022 21:09:40 GMT
Esto es lo que está actualizado, lo he comprobado. View AttachmentDescomprime dentro de Suite ZX. Recuerda cambiar el modelo 128k en el emulador. LLama a la pantalla con una rutina de usuario mediante el código: call showSplash Muchas gracias por probar esto, yo sé como funciona; pero es muy útil que tu me hagas ver los errores de implantación cuando intentas usarlo tu. Gracias por tu paciencia. Este es el código añadido, previa carga de la pantalla en un programa Loader especial; el cual usa el banco 6 para guardar la pantalla. Después la copiamos a la dirección de memoria hex 4000 para verla.
bankScreen: ; swap to bank asigned in b @ 49152 - 16k ;di ld a,(23388) and 248 or b ld bc,32765 ld (23388),a out (c),a ;ei ret
showSplash
; 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 ; desde origen 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
Muchas gracias Ramon, Desafortunadamente sigue sin funcionarme, te explico lo que realizo (igual me falta algún parámetro por añadir), realizo la modificación de build.bat, con el nombre del juego, y el mod utilizo el 1, y en la parte de sonido modsnd=2 (Musicizier), del resto del fichero build.bat no toco nada. En mi caso utilizo el evento de intro menu, fichero events.a12 , yo tengo mi propia rutina de usuario cargada, despues de poner el borde y colour de pantalla y limpiarla, realizo el call que comentas, realizo el build y no obtengo ningún resultado. incluso me ha dado por probar de cargar el fichero routines.asm (pero este se queda frito en la carga de pantalla). Luego he observado que 128KAYEngine.asm, ya realiza la carga de ese fichero routines.asm, con lo que debería de añadirlo directamente ya que la parte de música está funcionando correctamente. Por otra parte parece que hay un fallo en el fichero marcadores128k.bas, en la linea 520 realiza un GOSUB a la 800, pero la 800 no exite, sucede lo mismo en marcadores48k.bas y en loader.bas Muchas gracias!
|
|
|
Post by ramon on Nov 26, 2022 0:40:40 GMT
Me da rabia que no salga a la primera. Este vídeo es mas explícito, espero que logres que funcione:
|
|
|
Post by xavisan on Nov 26, 2022 1:11:23 GMT
Me da rabia que no salga a la primera. Este vídeo es mas explícito, espero que logres que funcione:
Ramon ya funciona, un millón de gracias, además te añado en la rutina la parte correspondiente a FlashBlink ;-) aqui tienes la rutina en ASM, probadas ambas y funcionan las dos, la tuya con USER 12, y la de FlashBLINK con USER 45 ;--------------------------- ; ; Rutina User para presentar Splash screen y FlashBlink ; ;--------------------------- cp 12 jr z,show ; si acumulador (registro a) es 1 entonces salta a showSplash ret cp 45 jp z,afbk ret ;------------------------------------------------ ; Print Screen from Bank 6 in 128k models ; Requires MPAGD Sound Mod ;------------------------------------------------ show call showSplash 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 Ya miraré con calma porqué deseo añadir una pantalla distinta a la de carga en el Menu, ya que esta rutina sigue fallando con un "C Nonsense in BASIC, 130:1", a ver si veo el problemilla. Spl ld hl,screenorg ; desde origen carga la pantalla de un fichero externo ld de,$4000 ; hasta pantalla ld bc,6912 ; todos estos bites ldir ; copia el contenido ret screenorg incbin "../tapes/screen2.scr" No hay nada como saber, y al mismo tiempo he aprendido cosas que no tenía la menor idea de como usarlas en MPAGD se agradece mucho. Mil gracias!!
|
|
|
Post by ramon on Nov 27, 2022 18:06:04 GMT
Enhorabuena. Tenemos 8000 bites libres en el banco 6 y podemos guardar otra screen: Ahora puedes escribir tu rutina así:
;--------------------------- ; ; 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 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
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
Fíjate que jp z,showSplash ahora hace un salto largo y directo a showSplash que ya existe en MPAGD Sound Mod. Pero ahora además usamos una nueva rutina que busca la pantalla 8000 bites más arriba. Para que esto funcione te envío el archivo que debes descomprimir dentro de Suite ZX. Si lo haces estás obligado a guardar un archivo screen2.scr en la carpeta Tapes para que se guarde allí, 8000 bites arriba. Este archivo toca Build.bat, y otros archivos (2 nada mas); en caso de fallo o si conviene, puedes recuperar tu instalación anterior con MPAGD Sound mod de nuevo. parche xavisan.rar (3.62 KB) Cuando lea Packobilly esto, le va a quedar frito el cerebro. Buena suerte! Attachments:parche xavisan.rar (3.62 KB)
|
|
|
Post by xavisan on Nov 27, 2022 20:18:04 GMT
Enhorabuena. Tenemos 8000 bites libres en el banco 6 y podemos guardar otra screen: Ahora puedes escribir tu rutina así:
;--------------------------- ; ; 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 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
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
Fíjate que jp z,showSplash ahora hace un salto largo y directo a showSplash que ya existe en MPAGD Sound Mod. Pero ahora además usamos una nueva rutina que busca la pantalla 8000 bites más arriba. Para que esto funcione te envío el archivo que debes descomprimir dentro de Suite ZX. Si lo haces estás obligado a guardar un archivo screen2.scr en la carpeta Tapes para que se guarde allí, 8000 bites arriba. Este archivo toca Build.bat, y otros archivos (2 nada mas); en caso de fallo o si conviene, puedes recuperar tu instalación anterior con MPAGD Sound mod de nuevo. View AttachmentCuando lea Packobilly esto, le va a quedar frito el cerebro. Buena suerte! Ya te digo, Packobilly va a estar frito durante una semana.. ;-) Un millón de gracias ramon te estoy muy muy agradecido deveras que si. Descargo y actualizo, a ver si hoy puedo probarlo y si no, ya mañana , un millón de gracias!!
|
|
nextric
Abandoned Uranium Working
Ganimedes new videogame developing
Posts: 16
|
Post by nextric on Dec 17, 2022 8:54:27 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!
|
|
nextric
Abandoned Uranium Working
Ganimedes new videogame developing
Posts: 16
|
Post by nextric on Dec 21, 2022 12:04:40 GMT
Bueno pues el tema del Blink, es para reirse. Tenía puesto el emulador del MPAGD, el Speccy con la ULA activada y no me salia Prfffff ;Fijamos el colour del Flash COLOUR $87 ; Flashing black/white ;PRUEBA BLINK USER 54 ; Set colour block 1 ;Lo volvemos a dejar todo correcto sino flashea todo el texto COLOUR 7 Mmmm ya solo quedaría averiguar el casque que pega al llamar a la segunda screen
|
|
|
Post by ramon on Dec 21, 2022 13:54:02 GMT
Es un problema de instalación, reviso el procedimiento y os mando instrucciones más claras.
|
|
nextric
Abandoned Uranium Working
Ganimedes new videogame developing
Posts: 16
|
Post by nextric on Dec 21, 2022 18:12:37 GMT
Es un problema de instalación, reviso el procedimiento y os mando instrucciones más claras. ¡¡¡Gracias Ramón!!! Yo copie la modificación de xavisan encima del Sound MOD ya instalado y funcionando. Por supuesto tengo screen.scr y screen2.scr en la carpeta Tapes. La configuración del build.bat, aunque probé también ha activar el modo Pac-Man por si era eso sin resultado. rem ------------------------------------------------------ rem MODO rem 0 = Standard MPAG rem 1 = Modificacion cargador para Pac-man compatible set mod=0 rem ------------------------------------------------------ rem Modificaciones de cargador: rem nombre para tu juego set gamename=Ganimedes rem ------------------------------------------------------ rem Modificaciones de sonido rem 0 = Standard rem 1 = ZX Spectrum 48k Beeper rem 2 = ZX Spectrum 128/+2/+3 AY-3-8912 Musicizer rem 3 = ZX Spectrum 128/+2/+3 AY-3-8912 Arkos Traker set modsnd=2 rem ------------------------------------------------------ Y la rutina que apliqué para la segunda screen y el blink es la que indicastes anteriormente: ;--------------------------- ; ; 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 Mmmm, alguna cosa nos falta por instalar o hemos cometido un error no sé.
|
|
|
Post by ramon on Dec 22, 2022 9:22:29 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 parche xavisan.rar (4.56 KB)en 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!
|
|