Modificar juego DC a "240p"¿?

Hola,

Como algunos sabréis, existe la posibilidad de activar este modo de baja resolución en algunos títulos de PS2 cambiando unos valores hexadecimales. La gente hizo esto ya que había muchos títulos clásicos que no permitían ésta opción de fábrica.

En Dreamcast muchos de títulos que funcionaban a 240p, lo hacen directamente, pero alguno se escapa.

Por ejemplo tenemos The last Blade 2, funcionando nativamente a 240p, luciendo de maravilla. Pero en cambio ahí está Mark of the Wolves, que nadie sabe porque, funciona únicamente a 480i.

¿Existe alguna posibilidad de que se puedan modificar de la misma forma que se hacía con PS2?

Invoco a @theelf que ha toqueteado bastante con estos temas, a ver si puede echar un cable.

Por ejemplo en Third Strike activamos el "240p" pulsando Start+L antes del logo de Capcom, no se si se podría investigar como se realiza este cambio y ver si es aplicable a otros.

PD: He visto que se pueden modificar los juegos que no soportan VGA a VGA tocando valores hexadecimales.

Estás son ls instrucciones para cambiar a VGA un juego no compatible:

-open the file in the hex editor (preferably CDI format)
-search for the string "KATANA"
-shortly after, you should see "JUE" followed by some numbers
-change the number string after "JUE" to "0799A10"
-save the file ( I recommend over-writing the original file, so you don't accidentally burn your old, non-patched image)


Estoy comparando el HEX de juegos con/sin 240p a ver que puedo encontrar.
Ah, no digo que no sea interesante, pero ahora no estoy por la labor de la Dreamcast

El problema es que los modo 240p en esos juegos se aplican por medio de una combinacion de botones, quiere decir que no es algo que este en el boot, que suele ser facil de editar

Yo comenzaria con dos cosas

1 - Comparando la imagen del juego 480i con una que tenga 240p en el boot
2 - Cargando el Street Fighter 3 en un emulador con debug, y comparar los resultados de bootear en 480i y 240p


Si hay alguna forma, tendria q ser por alguno de esos dos metodos. Veo q ya comenzastes con el punto 1

Saludos
theelf escribió:Ah, no digo que no sea interesante, pero ahora no estoy por la labor de la Dreamcast

El problema es que los modo 240p en esos juegos se aplican por medio de una combinacion de botones, quiere decir que no es algo que este en el boot, que suele ser facil de editar

Yo comenzaria con dos cosas

1 - Comparando la imagen del juego 480i con una que tenga 240p en el boot
2 - Cargando el Street Fighter 3 en un emulador con debug, y comparar los resultados de bootear en 480i y 240p


Si hay alguna forma, tendria q ser por alguno de esos dos metodos. Veo q ya comenzastes con el punto 1

Saludos


Pues parece que va a ser más difícil de lo que creía, es extraño que a estas alturas nadie haya realizado algo así.

Me encuentro preguntando por varios foros americanos (assemblergames, shumps.system), ya que se han hecho progresos en lo que respecta a convertir juegos a widescreen, y podría ir por ahí la cosa, o al menos tienen más conocimeinto sobre el tema [+risas]

Sobre el debug, he probado con el debugger de NullDC pero todo lo que veo me suena a chino. Parece mentira que forzar la compatibilidad con VGA sea tan fácil.

También he encontrado algunas modificaciones HEX para hacer compatibles algunos juegos de Capcom NTSC con el cable/señal RGB (llevan protección, y no aparece la imagen). Pero nada más allá.
Y el problema es que son muchas maquinas y poco tiempo

El debug no deveria parecerte chino, a ver, ahora mismo no tengo el emulador instalado, pero te permite hacer dumps?

Si haces dos dumps, y los truncas en los mismos datos, deverian tener el mismo contenido... o eso dice la logica. Luego que los datos parezcan chino, si, a mi tambien, pero lo q hay q analizar es la diferencia entre esos dos bloques de chino
theelf escribió:Y el problema es que son muchas maquinas y poco tiempo

El debug no deveria parecerte chino, a ver, ahora mismo no tengo el emulador instalado, pero te permite hacer dumps?

Si haces dos dumps, y los truncas en los mismos datos, deverian tener el mismo contenido... o eso dice la logica. Luego que los datos parezcan chino, si, a mi tambien, pero lo q hay q analizar es la diferencia entre esos dos bloques de chino


Es que nunca he tocado el debug de un emulador y de ahí lo que dije de que me sonaba a chino. Al parecer el debugger de NullDC no va muy allá.

I found a solution. There's a debugger version of Demul 0.49 floating around, that works fine. You need to run demuld and set the CPU type to interpreter for the debugger to appear.
There's a really big problem with it though... all of the floating point registers in the register display are off by one. So the value for FR4 appears in FR3, etc. This confused me a lot until I figured out that was wrong.

Using Demul's debugger, I realized what was actually going on when Shenmue sets the value that I changed to affect the aspect ratio. For some reason, I mistakenly mentioned that 43A00000 was 1.25, but it's not. It's actually 320.0. When the logic executes, it's loading 0x44200000 from memory and multiplying it by 0x3F000000. That happens to actually be 640.0 * 0.5, which results in 320.0 going into the address we change. The code is changing it to 256.0, to basically squeeze everything into the center. For proper 16x9, I should have used 438e38e4, which is 284.44.


Estoy intentando arrancar la versión de Demul 0.49 que al parecer va con debugger, pero no hay manera [+risas]

A ver si consigo un poco de ayuda, que por ahí hay gente que sabe bastante. Mi experiencia en estos temas es 0. Pero intento aprender XD

EDIT: Info interesante :) :

