Registrarse

[Dis - Otros] ¿Consejos para empezar con PokeRed?

Estado
Cerrado para nuevas respuestas.

illustietor

Usuario de oro
¡Hola!

Hace poco que me volví a interesar por el romhacking y me gustaría empezar con decompilación de GB/GBC, especificamente con PokeRed, pero desgraciadamente ahora mismo no hay tutoriales disponibles de PokeRed en el foro. Ya he logrado instalar las herramientas de compilación en Windows 10 con WLS (Ubuntu 20.04) siguiendo las instrucciones que hay en el repositorio del proyecto en GitHub y he logrado compilar con éxito las roms de pokered.gbc y pokeblue.gbc que parecen funcionar correctamente (incluso he hecho una segunda compilación exitosa con el gráfico del overworld del protagonista cambiado).

El problema que me surge ahora es que no sé muy bien como debería continuar. ¿Dónde podría encontrar información y recursos útiles para trabajar con PokeRed? Sé que para la edición de mapas existe la herramienta Polished Map y que para programar se puede hacer con cualquier editor de texto (normalmente recomiendan Notepad++ y Visual Studio Code), pero siento que la información que busco está muy desperdigada o incompleta, y como soy nuevo me cuesta diferenciar qué está actualizado y qué desfasado. He encontrado una pequeña guía introductoria (en inglés) a PokeRed, pero es de 2014 y es posible que exista alguna más completa y actualizada que no he sido capaz de encontrar (?).

Así a bote pronto se me ocurren un puñado de dudas concretas que voy a plantear por si alguien supiera respondérmelas y facilitarme fuentes de información para indagar más por mi cuenta:
  • ¿Existe o se puede crear una versión decomp "en blanco", es decir, que se pueda crear (casi) todo desde cero, con la estructura solo de las mecánicas, en vez de trabajar sobre un código que ya está construido alrededor de unos eventos e historia concretos?
  • ¿Existe ya una versión de PokeRed con los textos traducidos al español? De no existir, ¿cómo se podría crear y compartir? ¿Es tan "simple" como ir editando todos los textos y compilar? ¿Cómo sería la mejor manera de consultar los textos de la ROM española (herramienta tipo PokeText, wiki online...) para respetar la traducción original? (Entiendo que en decomp no hay problemas de sobreescribir otros puntos de la memoria).
  • ¿Es posible añadir nuevas funcionalidades y mecánicas al juego? No me refiero a añadir nuevos pokemon o ataques sino por ejemplo añadir una nueva mecánica en la que el jugador tenga que comer para no debilitarse.
  • Veo que sustituir los gráficos del juego es muy fácil (solo hay que editar los .png al gusto sin cambiar el tamaño del lienzo), ¿pero qué pasa si quieres cambiar el tamaño (alto y ancho) del gráfico (sprites de algunos Pokémon), añadir nuevos gráficos (sprites, overworlds...) o cambiar como se comportan algunas animaciones (que el protagonista tenga más frames para que al caminar no se "voltee" el gráfico)? ¿Es posible hacerlo?
  • ¿Existe un límite de tamaño que se pueda añadir al juego teniendo en cuenta que no tiene por qué caber en un cartucho físico?
  • ¿Son las ROMs compiladas compatibles (combate e intercambio) con otras hackroms y roms originales? (Imagino que si se edita el índice de pokémon o los ataques pueden existir conflictos, pero si solo se cambian los gráficos a priori deberían ser compatibles, ¿no?).
Eso es un poco todo lo que quería preguntar.
¡Muchas gracias por leer y espero vuestras respuestas!
 
Última edición:

Lunos

Enfrentando a La Organización
Miembro insignia
¿Dónde podría encontrar información y recursos útiles para trabajar con PokeRed?
En su wiki.
¿Existe o se puede crear una versión decomp "en blanco", es decir, que se pueda crear (casi) todo desde cero, con la estructura solo de las mecánicas, en vez de trabajar sobre un código que ya está construido alrededor de unos eventos e historia concretos?
Primero que nada y antes que todo, quiero aclarar que Pokered NO es un decomp como tal, es un disassembly puro y duro, sin más.
Vos no vas a trabajar con C o C++, en Pokered se trabaja con ASM.

