118
Rama estudiantil de IEEE en la UGR Introducción al ROM Hacking: Formatos comunes en juegos Benito Palacios Sánchez [email protected] de abril de

Introducción al ROM Hacking - Parte 2

Embed Size (px)

Citation preview

Page 1: Introducción al ROM Hacking - Parte 2

Rama estudiantil de IEEE en la UGR

Introducción al ROM Hacking:Formatos comunes en juegos

Benito Palacios Sá[email protected]

1 de abril de 2016

Page 2: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Contenido

TextosCodi�cacionesFormatos

Tipografías

ImágenesFondosSpritesTexturas

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 2 / 36

Page 3: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Contenido

TextosCodi�cacionesFormatos

Tipografías

ImágenesFondosSpritesTexturas

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 2 / 36

Page 4: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Contenido

TextosCodi�cacionesFormatos

Tipografías

ImágenesFondosSpritesTexturas

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 2 / 36

Page 5: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Naturaleza de los textos

¿Cómo guardamos texto de forma digital?

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 3 / 36

Page 6: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Codi�caciones

Codi�cación de caracteres

Es el método que permite convertir un carácter de unlenguaje natural en un símbolo de otro sistema derepresentación aplicando reglas de codi�cación. [Wikipedia]

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 4 / 36

Page 7: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Codi�caciones

Codi�cación de caracteres

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 4 / 36

Page 8: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Codi�caciones

ASCII

Codi�ca caracteres del alfabeto latino en 7 bits.

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 5 / 36

Page 9: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Codi�caciones

Latin-1 (ISO 8859-1)

Codi�cación extendida de ASCII. Utiliza 8 bits añadiendo 128caracteres necesarios para las lenguas europeas.

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 6 / 36

Page 10: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Codi�caciones

Unicode

Estándar universal de codi�cación de caracteres para lamayoría de lenguas (incluidas las muertas). La última versión8.0 incluye 120.737 caracteres.

Unicode es solo una tabla, no especi�ca la codi�cación.Codi�caciones para Unicode:

UTF-8: codi�cación de 8 bits de longitud variable.’A’ = 41h, ’ ’ = F0 A0 9C 8EUTF-16: codi�cación de 16 bits de longitud variable.’A’ = 0041, ’ ’ = D841 DF0EUTF-32: codi�cación de 32 bits de longitud �ja.’A’ = 00000041, ’ ’ = 0002070E

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 7 / 36

Page 11: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Codi�caciones

Unicode

Estándar universal de codi�cación de caracteres para lamayoría de lenguas (incluidas las muertas). La última versión8.0 incluye 120.737 caracteres.

Unicode es solo una tabla, no especi�ca la codi�cación.Codi�caciones para Unicode:

UTF-8: codi�cación de 8 bits de longitud variable.’A’ = 41h, ’ ’ = F0 A0 9C 8EUTF-16: codi�cación de 16 bits de longitud variable.’A’ = 0041, ’ ’ = D841 DF0EUTF-32: codi�cación de 32 bits de longitud �ja.’A’ = 00000041, ’ ’ = 0002070E

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 7 / 36

Page 12: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Codi�caciones

Unicode

Estándar universal de codi�cación de caracteres para lamayoría de lenguas (incluidas las muertas). La última versión8.0 incluye 120.737 caracteres.

Unicode es solo una tabla, no especi�ca la codi�cación.Codi�caciones para Unicode:

UTF-8: codi�cación de 8 bits de longitud variable.’A’ = 41h, ’ ’ = F0 A0 9C 8EUTF-16: codi�cación de 16 bits de longitud variable.’A’ = 0041, ’ ’ = D841 DF0EUTF-32: codi�cación de 32 bits de longitud �ja.’A’ = 00000041, ’ ’ = 0002070E

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 7 / 36

Page 13: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Codi�caciones

Unicode

Estándar universal de codi�cación de caracteres para lamayoría de lenguas (incluidas las muertas). La última versión8.0 incluye 120.737 caracteres.

Unicode es solo una tabla, no especi�ca la codi�cación.Codi�caciones para Unicode:

UTF-8: codi�cación de 8 bits de longitud variable.’A’ = 41h, ’ ’ = F0 A0 9C 8EUTF-16: codi�cación de 16 bits de longitud variable.’A’ = 0041, ’ ’ = D841 DF0EUTF-32: codi�cación de 32 bits de longitud �ja.’A’ = 00000041, ’ ’ = 0002070E

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 7 / 36