i used demul 0.49, it comes with two exe's, demul.exe and demuld.exe(the one with the debugger). I used the included plugins, except for the graphics, for which i used the DX graphics plugin from demul 0.48.
the debugger gets started automatically when you switch CPU mode to interpreter, and offcourse emulation will be much slower, but that's ok because you can switch on the fly between dynarec and interpreter mode, only drawback is that the debugger gets closed when you switch to dynarec.
the debugger is command driven, so no point and click
you get a window which is divided in four areas, you can switch between them with F1,F2,F3,F4
F1 is the registers window
F2 is the RAM
F3 is the code window(opcodes decoded to instructions)
F4 is the command window, where you input your commands. Here you can type help for built in commands

Example for Bio Veronica
1. Using cheat engine i found the slot address where i had my weapon(you can use artmoney if you want so you could gain directly DC ram values )
2. I switched CPU mode to interpreter in demul so that the debugger starts
3. In the debugger command windows accesed by F4, I typed db XXXXXXXX(address i found)(this command shows you a specific RAM address) to verify that is the correct address
4. Then i issue the command for breakpoint which is bp w XXXXXXXX (which means break when a write occurs to XXXXXXXX)
5. I fire a shot ingame and the emu stops and in the debugger window i looked at the code and notice that the sub is responsible for decreasing the ammo amount

don't forget to type help to learn the commands, you can scroll with pageup and pagedown, because depending off your desktop resolution not everything will fit on screen
F5 for stop/start game
F11 for stepping through the code after a breakpoint
you can type for example help bp, to learn about different breakpoints
bl will list your breakpoints
bc with this you can delete a breakpoint
Bueno, por lo que he estado investigando, definitivamente no tengo el conocimiento necesario para realizar esta modificación. Pero estoy esforzándome en buscar ayuda de gente capaz de hacerlo XD A ver si puedo conseguir más pistas de alguien que ya haya trabajado con Dreamcast y sus modos de video.

Ahora he contactado con el creador de las "240p test suite", a ver si puede arrojar algo de luz sobre el asunto.

Link sobre las "240p test suite" para distintas máquinas, entre ellas Dreamcast:

http://junkerhq.net/xrgb/index.php/240p_test_suite
LINKr2 escribió:Bueno, por lo que he estado investigando, definitivamente no tengo el conocimiento necesario para realizar esta modificación. Pero estoy esforzándome en buscar ayuda de gente capaz de hacerlo XD A ver si puedo conseguir más pistas de alguien que ya haya trabajado con Dreamcast y sus modos de video.

Ahora he contactado con el creador de las "240p test suite", a ver si puede arrojar algo de luz sobre el asunto.

Link sobre las "240p test suite" para distintas máquinas, entre ellas Dreamcast:

http://junkerhq.net/xrgb/index.php/240p_test_suite



Lograstes algo? justo estos dias ando programando algo para la dreamcast, y como tengo el debug ruleando, puedo echar un vistazo

Pero si ya lo pudistes descifrar pues nada
theelf escribió:Lograstes algo? justo estos dias ando programando algo para la dreamcast, y como tengo el debug ruleando, puedo echar un vistazo

Pero si ya lo pudistes descifrar pues nada


Pues no, el creador de la "suite 240p" me dijo que no tenía nada que ver lo que el había hecho con modificar un juego, eso es lo único que me dijo (bueno, de propina me soltó un par de respuestas un tanto prepotentes, muy majo no fue vaya).

Y yo por mi cuenta no conseguí apenas nada (investigar mucho y ya está [+risas])

Así que si echas un cable al asunto sería de gran ayuda porque por internet mucha gente lo pide pero pocos se mueven, si me dices por donde tirar puedo ver que puedo hacer yo también.

Que debug has conseguido hacer funcionar?

