8BP Programado juegos profesionales desde Basic
Re: 8BP Programado juegos profesionales desde Basic
¿Nadie sabe sobre eso?.
No estoy seguro, parece un error con las direcciones de memoria o algo así.
No estoy seguro, parece un error con las direcciones de memoria o algo así.
Re: 8BP Programado juegos profesionales desde Basic
Sin conocer la librería en sí, lo que me parece es que al hacer el CALL no le estás mandando los otros parámetros que se le dan a la rutina al invocar el RSXHola, en el frogger (aunque también en el fruit y vegetables y quizá en los demás) si simplemente cambio el "|SETUPSP" de la línea 170 por su correspondiente "CALL&70FD", entonces el juego da un error en ejecución:
¿A qué se debe esto?.
Re: 8BP Programado juegos profesionales desde Basic
Siempre lo hice bien pero el error persiste.
La dirección de memoria es correcta, está en la DOC oficial:
También sustituí este "|SETLIMITS" que está un poco antes sin embargo este no da error.
La dirección de memoria es correcta, está en la DOC oficial:
También sustituí este "|SETLIMITS" que está un poco antes sin embargo este no da error.
Re: 8BP Programado juegos profesionales desde Basic
en SETUPSP estás pasándole una variable, mientras que en SETLIMITS le pasas un valor fijo. ¿Has probado a darle un valor fijo a SETUPSP para probar si así funcionase?Siempre lo hice bien pero el error persiste.
La dirección de memoria es correcta, está en la DOC oficial:
También sustituí este "|SETLIMITS" que está un poco antes sin embargo este no da error.
En el apéndice 2 del manual de referencia Basic habla sobre el tema de los CALL con más detalle
Re: 8BP Programado juegos profesionales desde Basic
He puesto un valor fijo pero tampoco funciona, sale el mismo error.
Es absurdo poner un valor fijo en el bucle pero obviamente es para probar.
Miraré lo de CALL más tarde en el manual.
El error sucede por estar en el bucle for, si quito el bucle for y solo llamo al call, no sucede el error.
Esto funciona:
170 CALL &70FD,0,0,0
Esto no:
170 FOR i=0 TO 31:CALL &70FD,0,0,0:NEXT:'reset
Es absurdo poner un valor fijo en el bucle pero obviamente es para probar.
Miraré lo de CALL más tarde en el manual.
El error sucede por estar en el bucle for, si quito el bucle for y solo llamo al call, no sucede el error.
Esto funciona:
170 CALL &70FD,0,0,0
Esto no:
170 FOR i=0 TO 31:CALL &70FD,0,0,0:NEXT:'reset
Re: 8BP Programado juegos profesionales desde Basic
Yo he probado la siguiente línea y sí que funciona
10 FOR i=0 TO 31:CALL &70FD,i,0,0:NEXT
No eres el único que tiene problemas al sustituir los comandos 8BP por CALL, a mi también me ha pasado y no he encontrado el motivo por el que unos CALL funcionan y otros no. El mismo comando funcionaba en una parte del programa y en otra no, usando el mismo CALL.
10 FOR i=0 TO 31:CALL &70FD,i,0,0:NEXT
No eres el único que tiene problemas al sustituir los comandos 8BP por CALL, a mi también me ha pasado y no he encontrado el motivo por el que unos CALL funcionan y otros no. El mismo comando funcionaba en una parte del programa y en otra no, usando el mismo CALL.
Re: 8BP Programado juegos profesionales desde Basic
Pues no sé, esto sigue dando error.
A ver si JJAranda ve esto, quizá sea un bug de la librería.
Igualmente lo reporté en github.
A ver si JJAranda ve esto, quizá sea un bug de la librería.
Igualmente lo reporté en github.
Re: 8BP Programado juegos profesionales desde Basic
El problema con ese bug es que no puedes usar el optimizador que hice Bof8BP porque te saltará ese bug si el optimizador reemplaza un comando 8BP que esté contenido en un FOR.
Yo estoy casi seguro de que es un bug de 8BP.
Yo estoy casi seguro de que es un bug de 8BP.
Re: 8BP Programado juegos profesionales desde Basic
Es que no me deja poner NEXT en la 170.
Lo pongo pero cuando hago RUN, salta el error, reviso la 170 y falta de nuevo el NEXT.
https://youtu.be/0QY5Kd6fZoE
Lo pongo pero cuando hago RUN, salta el error, reviso la 170 y falta de nuevo el NEXT.
https://youtu.be/0QY5Kd6fZoE
Re: 8BP Programado juegos profesionales desde Basic
He revisado el código de algunos juegos y tengo puestos CALLs en sentencias con FOR funcionando sin problemas. Viendo el video te aparece el error con un número de línea muy alto. Estos errores tan extraños suelen pasar cuando no hay memoria suficiente y el BASIC comienza a hacer cosas "mu raras".
Prueba un print fre(0) a ver que te devuelve.
Prueba un print fre(0) a ver que te devuelve.
Re: 8BP Programado juegos profesionales desde Basic
Nada, no libera nada.
Esto tampoco funciona, este código de sólo dos líneas, aunque ponga el NEXT se termina elminando.
Ni idea, quizá sea algo en la compilación del juego.
Lo que hago es compilar el Frogger, su archivo "make_all_my_game.asm" con el winape recién abierto, es decir, no estoy cargando ningún snapshot antes de compilar.
El perfil de winape es el del 464.
Pero la compilación funciona porque si cambio el call por su |setupsp entonces el juego ejecuta.
Esto tampoco funciona, este código de sólo dos líneas, aunque ponga el NEXT se termina elminando.
Ni idea, quizá sea algo en la compilación del juego.
Lo que hago es compilar el Frogger, su archivo "make_all_my_game.asm" con el winape recién abierto, es decir, no estoy cargando ningún snapshot antes de compilar.
El perfil de winape es el del 464.
Pero la compilación funciona porque si cambio el call por su |setupsp entonces el juego ejecuta.
Última edición por shao el Sab 13 Ago , 2022 6:41 pm, editado 1 vez en total.
- robcfg
- Master of The Forum
- Mensajes: 1311
- Registrado: Jue 03 Abr , 2008 5:32 pm
- Ubicación: Estocolmo
- Contactar:
Re: 8BP Programado juegos profesionales desde Basic
FRE(0) te devuelve la cantidad de memoria libre.
Ivan iba bien encaminado y tu problema es que te has quedado sin memoria.
Ivan iba bien encaminado y tu problema es que te has quedado sin memoria.
Re: 8BP Programado juegos profesionales desde Basic
Aun siendo por falta de memoria continua el misterio de por qué funciona con un comando 8BP y no con su equivalente CALL. Alguna diferencia tiene que haber.
Re: 8BP Programado juegos profesionales desde Basic
Si que hay memoria libre entonces no es de la falta de memoria la causa por la que se produce ese problema.
Re: 8BP Programado juegos profesionales desde Basic
Ok, así funciona pero eso no es una solución definitiva, debería funcionar en una sola línea también:
Así también funciona, es sólo cuando agregas el NEXT a la misma línea que el for y el call cuando se produce el error
Y así:
Con un espacio antes del NEXT y quitando el 'reset comentado después del NEXT... no tiene sentido.
Se ejecuta pero se producen errores cuando usas break y miras la lista, el NEXT se elimina automaticamente de nuevo, en fin un lío.
Así también funciona, es sólo cuando agregas el NEXT a la misma línea que el for y el call cuando se produce el error
Y así:
Con un espacio antes del NEXT y quitando el 'reset comentado después del NEXT... no tiene sentido.
Se ejecuta pero se producen errores cuando usas break y miras la lista, el NEXT se elimina automaticamente de nuevo, en fin un lío.
¿Quién está conectado?
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro
La Comunidad Española |