Registrarse

¿Por qué le tenemos miedo a decomp?

Jack Johnson

Hoenn Adventures Dev
Colaborador
Bueno, no es que yo le tenga miedo, de hecho estoy metido hasta el fondo, pero hay muchos usuarios que les tira bastante para atrás dar el salto a decompilación.

El mayor argumento es que "no sé programar en C". No hace falta saber programar. Si hay un montón de personas que trabajan en RPG Maker día a día con Ruby (que es un lenguaje bastante más complejo que C en varios aspectos), trabajar con decompilación no es mucho más difícil. Creedme.

Los scripts de toda la vida se programan con prácticamente los mismos comandos, solo que aquí están algo más documentados y cada script tiene un nombre. Este nombre es el que se introduce en el editor de mapas en lugar del offset.

No debes preocuparte por el espacio, pues se ocupa de forma dinámica. En decompilación, en lugar de insertar en un offset libre un gráfico, simplemente lo guardas en una carpeta sustituyendo el original. Si es gráfico requiere de una paleta, esta se modifica con un editor de texto.

Si, por lo que sea, lo que necesitas modificar la programación del juego, véase añadir comandos o algo que anteriormente se hacía con ASM, aquí la programación sería en C. Que vamos, lo normal es que no sepas C, pero entiendo que en ese caso, ASM tampoco. C es infinitamente más intuitivo que ASM, así que en este caso siempre puedes buscar algún tutorial o incluso algún sistema ya hecho en C.

La decompilación tiene una comunidad muy activa y siempre están simplificando el código de los repositorios y resolviendo dudas en el servidor oficial de Pret (el equipo de programadores que están a cargo de los proyectos de decompilación de Pokémon).

En resumen, la decompilación es el futuro del ROM Hacking en GBA y quizá de DS también. No le tengáis miedo y atrevéos a dar el salto.
 

Gold

Porrero a tiempo parcial
Miembro insignia
No quiero desperdiciar 6 años de trabajo e iniciar mi hack otra vez, y arriesgando que debido a mis limitados conocimientos de programación no me termine gustando mi propio proyecto. Y porque aunque me llamen loco me gusta romhackear de modo tradicional y obsoleto ;P
 

Jason

PkPower déjame poner tildes en mi nick ¬¬
Holi!

Yo creo que aparte del "no sé programar en C", hay todavía mitos alrededor y mucho desconocimiento.

A mí me tiró para atrás que necesitaba modificar la interfaz y sistema de combate, pero no descarto en algún futuro volver a decomp con un proyecto más sencillito ;3

Bueno, también me tira para atrás que los juegos de la tercera generación son bastante lentos en las animaciones, tengo que buscar cómo hacer que sean más rápidas o cambiarlas por algo más fluido y que se ajuste a tiempos modernos ^^u

Buen tema!
 

Kaiser de Emperana

Called in hand
Yo la verdad es que a mi punto de vista veo unos cuantos problemas.

Por un lado, hay mucho mas tutoriales y publicidad para el rom hacking. Mucha gente hoy en día viene por parte de youtubers, los cuales usan hack roms. Por lo que resulta en mucha gente queriendo aprender a rom hackear y ni siquiera se ponen a ver que hay una alternativa mejor.


También hay un problema que tiene este foro, que la verdad es que yo no entiendo. Por alguna razón inexplicable, los usuarios de este foro, se empeñan a usar los métodos de hace 5 años por sobre los actuales. Es que en serio, cuando fire red era la rom con más recursos, la gente te recomendaba ruby. Después nos actualizamos y empezamos a recomendar fire red; pero ya hacen como 4 años que emerald lo superó en cuanto a esto, y lo seguimos recomendando.
Cuando todo el mundo empezó a hacer rutinas en C, acá seguíamos con ASM. Me pasé como un año y medio intentando que la gente empiece siquiera a tocar C y de pedo habré conseguido dos o tres.

Y otro problema que yo veo es que, la gente no le tiene miedo a las decomp, sino que le tiene terror a esa pantalla negra que imprime texto en blanco más rápido de lo que uno lo puede leer. Todo lo que involucre la línea de comandos es un gran no, de entrada, para los usuarios que no son técnicos. Supongo que mucha gente prefiere descargar un rom, descargar una herramienta con interfaz gráfica y ya está; a pasarse la primera hora de su aprendizaje metiendo comandos que no entiende en una pantalla negra.

Yo lo que pienso es que, no vale la pena ponerse a convencer a nadie. Que la gente use lo que quiera.
 

Samu