Juegos que soportan 240p:
Last Blade 2: Final Edition
Marvel vs Capcom
Imagen
http://retrorgb.com/dreamcast.html

Juego que activa el modo 240p:
Street Fighter Third Strike (Pulsando Start + L) antes del logo de Capcom.

En el Marvel vs Capcom el modo 240p salta automáticamente una vez ya ha salido el logo de Capcom (este parece que va a 480i).
¿Alguna novedad?. Garou en 240p sería genial.
Gracias @salvor70 [beer]

@strider_hiryu pues precisamente he pedido que revivan el hilo para ver si podemos seguir trabajando en ello XD

¿Alguien tiene experiencia en general usando debugger de emuladores?

He encontrado este tutorial, en el que un usuario muestra como encontrar códigos para realizar widescreen hacks en Dreamcast:

http://assemblergames.com/l/threads/wid ... ost-900119

No se si por ahí podría ir la cosa. Lo suyo sería poder comparar un juego normal con uno low-res, ya que hay juegos que se ejecutan directamente a 240p tras la bootscreen de Dreamcast.

Personalmente me he puesto a comparar otra vez los valores hexadecimales de dos juegos, uno normal 480i y otro 240p, pero no veo diferencias en las primeras líneas (donde se encuentra el código que permite forzar VGA).

theelf escribió:justo estos dias ando programando algo para la dreamcast, y como tengo el debug ruleando, puedo echar un vistazo


¿Encontraste algo al final @theelf?
Sexy MotherFucker está baneado del subforo por "faltas de respeto"
¡Suculento hilo!

Cómo se nota que te obsesionan estos temas, i know that feel bro jejé [hallow]

LINKr2 escribió:Juegos que soportan 240p:
Last Blade 2: Final Edition
Marvel vs Capcom
Imagen
http://retrorgb.com/dreamcast.html

Juego que activa el modo 240p:
Street Fighter Third Strike (Pulsando Start + L) antes del logo de Capcom.

En el Marvel vs Capcom el modo 240p salta automáticamente una vez ya ha salido el logo de Capcom (este parece que va a 480i).


Kof 2001 y 2002 si no recuerdo mal también van automáticamente a 240p. ¿Sabes si Drem Match 98 y 99 eran a 480i por defecto, pero luego se podía forzar? En HG101 muestran las capturas de esos juegos en Dc a 640x480.

No estaría demás que alguien confirmase si los que rulan a 480i nativamente se pueden jugar por VGA (Garou, Marvel vs Capcom, etc); ya que al menos se confirmarían los 60 hz reales.
Sexy MotherFucker escribió:¡Suculento hilo!
No estaría demás que alguien confirmase si los que rulan a 480i nativamente se pueden jugar por VGA (Garou, Marvel vs Capcom, etc); ya que al menos se confirmarían los 60 hz reales.


No sabría que decirte, los de SNK para la dreamcast si detectan que es una PAL les mete 50hz por narices (en el Garou es horrible). Yo este lo estuve tocando en sus tiempos para intentar forzarlo a 60 mediante un patcher que encontré por internet en aquella época. El problema que me encontré también es que el juego cargaba los sonidos al vuelo desde el cd mientras jugabas y la edición "princo" modificada que tenía los tenía guardados en la banda externa del disco, por lo que tardaba más en encontrarlos y había lag en estos.
Sexy MotherFucker está baneado del subforo por "faltas de respeto"
@MasterDan gracias, pero màs bien me refería al hecho de que en entrelazado a 480 en realidad son 30 hz en las tvs convencionales de cualquier región por el doble barrido. Forzando el progresivo la cosa debería cambiar.

Sí, MoW en Dreamcast lee muchas de las voces directamente desde el GDrom; con el consiguiente retardo segùn el estado de èste.
@Sexy MotherFucker Ahh, bueno, yo lo decía por los problemas que me había encontrado con los juegos de snk en el tema de los herzios. Sinceramente, no se hasta que punto es posible lo que pides de una forma simple, depende de como haya sido programado el juego en cada caso. Lo que me lleva a pensar lo siguiente: si la máquina es capaz de dar los 240p de forma nativa, el juego original es a 240p (o resolución similar) y sabiendo que el entrelazado es el mal en estado puro ¿Que los lleva a tomar la decisión de hacer un upscale a 480i?

Seguramente los gráficos del juego están a la resolución original para conservar memoria (aun no sé como lo hicieron los de Arc System Works para meter el Guilty Gear X ahí), por lo que hacerles el upscale para mostrarlos en pantalla consume recursos (supongo que usarían un doble buffer y lo realizarían de golpe en toda la imagen de la pantalla, aunque esto sigue consumiendo), por lo que suponiendo que la dreamcast manejara de forma más fluida los 480 que los 240 seguiría descompensando supongo. Es raro.
MasterDan escribió:si la máquina es capaz de dar los 240p de forma nativa, el juego original es a 240p (o resolución similar) y sabiendo que el entrelazado es el mal en estado puro ¿Que los lleva a tomar la decisión de hacer un upscale a 480i?.


