nuive
Solo una cosa, con el readme actual traducido, el post de la página 7 ya no es necesario, puesto que las instrucciones para añadir hacks (el post de la
página 7 es sobre esto ¿no?) ya están en el readme.
nuive
Cierto, este problema con Esmeralda es una lata importante. Justo ahora, cuando puedo dedicarle un poco de tiempo al script es en lo que estoy trabajando.
No solo en que se puedan leer estos menús, sino también en que se puedan leer mejor otros, como la selección de movimientos en combate, la selección de
oponente en combates dobles... este tipo de cosas.
nuive
mGBA es muy amigable para el desarrollo, pero por mucho que pido ayuda en el discord a nadie le interesa colaborar con la inclusión de LuaJIT en el emulador,
nuive
es un caos de código, además de que es impreciso. Respeto muchísimo más el trabajo que se está haciendo con mGBA, y si bien no recibo apoyo por parte de
los desarrolladores, creo que es más inteligente volcar el esfuerzo en un emulador prometedor que no en otro que es un esqueleto que tiene 20 años sobre
el que se van haciendo añadidos que cada vez lo convierten en más pesado.
Alejandro73
Buenas gente! Encontré 2 cosas que podrían estar interesantes si Nuive puede darles soporte, que veo que Hoenn es más problemática que Kanto en estas cuestiones.
Primero, la expansión para Esmeralda, lo que sería el equivalente al Fire Red Upgrade.
enlace
Y lo que más me emociona, la decompilación de Pokemon Emerald Rogue! Es un romhack súper original que estaría genial poder jugar. Mi hermano que lo ha probado me comenta que no hay grandes cambios con respecto a mapas, así que no deberíamos tener problemas como en Pokemon Unbound. Aparte las rutas son más simples y no suelen tener muchos puzzles al estar generadas de forma procedural.
enlace
hum. sugerencia loca...nuive
Mientras esto es una ventaja para quien crea hacks, puesto que esto crea una nueva ROM sin tener que buscar espacio donde meter nada, simplemente recompilando
todo y siempre que el tamaño máximo no exceda el tamaño máximo de una ROM de GBA (32 mb), para el script es un marrón, puesto que ya no solo cada hack,
sino cada versión de cada hack, cada nueva actualización, tendrá todo cambiado con una probabilidad muy alta. Por eso hasta ahora nunca me centré mucho
en hacks de decompilaciones.
nuive
Creo que con esto ya respondo a lo del Pokeemerald Rogue. Sí, tener los datos decompilados de un hack hace, obviamente, mucho más sencillo compatibilizarlo
con el script. Pero esto no quita que de la misma forma, en cada actualización del hack haya que editarlo todo.
nuive
Ahora, en cuanto al desarrollo futuro. No estoy trabajando solo con el script cuando tengo algo de tiempo, por eso lo tengo bastante descuidado. Estuve
trabajando con el código ARM nativo de la GameBoy Advance. Esto me ayuda a entender mucho mejor las diferencias de Rubí y Zafiro con el resto de juegos
de GBA, así como a poder aprender como funciona el ARM7 (el procesador que tiene la Game Boy Advance y uno de los dos que tiene la Nintendo DS) por lo
que ayudará también cuando el desarrollo llegue a las siguientes generaciones.
nuive
VBA-RR con LuaJIT: 10.999999999989 ms
VBA-RR con Lua 5.1: 16.999999999989 s
mGBA con Lua 5.4: 74.9999999999 ms
nuive
En resumen. Si alguien puede indicar los bugs que había en la última versión del Pokémon Access (que ni me acuerdo, se que había algún problema con los
hacks y demás) lo puedo corregir y actualizarlo, pero ni siquiera le cambiaré el número de versión.
Y si alguien quiere escuchar lo que podrá traer el script en el futuro... gritos y lo subo!
sanslash332
De hecho ahí viene la pregunta noov de turno.... ¿qué implica el CFRU? ¿Qué hackroms conocidos hay implementando ello?
sanslash332
también ¿sabes si el pokemon ketzal está hecho de un decompilado? o es un hackrom clásico.
Porque el script no detecta nada, pero no crashea. y con la t, sí lee la pantalla jaja.
sanslash332
hum. sugerencia loca...
¿no existiría quizás... una manera de crear una expanción para estas decopilaciones que ayude con la accesibilidad?
Si el juego está decompilado completo. y se tiene acceso a su código...
Jugando con ese código base, y toda la programación que tienes dentro del juego por ejemplo... ¿no se podría transcribir todo el script y sus funcionalidades a una expanción para aplicar a firered y emerald?
Y para tirar el texto al lector de pantalla, ahí es donde puedes jugar con lua. Si tienes el código a tu mano, podrías reserbar un bloque pequeño de memoria, que sea para mensajes de salida de la expanción del lector. así el script lo único que haría sería monitorear ese espacio de memoria, y cada vez que cambie, manda el contenido de ese espacio de memoria al lector de pantalla.
Pero todo el códiogo del path finder, lectura de pantalla y tal (menos el OCR de la t) podría ir dentro del juego. Teniendo acceso a las funciones directamente y pudiendo interceptarlas para mandar su contenido a este espacio de memoria, quedaría una expanción ultra poderosa y aplicable a cualquier hackrom.
Claro, requiere que los devs tomen esta expanción y la quieran aplicar, pero la opción estaría ahí.
Y obviamente dejas que se active / apague con un flag, o no sé, una convinación de botones rara de la GBA.
Es ultra loco lo que digo, pero no lo veo imposible.
sanslash332
En resumen, no vale la pena en lo absoluto.
Al menos que... no sé ubiese una manera de que el juego imprimiese la lista de sus direcciones de memoria después de una compilación y parchease el script automáticamente. jajajaja
sanslash332
Anda, esto ya suena aún más profundo.
Te estás metiendo muy, pero que muy abajo. ahora más allá de la memoria...
¿como que cosas has podido entender de las instrucciones del procesador?
Para lo que es la nintendo ds ¿tendrías que estudiar también el otro procesador?
sanslash332
Hum...
supongo que la segunda medición eran 16.x MS y no S, porque cuando leí solo segundos.... Uf ¡si que se demora!
Fuera del chiste... claramente ahí hay algo mal xd.
sanslash332
A ver, te comento lo que yo me acuerdo.
Lo que más han dicho la gente, es la falta de lectura en el menú de esmeralda cuando hay que reemplasar un ataque por otro.
Ya luego lo que yo detecté, es que la función del shift+0 para asignar hacks nunca he podido hacerla funcionar correctamente.
En muchos roms que el script no los detecta para nada como un pokemon, al precionar el comando el script crashea y se cierra. Solo el script, no el emulador.
Lo reinicializas, y si pulsas shift+cero, no pasa nada.
Por lo mismo no entiendo cuál es el sha1 que hay que sacar del rom info para incertar en la lista de hacks uwu.
Lo cyurioso, si no mal recuerdo el aniversary edition.o el clear cristal (uno de esos dos que no logro echar a andar con la versión actual del script) me pareció que sí tiró con la vieja versión de tspivey.
¿por qué eso?
sanslash332
ah! que bueno que mencionaste al tipejo ese del script del vizhawk... ¿sabes que onda con eso?
Lo siguió trabajando? o se quedó solo como un experimento que nunca más compartió?
Alejandro73
*En muy contadas ocasiones había que mover al personaje de lugar para que detecte un camino. No recuerdo si me ocurrió en un juego principal o en un hack, probablemente fue lo segundo jajaj.
Alejandro73
*en ocasiones no se leen los menús al mover el cursor, me ha pasado con Radical Red y Esmeralda en español.
Alejandro73
*No sé si esto puede cambiarse, pero hay un punto en la ruta 111 que no te deja avanzar por la tormenta de arena, pero si vas a la derecha se puede continuar a la siguiente ruta sin problemas. EL juego no detecta esta posible salida. Creo que hay un caso similar con la Ruta 5 de Rojo Fuego en donde sí detecta los diferentes caminos. En todo caso, es posible que el jugador pueda crear un nuevo objeto para buscar? Podría servir para aquellas cosas que el juego detecta como un sprite y no como un objeto rastreable, como trepa rocas o los dinamax en Pokemon Unbound o el NPC de la casa treta en Esmeralda.
Alejandro73
*Recuerdo que en audiogames pasaste una carpeta para que Crystal Clear funcione mejor. ¿Hay chance de agregarla al script base?
nuive
El CFRU (Complete Fire Red Update) suele ser lo que se utiliza en el caso de Rojo Fuego para añadir lo
típico de nuevas generaciones. Separación de movimientos en físico-especial, tipo Hada, megaevoluciones,
movimientos Z...). Hay muchísimos hacks que lo utilizan a día de hoy, pero si tuviera que mencionar mis
dos favoritos son Pokémon Unbound y el más que repetido Radical Red. El Unbound tiene una historia simplemente
brutal, todo lo que mencioné anteriormente, pokémon hasta la 8ª generación, una especie de frente de
batalla... Radical Red es simplemente Pokémon Rojo Fuego pero con un buen reto que superar solamente
en su modo de juego normal, tiene varios además de este. La diferencia fundamental con el Unbound en
cuanto a características es que incluye Pokémon y movimientos hasta la 9ª generación. Todos los movimientos,
habilidades y objetos no, pero sí incluye los 1025 pokémon existentes. Si bien falta alguna forma por
ahí, son las formas que solo presentan un cambio estético (las formas de Vivillon, por ejemplo).
nuive
No, nunca lo probé, pero si con la T lee está clarísimo que no es un decompilado. Si fuese un decompilado
lo más seguro es que lo primero que dejara de funcionar fuese la lectura de pantalla completa.
nuive
Mmm... se podría diseñar algo como lo que hay en la GB. Un espacio de RAM en el que se guarde una copia
de la pantalla en todo momento y ya, sin tener que andar a vueltas con menús, listas, ventanitas, backgrounds
y todo el circo que eso conlleva. El problema es que la GBA funciona de forma muy distinta. Habría que
ir modificando cada una de esas funciones, crear un espacio completamente nuevo para eso... no tengo
claro hasta que punto sería viable. Además, si luego un desarrollador no lo aplica, no se podría hacer
nada con ese juego. Básicamente, habría que coger las decompilaciones y crear juegos nuevos con ellas.
Eso ya sin contar todo lo que implicaría el buscarrutas. Y lógicamente, para que el juego no casque,
eso habría que configurarlo con combinaciones de teclas de la GBA. Obviamente no se puede diseñar desde
el punto de vista de un emulador, porque todo esto se programa pensando que va a ir a una GBA y ya. Ciertamente
lo más viable sería hacer algo estilo Manamon, con soniditos en el ambiente para ubicarnos y esas cosas,
pero poco más, la verdad.
nuive
Pero sí, estoy diseñando, entre mis múltiples proyectos relacionados con esto, un adivinador de funciones.
De hecho en la versión de desarrollo que tengo para CFRU ya lo tengo integrado y es capaz de adivinar
dos o tres funciones con total precisión.
nuive
sino del Rojo Fuego original. Estudié el código del mismo movimiento en Esmeralda, y rediseñé la función
por completo en ensamblador.
nuive
los juegos de DS estén aptos para toquetearlos y el script también... habrá que aprender otra arquitectura.
da lo mismo, la diferencia ya entre emuladores es avismal. aunque lograses reducir a unos 5MS las funciones de buscaobjetos ultra optimizadas con luajit, en mGBA, seguiría estando entorno a los 30 o 40ms.?nuive
Mmm... sip, me faltó una m jajajajajaja. Según el desarrollador principal de mGBA lo que falla es la
optimización de Lua en mGBA. Pero vamos, que revisando el script entero, incluso la base que utilicé
del viejo Crystal Access, no está nada bien optimizado. Sí que trabajé en la optimización del motor de
textos en GBA, pero la gestión de mapas, listas de objetos, buscarrutas... podía estar muchísimo mejor.
nuive
Ah, y lo del shift +0 que a veces no iba ya está solucionado. Actualizados los links en el primer post
(bueno, el de drive no que ese no hace falta actualizarlo, se actualiza solo jajajajaja).
nuive
Mmm... no, este no es el del script de BizHawk, este es el que mezcló cosas del Crystal Access y Pokémon
Access para sacar un Emerald Access para VBA-RR. No sé, supongo que le gusta hacer experimentos varios,
pero imagino que solo saca algo cuando es usable. Recuerdo que en su momento hizo cosas que desde mi
punto de vista eran bastante extrañas (añadir teclas para saber que objeto tenía cada pokémon salvaje
en combate y cosas así que el juego no te deja ver hasta que lo capturas) pero bueno, ni idea. Dice que
tiene un script de accesibilidad para pokémon que funciona en BizHawk, VBA-RR y mGBA pero es lo que decía,
a costa de no tener sincronía con el emulador, con Lua yendo un poco por libre. Sí, a mí me parece muy
interesante que Lua tenga su propio proceso, pero siempre que esté en sincronía con el emulador, y eso
nuive
La verdad todo sea dicho, en su momento consiguió el código fuente de las DLLs del Crystal Access original
(creo que se lo había pedido al propio Tyler Spivey) y hablando con él me los pasó. Simplemente no compartimos
las mismas prioridades en cuanto a programación.
nuive
Recuerdo que había que crear varias funciones nuevas, variables, direcciones de memoria para cada juego...
en la versión de desarrollo sé que está arreglado, pero se me hizo ahí tal lío que ni recuerdo qué toqué.
nuive
Sí, se podrá cambiar. Habrá una nueva tecla que alternará entre Camino 1 y Camino 2 para ir a una Ruta,
eso es la solución a este problema.
nuive
Ya estuvo en el script base. Como la gente empezó a volverse loca con los hacks, quité todo lo que no
fueran oficiales. De ahí la idea de las expansiones. Cada uno tiene eso, que lo use como quiera. Pero
la carpeta del Crystal Clear que compartí se puede añadir sin problema al script y funciona, solo hay
que copiarla y pegarla en la carpeta game (creo que era, porque actualmente la estructura de eso cambió
un poco).
Yo creo que tengo por ahí algunos otros. Tengo una para el Radical Red (al margen de las expansiones),
otra para el Unbound.... Pero tienen lo básico, si no recuerdo mal.
nuive
Quería hacer una demo un poco en orden en base a todo lo comentado. Empezar por el CFRU mostrando el funcionamiento del Radical Red y englobar también los cambios que le realicé (que los notará sobre todo quien ya haya jugado a esto) y luego seguir ya con Rojo Fuego y Esmeralda mostrando las nuevas funciones. Sin embargo, este pedazo audio de 13 minutos se convirtió en un par de combates en el Radical Red y luego una incursión Dinamax que... bueno, dura más de 10 minutos pero no quería cortarla. Así que iré por fascículos y ya puestos, para quien no conozca estos hacks los puede ir conociendo un poco jajajajaja.
Alejandro73
Un poco offtopic pero quería comentarlo. Estoy probando las betas de Pokemon Reborn, me alegro de que
estén dándole importancia a la accesibilidad con el estilo manamon. Aún así se extraña el busca rutas
de Pokemon Access, solo detecta cosas un paso en la dirección a la que mira el personaje y los mapas
son muy enormes. Ojalá no se estanque y pueda evolucionar lo suficiente como para convertirlo en un parche
aplicable a RPGMaker en general, o al menos el motor Pokemon Essentials.
Alejandro73
Esoooo, el dexnab ya es accesible! Me va a servir un montón para futuras partidas. Por cierto, no sabía que Dialga era capturable con la primal form. Creí que era exclusivo de Lance. Eso me da mas esperanzas de tener a Jirachi xD.
En cuanto a las expansiones, creo que sería buena idea dejarlas aparte en la carpeta de drive (si no es que ya están ahí y yo no me di cuenta). A ese post lo encontré buscando varias páginas en audiogames y puede perderse fácilmente.
sanslash332
más que tirar todo, pensaba nomás dejarle... de manera fácil a los scripts información útil para ellos.
Como texto en pantalla, texto seleccionado y cosas por el estilo.
Pero más allá como el path finder, o los menús. claramente eso no, porque se formaría ya como algo dentro del mismo juego jajaja.
sanslash332
¿A ese nivel ya?
trabajando algo de eurística? wow.
¿Como lo haces para adivinar? conociendo el CFRU sabes como es el patrón de bites y luego buscas esos mismos patrones a ver si se repiten para distinguir una función por ejemplo?
hasta cuántos pedazos de la función tomas para poder dicernir?
sanslash332
Y ese parche se los mandaste a los del CFRU? jaja
sanslash332
dlls?
Hay parte del código que es c++ y no en lua?
Como para necesitar unas DLLS específicas.
sanslash332
y si buscas el commit donde arreglaste eso? jajajaja
commit everychange everytime
sanslash332
Ah! Por cierto @nuive ¿sabes como es de accesible el sexto gimnacio del pokemon esmeralda?
Yo no lo he jugado todavía, pero dos amigos que sí se manejan con pokemon, comentan que tuvieron que pedir ayuda visual sí o sí para esos gimnacios porque no pudieron resolver los pusles al puro script.
¿hay algo ahí que faltaría leer? o que?
- El lector no lee los menús de la lista de movimientos, hay que usar el OCR y se complica a la hora de borrar un ataque de un pokémon para que aprenda uno nuevo, lo mismo pasa con los concursos. Ya que hay que seleccionar un movimiento para utilizar en la exhibición del concurso.
- El lector no lee el menú de datos de cada pokémon, por lo tanto también hay que usar OCR para poder acceder a la información.
- El menú del pokénav tampoco es accesible, por lo tanto tampoco se puede llamar a un entrenador o acceder a las opciones del pokénav.
- Lo mismo ocurre con el menú del personaje, donde se muestran la cantidad de medallas y cuanto dinero tiene, hay que utilizar OCR para acceder a esta información.
- Y con la pokédex pasa lo mismo, no es accesible la información de este menú y hay que usar OCR.
- El puzle del gimnasio de ciudad Arborada no es accesible, se requiere ayuda visual.
FabiG94