Miembro insignia
Miembro insignia
En mi opinión, uno de los principales problemas que evita que la gente comience a usar decomp, es una mayor barrera de entrada inicial en comparación con otras plataformas.

Esto en parte es debido a que existen menos tutirales de decomp. A esto hay que sumarle que la mayor parte de dichos tutoriales, están hechos asumiendo que el lector tiene ya conocimientos de Rom Hacking tradicional. Como consecuencia, una persona nueva o con poca experiencia no pueda empezar por decomp, a no ser que tenga conocimientos de programación e informática en general.

Ya lo dije el otro día, pero lo vuelvo a repetir aquí. Deberíamos hacer tutoriales básicos para decomp, que no den absolutamente nada por sabido, y que expliquen de forma básica las cosas más importantes, como existen en RH. Pretender que una persona tenga que irse a un tutorial de RH tradicional, para después poder entender como funciona en Decomp, es bastante estúpido. (PD: estos días estoy terminando el tutorial de scripting que empezó IK, por si no lo sabéis, tenéis descripciones de todos los comandos en la wiki.)

Y bueno, a los usuarios que ya tenéis algo de experiencia en RH y seguís pensando por algún motivo que Decomp es más difícil. No lo es. Hasta el editor de mapas (PoryMap) es mucho mejor, y está basado en la interfaz de A-Map, por lo que no os costaría nada adaptaros, yo estoy usándolo ahora mismo:
Alguno estará diciendo... joder, pero si es igual que el A-Map ¿Acaso tiene alguna diferencia? Pues sí, que este funciona bien y el A-Map lleva cayéndose a trozos una década.
Usad decomp, cabrones.
 
Última edición:

KrenoZ

Pulling off deep emotions
Desde que regresé al foro a finales del año pasado he estado viendo los tutoriales que salían para editar cosas en C, y la verdad es que me pareció algo estupendo que se pudieran adaptar las roms a esto.

No es que tuviera conocientos avanzados, pero si varias nociones básicas y la verdad es que he entendido perfectamente los tutos que he visto y muchos los pienso aplicar a mi hack, sin embargo no pienso pasarme totalmente a editar allí, no por miedo, solo que hay varias cosas con las que me siento más cómodo cambiandolas normalmente... Pero de que aplico algunas en C pues es lo más probable.
 

Disturbo

Decomper
Si no quieres leer todo, ve al spoiler. Si vas a leer todo, también lee el spoiler

En mi opinión, hay dos grandes problemas que ya han comentado, pero que me gustaría elaborar un poco más.

Por un lado está la falta de tutoriales y los conocimientos necesarios para entender los que ya existen. ¿Soluciones? Tomar los tutoriales existentes para Rom Hacking y hacer tutoriales equivalentes (Ya visteis el Equipo de Traducción, ahora se viene el Equipo RHD, Rom Hacking a Decomp).

Y por otro lado, y siendo lo que más "daño" causa a las decomps es la más que comprensible pereza que da a todos aquellos romhackers que llevan meses o años con sus proyectos en bases binarias, ya que son estos usuarios los que en muchos casos crean estso tutoriales que necesitamos en decomp. Para solucionar esto, lo ideal sería la creación de herramientas que automaticen el porteo, y este es un desafío al que me gustaría enfrentarme, con ayuda.

Si queremos que decomp gane relevancia, necesitamos hacerlo más atractivo. Hacer tutoriales es un paso, pero otra parte del atractivo que ofrecía (y sigue ofreciendo) el Rom Hacking, es las herramientas que permitían automatizar la edición de pokémon, el cambio del punto de inicio del juego, y los todopoderosos parches. Esto es sin duda el principal motivo por el que todo aquel que llega totalmente nuevo a este mundillo elige el Rom Hacking: es más fácil.

Y bueno, después de esos parrafacos, os dejo de nuevo con la idea de formar un equipo que, tal y como están haciendo con la actualización del engine de combate a la 6(?) generación, cree herramientas que permitan una más sencilla adición de pokemon y algún de tipo de porteo automático de tilesets, scripts, etc de romhacks a decomp.

La gente prefiere el Rom Hacking debido a la gran cantidad de herramientas que automatizan procesos y los parches más que los tutoriales, ya que las personas nuevas en el mundillo buscan lo fácil y rápido. Idealmente, se deberían herramientas que automaticen los procesos más tediosos, como las instalación de los entornos de compilación. Pero con esto surge la pregunta, ¿hasta que punto se ha de automatizar? ¿haciendo esto, idiotizariamos las decomps?
~Disturbo
 

Samu

