No se si se ha quedado ahora peor que como estaba, o es un problema nuevo:Iniciado por Seleuco
http://www.worldofspectrum.org/forum...543#post239543
http://www.gp32x.com/board/index.php...dpost&p=581858
No se si se ha quedado ahora peor que como estaba, o es un problema nuevo:Iniciado por Seleuco
http://www.worldofspectrum.org/forum...543#post239543
http://www.gp32x.com/board/index.php...dpost&p=581858
Mucho curro hoyNo son horas de volver a casa...
Reproducido. Mañana le echo un vistazo. En el curro el optenet de los C* nos capa todo lo relacionado con la gp2x. gp2x=games=filtro
Última edición por Seleuco; 22/01/2008 a las 01:05
Ya esta pillado. Realmente era un error de siempre de la rutina de carga de mconfig que no funciona bién y con las modificaciones nuevas hace que no se inicializen parametros criticos del sonido. El otro error que arregle, era que el mconfig se cargaba antes de leer el fichero ini y no tiene nada que ver con esto.
mira:
void load_mconfig()
{FILE *fp;
sprintf(pathstring,"%s/saves/gp2xpectrum.cfg",globalpath);
fp=fopen(pathstring,"rb");
if(fp==NULL) return;
mas cositas
si no existia mconfig salia y pasaba de todo el codigo de inicalizacion posterior, antes no era tan critico porque se perdian lo de la bateria y el contention y no seteaba el speed, pero ahora pierde parametros de inicialización del sonido.
deberia ser algo del tipo:
void load_mconfig()
{FILE *fp;
sprintf(pathstring,"%s/saves/gp2xpectrum.cfg",globalpath);
fp=fopen(pathstring,"rb");
int read=0;
if(fp!=NULL)
{
fread(&mconfig, 1, sizeof(mconfig), fp);
fclose(fp);
read=1;
}
if(mconfig.id!=0xABCD0009 || !read)
{
Te adjunto el fichero c corregido para que generes una version. Yo lo he llamado 1.5.1 (el 1 de bugfix)
PD: a dormir... jeje
Última edición por Seleuco; 22/01/2008 a las 02:27
Gracias por el fix, compilado, subido y promocionando...
http://www.speccy.org/metalbrain/GP2Xpectrum1.5.1.zip
de ver que a mi vecino le costo lo suyo el spectrum
Ya le he enviado el binario a Metal. No sé si se ganará algo, porque tampoco he usado mucho las versiones anteriores y los juegos que he probado con esta me han ido todos a fullspeed.
Lo he estado probando y la ganancia no es demasiado espectacular, pero está ahí. Como a velocidades normales no se nota, primero hice una prueba con el Moggy (juego que usa el Wham! The Music Box para el sonido, ya que el sonido beeper es una de las cosas que más lentas se ejecutan), bajando la velocidad del procesador a 135MHz y comparando los FPS que se obtenían. La versión sin optimizar obtiene 37 y la optimizada 39. Luego hice otra prueba con el Tetris 2, poniendo la velocidad de emulación al 150%, y subiendo el procesador a 200 y 220 MHz. Sin optimizar se obtienen 64 fps a 200 y 71 a 220, y optimizado 68 y 75/76. Por lo tanto estimo una ganancia total en torno al 5%-7%.
Hombre, algo es algo, ya lo estás subiendo fiera
Por cierto, los "Ram Tweaks" no se los metéis?
The eagle never lost so much time as when he submitted to learn of the crow.
Pues no esta mal.... no obstante creo que influye elbastante el path de ejecución al hacer el profiling... es decir seria bueno probar con el Moggy y hacer el profiling con el teclado virtual levantandolo de vez en cuando.
Ilustrame Rivroner con las Ram Tweaks que ya me pierdo....![]()
Pues muchas aplicaciones las llevan por defecto o te deja activarlos en el menú.
Se trata de modificar los parámetros de la Ram para tener cierta ganancia, los oficiales de Craigix eran estos:
--trc 6 --tras 4 --twr 1 --tmrd 1 --trfc 1 --trp 2 --trcd 2
De todas formas con el Gmenu2x se pueden activar a casi cualquier aplicaciónY digo yo, si este emu es el más rápido del universo junto con el Alexkidd2X de Puck así que tampoco es necesario
Lo podéis hacer internamente con una opción o con un script de este tipo:
#!/bin/sh
./cpu_speed --upll --timing 1 --cpuclk 175 --trc 6 --tras 4 --twr 1 --tmrd 1 --trfc 1 --trp 2 --trcd 2
./gp2xpectrum.gpe
La velocidad del procesador la he puesto a 175 porque creo que con todo a tope (sonido stereo, vsync,..) y con lo del profiling y los tweaks no hace falta más
¡Pedazo de emu!
The eagle never lost so much time as when he submitted to learn of the crow.
el siguiente codigo os deberia funcionar.
asi cambio yo el clock en la minimal 0.C (sin nada de codigo del cpuctrl de Hermes), y de paso hago los tweaks de ram:
Código:/* Function: gp2x_dualcore_clock This function sets the clock at ARM 920T coprocessor and RAM tweaks. Note: - Call this function only from your 920T program. Parameters: s (50,75,100,125,150,175,200,225,250) - Speed value in MHz. Default is 200. Credits: RobBrown, sasq and whizzbang (original clock setting code) god_at_hell (original RAM tweaking code) craigix, Emu&Co (tweaked RAM timing values) */ void gp2x_dualcore_clock(int s) { unsigned long interrupt_flags = gp2x_memregl[0x808>>2], //tRC=7-1 if mhz > 266 //CAS=0,tRC=6-1,tRAS=3-1,tWR=1-1,tMRD=1-1,tRFC=1-1,tRP=1-1,tRCD=2-1; //emu&co's timings CAS=0,tRC=6-1,tRAS=4-1,tWR=1-1,tMRD=1-1,tRFC=1-1,tRP=2-1,tRCD=2-1; //craigix's timings //hardcoded values: s=(s>=250?0x5D04:s>=225?0x5304:s>=200?0x4904:s>=175?0x3F04:s>=125?0x3c01:s>=100?0x6502:s>=75?0x4902:s>=50?0x6503:0); if(s) { gp2x_memregl[0x0808>>2] = 0xFF8FFFE7; // Mask interrupts gp2x_memregs[0x0910>>1] = s; // Set clock and wait while(gp2x_memregs[0x0902>>1] & 1); gp2x_memregs[0x3802>>1] = ((tMRD<<12)|(tRFC<<8)|(tRP<<4)|(tRCD)); //set RAM tweaks gp2x_memregs[0x3804>>1] = ((CAS<<12)|(tRC<<8)|(tRAS<<4)|(tWR)); gp2x_memregs[0x0924>>1] = 0x8900 + ((1)<<8); // Set upll timing prescaler to 1 (0x5A00 for fw 1.0.x) gp2x_memregl[0x0808>>2] = interrupt_flags; // Turn on interrupts } }
rlyeh's pre-killed lamb stare fan club (aka mis ultimos emuladores!! xD)
![]()
rlyeh/emulnation,retrodev,darkwater
Marcadores