Page 14: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Codi�caciones

Unicode

Estándar universal de codi�cación de caracteres para lamayoría de lenguas (incluidas las muertas). La última versión8.0 incluye 120.737 caracteres.

Unicode es solo una tabla, no especi�ca la codi�cación.Codi�caciones para Unicode:

UTF-8: codi�cación de 8 bits de longitud variable.’A’ = 41h, ’ ’ = F0 A0 9C 8EUTF-16: codi�cación de 16 bits de longitud variable.’A’ = 0041, ’ ’ = D841 DF0EUTF-32: codi�cación de 32 bits de longitud �ja.’A’ = 00000041, ’ ’ = 0002070E

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 7 / 36

Page 15: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Codi�caciones

Unicode

Estándar universal de codi�cación de caracteres para lamayoría de lenguas (incluidas las muertas). La última versión8.0 incluye 120.737 caracteres.

Unicode es solo una tabla, no especi�ca la codi�cación.Codi�caciones para Unicode:

UTF-8: codi�cación de 8 bits de longitud variable.’A’ = 41h, ’ ’ = F0 A0 9C 8EUTF-16: codi�cación de 16 bits de longitud variable.’A’ = 0041, ’ ’ = D841 DF0EUTF-32: codi�cación de 32 bits de longitud �ja.’A’ = 00000041, ’ ’ = 0002070E

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 7 / 36

Page 16: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Codi�caciones

Shift Jis (CP 932)

Codi�cación de longitud variable (1 o 2 bytes) para caracteresjaponeses. Incluye ASCII.

Figura: Tabla para caracteres con primer byte 0x82Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 8 / 36

Page 17: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Codi�caciones

Ejemplos en archivos

¿?

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 9 / 36

Page 18: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Codi�caciones

Ejemplos en archivos

UTF-16

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 9 / 36

Page 19: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Codi�caciones

Ejemplos en archivos

UTF-16

¿?

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 9 / 36

Page 20: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Codi�caciones

Ejemplos en archivos

UTF-16

Shift Jis

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 9 / 36

Page 21: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Codi�caciones

TablasAlgunos juegos usan codi�caciones propietarias...

... fácil mapeo con la tipografía.

... di�cultar el acceso.

Figura: Textos de Pokémon Perla

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 10 / 36

Page 22: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Codi�caciones

Tablas

Valor Carácter Valor Carácter Valor Carácter01A9h ¡ 01ABh ! 01ADh ,01DEh SP E000h NL 0152h E0132h H 013Ah P 013Eh T0145h a 0147h c 0148h d014Ch h 0150h l 0152h n0153h o 0156h r 0158h t

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 11 / 36

Page 23: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Formatos

Punteros (offsets)

Número enteros que indican la posición del texto.

Tipos:Absoluto: desde el comienzo del archivo.Relativo: desde otra posición

Relativo a una sección del �chero.Relativo a la posición actual.

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 12 / 36

Page 24: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Formatos

Punteros (offsets)

Número enteros que indican la posición del texto.

Tipos:Absoluto: desde el comienzo del archivo.Relativo: desde otra posición

Relativo a una sección del �chero.Relativo a la posición actual.

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 12 / 36

Page 25: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Formatos

Punteros (offsets)

Número enteros que indican la posición del texto.

Tipos:Absoluto: desde el comienzo del archivo.Relativo: desde otra posición

Relativo a una sección del �chero.Relativo a la posición actual.

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 12 / 36

Page 26: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Formatos

Punteros (offsets)

Número enteros que indican la posición del texto.

Tipos:Absoluto: desde el comienzo del archivo.Relativo: desde otra posición

Relativo a una sección del �chero.Relativo a la posición actual.

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 12 / 36

Page 27: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Formatos

Punteros (offsets)

Formato BMG

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 13 / 36

Page 28: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Formatos

Punteros (offsets)

Formato BMG

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 13 / 36

Page 29: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Formatos

Punteros (offsets)

Formato BMG

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 13 / 36

Page 30: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Formatos

Punteros (offsets)

Formato BMG

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 13 / 36

Page 31: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Formatos

Punteros (offsets)

Formato BMG

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 13 / 36

Page 32: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Formatos

Punteros (offsets)

Formato BMG

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 13 / 36

Page 33: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Formatos

Punteros (offsets)

Formato BMG

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 13 / 36

Page 34: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Formatos