Miembro insignia
Miembro insignia
Re: Respuesta: ¿Por qué le tenemos miedo a decomp?

Si no quieres leer todo, ve al spoiler. Si vas a leer todo, también lee el spoiler
Para solucionar esto, lo ideal sería la creación de herramientas que automaticen el porteo, y este es un desafío al que me gustaría enfrentarme, con ayuda.

Si queremos que decomp gane relevancia, necesitamos hacerlo más atractivo. Hacer tutoriales es un paso, pero otra parte del atractivo que ofrecía (y sigue ofreciendo) el Rom Hacking, es las herramientas que permitían automatizar la edición de pokémon, el cambio del punto de inicio del juego, y los todopoderosos parches. Esto es sin duda el principal motivo por el que todo aquel que llega totalmente nuevo a este mundillo elige el Rom Hacking: es más fácil.

Y bueno, después de esos parrafacos, os dejo de nuevo con la idea de formar un equipo que, tal y como están haciendo con la actualización del engine de combate a la 6(?) generación, cree herramientas que permitan una más sencilla adición de pokemon y algún de tipo de porteo automático de tilesets, scripts, etc de romhacks a decomp.
Como tal no es mala idea, pero hay cosas que no sería muy útil portearlas o no se podría hacer de forma práctica, ya que los datos se encuentran desperdigados por el ROM a discreción del creador o de algún programa que repuntea automáticamente.

  • Mapas: Todo lo relacionado con los mapas es viable, ya que aunque las cosas estén en China, existen tablas de punteros con las que podemos obtener las direcciones, por lo que siempre que no se hayan repunteado dichas tablas estaríamos bien (en cualquier caso habría que añadir ficheros .ini que permitan modificar los offsets de las tablas, pero estamos en las mismas, requiere organización por parte del creador). De los mapas podemos portear fácilmente los tileblocks/metatiles, y el mapeado en sí. El tileset como tal es una estupidez portearlo, simplemente es sacar la imagen del ROM e indexarla como png con la paleta de escala de grises. El tema de las animaciones sería un poco más complicado de portear directamente, pero se puede hacer.
  • Scripts: Esto es un cristo, o sea, es "fácil" hacer una herramienta que transforme un script de RH a uno compatible con decomp, pero sigue siendo un cristo ir sacando los scripts del ROM. Aunque se me ocurre que los scripts de nivel y aquellos asociados a npc o gatillo dentro de un mapa tienen que ser accesibles mediante los datos de las tablas del propio mapa... tal vez se pueda automatizar lo suficiente, aunque tendrías que autogenerar identificadores no significativos para los scripts aka (Script_0001, Script_0002).
  • Según estoy escribiendo esto, me estoy dando cuenta de que el 80% de las cosas a portear pueden ser automatizadas a través de los mapas (Cómo otro ejemplo, los entrenadores) y que puede no ser tan negro, así que voy a dejar de hacer esta lista aquí.

No sé, se puede intentar hacer una herramienta para portear cosas en general, aunque yo personalmente no recomiendo pasar un proyecto a medio hacer a Decomp xDD.

Me gustaría ver que opina más gente, y también me gustaría saber si tenéis algún framework de preferencia para hacer esto. Yo por mi parte con lo que mejor me manejo para aplicaciones de escritorio es con WPF, pero entiendo que lo suyo es que esto fuese multiplataforma, por lo que tal vez sería buena idea hacerlo en QT, como otras herramientas de Decomp.
 

Zvleon

Usuario de oro
Con este mensaje no tengo la intención de responder el porqué del miedo, pero si contaré mi "historia" con decomp. Hace cosa de un año me motivé a creer mi propio hackrom de pokémon por diversas razones. Comencé viendo tutoriales de como trabajar en rom-hacking y al rato me topé con el concepto de decomp. Al ver los beneficios que traía opté por irmé a decomp, aunque claro, la info era muy escasa sobre las cosas que quería hacer, principalmente era edición de interfaces y cosas por el estilo. Intenté e intenté y al final dejé todo en pausa. Me tomé mi tiempo para lentamente aprender lo básico de C a base de videos de youtube y uno que otro cursillo por ahí.

Víendolo así, es natural que la gente se espante, pero los beneficios que contrae trabajar en decomp son enormes ¿Que si quieres poner un puto minijuego de Mario Kart? Pues puedes hacerlo. Puedes crear lo que te venga en gana. Puedes reformar todo tu proyecto dándole una identidad muy definida y distinta a la del resto.

