Este lo has hecho bien. Ahora tienes que tocar el loader. Pon el tuyo y te digo qué hacerle.
Sobre los 150 bytes, es básicamente eliminar la definición estática de map_buff (o de map_attr, el que más coraje te de) y apuntarlo a una dirección fija que cae entre dos buffers de splib2 y que no se usa para nada.
Abre definitions.h y cambia esto:
$this->bbcode_second_pass_code('', 'unsigned char map_buff [150];')
Por esto:
$this->bbcode_second_pass_code('', 'unsigned char *map_buff = 61697;
')
En 61697 hay 240 bytes libres. Con eso utilizamos 150. Nos quedan 90. Podemos mover ahí más arrays. Por ejemplo, vamos a probar a mover a los enemigos. Esto no lo he probado, que conste. Vamos a poner en_an en 61697 + 150 = 61847 Sustituye
$this->bbcode_second_pass_code('', 'ANIMADO en_an [3];')
Por
$this->bbcode_second_pass_code('', 'ANIMADO *en_an = 61847;')
en_an ocupa 54 bytes. Con estos dos cambios tienes 204 bytes más para tí, lo que está genial. Aún podríamos ahorrar 36 bytes más, pero ahora mismo no recuerdo ningún array pequeño que quepa ahí. Prueba esos dos cambios y me cuentas. El primero funciona seguro. El segundo, es posible, aunque no lo he probado.
Proyecto Churrero: AVORCHA - Pentacorn Quest 128K- RELEASED!
Moderador: na_th_an
Re: Proyecto Churrero: AVORCHA - Pentacorn Quest
Como diría Rorshach: "Urm..."
Re: Proyecto Churrero: AVORCHA - Pentacorn Quest
$this->bbcode_second_pass_code('', 'El loader es tal que así:
10 BORDER NOT PI:PAPER NOT PI:INK NOT PI:CLEAR VAL"24099":LET a=VAL"25000":LET b=a+VAL"2":LOAD""SCREEN$:POKE VAL"23739",CODE"o":LOAD""CODE:LOAD""CODE:POKE a,VAL"1":RANDOMIZE USR b:LOAD""CODE:POKE a,VAL"3":RANDOMIZE USR b:LOAD""CODE:RANDOMIZE USR VAL"24100"')
La verdad que no sé donde empieza uno y acaba el otro...![Triste :(](./images/smilies/icon_e_sad.gif)
EDIT: He probado los cambios.... ¡genial! 200 bytes más!!!!
¡Gracias! ![Muy Feliz :D](./images/smilies/icon_e_biggrin.gif)
![YMCA :ymca:](./images/smilies/451498thump404386village.gif)
10 BORDER NOT PI:PAPER NOT PI:INK NOT PI:CLEAR VAL"24099":LET a=VAL"25000":LET b=a+VAL"2":LOAD""SCREEN$:POKE VAL"23739",CODE"o":LOAD""CODE:LOAD""CODE:POKE a,VAL"1":RANDOMIZE USR b:LOAD""CODE:POKE a,VAL"3":RANDOMIZE USR b:LOAD""CODE:RANDOMIZE USR VAL"24100"')
La verdad que no sé donde empieza uno y acaba el otro...
![Triste :(](./images/smilies/icon_e_sad.gif)
EDIT: He probado los cambios.... ¡genial! 200 bytes más!!!!
![Muy Feliz :D](./images/smilies/icon_e_biggrin.gif)
![Muy Feliz :D](./images/smilies/icon_e_biggrin.gif)
![YMCA :ymca:](./images/smilies/451498thump404386village.gif)
![Pichaaaa! :picha:](./images/smilies/dick1.gif)
![YMCA :ymca:](./images/smilies/451498thump404386village.gif)
Re: Proyecto Churrero: AVORCHA - Pentacorn Quest
Indentado se ve mejor:
$this->bbcode_second_pass_code('', '10 BORDER NOT PI:
PAPER NOT PI:
INK NOT PI:
CLEAR VAL"24099":
LET a=VAL"25000":LET b=a+VAL"2":
LOAD""SCREEN$:POKE VAL"23739",CODE"o":
LOAD""CODE:
LOAD""CODE:POKE a,VAL"1":RANDOMIZE USR b:
LOAD""CODE:POKE a,VAL"3":RANDOMIZE USR b:
LOAD""CODE:RANDOMIZE USR VAL"24100"')
Ahí están todos los bloques: pantalla, reubica, RAM1, RAM3, y binario. Habría que meter un "LOAD""CODE:POKE a,VAL"4":RANDOMIZE USR b" para cargar RAM4 y moverlo a la RAM4:
$this->bbcode_second_pass_code('', '10 BORDER NOT PI:PAPER NOT PI:INK NOT PI:CLEAR VAL"24099":LET a=VAL"25000":LET b=a+VAL"2":LOAD""SCREEN$:POKE VAL"23739",CODE"o":LOAD""CODE:LOAD""CODE:POKE a,VAL"1":RANDOMIZE USR b:LOAD""CODE:POKE a,VAL"3":RANDOMIZE USR b:LOAD""CODE:POKE a,VAL"4":RANDOMIZE USR b:LOAD""CODE:RANDOMIZE USR VAL"24100"')
$this->bbcode_second_pass_code('', '10 BORDER NOT PI:
PAPER NOT PI:
INK NOT PI:
CLEAR VAL"24099":
LET a=VAL"25000":LET b=a+VAL"2":
LOAD""SCREEN$:POKE VAL"23739",CODE"o":
LOAD""CODE:
LOAD""CODE:POKE a,VAL"1":RANDOMIZE USR b:
LOAD""CODE:POKE a,VAL"3":RANDOMIZE USR b:
LOAD""CODE:RANDOMIZE USR VAL"24100"')
Ahí están todos los bloques: pantalla, reubica, RAM1, RAM3, y binario. Habría que meter un "LOAD""CODE:POKE a,VAL"4":RANDOMIZE USR b" para cargar RAM4 y moverlo a la RAM4:
$this->bbcode_second_pass_code('', '10 BORDER NOT PI:PAPER NOT PI:INK NOT PI:CLEAR VAL"24099":LET a=VAL"25000":LET b=a+VAL"2":LOAD""SCREEN$:POKE VAL"23739",CODE"o":LOAD""CODE:LOAD""CODE:POKE a,VAL"1":RANDOMIZE USR b:LOAD""CODE:POKE a,VAL"3":RANDOMIZE USR b:LOAD""CODE:POKE a,VAL"4":RANDOMIZE USR b:LOAD""CODE:RANDOMIZE USR VAL"24100"')
Como diría Rorshach: "Urm..."
Re: Proyecto Churrero: AVORCHA - Pentacorn Quest
Lo mejor de la Churrera es que cuando te falta sitio le puedes tocar un poco el totete para estas cosas ![Riendo :lol:](./images/smilies/icon_lol.gif)
![Riendo :lol:](./images/smilies/icon_lol.gif)
Como diría Rorshach: "Urm..."
Re: Proyecto Churrero: AVORCHA - Pentacorn Quest
Muchas gracias, ¡funciona todo perfectamente!
De mayor... ¡como vosotros! Me voy corriendo al Spectrum a probarlo ^^
![Sonrisa :)](./images/smilies/icon_e_smile.gif)
Re: Proyecto Churrero: AVORCHA - Pentacorn Quest
Bueno, va genial en el spectrum. Pero si configuramos los cursores como teclas, no funciona.
Hice este cambio para poder redefinir las teclas en el juego. Pero por la razón que sea, los cursores luego en el juego no funcionan. (Esto se puede poner en cualquier juego churrero y tenemos configuración de teclado, que mola
) )
$this->bbcode_second_pass_code('', ' print_str (10, 11, 7, "PRESS A KEY FOR");
tecla=0;
do
{
sp_WaitForNoKey ();
if(tecla==0) {print_str (13, 13, 7, " LEFT ");}
if(tecla==1) {print_str (15, 13, 7, "RIGHT");}
if(tecla==2) {print_str (15, 13, 7, "JUMP ");}
if(tecla==3) {print_str (15, 13, 7, "USE ");}
if(tecla==4) {print_str (14, 13, 7, "SELECT");}
if(tecla==5) {print_str (14, 13, 7, " ABORT");}
sp_UpdateNow ();
do {
gpjt = sp_GetKey ();
} while (!gpjt);
if(tecla==0){keys.left = sp_LookupKey(gpjt);}
if(tecla==1){keys.right = sp_LookupKey(gpjt);}
if(tecla==2){keys.fire = sp_LookupKey(gpjt);}
if(tecla==3){keys.down = sp_LookupKey(gpjt);}
if(tecla==4){keys.up = sp_LookupKey(gpjt);}
if(tecla==5){key_y = sp_LookupKey(gpjt);}
arkos_play_sound (0);
tecla+=1;
if(tecla==6) {break;}
}while (1);
')
¿Se podría hacer de alguna forma mejor para que funcionaran los cursores? En un spectrum nadie se pondrá a usarlos seguro, aunque no funcinan :S , pero en un emulador de seguro...
Hice este cambio para poder redefinir las teclas en el juego. Pero por la razón que sea, los cursores luego en el juego no funcionan. (Esto se puede poner en cualquier juego churrero y tenemos configuración de teclado, que mola
![Muy Feliz :D](./images/smilies/icon_e_biggrin.gif)
$this->bbcode_second_pass_code('', ' print_str (10, 11, 7, "PRESS A KEY FOR");
tecla=0;
do
{
sp_WaitForNoKey ();
if(tecla==0) {print_str (13, 13, 7, " LEFT ");}
if(tecla==1) {print_str (15, 13, 7, "RIGHT");}
if(tecla==2) {print_str (15, 13, 7, "JUMP ");}
if(tecla==3) {print_str (15, 13, 7, "USE ");}
if(tecla==4) {print_str (14, 13, 7, "SELECT");}
if(tecla==5) {print_str (14, 13, 7, " ABORT");}
sp_UpdateNow ();
do {
gpjt = sp_GetKey ();
} while (!gpjt);
if(tecla==0){keys.left = sp_LookupKey(gpjt);}
if(tecla==1){keys.right = sp_LookupKey(gpjt);}
if(tecla==2){keys.fire = sp_LookupKey(gpjt);}
if(tecla==3){keys.down = sp_LookupKey(gpjt);}
if(tecla==4){keys.up = sp_LookupKey(gpjt);}
if(tecla==5){key_y = sp_LookupKey(gpjt);}
arkos_play_sound (0);
tecla+=1;
if(tecla==6) {break;}
}while (1);
')
¿Se podría hacer de alguna forma mejor para que funcionaran los cursores? En un spectrum nadie se pondrá a usarlos seguro, aunque no funcinan :S , pero en un emulador de seguro...
Re: Proyecto Churrero: AVORCHA - Pentacorn Quest
Eso es porque los cursores en el +2 son "shift + 5" "shift + 6"... y no sé cómo detectará eso getKey, que sólo devuelve un ascii y usando una tabla interna de splib2. Habría que mirar esa tabla y tunearla. A ver si me pongo dale fran mañana.
Pero es que eso no es ya tocarle el totete, es ya operar a tripa abierta![Riendo :lol:](./images/smilies/icon_lol.gif)
Pero es que eso no es ya tocarle el totete, es ya operar a tripa abierta
![Riendo :lol:](./images/smilies/icon_lol.gif)
Como diría Rorshach: "Urm..."
Re: Proyecto Churrero: AVORCHA - Pentacorn Quest
$this->bbcode_second_pass_quote('na_th_an', 'P')ero es que eso no es ya tocarle el totete, es ya operar a tripa abierta ![Riendo :lol:](./images/smilies/icon_lol.gif)
![Riendo :lol:](./images/smilies/icon_lol.gif)
![Muy Feliz :D](./images/smilies/icon_e_biggrin.gif)