SlideShare una empresa de Scribd logo
1 de 118
Descargar para leer sin conexión
Rama estudiantil de IEEE en la UGR
Introducción al ROM Hacking:
Formatos comunes en juegos
Benito Palacios Sánchez
benito.palaciossanchez.es@ieee.org
1 de abril de 2016
Textos Imágenes Tipografías y audios Reto
Contenido
Textos
Codificaciones
Formatos
Tipografías
Imágenes
Fondos
Sprites
Texturas
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 2 / 36
Textos Imágenes Tipografías y audios Reto
Contenido
Textos
Codificaciones
Formatos
Tipografías
Imágenes
Fondos
Sprites
Texturas
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 2 / 36
Textos Imágenes Tipografías y audios Reto
Contenido
Textos
Codificaciones
Formatos
Tipografías
Imágenes
Fondos
Sprites
Texturas
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 2 / 36
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
Textos Imágenes Tipografías y audios Reto
Codificaciones
Codificación de caracteres
Es el método que permite convertir un carácter de un
lenguaje natural en un símbolo de otro sistema de
representación aplicando reglas de codificación. [Wikipedia]
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 4 / 36
Textos Imágenes Tipografías y audios Reto
Codificaciones
Codificación de caracteres
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 4 / 36
Textos Imágenes Tipografías y audios Reto
Codificaciones
ASCII
Codifica caracteres del alfabeto latino en 7 bits.
↓
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 5 / 36
Textos Imágenes Tipografías y audios Reto
Codificaciones
Latin-1 (ISO 8859-1)
Codificación extendida de ASCII. Utiliza 8 bits añadiendo 128
caracteres necesarios para las lenguas europeas.
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 6 / 36
Textos Imágenes Tipografías y audios Reto
Codificaciones
Unicode
Estándar universal de codificación de caracteres para la
mayoría de lenguas (incluidas las muertas). La última versión
8.0 incluye 120.737 caracteres.
Unicode es solo una tabla, no especifica la codificación.
Codificaciones para Unicode:
UTF-8: codificación de 8 bits de longitud variable.
’A’ = 41h, ’ ’ = F0 A0 9C 8E
UTF-16: codificación de 16 bits de longitud variable.
’A’ = 0041, ’ ’ = D841 DF0E
UTF-32: codificación de 32 bits de longitud fija.
’A’ = 00000041, ’ ’ = 0002070E
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 7 / 36
Textos Imágenes Tipografías y audios Reto
Codificaciones
Unicode
Estándar universal de codificación de caracteres para la
mayoría de lenguas (incluidas las muertas). La última versión
8.0 incluye 120.737 caracteres.
Unicode es solo una tabla, no especifica la codificación.
Codificaciones para Unicode:
UTF-8: codificación de 8 bits de longitud variable.
’A’ = 41h, ’ ’ = F0 A0 9C 8E
UTF-16: codificación de 16 bits de longitud variable.
’A’ = 0041, ’ ’ = D841 DF0E
UTF-32: codificación de 32 bits de longitud fija.
’A’ = 00000041, ’ ’ = 0002070E
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 7 / 36
Textos Imágenes Tipografías y audios Reto
Codificaciones
Unicode
Estándar universal de codificación de caracteres para la
mayoría de lenguas (incluidas las muertas). La última versión
8.0 incluye 120.737 caracteres.
Unicode es solo una tabla, no especifica la codificación.
Codificaciones para Unicode:
UTF-8: codificación de 8 bits de longitud variable.
’A’ = 41h, ’ ’ = F0 A0 9C 8E
UTF-16: codificación de 16 bits de longitud variable.
’A’ = 0041, ’ ’ = D841 DF0E
UTF-32: codificación de 32 bits de longitud fija.
’A’ = 00000041, ’ ’ = 0002070E
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 7 / 36
Textos Imágenes Tipografías y audios Reto
Codificaciones
Unicode
Estándar universal de codificación de caracteres para la
mayoría de lenguas (incluidas las muertas). La última versión
8.0 incluye 120.737 caracteres.
Unicode es solo una tabla, no especifica la codificación.
Codificaciones para Unicode:
UTF-8: codificación de 8 bits de longitud variable.
’A’ = 41h, ’ ’ = F0 A0 9C 8E
UTF-16: codificación de 16 bits de longitud variable.
’A’ = 0041, ’ ’ = D841 DF0E
UTF-32: codificación de 32 bits de longitud fija.
’A’ = 00000041, ’ ’ = 0002070E
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 7 / 36
Textos Imágenes Tipografías y audios Reto
Codificaciones
Unicode
Estándar universal de codificación de caracteres para la
mayoría de lenguas (incluidas las muertas). La última versión
8.0 incluye 120.737 caracteres.
Unicode es solo una tabla, no especifica la codificación.
Codificaciones para Unicode:
UTF-8: codificación de 8 bits de longitud variable.
’A’ = 41h, ’ ’ = F0 A0 9C 8E
UTF-16: codificación de 16 bits de longitud variable.
’A’ = 0041, ’ ’ = D841 DF0E
UTF-32: codificación de 32 bits de longitud fija.
’A’ = 00000041, ’ ’ = 0002070E
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 7 / 36
Textos Imágenes Tipografías y audios Reto
Codificaciones
Unicode
Estándar universal de codificación de caracteres para la
mayoría de lenguas (incluidas las muertas). La última versión
8.0 incluye 120.737 caracteres.
Unicode es solo una tabla, no especifica la codificación.
Codificaciones para Unicode:
UTF-8: codificación de 8 bits de longitud variable.
’A’ = 41h, ’ ’ = F0 A0 9C 8E
UTF-16: codificación de 16 bits de longitud variable.
’A’ = 0041, ’ ’ = D841 DF0E
UTF-32: codificación de 32 bits de longitud fija.
’A’ = 00000041, ’ ’ = 0002070E
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 7 / 36
Textos Imágenes Tipografías y audios Reto
Codificaciones
Shift Jis (CP 932)
Codificación de longitud variable (1 o 2 bytes) para caracteres
japoneses. Incluye ASCII.
Figura: Tabla para caracteres con primer byte 0x82
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 8 / 36
Textos Imágenes Tipografías y audios Reto
Codificaciones
Ejemplos en archivos
¿?
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 9 / 36
Textos Imágenes Tipografías y audios Reto
Codificaciones
Ejemplos en archivos
UTF-16
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 9 / 36
Textos Imágenes Tipografías y audios Reto
Codificaciones
Ejemplos en archivos
UTF-16
¿?
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 9 / 36
Textos Imágenes Tipografías y audios Reto
Codificaciones
Ejemplos en archivos
UTF-16
Shift Jis
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 9 / 36
Textos Imágenes Tipografías y audios Reto
Codificaciones
Tablas
Algunos juegos usan codificaciones propietarias...
... fácil mapeo con la tipografía.
... dificultar 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
Textos Imágenes Tipografías y audios Reto
Codificaciones
Tablas
Valor Carácter Valor Carácter Valor Carácter
01A9h ¡ 01ABh ! 01ADh ,
01DEh SP E000h NL 0152h E
0132h H 013Ah P 013Eh T
0145h a 0147h c 0148h d
014Ch h 0150h l 0152h n
0153h o 0156h r 0158h t
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 11 / 36
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 fichero.
Relativo a la posición actual.
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 12 / 36
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 fichero.
Relativo a la posición actual.
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 12 / 36
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 fichero.
Relativo a la posición actual.
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 12 / 36
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 fichero.
Relativo a la posición actual.
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 12 / 36
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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 define
los colores únicos.
Generalmente: 8 bits/canal
28
= 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
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 define
los colores únicos.
Generalmente: 8 bits/canal
28
= 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
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 define
los colores únicos.
Generalmente: 8 bits/canal
28
= 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
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 define
los colores únicos.
Generalmente: 8 bits/canal
28
= 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
Textos Imágenes Tipografías y audios Reto
Imágenes de fondo
Paletas
Agrupación de colores. Definen los colores de una imagen. El
primer 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
Textos Imágenes Tipografías y audios Reto
Imágenes de fondo
Paletas
Agrupación de colores. Definen los colores de una imagen. El
primer 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
Textos Imágenes Tipografías y audios Reto
Imágenes de fondo
Paletas
Agrupación de colores. Definen los colores de una imagen. El
primer 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
Textos Imágenes Tipografías y audios Reto
Imágenes de fondo
Paletas
Agrupación de colores. Definen los colores de una imagen. El
primer 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
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 la
paleta de su color.
Codificaciones 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
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 la
paleta de su color.
Codificaciones 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
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 la
paleta de su color.
Codificaciones 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
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 la
paleta de su color.
Codificaciones 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
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
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
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
Textos Imágenes Tipografías y audios Reto
Imágenes de fondo
Agrupación de píxeles
Lineal
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F
Horizontal
00 01 02 03 04 05 06 07 10 11 12 13 14 15 16 17
20 21 22 23 24 25 26 27 30 31 32 33 34 35 36 37
40 41 42 43 44 45 46 47 50 51 52 53 54 55 56 57
60 61 62 63 64 65 66 67 70 71 72 73 74 75 76 77
08 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
Textos Imágenes Tipografías y audios Reto
Imágenes de fondo
Agrupación de píxeles
Lineal
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F
Horizontal
00 01 02 03 04 05 06 07 10 11 12 13 14 15 16 17
20 21 22 23 24 25 26 27 30 31 32 33 34 35 36 37
40 41 42 43 44 45 46 47 50 51 52 53 54 55 56 57
60 61 62 63 64 65 66 67 70 71 72 73 74 75 76 77
08 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
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
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
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
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
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
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
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 o
verticalmente.
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
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 o
verticalmente.
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
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 o
verticalmente.
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
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 o
verticalmente.
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
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 o
verticalmente.
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
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
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
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
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
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
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
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
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
Textos Imágenes Tipografías y audios Reto
Sprites
Animaciones
Nitro AnimatioN Resource (.nanr)
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 25 / 36
Textos Imágenes Tipografías y audios Reto
3D
Texturas
Nitro TeXture (.nsbtx)
Uso en modelos 3D
Paletas + Tiles
Codificaciones: A3I5, A4I4, A5I3,
4x4 texel
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 26 / 36
Textos Imágenes Tipografías y audios Reto
3D
Texturas
Nitro TeXture (.nsbtx)
Uso en modelos 3D
Paletas + Tiles
Codificaciones: A3I5, A4I4, A5I3,
4x4 texel
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 26 / 36
Textos Imágenes Tipografías y audios Reto
3D
Texturas
Nitro TeXture (.nsbtx)
Uso en modelos 3D
Paletas + Tiles
Codificaciones: A3I5, A4I4, A5I3,
4x4 texel
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 26 / 36
Textos Imágenes Tipografías y audios Reto
3D
Texturas
Nitro TeXture (.nsbtx)
Uso en modelos 3D
Paletas + Tiles
Codificaciones: A3I5, A4I4, A5I3,
4x4 texel
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 26 / 36
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
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
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
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 de
caracteres.
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 28 / 36
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 de
caracteres.
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 28 / 36
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 de
caracteres.
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 28 / 36
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 de
caracteres.
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 28 / 36
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
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
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
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
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
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
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
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
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
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
Textos Imágenes Tipografías y audios Reto
The Legend of Zelda: Phantom Hourglass
Contenido sorpresa
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 31 / 36
Textos Imágenes Tipografías y audios Reto
The Legend of Zelda: Phantom Hourglass
Contenido sorpresa
¿/Test/picture.narc?
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 31 / 36
Textos Imágenes Tipografías y audios Reto
The Legend of Zelda: Phantom Hourglass
Contenido sorpresa
¿/Test/picture.narc?
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 31 / 36
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
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
Textos Imágenes Tipografías y audios Reto
The Legend of Zelda: Phantom Hourglass
Historia
Modificar cuarto diálogo.
Modificar imagen.
Modificar tipografía.
Modificar mapa.
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 32 / 36
Textos Imágenes Tipografías y audios Reto
The Legend of Zelda: Phantom Hourglass
Historia
Modificar cuarto diálogo.
Modificar imagen.
Modificar tipografía.
Modificar mapa.
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 32 / 36
Textos Imágenes Tipografías y audios Reto
The Legend of Zelda: Phantom Hourglass
Historia
Modificar cuarto diálogo.
Modificar imagen.
Modificar tipografía.
Modificar mapa.
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 32 / 36
Textos Imágenes Tipografías y audios Reto
The Legend of Zelda: Phantom Hourglass
Historia
Modificar cuarto diálogo.
Modificar imagen.
Modificar tipografía.
Modificar mapa.
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 32 / 36
Textos Imágenes Tipografías y audios Reto
The Legend of Zelda: Phantom Hourglass
Historia: Punteros
Modificar 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 final 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
Textos Imágenes Tipografías y audios Reto
The Legend of Zelda: Phantom Hourglass
Historia: Imágenes
Modificar imagen
Ruta: /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
Textos Imágenes Tipografías y audios Reto
The Legend of Zelda: Phantom Hourglass
Historia: Tipografía
Modificar tipografía
Cambiar 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
Textos Imágenes Tipografías y audios Reto
The Legend of Zelda: Phantom Hourglass
Mapas
Modificar mapa
Ruta: /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 y
objetos.
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 36 / 36
Textos Imágenes Tipografías y audios Reto
The Legend of Zelda: Phantom Hourglass
Mapas
Modificar mapa
Ruta: /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 y
objetos.
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 36 / 36
Textos Imágenes Tipografías y audios Reto
The Legend of Zelda: Phantom Hourglass
Mapas
Modificar mapa
Ruta: /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 y
objetos.
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 36 / 36
Textos Imágenes Tipografías y audios Reto
The Legend of Zelda: Phantom Hourglass
Mapas
Modificar mapa
Ruta: /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 y
objetos.
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 36 / 36
Textos Imágenes Tipografías y audios Reto
The Legend of Zelda: Phantom Hourglass
Mapas
Modificar mapa
Ruta: /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 y
objetos.
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 36 / 36
Textos Imágenes Tipografías y audios Reto
The Legend of Zelda: Phantom Hourglass
Mapas
Modificar mapa
Secció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
Textos Imágenes Tipografías y audios Reto
The Legend of Zelda: Phantom Hourglass
Mapas
Modificar mapa
Secció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
Textos Imágenes Tipografías y audios Reto
The Legend of Zelda: Phantom Hourglass
Mapas
Modificar mapa
Secció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