Segundo:
¿vos podés eliminar mapas, scripts, y/o cualquier cosa que tú quieras?
Sí, podés, pero me imagino que se debe hacer con cuidado, pues es posible que partes del codigo tengan chequeos especificos de mapas y tal.
¿vos podés traducir el codigo que ya existe a C, y asi crear un proyecto de decompilación de Pokered?
Sí, podés, pero como Pokémon Red fue escrito en ASM originalmente, jamas lograrás crear un proyecto que produzca una ROM equivalente a la de Game Freak, probablemente.
¿Existe ya una versión de PokeRed con los textos traducidos al español? De no existir, ¿cómo se podría crear y compartir? ¿Es tan "simple" como ir editando todos los textos y compilar?
Lo que existe es un proyecto de desensamblaje de las versiones en Español de Pokémon Rojo y Azul.
Su autor original eliminó su repositorio y como que desapareció hace algun tiempo atras, pero.

Pero sí, editar texto es tan sencillo como ir, editar la linea de texto manteniendote dentro del limite de caracteres por linea, y compilar.
Para compartirlo, la mejor manera es crear un repositorio publico en un servicio que hostee repositorios Git, como por ejemplo GitHub.
¿Es posible añadir nuevas funcionalidades y mecánicas al juego? No me refiero a añadir nuevos pokemon o ataques sino por ejemplo añadir una nueva mecánica en la que el jugador tenga que comer para no debilitarse.
Sí.
Veo que sustituir los gráficos del juego es muy fácil (solo hay que editar los .png al gusto sin cambiar el tamaño del lienzo), ¿pero qué pasa si quieres cambiar el tamaño (alto y ancho) del gráfico (sprites de algunos Pokémon), añadir nuevos gráficos (sprites, overworlds...) o cambiar como se comportan algunas animaciones (que el protagonista tenga más frames para que al caminar no se "voltee" el gráfico)? ¿Es posible hacerlo?
Me imagino que los tamaños de los sprites están fuertemente enlazados a las capacidades del hardware de la GameBoy, y tambien a su resolución de pantalla. Yo no puedo responder esta pregunta apropiadamente, asi que se la dejaré a alguien más.
Cualquier cosa, siempre podés entrar al Discord de Pret y preguntar allí. Ellos crearon Pokered, despues de todo.
Hay una invitación en el README de todos sus proyectos, incluido Pokered.
¿Existe un límite de tamaño que se pueda añadir al juego teniendo en cuenta que no tiene por qué caber en un cartucho físico?
¿Tamaño en temas de espacio? Sí, creo que a menos de que escribas un emulador personalizado, el limite de espacio por defecto es de 2MB.
¿Son las ROMs compiladas compatibles (combate e intercambio) con otras hackroms y roms originales? (Imagino que si se edita el índice de pokémon o los ataques pueden existir conflictos, pero si solo se cambian los gráficos a priori deberían ser compatibles, ¿no?).
En principio yo creo que sí, pero eso deberias de testearlo tú mismo.
 

illustietor

Usuario de oro
¡Muchas gracias por tus respuestas @Lunos !
Lo de no ver lo de la wiki del proyecto en Github realmente ha sido de noob total. Ahí se resuelven muchas de mis dudas, así que mil gracias por hacermelo notar ❤
Primero que nada y antes que todo, quiero aclarar que Pokered NO es un decomp como tal, es un disassembly puro y duro, sin más.
Vos no vas a trabajar con C o C++, en Pokered se trabaja con ASM.
Perdón si me he equivocado con la terminología, pero por aclararme un poco más, ¿entonces "decomp" no es lo mismo que "disassembly"? Por tu mensaje entiendo que el resto de "decomps" estan en C o C++ (¿GBA especialmente?) y que en cambio PokeRed (y seguramente el resto de GBC) esta en ASM, ¿no?

Lo de traducir el código ASM a C personalmente no me interesa y no sé que ventajas podría aportar (¿supongo que C es más cómodo?). A priori no me importa centrarme en aprender ASM, tengo entendido que además te da mayor control sobre el hardware, aunque programar con él sea más tedioso. Espero no tener que arrepentirme, pero como a priori tengo metas sencillitas (traducir textos, sustituir gráficos...) supongo que no se me hará muy cuesta arriba.
Lo que existe es un proyecto de desensamblaje de las versiones en Español de Pokémon Rojo y Azul.
Su autor original eliminó su repositorio y como que desapareció hace algun tiempo atras, pero.