Punteros (offsets)

Formato BMG

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 13 / 36

Page 35: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Formatos

Punteros (offsets)

Formato BMG

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 13 / 36

Page 36: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Naturaleza de las imágenes

¿Qué necesitamos para formar una imagen?

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 14 / 36

Page 37: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Imágenes de fondo

Partes de una imagen

Una imagen se compone de sucesión de colores (píxeles).

+ =

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 15 / 36

Page 38: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Imágenes de fondo

Partes de una imagen

Una imagen se compone de sucesión de colores (píxeles).

+ =

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 15 / 36

Page 39: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Imágenes de fondo

Partes de una imagen

Una imagen se compone de sucesión de colores (píxeles).

+

=

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 15 / 36

Page 40: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Imágenes de fondo

Partes de una imagen

Una imagen se compone de sucesión de colores (píxeles).

+ =

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 15 / 36

Page 41: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Imágenes de fondo

Colores

Los colores se forman mezclando los tres colores base(componentes / canal): rojo, verde y azul.

El rango de valores de cada componente de�nelos colores únicos.Generalmente: 8 bits/canal28 = 256→ 2563 = 16,777,216 colores únicos.NDS: 5 bits (BGR555)→ 32.768 colores únicos.

Un color ocupa 16 bits:5 por canal + 1 transparencia.

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 16 / 36

Page 42: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Imágenes de fondo

Colores

Los colores se forman mezclando los tres colores base(componentes / canal): rojo, verde y azul.

El rango de valores de cada componente de�nelos colores únicos.Generalmente: 8 bits/canal28 = 256→ 2563 = 16,777,216 colores únicos.NDS: 5 bits (BGR555)→ 32.768 colores únicos.

Un color ocupa 16 bits:5 por canal + 1 transparencia.

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 16 / 36

Page 43: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Imágenes de fondo

Colores

Los colores se forman mezclando los tres colores base(componentes / canal): rojo, verde y azul.

El rango de valores de cada componente de�nelos colores únicos.Generalmente: 8 bits/canal28 = 256→ 2563 = 16,777,216 colores únicos.NDS: 5 bits (BGR555)→ 32.768 colores únicos.

Un color ocupa 16 bits:5 por canal + 1 transparencia.

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 16 / 36

Page 44: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Imágenes de fondo

Colores

Los colores se forman mezclando los tres colores base(componentes / canal): rojo, verde y azul.

El rango de valores de cada componente de�nelos colores únicos.Generalmente: 8 bits/canal28 = 256→ 2563 = 16,777,216 colores únicos.NDS: 5 bits (BGR555)→ 32.768 colores únicos.

Un color ocupa 16 bits:5 por canal + 1 transparencia.

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 16 / 36

Page 45: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Imágenes de fondo

Paletas

Agrupación de colores. De�nen los colores de una imagen. Elprimer color suele ser el transparente.

Modalidades del formato NCLR:1 paleta de 256 colores = 256 colores.16 paletas de 16 colores = 256 colores.16 paletas de 256 colores = 4.096 colores.

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 17 / 36

Page 46: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Imágenes de fondo

Paletas

Agrupación de colores. De�nen los colores de una imagen. Elprimer color suele ser el transparente.

Modalidades del formato NCLR:1 paleta de 256 colores = 256 colores.16 paletas de 16 colores = 256 colores.16 paletas de 256 colores = 4.096 colores.

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 17 / 36

Page 47: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Imágenes de fondo

Paletas

Agrupación de colores. De�nen los colores de una imagen. Elprimer color suele ser el transparente.

Modalidades del formato NCLR:1 paleta de 256 colores = 256 colores.16 paletas de 16 colores = 256 colores.16 paletas de 256 colores = 4.096 colores.

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 17 / 36

Page 48: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Imágenes de fondo

Paletas

Agrupación de colores. De�nen los colores de una imagen. Elprimer color suele ser el transparente.

Modalidades del formato NCLR:1 paleta de 256 colores = 256 colores.16 paletas de 16 colores = 256 colores.16 paletas de 256 colores = 4.096 colores.

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 17 / 36

Page 49: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Imágenes de fondo

Píxeles

La información que guardamos por píxel es la posición en lapaleta de su color.

Codi�caciones del formato NCGR:8 bits por píxel (bpp): 28 = 256 posiciones diferentes→256 colores diferentes.4 bpp: 16 colores diferentes.1 bpp: 2 colores diferentes (blanco o negro).

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 18 / 36