Más contenido relacionado

Similar a Introducción al ROM Hacking - Parte 2

Similar a Introducción al ROM Hacking - Parte 2 (7)

Audios sin perdidas y con perdidas (Herramientas multimedia)
Audios sin perdidas y con perdidas (Herramientas multimedia)Audios sin perdidas y con perdidas (Herramientas multimedia)
Audios sin perdidas y con perdidas (Herramientas multimedia)
 
Conroles y tipos de datos
Conroles y tipos de datosConroles y tipos de datos
Conroles y tipos de datos
 
Entendiendo Unicode (Facundo Batista)
Entendiendo Unicode (Facundo Batista)Entendiendo Unicode (Facundo Batista)
Entendiendo Unicode (Facundo Batista)
 
archivo.wav
archivo.wavarchivo.wav
archivo.wav
 
El audio
El audioEl audio
El audio
 
el audio
el audioel audio
el audio
 
Sonido digital.
Sonido digital.Sonido digital.
Sonido digital.
 

Último

portafolio final manco 2 1816827 portafolio de evidencias
portafolio final manco 2 1816827 portafolio de evidenciasportafolio final manco 2 1816827 portafolio de evidencias
portafolio final manco 2 1816827 portafolio de evidenciasIANMIKELMIRANDAGONZA
 
