Registrarse

[RH - Otros] Clase 1 | U-1: Conceptos básicos

Estado
Cerrado para nuevas respuestas.

Fran Agustín

Si el sol besa tus ojos, ni cuenta te das.
Miembro insignia

WAH'S MEORH | UNIDAD 1: CONCEPTOS BÁSICOS

TEMA 1: DEFINICIONES BÁSICAS

Para poder empezar a romhackear es necesario, antes, ponernos de acuerdo en los términos que usaremos. Asimismo, es de vital importancia que sepan a qué me refiero cuando menciono cosas como "pointers", "ROMs", "RAM", "hex" u "offset".

Planteemos, entonces, la siguiente lista:

  • ROM: Read Only Memory. Traducido como Memoria de sólo lectura. Es el archivo que contiene los datos de (en este caso) el juego que editaremos. ¿Si es de sólo lectura cómo hacemos para modificarla? Es perfectamente posible hacerlo. Lo que no podemos hacer es modificarla mientras la ejecutamos (es decir, en el emulador).
  • RAM: Random Acces Memory. Traducido como Memoria de acceso aleatorio. En ella se guardan datos que son modificados a medida que jugamos el ROM (es decir, desde el emulador). Por ejemplo, la información de los pokémons en el equipo o los objetos de la mochila y el PC.
  • ROM expandida: Es una ROM que pesa más de 16 MBs, por lo tanto, tiene más espacio para agregar nuestras ediciones. Sin embargo, salvo que usemos Emerald como base, no suele ser necesario.
  • Binario: Sistema numérico que consta únicamente de dos dígitos, 0 y 1.
  • Decimal: Sistema numérico que consta de diez dígitos y utilizamos en nuestra vida cotidiana. Éstos son: 0, 1, 2, 3, 4, 5, 6, 7, 8 y 9.
  • Hexadecimal: Sistema numérico que consta de dieciseis dígitos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. Es probablemente el que más emplearemos en esta escuela y en el romhacking en general.
  • Herramienta: Programa informático que usamos para modificar una ROM. Ejemplos de ellas son A-Map, XSE y APE.
  • Sprite: Es un gráfico o "dibujo" que, en el caso de la GBA, mide 64x64 píxeles y puede tener hasta 15 colores + 1 de fondo (será transparente, por lo que no podremos usarlo para pintar al personaje o pokémon en cuestión). Ejemplos de sprites son cada uno de los pokémons que sale en batalla.
  • Tile: Que puede traducirse como "azulejo". Es un gráfico de 8x8 píxeles que constan la mayor parte de los gráficos del juego.
  • Bloque: Es un gráfico de 16x16 píxeles, es decir, que está formado por 4 tiles. Ejemplo puede ser la hierba (tanto la normal del suelo como la "hierba alta" en donde salen pokémons).
  • Script: Conjunto de comandos que forman los eventos y desarrollan el juego, por ejemplo, los mensajes que nos dicen los distintos personajes, los objetos que encontramos tirados o los pokémons que nos dan.
  • ASM: Acrónimo de "Assembler Language" o, en español, "Lenguaje Ensamblador". Es un lenguaje de programación de bajo nivel que nos permitirá editar prácticamente cualquier aspecto del ROM, ya que estaremos re-programándolo nosotros mismos.
  • Indexar: Limitar los colores de una imagen a aquellos que sean compatibles con la GBA.
  • Offset: Dirección dentro de la ROM. Nos sirve para indicar en qué lugar se encuentra cada cosa, por ejemplo, un script o un sprite. Se nombran numéricamente y, por lo general, usaremos el sistema hexadecimal para eso, aunque también sea válido usar el decimal o el binario. Piénsenlo como el cartel de numeración de las casas.
  • Puntero: Es un conjunto de datos que encontramos en la ROM y nos indican el offset de alguna cosa. Está formado por 8 dígitos hexadecimales: $XXXXXXXX, por lo general, los dos primeros son "08" pues hacen referencia a la ROM, aunque en ROMs expandidas podríamos tener otros distintos.
  • Bit: Es la mínima unidad en informática, se corresponde con 1 dígito binario. Es decir, sus valores pueden ser 0 o 1. Ejemplo: 00010 son 5 bits.
  • Byte: Es un conjunto de 8 bits (o también podemos decir, 8 dígitos binarios). Sin embargo, por lo general lo veremos en forma de 2 dígitos hexadecimales en lugar de 8 binarios. Ejemplo: $FF, $05, 0b01100011 son 3 bytes.
  • Halfword: Conjunto de 16 bits o, lo que es lo mismo, 2 bytes. $FEE5, $9853, 0b0100110101110001 son 3 halfwords.
  • Word: Conjunto de 32 bits o, lo que es lo mismo, 4 bytes. $F5A3E732, $87563118 son 2 words. Retomando el concepto de puntero o "pointer", cada uno de ellos es una word.