Dentro de las dos semanas que llevo luego de haber "regresado" lo que puedo concluir es que el trecho inicial que hay que recorrer es duro, pero una vez le agarras la mano, creedme, todo se vuelve mucho más sencillo. Puedes generalizar un montón de procesos, así que te torturas una sola vez y luego puedes implementar un montón de cosas nuevas sin sufrir por ello.

Por ejemplo, en cosa de una semana más o menos con la ayuda de Samu pude crear esto:



En estos casos si aplica lo de querer es poder (?)

[TL;DR: Al principio se sufre, pero una vez le agarras la mano, puedes generalizar lo que haces y extrapolarlo a todo lo que quieras crear, resultando en un proceso muy sencillo]
 

Jon.

Usuario mítico
Yo no agarro el descomp porque ni siquiera hackeo, osea por pura pereza que dejé toda este rollo del romhacking, pero leyendo todos sus comentarios me dan ganas de probar el descomp!
Gracias chicxs son grandes!! Concuerdo mucho con Samu con la cuestion de los tutoriales, se ve como que el nivel 1 es el rh y una vez que lo domines recién puedes avanzar al otro nivel que seria descomp y es una estupidez!
 

Lunos

Enfrentando a La Organización
Miembro insignia
¿Por qué le tenemos miedo a decomp?
Una barrera de entrada bastante mas alta en comparación al RH Tradicional/Binario y la pereza de tener que "empezar de nuevo", yo diria.

Cuando estás bien informado sobre las ventajas de los decomps y vos le das una probada, si tenés un poco de sentido común le agarras la mano al toque, incluso sin saber sobre C.
Son super faciles de usar, es bastante sencillo de leer el codigo, y te dan una inmensa libertad que jamas vas a poder conseguir con el ROM Hacking tradicional, sin mencionar que la mayoria de cosas que se pueden hacer en el RH Binario son muchisimo mas sencillas de hacer con los decomps.

Pero:
-Si ya tenés un proyecto avanzado en RH Tradicional/Binario, no vas a usar los decomps.
-Si no te importan los bugs que tienen los parches que acumulaste en una ROM o las herramientas que usas, no vas a usar los decomps.
-Si no te molesta tener que usar un editor hexadecimal, repuntear y demas, o administrar el espacio libre en la ROM, vos no vas a usar los decomps.

En si, motivos para no usarlos hay. Al final del dia, la cuestión es si usarlos te beneficiará o no.
 

StunxFS

Profesional de WaH
Vaya, solo con leer estos comentarios me dieron ganas de darle de nuevo al decomp x).
Básicamente yo intente usar decomp el año pasado, ¿qué pasó? no me sentí muy a gusto con ello. Pero si soy capaz de darle de nuevo, hasta adaptarme.
Ahora que estoy aprendiendo C++, Rust y repasando C# podría dar lo mejor de mí para ayudar a mejorar el uso del decomp, y romper la barrera del miedo que tienen los ROM Hackers hoy en día.
 

BLAx501!

A veces comento en temas :3
Miembro de honor
Usuario de Platino
El problema por el que la gente no entra al decomp (ni avanza en el RH) es por la pereza, la falta de tolerancia a la frustración, la necesidad de inmediatez y el miedo a aprender por cuenta propia.

Vivimos en un mundo donde internet y las redes sociales nos permiten estar conectados con cualquier persona del mundo con un delay de menos de un segundo. Esto hace que psicológicamente, cada vez necesitemos que las cosas sucedan más rápido.

Aprender es un proceso lento y que conlleva un esfuerzo que la gente, por lo general, no está dispuesto a realizar por algo que considera, en el mejor de los casos, un hobby.

Por otra parte, la tolerancia a la frustración cada vez es menor en las generaciones que se suceden. Padres acostumbrados a una vida relativamente tranquila, que prefieren dar a sus hijos todo lo que piden en lugar de enseñarles que las cosas conllevan un esfuerzo. Esto que acabo de mencionar no tiene por qué ser aplicable a todos los que no quieren adentrarse en estos campos, pero es un motivo importante que se ve en el día a día. Otro ejemplo de esto podrían ser los videojuegos, entendiendo mal la necesidad de volverse accesibles y acabando por ser fáciles y que no proponen ningún tipo de desafío (ejem, Pokémon, ejem).


Resumen: la gente es vaga, quiere todo ya, y a la mínima dificultad lo va a dejar. Si todo estuviese taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaan mascadito como en el ROM Hacking habría más proyectos, hasta que les diese el primer error al hacer un make y le echaran la culpa a lo difícil que es todo :awesome:
 
Arriba