UC Fundamentos de tuberías en equipos de refrigeración m.pdf
UC Fundamentos de tuberías en equipos de refrigeración m.pdfUC Fundamentos de tuberías en equipos de refrigeración m.pdf
UC Fundamentos de tuberías en equipos de refrigeración m.pdfrefrielectriccarlyz
 
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVOESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVOeldermishti
 
3.6.2 Lab - Implement VLANs and Trunking - ILM.pdf
3.6.2 Lab - Implement VLANs and Trunking - ILM.pdf3.6.2 Lab - Implement VLANs and Trunking - ILM.pdf
3.6.2 Lab - Implement VLANs and Trunking - ILM.pdfGustavoAdolfoDiaz3
 
docsity-manzaneo-y-lotizacion para habilitacopm urbana
docsity-manzaneo-y-lotizacion para habilitacopm urbanadocsity-manzaneo-y-lotizacion para habilitacopm urbana
docsity-manzaneo-y-lotizacion para habilitacopm urbanaArnolVillalobos
 
libro de ingeniería de petróleos y operaciones
libro de ingeniería de petróleos y operacioneslibro de ingeniería de petróleos y operaciones
libro de ingeniería de petróleos y operacionesRamon Bartolozzi
 
Análisis de Costos y Presupuestos CAPECO
Análisis de Costos y Presupuestos CAPECOAnálisis de Costos y Presupuestos CAPECO
Análisis de Costos y Presupuestos CAPECOFernando Bravo
 
