Tal vez no exactamente de esta forma, ya que algunas de las cosas que se vería terriblemente en la PS2 (bueno, simplemente no se puede continuar con el photoshop). Pero nosotros (yo y berion) se llega a un acuerdo, teniendo en imágenes, facilidad de uso, rendimiento, esfuerzo necesario para el código y las capacidades de ps2 en cuenta. También estoy seguro de berion no estará satisfecho con los resultados (como de costumbre ...; P).
Pero vayamos al grano. Terminé el recompilador nuevo. No funciona tan bien como he asumido que lo haría. Los cálculos eran correctos ... pero se me olvidó sobre algunos aspectos que surgieron durante la codificación y análisis (para que el acceso de hardware se convirtió en un problema de eficiencia). Es increíble para simples (2D en su mayoría) juegos (ganancias de hasta un 30-50%), pero causa una pérdida de eficiencia en los demás (incluso hasta un 15-20%, pero por lo general unos pocos puntos porcentuales). Pensé en dejar que el usuario decida qué recompilador se va a utilizar (opción de configuración). Pero entonces se me ocurrió una manera de utilizar algunos de los conceptos de recompilador nuevo con el antiguo. El resultado es un híbrido equilibrado, que hace aumentar la eficiencia en los juegos simples (la mayoría de ellos no necesita de todas formas, pero hay excepciones ... bueno, "gusanos" juegos es uno de ellos) y, al mismo tiempo deja de hardware acceso en su forma más eficiente. Pero dado que el nuevo híbrido recompilador es simplemente más eficiente, le da un aumento de velocidad agradable para la mayoría de los juegos, tanto juegos simples en 2D y 3D avanzados juegos (tanto de aumento de velocidad tiene que van desde el 5-30%, sobre todo ~ 20% en ambos grupos). Así que ahora muchos juegos que se ejecutan en un 100% se ejecutan ahora en 100 o superior. Eso es realmente agradable.
Nota: Estoy escribiendo sobre "recompilador ser más rápido" código, pero lo que realmente significa ser más rápido se vuelve a compilar.
Ahora sólo tengo que cuidar de la tartamudez que ocurre en algunos juegos. Algunos de ellos de manera estable, incluso a muy alta velocidad (si framelimiter está deshabilitado - es una historia de su propio, ya que es tan cojo, que causa problemas demasiado), pero lo deja por una división de segundo cada dos o tres segundos , creando algo que podríamos llamar microstuttering. Entonces al promedio framerate es más que suficiente, pero algo se siente mal sobre el juego. Todavía no estoy seguro de qué causa el problema, pero supongo que es algo relacionado con que interrumpen, algunos errores de emulación de CD-ROM o cop0 (no emulado, lo real ps2) problema (bueno, tuve que usar más de lo que quisiera a ... y me había dado algunos problemas en el pasado).
También hice un speedhack agradable para pantallas de carga (gráficos simples muestra, el uso de CD-ROM pesados, las operaciones sencillas de la CPU, la mayoría lee y escribe ... no funciona para los juegos que hacer un montón de procesamiento de datos durante la carga, como puedo t 'es decir de cargas normales durante el juego), así que los tiempos de carga se han reducido en algunos casos hasta 2-3 veces (con disco duro interno). Otras partes de los juegos no deben verse afectados por ella (hasta que el juego es muy restrictiva cuando se trata de los contadores, durante las operaciones de carga o el algoritmo de detección comete un error y lo hace contra mangling durante la reproducción normal en lugar real "cargas" -, pero se la puede desactivar si es necesario).
Eso es todo con respecto a la noticia. Ahora estoy trabajando solamente en el código de interfaz gráfica de usuario, por lo que no introducirá cambios en el núcleo de unas pocas semanas, supongo. Estoy realmente preparado para producir la vista previa del público esta vez, antes de que se aburren con ella de nuevo.
Responder con una cita
Habia Quotedo a un usuario.
Maybe not exactly in this form, as some of the stuff would look terribly on the PS2 (well, it simply can't keep up with the photoshop ). But we (me and berion) will come to an agreement, taking visuals, usability, performance, effort needed to code and ps2 capabilities into account. I'm also sure berion won't be pleased with the results (as usual... ;P ).
But let's get to the point. I finished the new recompiler. It doesn't work as good as I've assumed it would. The calculations were correct... but I forgot about some aspects that emerged during the coding and testing (so that hardware access became an efficiency problem). It's incredible for simple (2D mostly) games (gains up to 30-50%!), but causes efficiency loss on others (even as much as 15-20%, but most often few percent). I thought about letting user decide which recompiler is to be used (configuration option). But then I thought of a way to use some of the concepts of new recompiler with the old one. The result is a balanced hybrid, which does increase efficiency in simple games (most of them don't need it anyway, but there are exceptions... well, "worms" games being one of them ) and at the same time leaves hardware access in it's more efficient form. But since the new hybrid recompiler is simply more efficient, it gives a nice speedup for most of the games, both simple 2D games and advanced 3D games (both got speedup ranging from 5-30%, mostly ~20% in both groups). So now many games that were running under 100% do run now at 100 or above. That's actually nice.
Note: I'm writing about "recompiler being faster" but what I actually mean is recompiled code being faster .
Now I just need to take care of the stuttering that occurs in some games. Some of them run stable, even at very high speed (if framelimiter is disabled - it's a story of it's own, as it's so lame, that it causes too much problems), but it drops for a split of second every two or three seconds, creating something that could be called microstuttering. So average framerate is more than enough, but something feels wrong about the game . I'm not yet sure what causes the problem, but I suppose it is either something interrupt related, some cdrom emulation bug or cop0 (not emulated, the real ps2 thing) problem (well, I had to use it more than I would like to... and it had given me some problems in the past).
I also made a nice speedhack for loading screens (simple graphics displayed, heavy cdrom usage, simple operations on cpu, mostly reads and writes... it doesn't work for games that do a lot of data processing during load, as I can't tell it from normal loadings during play), so loading times have decreased in some cases even 2-3 times (using internal hdd). Other parts of the games shouldn't be affected by it (until the game is very restrictive when it comes to counters during such loading operations or the detection algorithm makes a mistake and does this counter mangling during normal play instead real "loadings" - but it can be disabled if needed).
That's all regarding the news. Now I'm working only on the GUI code, so no changes to the core for few weeks, I guess. I'm really set to go for the public preview this time, before I'll get bored with it again .