Page 50: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Imágenes de fondo

Píxeles

La información que guardamos por píxel es la posición en lapaleta de su color.

Codi�caciones del formato NCGR:8 bits por píxel (bpp): 28 = 256 posiciones diferentes→256 colores diferentes.4 bpp: 16 colores diferentes.1 bpp: 2 colores diferentes (blanco o negro).

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 18 / 36

Page 51: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Imágenes de fondo

Píxeles

La información que guardamos por píxel es la posición en lapaleta de su color.

Codi�caciones del formato NCGR:8 bits por píxel (bpp): 28 = 256 posiciones diferentes→256 colores diferentes.4 bpp: 16 colores diferentes.1 bpp: 2 colores diferentes (blanco o negro).

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 18 / 36

Page 52: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Imágenes de fondo

Píxeles

La información que guardamos por píxel es la posición en lapaleta de su color.

Codi�caciones del formato NCGR:8 bits por píxel (bpp): 28 = 256 posiciones diferentes→256 colores diferentes.4 bpp: 16 colores diferentes.1 bpp: 2 colores diferentes (blanco o negro).

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 18 / 36

Page 53: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Imágenes de fondo

Agrupación de píxeles

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 19 / 36

Page 54: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Imágenes de fondo

Agrupación de píxeles

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 19 / 36

Page 55: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Imágenes de fondo

Agrupación de píxeles

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 19 / 36

Page 56: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Imágenes de fondo

Agrupación de píxeles

Lineal00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F

Horizontal00 01 02 03 04 05 06 07 10 11 12 13 14 15 16 1720 21 22 23 24 25 26 27 30 31 32 33 34 35 36 3740 41 42 43 44 45 46 47 50 51 52 53 54 55 56 5760 61 62 63 64 65 66 67 70 71 72 73 74 75 76 7708 09 0A 0B 0C 0D 0E 0F 18 19 1A 1B 1C 1D 1E 1F

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 20 / 36

Page 57: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Imágenes de fondo

Agrupación de píxeles

Lineal00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F

Horizontal00 01 02 03 04 05 06 07 10 11 12 13 14 15 16 1720 21 22 23 24 25 26 27 30 31 32 33 34 35 36 3740 41 42 43 44 45 46 47 50 51 52 53 54 55 56 5760 61 62 63 64 65 66 67 70 71 72 73 74 75 76 7708 09 0A 0B 0C 0D 0E 0F 18 19 1A 1B 1C 1D 1E 1F

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 20 / 36

Page 58: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Imágenes de fondo

Compresión

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 21 / 36

Page 59: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Imágenes de fondo

Compresión

+ =

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 21 / 36

Page 60: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Imágenes de fondo

Compresión

+

=

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 21 / 36

Page 61: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Imágenes de fondo

Compresión

+ =

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 21 / 36

Page 62: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Imágenes de fondo

Compresión

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 21 / 36

Page 63: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Imágenes de fondo

Compresión

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 21 / 36

Page 64: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Imágenes de fondo

Compresión

Compresión de tiles con el formato NSCR:Evita guardar tiles idénticos.Evita guardar tiles volteados horizontalmente overticalmente.Permite agrupar imágenes.Permite usar 256 colores distintos en formatos 4bpp.

Cada tile usa una paleta.

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 21 / 36

Page 65: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Imágenes de fondo

Compresión

Compresión de tiles con el formato NSCR:Evita guardar tiles idénticos.Evita guardar tiles volteados horizontalmente overticalmente.Permite agrupar imágenes.Permite usar 256 colores distintos en formatos 4bpp.

Cada tile usa una paleta.

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 21 / 36

Page 66: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Imágenes de fondo

Compresión

Compresión de tiles con el formato NSCR:Evita guardar tiles idénticos.Evita guardar tiles volteados horizontalmente overticalmente.Permite agrupar imágenes.Permite usar 256 colores distintos en formatos 4bpp.

Cada tile usa una paleta.

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 21 / 36

Page 67: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Imágenes de fondo

Compresión

Compresión de tiles con el formato NSCR:Evita guardar tiles idénticos.Evita guardar tiles volteados horizontalmente overticalmente.Permite agrupar imágenes.Permite usar 256 colores distintos en formatos 4bpp.

Cada tile usa una paleta.

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 21 / 36

Page 68: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Imágenes de fondo

Compresión