Manual deresolucion de ecuaciones por fracciones parciales.pdf
Manual deresolucion de ecuaciones por fracciones parciales.pdfManual deresolucion de ecuaciones por fracciones parciales.pdf
Manual deresolucion de ecuaciones por fracciones parciales.pdfgonzalo195211
 
Video sustentación GA2- 240201528-AA3-EV01.pptx
Video sustentación GA2- 240201528-AA3-EV01.pptxVideo sustentación GA2- 240201528-AA3-EV01.pptx
Video sustentación GA2- 240201528-AA3-EV01.pptxcarlosEspaaGarcia
 
3er Informe Laboratorio Quimica General (2) (1).pdf
3er Informe Laboratorio Quimica General  (2) (1).pdf3er Informe Laboratorio Quimica General  (2) (1).pdf
3er Informe Laboratorio Quimica General (2) (1).pdfSantiagoRodriguez598818
 
G4 - CASO DE ESTUDIO - VOLUMEN DE UN RESERVORIO (1).pptx
G4 - CASO DE ESTUDIO - VOLUMEN DE UN RESERVORIO (1).pptxG4 - CASO DE ESTUDIO - VOLUMEN DE UN RESERVORIO (1).pptx
G4 - CASO DE ESTUDIO - VOLUMEN DE UN RESERVORIO (1).pptxMaxPercyBorjaVillanu
 
Presentación de Redes de alcantarillado y agua potable
Presentación de Redes de alcantarillado y agua potablePresentación de Redes de alcantarillado y agua potable
Presentación de Redes de alcantarillado y agua potableFabricioMogroMantill
 
CAPACITACIÓN EN AGUA Y SANEAMIENTO EN ZONAS RURALES
CAPACITACIÓN EN AGUA Y SANEAMIENTO EN ZONAS RURALESCAPACITACIÓN EN AGUA Y SANEAMIENTO EN ZONAS RURALES
CAPACITACIÓN EN AGUA Y SANEAMIENTO EN ZONAS RURALESJHONJAIROVENTURASAUC
 
Auditoría de Sistemas de Gestión
Auditoría    de   Sistemas     de GestiónAuditoría    de   Sistemas     de Gestión
Auditoría de Sistemas de GestiónYanet Caldas
 
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHTAPORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHTElisaLen4
 
Clasificación de Equipos e Instrumentos en Electricidad.docx
Clasificación de Equipos e Instrumentos en Electricidad.docxClasificación de Equipos e Instrumentos en Electricidad.docx
Clasificación de Equipos e Instrumentos en Electricidad.docxwilliam801689
 
Estadística Anual y Multianual del Sector Eléctrico Ecuatoriano
Estadística Anual y Multianual del Sector Eléctrico EcuatorianoEstadística Anual y Multianual del Sector Eléctrico Ecuatoriano
Estadística Anual y Multianual del Sector Eléctrico EcuatorianoEduardoBriones22
 
EFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptx
EFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptxEFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptx
EFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptxfranklingerardoloma
 
entropia y neguentropia en la teoria general de sistemas
entropia y neguentropia en la teoria general de sistemasentropia y neguentropia en la teoria general de sistemas
entropia y neguentropia en la teoria general de sistemasDerlyValeriaRodrigue
 