Pero sí, editar texto es tan sencillo como ir, editar la linea de texto manteniendote dentro del limite de caracteres por linea, y compilar.
Para compartirlo, la mejor manera es crear un repositorio publico en un servicio que hostee repositorios Git, como por ejemplo GitHub.
¿Con proyecto de desensamblaje imagino que te refieres a lo mismo que han hecho con PokeRed pero con las roms españolas, no? No tengo mucha idea de como se llega a hacer eso (imagino que implica mucho trajo e ir documentando para qué sirve y donde está cada cosa), pero es una lástima que lo eliminaran.
Por mi parte intentaré crear una versión de PokeRed con todos los textos traducidos (aún no me he puesto a ello, así que tampoco cuan costoso puede llegar a ser) y tener un repositorio público en Github por si alguien se lo quiere descargar. En tener algo presentable (si es que lo llego a lograr) supongo que lo publicaré por aquí en el foro.

Y de nuevo, muchas gracias por tus respuestas.
 

SenorX

Tipo de incógnito
Miembro de honor
Nosotros en pokeemerald, como ya ha mencionado Lunos, estamos traduciendo de manera directa todos los ficheros con texto entre comillas. Mientras respetes el límite de caracteres por línea (que te tocará investigar), todo debería estar bien. Al traducir el hackrom Pokémon Prism, hicimos lo mismo. Creo que podrías hacerlo perfectamente de la misma manera. Es lo único que te puedo decir. Suerte con esa tarea titánica si te lo propones.
 

illustietor

Usuario de oro
Nosotros en pokeemerald, como ya ha mencionado Lunos, estamos traduciendo de manera directa todos los ficheros con texto entre comillas. Mientras respetes el límite de caracteres por línea (que te tocará investigar), todo debería estar bien. Al traducir el hackrom Pokémon Prism, hicimos lo mismo. Creo que podrías hacerlo perfectamente de la misma manera. Es lo único que te puedo decir. Suerte con esa tarea titánica si te lo propones.
¡Gracias! Intentaré hacerlo, aunque no prometo nada...

No sé si al querer poner los mismos textos originales que hay en las roms españolas el trabajo de calcular el límite de caracteres por línea ya esté hecho (no sé si en PokeText te los da "partidos" o "enteros" por lo visto PokeText me da error al intentar abrir una ROM española, así que me tendré que buscar otra manera de consultar los textos). Desde luego, no tener que traducirlo yo (solo es copia y pega) ya es un alivio de trabajo.

En cuanto a buscar los archivos de texto (en el repositorio hay mucha carpeta y soy bastante novato), ¿sabes algún truco para encontrarlos más facilmente? Veo que hay una carpeta nombrada "text" donde veo que están los diálogos de NPCs y carteles, pero no sé muy bien donde están los textos de movimientos, menús y otros que ahora mismo no me vienen a la cabeza pero que tambien habría que traducir.

¡Un saludo!
 
Última edición:

Lunos

Enfrentando a La Organización
Miembro insignia
¿entonces "decomp" no es lo mismo que "disassembly"?
No.
Un proyecto de desensamblaje, o disassembly, es aquel en el que se obtiene el codigo fuente de una pieza de software escrito en ASM, y poco más.
Cualquier cambio más alla, como por ejemplo documentar cosas, ordenarlas en carpetas y demas, es opcional y a decisión de la persona a cargo.
Un proyecto de decompilación, o decomp, es aquel en el que se toma dicho codigo fuente, y se traducen sus distintas piezas a un lenguaje de programación que sea más facil de leer y de trabajar para un ser humano, como por ejemplo los ya mencionados C o C++.
Por tu mensaje entiendo que el resto de "decomps" estan en C o C++ (¿GBA especialmente?) y que en cambio PokeRed (y seguramente el resto de GBC) esta en ASM, ¿no?
Correcto.
¿Con proyecto de desensamblaje imagino que te refieres a lo mismo que han hecho con PokeRed pero con las roms españolas, no
Sí.
Pokered es el proyecto de desensamblaje de Pokémon Red y Blue.
Pokered-es era el proyecto de desensamblaje de Pokémon Rojo y Azul.
Por mi parte intentaré crear una versión de PokeRed con todos los textos traducidos (aún no me he puesto a ello, así que tampoco cuan costoso puede llegar a ser) y tener un repositorio público en Github por si alguien se lo quiere descargar. En tener algo presentable (si es que lo llego a lograr) supongo que lo publicaré por aquí en el foro.

Y de nuevo, muchas gracias por tus respuestas.
¡Buena suerte!
 
Estado
Cerrado para nuevas respuestas.
Arriba