Compresión de tiles con el formato NSCR:Evita guardar tiles idénticos.Evita guardar tiles volteados horizontalmente overticalmente.Permite agrupar imágenes.Permite usar 256 colores distintos en formatos 4bpp.

Cada tile usa una paleta.

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 21 / 36

Page 69: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Sprites

Casos de uso

Capas Animaciones

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 22 / 36

Page 70: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Sprites

Casos de uso

Capas Animaciones

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 22 / 36

Page 71: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Sprites

Casos de uso

Capas Animaciones

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 22 / 36

Page 72: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Sprites

Casos de uso

Capas Animaciones

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 22 / 36

Page 73: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Sprites

Casos de uso

Ahorro de espacio con capas

+ =

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 22 / 36

Page 74: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Sprites

Formatos base

Paleta

+

Tiles

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 23 / 36

Page 75: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Sprites

Formatos base

Paleta

+

Tiles

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 23 / 36

Page 76: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Sprites

Celdas

Nitro CElls Resource (.ncer)

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 24 / 36

Page 77: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Sprites

AnimacionesNitro AnimatioN Resource (.nanr)

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 25 / 36

Page 78: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

3D

Texturas

Nitro TeXture (.nsbtx)

Uso en modelos 3D

Paletas + Tiles

Codi�caciones: A3I5, A4I4, A5I3,4x4 texel

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 26 / 36

Page 79: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

3D

Texturas

Nitro TeXture (.nsbtx)

Uso en modelos 3D

Paletas + Tiles

Codi�caciones: A3I5, A4I4, A5I3,4x4 texel

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 26 / 36

Page 80: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

3D

Texturas

Nitro TeXture (.nsbtx)

Uso en modelos 3D

Paletas + Tiles

Codi�caciones: A3I5, A4I4, A5I3,4x4 texel

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 26 / 36

Page 81: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

3D

Texturas

Nitro TeXture (.nsbtx)

Uso en modelos 3D

Paletas + Tiles

Codi�caciones: A3I5, A4I4, A5I3,4x4 texel

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 26 / 36

Page 82: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

3D

Modelos 3D

Nitro MoDel (.nsbbmd)

Geometría 3D.

Comandos de OpenGL 1.0.

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 27 / 36

Page 83: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

3D

Modelos 3D

Nitro MoDel (.nsbbmd)

Geometría 3D.

Comandos de OpenGL 1.0.

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 27 / 36

Page 84: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

3D

Modelos 3D

Nitro MoDel (.nsbbmd)

Geometría 3D.

Comandos de OpenGL 1.0.

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 27 / 36

Page 85: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Tipografías y audios

Tipografías

Nitro FonT Resource (.nftr)

Una imagen por carácter.

Mapeo binario↔ imagen.

Tabla + Imágenes.

Útil para reemplazo decaracteres.

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 28 / 36

Page 86: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Tipografías y audios

Tipografías

Nitro FonT Resource (.nftr)

Una imagen por carácter.

Mapeo binario↔ imagen.

Tabla + Imágenes.

Útil para reemplazo decaracteres.

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 28 / 36

Page 87: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Tipografías y audios

Tipografías

Nitro FonT Resource (.nftr)

Una imagen por carácter.

Mapeo binario↔ imagen.

Tabla + Imágenes.

Útil para reemplazo decaracteres.

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 28 / 36

Page 88: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Tipografías y audios

Tipografías

Nitro FonT Resource (.nftr)

Una imagen por carácter.

Mapeo binario↔ imagen.

Tabla + Imágenes.

Útil para reemplazo decaracteres.

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 28 / 36

Page 89: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Tipografías y audios

Audios

Sound DATa (.sdat)

Sonido digitalizado (STRM).PCM, ADPCM, Procyon.Mono y estéreo.Sample format: 4 a 16 bits.Sample rate: 16 KHz, 32 KHz.Bucles.

Sonido sintetizado (SSEQ).Partitura: SSEQ.Notas musicales: SBNK, SWAR.

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 29 / 36

Page 90: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Tipografías y audios

Audios

Sound DATa (.sdat)

Sonido digitalizado (STRM).PCM, ADPCM, Procyon.Mono y estéreo.Sample format: 4 a 16 bits.Sample rate: 16 KHz, 32 KHz.Bucles.

Sonido sintetizado (SSEQ).Partitura: SSEQ.Notas musicales: SBNK, SWAR.

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 29 / 36

Page 91: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Tipografías y audios