Matrices Matemáticos universitario pptx
Matrices  Matemáticos universitario pptxMatrices  Matemáticos universitario pptx
Matrices Matemáticos universitario pptxNancyJulcasumaran
 

Último (20)

portafolio final manco 2 1816827 portafolio de evidencias
portafolio final manco 2 1816827 portafolio de evidenciasportafolio final manco 2 1816827 portafolio de evidencias
portafolio final manco 2 1816827 portafolio de evidencias
 
UC Fundamentos de tuberías en equipos de refrigeración m.pdf
UC Fundamentos de tuberías en equipos de refrigeración m.pdfUC Fundamentos de tuberías en equipos de refrigeración m.pdf
UC Fundamentos de tuberías en equipos de refrigeración m.pdf
 
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVOESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
 
3.6.2 Lab - Implement VLANs and Trunking - ILM.pdf
3.6.2 Lab - Implement VLANs and Trunking - ILM.pdf3.6.2 Lab - Implement VLANs and Trunking - ILM.pdf
3.6.2 Lab - Implement VLANs and Trunking - ILM.pdf
 
docsity-manzaneo-y-lotizacion para habilitacopm urbana
docsity-manzaneo-y-lotizacion para habilitacopm urbanadocsity-manzaneo-y-lotizacion para habilitacopm urbana
docsity-manzaneo-y-lotizacion para habilitacopm urbana
 
libro de ingeniería de petróleos y operaciones
libro de ingeniería de petróleos y operacioneslibro de ingeniería de petróleos y operaciones
libro de ingeniería de petróleos y operaciones
 
Análisis de Costos y Presupuestos CAPECO
Análisis de Costos y Presupuestos CAPECOAnálisis de Costos y Presupuestos CAPECO
Análisis de Costos y Presupuestos CAPECO
 
Manual deresolucion de ecuaciones por fracciones parciales.pdf
Manual deresolucion de ecuaciones por fracciones parciales.pdfManual deresolucion de ecuaciones por fracciones parciales.pdf
Manual deresolucion de ecuaciones por fracciones parciales.pdf
 
Video sustentación GA2- 240201528-AA3-EV01.pptx
Video sustentación GA2- 240201528-AA3-EV01.pptxVideo sustentación GA2- 240201528-AA3-EV01.pptx
Video sustentación GA2- 240201528-AA3-EV01.pptx
 
3er Informe Laboratorio Quimica General (2) (1).pdf
3er Informe Laboratorio Quimica General  (2) (1).pdf3er Informe Laboratorio Quimica General  (2) (1).pdf
3er Informe Laboratorio Quimica General (2) (1).pdf
 
G4 - CASO DE ESTUDIO - VOLUMEN DE UN RESERVORIO (1).pptx
G4 - CASO DE ESTUDIO - VOLUMEN DE UN RESERVORIO (1).pptxG4 - CASO DE ESTUDIO - VOLUMEN DE UN RESERVORIO (1).pptx
G4 - CASO DE ESTUDIO - VOLUMEN DE UN RESERVORIO (1).pptx
 
Presentación de Redes de alcantarillado y agua potable
Presentación de Redes de alcantarillado y agua potablePresentación de Redes de alcantarillado y agua potable
Presentación de Redes de alcantarillado y agua potable
 
CAPACITACIÓN EN AGUA Y SANEAMIENTO EN ZONAS RURALES
CAPACITACIÓN EN AGUA Y SANEAMIENTO EN ZONAS RURALESCAPACITACIÓN EN AGUA Y SANEAMIENTO EN ZONAS RURALES
CAPACITACIÓN EN AGUA Y SANEAMIENTO EN ZONAS RURALES
 
Auditoría de Sistemas de Gestión
Auditoría    de   Sistemas     de GestiónAuditoría    de   Sistemas     de Gestión
Auditoría de Sistemas de Gestión
 
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHTAPORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
 
Clasificación de Equipos e Instrumentos en Electricidad.docx
Clasificación de Equipos e Instrumentos en Electricidad.docxClasificación de Equipos e Instrumentos en Electricidad.docx
Clasificación de Equipos e Instrumentos en Electricidad.docx
 
Estadística Anual y Multianual del Sector Eléctrico Ecuatoriano
Estadística Anual y Multianual del Sector Eléctrico EcuatorianoEstadística Anual y Multianual del Sector Eléctrico Ecuatoriano
Estadística Anual y Multianual del Sector Eléctrico Ecuatoriano
 
EFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptx
EFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptxEFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptx
EFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptx
 
entropia y neguentropia en la teoria general de sistemas
entropia y neguentropia en la teoria general de sistemasentropia y neguentropia en la teoria general de sistemas
entropia y neguentropia en la teoria general de sistemas
 
Matrices Matemáticos universitario pptx
Matrices  Matemáticos universitario pptxMatrices  Matemáticos universitario pptx
Matrices Matemáticos universitario pptx
 