Por lo que he leído, en algún momento los gráficos 240p podían generar incompatibilidad con ciertos televisores/monitores, ya que el estándar se volvió 480i. Por lo mismo los desarrolladores habrían preferido lanzarlos de esa manera.

Lo ideal hubiese sido haber dado una alternativa para usar los 240p (como lo hizo capcom), pero en muchos casos de nota la pereza o poco interés de los desarrolladores.
Sexy MotherFucker está baneado del subforo por "faltas de respeto"
strider_hiryu escribió:Por lo que he leído, en algún momento los gráficos 240p podían generar incompatibilidad con ciertos televisores/monitores, ya que el estándar se volvió 480i. Por lo mismo los desarrolladores habrían preferido lanzarlos de esa manera.


No sé dónde habrás leído éso, pero no tiene mucho sentido: Una cosa es que los 640x480 se entadarizasen en los juegos en general (algo que masifico la Dc por cierto), pero en la época de la Dreamcast, Ps2, Gamecube, o X-Box; el 99% de los consumidores todavía usábamos televisores convencionales. Podían ser de pantalla plana, podían ser de 100 hz; pero no tenían ningún problema con las resoluciones de 15 Khz (240p); de hecho a día de hoy a nivel de retrogaming son los que la mayoría seguimos empleando para numerosos sistemas.

Si en los juegos de Dreamcast el tema rechina, en un máquina cómo Ps2, capaz de generar una infinidad de outpouts diferentes a baja resolución (320x224, 320x240, 320x448, 384x224, 256x240, y un LARGO etc); la cosa ya era sangrante.

Yo con los años he llegado a la conclusión de que las razones son una mezcla de vagancia, y de querer demostrar que estaban programando para un sistema "next-gen" por parte de los desarrolladores. Aprovechándose del paletismo masivo que había sobre estos temas en la época; convencían a las masas de que por fuerza "480i = Mejor [oki] ". Además consolas cómo X-Box ya no ofrecían modos por debajo de 480i, por lo que estandarizar el ratio se antojaba el siguiente paso natural.

Enlazo el artículo en castellano "¿Pixel Perfect?" publicado en Postback hace ya más de una década:

http://postback.geedorah.com/editoriales/editorial_20051111.html

Hay un gazapo cuando dice que la Gamecube no soporta modos de baja resolución (Gc escupe 320x240 sin problema), pero es una crítica fantástica.

Quote de interés:

A los desarrolladores, claro, esto les viene de perlas. Ya no tienen que invertir su esfuerzo en redibujar sprites o readaptar áreas de juego; empleando las capacidades de scaling del hardware de destino, cualquiera que fuera la [baja] resolución del juego original podrá ser directamente interpretada y mostrada en pantalla a 640 x 480, estándar de [alta] resolución que viene a emplearse en nuestros días. ¿Que nos queda grotescamente pixelado? No prob. Unas friegas de anti-aliasing después de renderizar y a vivir, que son dos días


MasterDan escribió:(aun no sé como lo hicieron los de Arc System Works para meter el Guilty Gear X ahí)


Dreamcast goza de una estupenda compresión de texturas VQ por hardware en el Power VR-2 Dc; por lo que las adapatciones desde NAOMI (que compartían código) eran muy llevaderas y el contenido gráfico perfectamente acopable a los 8 MB de vram en la mayoría de casos.
@Sexy MotherFucker Gracias por aclararlo. Ya debe de ser buena esa compresión para poder cargar en esos 8MB los dos personajes (o uno si es un mirror) con todas sus animaciones y los fondos a esa resolución. Bueno, la paleta de colores de los personajes tampoco era muy amplia, por lo que seguramente ocupaban mucho menos de lo que puede parecer inicialmente. Aun así es increible.
Sexy MotherFucker está baneado del subforo por "faltas de respeto"
@MasterDan yo lo que no sé es cómo se lo montaba la Ps2 con 4 escasos MB y sin compresión por hardware.

¿Volcando datos continuamente desde la RAM a la caché V-Ram y rasterizando a saco con su brutal ancho de banda?

Es que no me jodas:

Imagen

https://www.youtube.com/watch?v=nQPnJqtIMxo

Y con XPLODER puedes forzar un modo de 31 Khz, lo que no recuerdo es la resolución exacta. Normalmente en Play Station 2 van a 640x448 cuando emplean el progresivo.
18 respuestas