Página 36 de 37

Re: Proyecto Churrero: AVORCHA - Pentacorn Quest 128K- RELEASED!

Publicado: Lun, 02 Mar 2015, 09:50
por na_th_an
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.

Re: Proyecto Churrero: AVORCHA - Pentacorn Quest 128K- RELEASED!

Publicado: Lun, 02 Mar 2015, 13:17
por Jarlaxe
Aquí Carlos Blansa de "yoteniaunjuego.com" se ha currado un video comentando el Pentacorn Quest. :D

https://www.youtube.com/watch?v=Hv-_Am1b81g#t=83

Re: Proyecto Churrero: AVORCHA - Pentacorn Quest 128K- RELEASED!

Publicado: Lun, 02 Mar 2015, 13:28
por Nightwolf
De nuevo, ¡muchísimas gracias por tu ayuda Na_th_an! :)

Re: Proyecto Churrero: AVORCHA - Pentacorn Quest 128K- RELEASED!

Publicado: Lun, 02 Mar 2015, 15:09
por na_th_an
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 :lol:

Re: Proyecto Churrero: AVORCHA - Pentacorn Quest 128K- RELEASED!

Publicado: Lun, 02 Mar 2015, 15:22
por Nightwolf
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 :)

Re: Proyecto Churrero: AVORCHA - Pentacorn Quest 128K- RELEASED!

Publicado: Dom, 05 Abr 2015, 18:33
por Nightwolf
Confirmado que funciona ya en el modelo 2+ Gris :)

Re: Proyecto Churrero: AVORCHA - Pentacorn Quest 128K- RELEASED!

Publicado: Mar, 07 Abr 2015, 13:34
por NeilParsons
¿Esto quiere decir que pronto habrá disponible una versión 2.0 de vuestro juego? :)

Re: Proyecto Churrero: AVORCHA - Pentacorn Quest 128K- RELEASED!

Publicado: Mar, 07 Abr 2015, 17:08
por Nightwolf
Cierto :)

Re: Proyecto Churrero: AVORCHA - Pentacorn Quest 128K- RELEASED!

Publicado: Mar, 07 Abr 2015, 17:59
por primy
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. :dalefran:

Re: Proyecto Churrero: AVORCHA - Pentacorn Quest 128K- RELEASED!

Publicado: Sab, 27 Jun 2015, 23:29
por Nightwolf
¡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 :)