Introducción al ROM Hacking - Parte 2

  • 1. Rama estudiantil de IEEE en la UGR Introducción al ROM Hacking: Formatos comunes en juegos Benito Palacios Sánchez benito.palaciossanchez.es@ieee.org 1 de abril de 2016
  • 2. Textos Imágenes Tipografías y audios Reto Contenido Textos Codificaciones Formatos Tipografías Imágenes Fondos Sprites Texturas Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 2 / 36
  • 3. Textos Imágenes Tipografías y audios Reto Contenido Textos Codificaciones Formatos Tipografías Imágenes Fondos Sprites Texturas Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 2 / 36
  • 4. Textos Imágenes Tipografías y audios Reto Contenido Textos Codificaciones Formatos Tipografías Imágenes Fondos Sprites Texturas Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 2 / 36
  • 5. 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
  • 6. Textos Imágenes Tipografías y audios Reto Codificaciones Codificación de caracteres Es el método que permite convertir un carácter de un lenguaje natural en un símbolo de otro sistema de representación aplicando reglas de codificación. [Wikipedia] Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 4 / 36
  • 7. Textos Imágenes Tipografías y audios Reto Codificaciones Codificación de caracteres Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 4 / 36
  • 8. Textos Imágenes Tipografías y audios Reto Codificaciones ASCII Codifica caracteres del alfabeto latino en 7 bits. ↓ Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 5 / 36
  • 9. Textos Imágenes Tipografías y audios Reto Codificaciones Latin-1 (ISO 8859-1) Codificación extendida de ASCII. Utiliza 8 bits añadiendo 128 caracteres necesarios para las lenguas europeas. Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 6 / 36
  • 10. Textos Imágenes Tipografías y audios Reto Codificaciones Unicode Estándar universal de codificación de caracteres para la mayoría de lenguas (incluidas las muertas). La última versión 8.0 incluye 120.737 caracteres. Unicode es solo una tabla, no especifica la codificación. Codificaciones para Unicode: UTF-8: codificación de 8 bits de longitud variable. ’A’ = 41h, ’ ’ = F0 A0 9C 8E UTF-16: codificación de 16 bits de longitud variable. ’A’ = 0041, ’ ’ = D841 DF0E UTF-32: codificación de 32 bits de longitud fija. ’A’ = 00000041, ’ ’ = 0002070E Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 7 / 36
  • 11. Textos Imágenes Tipografías y audios Reto Codificaciones Unicode Estándar universal de codificación de caracteres para la mayoría de lenguas (incluidas las muertas). La última versión 8.0 incluye 120.737 caracteres. Unicode es solo una tabla, no especifica la codificación. Codificaciones para Unicode: UTF-8: codificación de 8 bits de longitud variable. ’A’ = 41h, ’ ’ = F0 A0 9C 8E UTF-16: codificación de 16 bits de longitud variable. ’A’ = 0041, ’ ’ = D841 DF0E UTF-32: codificación de 32 bits de longitud fija. ’A’ = 00000041, ’ ’ = 0002070E Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 7 / 36
  • 12. Textos Imágenes Tipografías y audios Reto Codificaciones Unicode Estándar universal de codificación de caracteres para la mayoría de lenguas (incluidas las muertas). La última versión 8.0 incluye 120.737 caracteres. Unicode es solo una tabla, no especifica la codificación. Codificaciones para Unicode: UTF-8: codificación de 8 bits de longitud variable. ’A’ = 41h, ’ ’ = F0 A0 9C 8E UTF-16: codificación de 16 bits de longitud variable. ’A’ = 0041, ’ ’ = D841 DF0E UTF-32: codificación de 32 bits de longitud fija. ’A’ = 00000041, ’ ’ = 0002070E Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 7 / 36
  • 13. Textos Imágenes Tipografías y audios Reto Codificaciones Unicode Estándar universal de codificación de caracteres para la mayoría de lenguas (incluidas las muertas). La última versión 8.0 incluye 120.737 caracteres. Unicode es solo una tabla, no especifica la codificación. Codificaciones para Unicode: UTF-8: codificación de 8 bits de longitud variable. ’A’ = 41h, ’ ’ = F0 A0 9C 8E UTF-16: codificación de 16 bits de longitud variable. ’A’ = 0041, ’ ’ = D841 DF0E UTF-32: codificación de 32 bits de longitud fija. ’A’ = 00000041, ’ ’ = 0002070E Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 7 / 36
  • 14. Textos Imágenes Tipografías y audios Reto Codificaciones Unicode Estándar universal de codificación de caracteres para la mayoría de lenguas (incluidas las muertas). La última versión 8.0 incluye 120.737 caracteres. Unicode es solo una tabla, no especifica la codificación. Codificaciones para Unicode: UTF-8: codificación de 8 bits de longitud variable. ’A’ = 41h, ’ ’ = F0 A0 9C 8E UTF-16: codificación de 16 bits de longitud variable. ’A’ = 0041, ’ ’ = D841 DF0E UTF-32: codificación de 32 bits de longitud fija. ’A’ = 00000041, ’ ’ = 0002070E Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 7 / 36
  • 15. Textos Imágenes Tipografías y audios Reto Codificaciones Unicode Estándar universal de codificación de caracteres para la mayoría de lenguas (incluidas las muertas). La última versión 8.0 incluye 120.737 caracteres. Unicode es solo una tabla, no especifica la codificación. Codificaciones para Unicode: UTF-8: codificación de 8 bits de longitud variable. ’A’ = 41h, ’ ’ = F0 A0 9C 8E UTF-16: codificación de 16 bits de longitud variable. ’A’ = 0041, ’ ’ = D841 DF0E UTF-32: codificación de 32 bits de longitud fija. ’A’ = 00000041, ’ ’ = 0002070E Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 7 / 36
  • 16. Textos Imágenes Tipografías y audios Reto Codificaciones Shift Jis (CP 932) Codificación de longitud variable (1 o 2 bytes) para caracteres japoneses. Incluye ASCII. Figura: Tabla para caracteres con primer byte 0x82 Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 8 / 36
  • 17. Textos Imágenes Tipografías y audios Reto Codificaciones Ejemplos en archivos ¿? Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 9 / 36
  • 18. Textos Imágenes Tipografías y audios Reto Codificaciones Ejemplos en archivos UTF-16 Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 9 / 36
  • 19. Textos Imágenes Tipografías y audios Reto Codificaciones Ejemplos en archivos UTF-16 ¿? Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 9 / 36
  • 20. Textos Imágenes Tipografías y audios Reto Codificaciones Ejemplos en archivos UTF-16 Shift Jis Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 9 / 36
  • 21. Textos Imágenes Tipografías y audios Reto Codificaciones Tablas Algunos juegos usan codificaciones propietarias... ... fácil mapeo con la tipografía. ... dificultar 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
  • 22. Textos Imágenes Tipografías y audios Reto Codificaciones Tablas Valor Carácter Valor Carácter Valor Carácter 01A9h ¡ 01ABh ! 01ADh , 01DEh SP E000h NL 0152h E 0132h H 013Ah P 013Eh T 0145h a 0147h c 0148h d 014Ch h 0150h l 0152h n 0153h o 0156h r 0158h t Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 11 / 36
  • 23. 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 fichero. Relativo a la posición actual. Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 12 / 36
  • 24. 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 fichero. Relativo a la posición actual. Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 12 / 36
  • 25. 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 fichero. Relativo a la posición actual. Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 12 / 36
  • 26. 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 fichero. Relativo a la posición actual. Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 12 / 36
  • 27. 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
  • 28. 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
  • 29. 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
  • 30. 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
  • 31. 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
  • 32. 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
  • 33. 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
  • 34. 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
  • 35. 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
  • 36. 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
  • 37. 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
  • 38. 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
  • 39. 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
  • 40. 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
  • 41. 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 define los colores únicos. Generalmente: 8 bits/canal 28 = 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
  • 42. 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 define los colores únicos. Generalmente: 8 bits/canal 28 = 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
  • 43. 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 define los colores únicos. Generalmente: 8 bits/canal 28 = 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
  • 44. 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 define los colores únicos. Generalmente: 8 bits/canal 28 = 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
  • 45. Textos Imágenes Tipografías y audios Reto Imágenes de fondo Paletas Agrupación de colores. Definen los colores de una imagen. El primer 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
  • 46. Textos Imágenes Tipografías y audios Reto Imágenes de fondo Paletas Agrupación de colores. Definen los colores de una imagen. El primer 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
  • 47. Textos Imágenes Tipografías y audios Reto Imágenes de fondo Paletas Agrupación de colores. Definen los colores de una imagen. El primer 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
  • 48. Textos Imágenes Tipografías y audios Reto Imágenes de fondo Paletas Agrupación de colores. Definen los colores de una imagen. El primer 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
  • 49. 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 la paleta de su color. Codificaciones 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
  • 50. 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 la paleta de su color. Codificaciones 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
  • 51. 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 la paleta de su color. Codificaciones 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
  • 52. 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 la paleta de su color. Codificaciones 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
  • 53. 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
  • 54. 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
  • 55. 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
  • 56. Textos Imágenes Tipografías y audios Reto Imágenes de fondo Agrupación de píxeles Lineal 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F Horizontal 00 01 02 03 04 05 06 07 10 11 12 13 14 15 16 17 20 21 22 23 24 25 26 27 30 31 32 33 34 35 36 37 40 41 42 43 44 45 46 47 50 51 52 53 54 55 56 57 60 61 62 63 64 65 66 67 70 71 72 73 74 75 76 77 08 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
  • 57. Textos Imágenes Tipografías y audios Reto Imágenes de fondo Agrupación de píxeles Lineal 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F Horizontal 00 01 02 03 04 05 06 07 10 11 12 13 14 15 16 17 20 21 22 23 24 25 26 27 30 31 32 33 34 35 36 37 40 41 42 43 44 45 46 47 50 51 52 53 54 55 56 57 60 61 62 63 64 65 66 67 70 71 72 73 74 75 76 77 08 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
  • 58. 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
  • 59. 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
  • 60. 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
  • 61. 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
  • 62. 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
  • 63. 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
  • 64. 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 o verticalmente. 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
  • 65. 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 o verticalmente. 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
  • 66. 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 o verticalmente. 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
  • 67. 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 o verticalmente. 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
  • 68. 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 o verticalmente. 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
  • 69. 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
  • 70. 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
  • 71. 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
  • 72. 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
  • 73. 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
  • 74. 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
  • 75. 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
  • 76. 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
  • 77. Textos Imágenes Tipografías y audios Reto Sprites Animaciones Nitro AnimatioN Resource (.nanr) Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 25 / 36
  • 78. Textos Imágenes Tipografías y audios Reto 3D Texturas Nitro TeXture (.nsbtx) Uso en modelos 3D Paletas + Tiles Codificaciones: A3I5, A4I4, A5I3, 4x4 texel Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 26 / 36
  • 79. Textos Imágenes Tipografías y audios Reto 3D Texturas Nitro TeXture (.nsbtx) Uso en modelos 3D Paletas + Tiles Codificaciones: A3I5, A4I4, A5I3, 4x4 texel Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 26 / 36
  • 80. Textos Imágenes Tipografías y audios Reto 3D Texturas Nitro TeXture (.nsbtx) Uso en modelos 3D Paletas + Tiles Codificaciones: A3I5, A4I4, A5I3, 4x4 texel Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 26 / 36
  • 81. Textos Imágenes Tipografías y audios Reto 3D Texturas Nitro TeXture (.nsbtx) Uso en modelos 3D Paletas + Tiles Codificaciones: A3I5, A4I4, A5I3, 4x4 texel Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 26 / 36
  • 82. 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
  • 83. 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
  • 84. 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
  • 85. 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 de caracteres. Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 28 / 36
  • 86. 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 de caracteres. Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 28 / 36
  • 87. 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 de caracteres. Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 28 / 36
  • 88. 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 de caracteres. Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 28 / 36
  • 89. 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
  • 90. 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
  • 91. 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
  • 92. 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
  • 93. 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
  • 94. 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
  • 95. 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
  • 96. 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
  • 97. 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
  • 98. 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
  • 99. Textos Imágenes Tipografías y audios Reto The Legend of Zelda: Phantom Hourglass Contenido sorpresa Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 31 / 36
  • 100. Textos Imágenes Tipografías y audios Reto The Legend of Zelda: Phantom Hourglass Contenido sorpresa ¿/Test/picture.narc? Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 31 / 36
  • 101. Textos Imágenes Tipografías y audios Reto The Legend of Zelda: Phantom Hourglass Contenido sorpresa ¿/Test/picture.narc? Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 31 / 36
  • 102. 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
  • 103. 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
  • 104. Textos Imágenes Tipografías y audios Reto The Legend of Zelda: Phantom Hourglass Historia Modificar cuarto diálogo. Modificar imagen. Modificar tipografía. Modificar mapa. Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 32 / 36
  • 105. Textos Imágenes Tipografías y audios Reto The Legend of Zelda: Phantom Hourglass Historia Modificar cuarto diálogo. Modificar imagen. Modificar tipografía. Modificar mapa. Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 32 / 36
  • 106. Textos Imágenes Tipografías y audios Reto The Legend of Zelda: Phantom Hourglass Historia Modificar cuarto diálogo. Modificar imagen. Modificar tipografía. Modificar mapa. Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 32 / 36
  • 107. Textos Imágenes Tipografías y audios Reto The Legend of Zelda: Phantom Hourglass Historia Modificar cuarto diálogo. Modificar imagen. Modificar tipografía. Modificar mapa. Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 32 / 36
  • 108. Textos Imágenes Tipografías y audios Reto The Legend of Zelda: Phantom Hourglass Historia: Punteros Modificar 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 final 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
  • 109. Textos Imágenes Tipografías y audios Reto The Legend of Zelda: Phantom Hourglass Historia: Imágenes Modificar imagen Ruta: /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
  • 110. Textos Imágenes Tipografías y audios Reto The Legend of Zelda: Phantom Hourglass Historia: Tipografía Modificar tipografía Cambiar 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
  • 111. Textos Imágenes Tipografías y audios Reto The Legend of Zelda: Phantom Hourglass Mapas Modificar mapa Ruta: /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 y objetos. Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 36 / 36
  • 112. Textos Imágenes Tipografías y audios Reto The Legend of Zelda: Phantom Hourglass Mapas Modificar mapa Ruta: /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 y objetos. Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 36 / 36
  • 113. Textos Imágenes Tipografías y audios Reto The Legend of Zelda: Phantom Hourglass Mapas Modificar mapa Ruta: /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 y objetos. Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 36 / 36
  • 114. Textos Imágenes Tipografías y audios Reto The Legend of Zelda: Phantom Hourglass Mapas Modificar mapa Ruta: /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 y objetos. Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 36 / 36
  • 115. Textos Imágenes Tipografías y audios Reto The Legend of Zelda: Phantom Hourglass Mapas Modificar mapa Ruta: /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 y objetos. Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Abril de 2016 36 / 36
  • 116. Textos Imágenes Tipografías y audios Reto The Legend of Zelda: Phantom Hourglass Mapas Modificar mapa Secció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
  • 117. Textos Imágenes Tipografías y audios Reto The Legend of Zelda: Phantom Hourglass Mapas Modificar mapa Secció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
  • 118. Textos Imágenes Tipografías y audios Reto The Legend of Zelda: Phantom Hourglass Mapas Modificar mapa Secció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