Audios

Sound DATa (.sdat)

Sonido digitalizado (STRM).PCM, ADPCM, Procyon.Mono y estéreo.Sample format: 4 a 16 bits.Sample rate: 16 KHz, 32 KHz.Bucles.

Sonido sintetizado (SSEQ).Partitura: SSEQ.Notas musicales: SBNK, SWAR.

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 29 / 36

Page 92: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Tipografías y audios

Audios

Sound DATa (.sdat)

Sonido digitalizado (STRM).PCM, ADPCM, Procyon.Mono y estéreo.Sample format: 4 a 16 bits.Sample rate: 16 KHz, 32 KHz.Bucles.

Sonido sintetizado (SSEQ).Partitura: SSEQ.Notas musicales: SBNK, SWAR.

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 29 / 36

Page 93: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Tipografías y audios

Audios

Sound DATa (.sdat)

Sonido digitalizado (STRM).PCM, ADPCM, Procyon.Mono y estéreo.Sample format: 4 a 16 bits.Sample rate: 16 KHz, 32 KHz.Bucles.

Sonido sintetizado (SSEQ).Partitura: SSEQ.Notas musicales: SBNK, SWAR.

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 29 / 36

Page 94: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Tipografías y audios

Audios

Sound DATa (.sdat)

Sonido digitalizado (STRM).PCM, ADPCM, Procyon.Mono y estéreo.Sample format: 4 a 16 bits.Sample rate: 16 KHz, 32 KHz.Bucles.

Sonido sintetizado (SSEQ).Partitura: SSEQ.Notas musicales: SBNK, SWAR.

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 29 / 36

Page 95: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Tipografías y audios

Audios

Sound DATa (.sdat)

Sonido digitalizado (STRM).PCM, ADPCM, Procyon.Mono y estéreo.Sample format: 4 a 16 bits.Sample rate: 16 KHz, 32 KHz.Bucles.

Sonido sintetizado (SSEQ).Partitura: SSEQ.Notas musicales: SBNK, SWAR.

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 29 / 36

Page 96: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Tipografías y audios

Audios

Sound DATa (.sdat)

Sonido digitalizado (STRM).PCM, ADPCM, Procyon.Mono y estéreo.Sample format: 4 a 16 bits.Sample rate: 16 KHz, 32 KHz.Bucles.

Sonido sintetizado (SSEQ).Partitura: SSEQ.Notas musicales: SBNK, SWAR.

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 29 / 36

Page 97: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Tipografías y audios

Audios

Sound DATa (.sdat)

Sonido digitalizado (STRM).PCM, ADPCM, Procyon.Mono y estéreo.Sample format: 4 a 16 bits.Sample rate: 16 KHz, 32 KHz.Bucles.

Sonido sintetizado (SSEQ).Partitura: SSEQ.Notas musicales: SBNK, SWAR.

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 29 / 36

Page 98: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

Reto

CHALLENGE TIME!

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 30 / 36

Page 99: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

The Legend of Zelda: Phantom Hourglass

Contenido sorpresa

¿/Test/picture.narc? ¿/Test/BgMap.narc?

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 31 / 36

Page 100: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

The Legend of Zelda: Phantom Hourglass

Contenido sorpresa

¿/Test/picture.narc?

¿/Test/BgMap.narc?

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 31 / 36

Page 101: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

The Legend of Zelda: Phantom Hourglass

Contenido sorpresa

¿/Test/picture.narc?

¿/Test/BgMap.narc?

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 31 / 36

Page 102: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

The Legend of Zelda: Phantom Hourglass

Contenido sorpresa

¿/Test/picture.narc? ¿/Test/BgMap.narc?

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 31 / 36

Page 103: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

The Legend of Zelda: Phantom Hourglass

Contenido sorpresa

¿/Test/picture.narc? ¿/Test/BgMap.narc?

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 31 / 36

Page 104: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

The Legend of Zelda: Phantom Hourglass

Historia

Modi�car cuarto diálogo.Modi�car imagen.

Modi�car tipografía.Modi�car mapa.

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 32 / 36

Page 105: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

The Legend of Zelda: Phantom Hourglass

Historia

Modi�car cuarto diálogo.Modi�car imagen.

Modi�car tipografía.Modi�car mapa.

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 32 / 36

Page 106: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

The Legend of Zelda: Phantom Hourglass

Historia

Modi�car cuarto diálogo.Modi�car imagen.