Podríamos agregar otros conceptos, pero con estos por ahora nos alcanza. No quiero alargar más la lista, así podemos empezar pronto la parte práctica. A medida que vayamos necesitando introducir otros conceptos, los iremos detallando y, probablemente, agregando a esta lista.


TEMA 2: INTRODUCCIÓN AL ROM HACKING

Si quieren aprender a romhackear es extremadamente crucial que entiendan qué es el rom hacking.

Llamamos rom hacking al proceso de modificar una ROM, tanto sea mediante herramientas o edición hexadecimal.

Entonces, cualquier modificación, por pequeña que sea, es parte del rom hacking.

¿Quieres agregar nuevos pokémons? ¿Cambiar el nivel o la frecuencia con la que aparecen? ¿Cambiar sus sprites? ¿Editar los mensajes que dicen los NPCs? ¿Agregar nuevos sistemas? ¿Implementar sistemas de otros juegos? Todas esas acciones y muchas más comprenden lo que llamamos ROM HACKING.

Crear un juego desde 0 es un trabajo muy complicado, pero rom hackear implica un doble trabajo ya que, si bien puede que no tengamos que programar los sistemas nosotros mismos, o diseñar todos los gráficos, pero al estar modificando algo creado por otra persona primero debemos entender qué es lo que está armado y cómo funciona para luego poder editarlo correctamente.

Por lo tanto, tiene su parte difícil. Ahí es donde fracasan la mayor parte de los principiantes, quieren hacer y hacer sin saber cómo o qué hacen y se les plantean dudas que carecen de toda lógica y podrían responderse ellos mismos si supieran cómo funciona lo que quieren hacer y cómo está programada la ROM.

Eso es todo. Por ahora, no tenemos tarea. Pero ya desde la segunda clase empezarán a tener trabajo :jejeje:


 
Última edición:

NozZ C

Usuario mítico
Gracias por no mandar tarea y tambien gracias por la clase de hoy xd

Pd:me convertire en un jiangzhengwenjz del asm?
 

AmuSakura

Baneado
Muchas Gracias por la clase, hay varias cosas que de verdad no estaba enterada, y me han ayudado con estas definiciones a saber un poco más sobre el Rom Hacking (Por lo menos lo más básico >.<).

Y también agradezco que no dejó tarea jejeje.

Nuevamente gracias :D.
 

NewHacker12

I am beautiful( ͡° ͜ʖ ͡°)
Vale ._. si que fue larga la lista pero e entendido todo y aprendí mas sobre lo que no estaba enterado de definiciones (es un buen metodo de entrada) y se que esto se pondrá mas hardcore pero me gusto la primera clase. :)

PD: Gracias por no dejar tarea XD
 

Laquin

Usuario mítico
muchas gracias por la leccion :) aunque tengo una pregunta(dos en realidad XD), no entiendo la diferencia entre bloque y tile y entre ofset y puntero
me los esplicas? GRACIAS! :D

pd:cuanto tiempo tendremos para hacer las tareas??
 

MetalKaktus

A la luz del quinto día, mira al este
Miembro insignia
Buena forma de empezar las clases. La verdad es que no tenía ni idea de alguna de esas definiciones.
 

CompuMax

Discord: CompuMax#0425
Miembro insignia
Es un buen comienzo. Por haber estudiado Telecomunicaciones y ser aficionado del Rom Hacking desde hace muchos años (aunque no haya hecho antes un Hack Rom) manejaba todos los términos expuestos. Aún así es bueno empezar por lo más básico para avanzar todos al mismo ritmo.

A la espera de la segunda clase.

PD: Espero no pongan límite de tiempo ya q hay semanas (como la que viene por ejemplo) que sólo podré acceder al foro los martes y jueves.

:)
 

~4n1ma~

Baneado
Es un comienzo bastantr bueno,aunque ya manejaba todos esos terminos xd,aun asi empezar por lo mas basick es bueno asi vamos todos igual,gracias por no dejar tarea :'v
 
Excelente comienzo. Muchas de estas cosas ya las sabía con anterioridad, pero por supuesto nunca viene nada mal repasarlas, además de que algunos podrian no saberlo.
 

Yue Toramaru

Yue Ideaslocas xD
Enseguida me pongo al día. He estado sin luz y los correos de las menciones no llegaron. Lo siento

Edito: Al final si llegó este mensaje WTF.

En fin, la mayoria de conceptos ya los conocia, salvo el ASM y poco mas. Ya me queda todo mas claro. Muchas gracias ^^
 
Última edición:
Estado
Cerrado para nuevas respuestas.
Arriba