El ULA crash ya te digo que es poco previsible. El emulador que te avisa lo hace respecto a ciertas condiciones que se cumplen y llevan a un ULA crash seguro, pero no todos los ULA crash se dan bajo estas condiciones (por lo que se ve).
Me temo que sin poder probar con un +2 gris (o un 128K toastrack) no podemos validar que los cambios vayan a arreglar el problema.
Ya he recibido el source. En cuanto tenga un rato entre hoy y mañana veré de dejarlo funcionando con la modificación. Lo que te ocurre es seguramente porque hay algún EI o DI donde no debe en la adaptación del arkos player.
Proyecto Churrero: AVORCHA - Pentacorn Quest 128K- RELEASED!
Moderador: na_th_an
Re: Proyecto Churrero: AVORCHA - Pentacorn Quest 128K- RELEASED!
Como diría Rorshach: "Urm..."
Re: Proyecto Churrero: AVORCHA - Pentacorn Quest 128K- RELEASED!
Aquí Carlos Blansa de "yoteniaunjuego.com" se ha currado un video comentando el Pentacorn Quest.
https://www.youtube.com/watch?v=Hv-_Am1b81g#t=83
![Muy Feliz :D](./images/smilies/icon_e_biggrin.gif)
https://www.youtube.com/watch?v=Hv-_Am1b81g#t=83
Re: Proyecto Churrero: AVORCHA - Pentacorn Quest 128K- RELEASED!
De nuevo, ¡muchísimas gracias por tu ayuda Na_th_an! ![Sonrisa :)](./images/smilies/icon_e_smile.gif)
![Sonrisa :)](./images/smilies/icon_e_smile.gif)
Re: Proyecto Churrero: AVORCHA - Pentacorn Quest 128K- RELEASED!
El problema está aquí. La ISR que habéis puesto para ir llamando a Arkos Player hace esto:
$this->bbcode_second_pass_code('', 'void ISR(void) {
#asm
ld a, ($5b5c)
push af
ld b, 1
call SetRAMBank
call AKS_PLAY_SONG
//ld b, 0
pop af
ld b,a
call SetRAMBank
#endasm
}')
Está leyendo el banco activo de la posición $5b5c. El SetRAMBank original se encargaba de mantenerlo actualizado, pero es algo que eliminé porque no es realmente necesario a menos que estés en BASIC.
Teniendo en cuenta que para que funcionen las interrupciones tiene que estar paginada RAM0 (porque los vectores y los saltos necesarios están ahí y en ningún otro sitio), podemos obviar eso y poner siempre RAM0 al salir (como hacíamos nosotros enganchando a WYZ Player):
$this->bbcode_second_pass_code('', 'void ISR(void) {
#asm
ld b, 1
call SetRAMBank
call AKS_PLAY_SONG
ld b, 0
call SetRAMBank
#endasm
}')
Por lo que he probado ya no se cuelga. En specemu debería salir menos ULA snow. Y en un Spectrum +2 gris... pues habría que probarlo. Hasta ahora a nosotros nos ha salvado el culo en este respecto siempre. Te envío por pm todo de vuelta con los arreglos. Además te he quitado un par de warnings, que me dan mucha rabia los warnings![Riendo :lol:](./images/smilies/icon_lol.gif)
$this->bbcode_second_pass_code('', 'void ISR(void) {
#asm
ld a, ($5b5c)
push af
ld b, 1
call SetRAMBank
call AKS_PLAY_SONG
//ld b, 0
pop af
ld b,a
call SetRAMBank
#endasm
}')
Está leyendo el banco activo de la posición $5b5c. El SetRAMBank original se encargaba de mantenerlo actualizado, pero es algo que eliminé porque no es realmente necesario a menos que estés en BASIC.
Teniendo en cuenta que para que funcionen las interrupciones tiene que estar paginada RAM0 (porque los vectores y los saltos necesarios están ahí y en ningún otro sitio), podemos obviar eso y poner siempre RAM0 al salir (como hacíamos nosotros enganchando a WYZ Player):
$this->bbcode_second_pass_code('', 'void ISR(void) {
#asm
ld b, 1
call SetRAMBank
call AKS_PLAY_SONG
ld b, 0
call SetRAMBank
#endasm
}')
Por lo que he probado ya no se cuelga. En specemu debería salir menos ULA snow. Y en un Spectrum +2 gris... pues habría que probarlo. Hasta ahora a nosotros nos ha salvado el culo en este respecto siempre. Te envío por pm todo de vuelta con los arreglos. Además te he quitado un par de warnings, que me dan mucha rabia los warnings
![Riendo :lol:](./images/smilies/icon_lol.gif)
Como diría Rorshach: "Urm..."
Re: Proyecto Churrero: AVORCHA - Pentacorn Quest 128K- RELEASED!
Genial, muchísimas gracias. En el SpecEmu se puede ver algún pequeñísimo artifact, parece que al cambiar de pantalla, pero no siempre aparece. En el JSpeccy funciona guay. A ver si me responde la persona que tenía el problema en el 2+ para que lo pruebe ![Sonrisa :)](./images/smilies/icon_e_smile.gif)
![Sonrisa :)](./images/smilies/icon_e_smile.gif)
Re: Proyecto Churrero: AVORCHA - Pentacorn Quest 128K- RELEASED!
Confirmado que funciona ya en el modelo 2+ Gris ![Sonrisa :)](./images/smilies/icon_e_smile.gif)
![Sonrisa :)](./images/smilies/icon_e_smile.gif)
- NeilParsons
- Mensajes: 122
- Registrado: Vie, 20 Ago 2010, 23:55
Re: Proyecto Churrero: AVORCHA - Pentacorn Quest 128K- RELEASED!
¿Esto quiere decir que pronto habrá disponible una versión 2.0 de vuestro juego? ![Sonrisa :)](./images/smilies/icon_e_smile.gif)
![Sonrisa :)](./images/smilies/icon_e_smile.gif)
Tengo una vah-ka leshera
pechis y muy besuquera...
pechis y muy besuquera...
Re: Proyecto Churrero: AVORCHA - Pentacorn Quest 128K- RELEASED!
Solo quería daros mi más sincera enhorabuena por el juego, Carlosblansa nos lo recomendó en el foro de www.yoteniaunjuego.com y lo he probado y está muy muy chulo. ![DALE FRAN! :dalefran:](./images/smilies/dalefran.gif)
![DALE FRAN! :dalefran:](./images/smilies/dalefran.gif)
Re: Proyecto Churrero: AVORCHA - Pentacorn Quest 128K- RELEASED!
¡Buenas!
Pues Pentacorn v11 está lista para ser lanzado. He podido sacar la última cuestión que me quedaba:
La idea es que en una pantalla determinada, si el personaje recibe daño, se mueva automáticamente a otra pantalla.
Para ello, sería algo así en engine.h en esta parte:
$this->bbcode_second_pass_code('', '#ifdef MODE_128K
arkos_play_sound (7);
#else
peta_el_beeper (4);
#endif
player.life --;
(por ejemplo)
if(n_pant==1)
{
// Mandamos el prota a la pantalla 0 en la coordenada 1,1
}
')
Sería algo así:
$this->bbcode_second_pass_code('', ' if(n_pant==1)
{
player.x = 5 << 10;
player.y = 5 << 10;
n_pant = 0;
draw_scr ();
}')
Así que perfecto, el update tendrá una sorpresa al final![Sonrisa :)](./images/smilies/icon_e_smile.gif)
Pues Pentacorn v11 está lista para ser lanzado. He podido sacar la última cuestión que me quedaba:
La idea es que en una pantalla determinada, si el personaje recibe daño, se mueva automáticamente a otra pantalla.
Para ello, sería algo así en engine.h en esta parte:
$this->bbcode_second_pass_code('', '#ifdef MODE_128K
arkos_play_sound (7);
#else
peta_el_beeper (4);
#endif
player.life --;
(por ejemplo)
if(n_pant==1)
{
// Mandamos el prota a la pantalla 0 en la coordenada 1,1
}
')
Sería algo así:
$this->bbcode_second_pass_code('', ' if(n_pant==1)
{
player.x = 5 << 10;
player.y = 5 << 10;
n_pant = 0;
draw_scr ();
}')
Así que perfecto, el update tendrá una sorpresa al final
![Sonrisa :)](./images/smilies/icon_e_smile.gif)
¿Quién está conectado?
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 54 invitados