Modi�car tipografía.Modi�car mapa.

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 32 / 36

Page 107: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

The Legend of Zelda: Phantom Hourglass

Historia

Modi�car cuarto diálogo.Modi�car imagen.

Modi�car tipografía.Modi�car mapa.

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 32 / 36

Page 108: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

The Legend of Zelda: Phantom Hourglass

Historia: Punteros

Modi�car cuarto diálogo.Ruta: /Spanish/Message/demo.bmg.Punteros en la sección INF1 (cabecera: 16 B).Hay 0x08 bytes por texto.Primeros 0x04 bytes es el puntero.Puntero i: OffsetINF1 + 16+ i ∗ 8 = 48h.Punteros relativos a 0x0AE8.Ignorar 6 bytes después de 001Ah.Añadir pausa al �nal con:1A 00 08 01 0E 00 7D 00.

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 33 / 36

Page 109: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

The Legend of Zelda: Phantom Hourglass

Historia: Imágenes

Modi�car imagenRuta: /Event/Kamishibai/kami1/kami1-01.

Seleccionar Replace palette.

Importar imagen con mismas dimensiones:Ancho: 256 píxeles.Alto: 192 píxeles.

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 34 / 36

Page 110: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

The Legend of Zelda: Phantom Hourglass

Historia: Tipografía

Modi�car tipografíaCambiar primer texto por:∫2xdx = x2 + K

Tipografía: /Font/zeldaDS_15.nftr.

Reemplazar caracteres japoneses por:∫y 2

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 35 / 36

Page 111: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

The Legend of Zelda: Phantom Hourglass

Mapas

Modi�car mapaRuta: /Map/isle_main/

course.bin: texturas del mapa.

map00.bin: mapa principal.isle_main_00.nsbmd: terreno 3D.isle_main_00.zmb: Mapa de colisiones yobjetos.

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 36 / 36

Page 112: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

The Legend of Zelda: Phantom Hourglass

Mapas

Modi�car mapaRuta: /Map/isle_main/

course.bin: texturas del mapa.

map00.bin: mapa principal.isle_main_00.nsbmd: terreno 3D.isle_main_00.zmb: Mapa de colisiones yobjetos.

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 36 / 36

Page 113: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

The Legend of Zelda: Phantom Hourglass

Mapas

Modi�car mapaRuta: /Map/isle_main/

course.bin: texturas del mapa.

map00.bin: mapa principal.isle_main_00.nsbmd: terreno 3D.isle_main_00.zmb: Mapa de colisiones yobjetos.

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 36 / 36

Page 114: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

The Legend of Zelda: Phantom Hourglass

Mapas

Modi�car mapaRuta: /Map/isle_main/

course.bin: texturas del mapa.

map00.bin: mapa principal.isle_main_00.nsbmd: terreno 3D.isle_main_00.zmb: Mapa de colisiones yobjetos.

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 36 / 36

Page 115: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

The Legend of Zelda: Phantom Hourglass

Mapas

Modi�car mapaRuta: /Map/isle_main/

course.bin: texturas del mapa.

map00.bin: mapa principal.isle_main_00.nsbmd: terreno 3D.isle_main_00.zmb: Mapa de colisiones yobjetos.

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 36 / 36

Page 116: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

The Legend of Zelda: Phantom Hourglass

Mapas

Modi�car mapaSección BMOR: mapa de colisiones.Sección PRAW: salidas del mapa.Sección BOPM: objetos del terreno:

0x1C bytes por objeto.Primeros dos bytes: tipo de objeto.Siguientes dos bytes: posición X e Y.

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 36 / 36

Page 117: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

The Legend of Zelda: Phantom Hourglass

Mapas

Modi�car mapaSección BMOR: mapa de colisiones.Sección PRAW: salidas del mapa.Sección BOPM: objetos del terreno:

0x1C bytes por objeto.Primeros dos bytes: tipo de objeto.Siguientes dos bytes: posición X e Y.

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 36 / 36

Page 118: Introducción al ROM Hacking - Parte 2

Textos Imágenes Tipografías y audios Reto

The Legend of Zelda: Phantom Hourglass

Mapas

Modi�car mapaSección BMOR: mapa de colisiones.Sección PRAW: salidas del mapa.Sección BOPM: objetos del terreno:

0x1C bytes por objeto.Primeros dos bytes: tipo de objeto.Siguientes dos bytes: posición X e Y.

Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 36 / 36