SlideShare una empresa de Scribd logo
1 de 106
Descargar para leer sin conexión
Rama estudiantil de IEEE en la UGR
Introducción al ROM Hacking:
Primeros pasos
Benito Palacios Sánchez
benito.palaciossanchez.es@ieee.org
30 de marzo de 2016
Introducción Hello World! Programas de edición Reto
Sobre mi...
¿Quién soy?
Benito Palacios Sánchez
@pleonex
Graduado en Ingeniería de Tecnologías de Telecomunicación
Trabajo Fin de Grado sobre seguridad en videojuegos
Miembro de IEEE Student Branch of Granada
>6 años en el mundo del ROM Hacking
Miembro de GradienWords
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 2 / 35
Introducción Hello World! Programas de edición Reto
Sobre mi...
¿Quién soy?
Benito Palacios Sánchez
@pleonex
Graduado en Ingeniería de Tecnologías de Telecomunicación
Trabajo Fin de Grado sobre seguridad en videojuegos
Miembro de IEEE Student Branch of Granada
>6 años en el mundo del ROM Hacking
Miembro de GradienWords
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 2 / 35
Introducción Hello World! Programas de edición Reto
Sobre mi...
¿Quién soy?
Benito Palacios Sánchez
@pleonex
Graduado en Ingeniería de Tecnologías de Telecomunicación
Trabajo Fin de Grado sobre seguridad en videojuegos
Miembro de IEEE Student Branch of Granada
>6 años en el mundo del ROM Hacking
Miembro de GradienWords
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 2 / 35
Introducción Hello World! Programas de edición Reto
Sobre mi...
¿Quién soy?
Benito Palacios Sánchez
@pleonex
Graduado en Ingeniería de Tecnologías de Telecomunicación
Trabajo Fin de Grado sobre seguridad en videojuegos
Miembro de IEEE Student Branch of Granada
>6 años en el mundo del ROM Hacking
Miembro de GradienWords
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 2 / 35
Introducción Hello World! Programas de edición Reto
Sobre mi...
¿Quién soy?
Benito Palacios Sánchez
@pleonex
Graduado en Ingeniería de Tecnologías de Telecomunicación
Trabajo Fin de Grado sobre seguridad en videojuegos
Miembro de IEEE Student Branch of Granada
>6 años en el mundo del ROM Hacking
Miembro de GradienWords
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 2 / 35
Introducción Hello World! Programas de edición Reto
Mis proyectos
Tinke
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 3 / 35
Introducción Hello World! Programas de edición Reto
Mis proyectos
Ninokuni: El Mago de las Tinieblas
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 4 / 35
Introducción Hello World! Programas de edición Reto
Mis proyectos
Fan traducciones
Pokémon Conquest
Final Fantasy: Four Heroes
Profesor Layton: London Life
Shining Force Feather
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 5 / 35
Introducción Hello World! Programas de edición Reto
Mis proyectos
Fan traducciones
Pokémon Conquest
Final Fantasy: Four Heroes
Profesor Layton: London Life
Shining Force Feather
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 5 / 35
Introducción Hello World! Programas de edición Reto
Mis proyectos
Fan traducciones
Pokémon Conquest
Final Fantasy: Four Heroes
Profesor Layton: London Life
Shining Force Feather
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 5 / 35
Introducción Hello World! Programas de edición Reto
Mis proyectos
Fan traducciones
Pokémon Conquest
Final Fantasy: Four Heroes
Profesor Layton: London Life
Shining Force Feather
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 5 / 35
Introducción Hello World! Programas de edición Reto
¿Qué es ROM Hacking?
Érase una vez...
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 6 / 35
Introducción Hello World! Programas de edición Reto
¿Qué es ROM Hacking?
¿Qué es un fichero?
¿ ?
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 7 / 35
Introducción Hello World! Programas de edición Reto
¿Qué es ROM Hacking?
¿Qué hay dentro de un fichero?
¿Qué hay para que veamos...
...imágenes?
...vídeos?
...música?
¿Cómo lo vemos eso?
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 8 / 35
Introducción Hello World! Programas de edición Reto
¿Qué es ROM Hacking?
¿Qué hay dentro de un fichero?
¿Qué hay para que veamos...
...imágenes?
...vídeos?
...música?
¿Cómo lo vemos eso?
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 8 / 35
Introducción Hello World! Programas de edición Reto
¿Qué es ROM Hacking?
¿Qué hay dentro de un fichero?
¿Qué hay para que veamos...
...imágenes?
...vídeos?
...música?
¿Cómo lo vemos eso?
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 8 / 35
Introducción Hello World! Programas de edición Reto
¿Qué es ROM Hacking?
¿Qué hay dentro de un fichero?
¿Qué hay para que veamos...
...imágenes?
...vídeos?
...música?
¿Cómo lo vemos eso?
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 8 / 35
Introducción Hello World! Programas de edición Reto
¿Qué es ROM Hacking?
¿Qué hay dentro de un fichero?
¿Qué hay para que veamos...
...imágenes?
...vídeos?
...música?
¿Cómo lo vemos eso?
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 8 / 35
Introducción Hello World! Programas de edición Reto
¿Qué es ROM Hacking?
La parte cruda de los archivos
Figura: BMP visto con editor hexadecimal HxD
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 9 / 35
Introducción Hello World! Programas de edición Reto
¿Qué es ROM Hacking?
Especificaciones (BMP)
Posición Tamaño Descripción
Cabecera estándar
0x00 0x02 Magic stamp: BM
0x02 0x04 Tamaño del fichero
0x06 0x04 Reservado
0x0A 0x04 Puntero a los datos de la imagen
Cabecera DIB
0x00 0x04 Tamaño de esta cabecera
0x04 0x04 Ancho de la imagen
0x06 0x04 Alto de la imagen
0x08 0x02 Número de planos de color (1)
0x0A 0x02 Número de bits por píxel
Paleta de colores
Píxeles
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 10 / 35
Introducción Hello World! Programas de edición Reto
¿Qué es ROM Hacking?
Especificaciones (BMP)
1 Cabecera estándar
1 Magic stamp
2 Tamaño fichero
3 Reservado
4 Puntero datos
2 Cabecera DIB
1 Tamaño DIB
2 Ancho
3 Alto
4 Planos de color
5 BPP
6 Meta-datos
3 Paleta
4 Píxeles
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 11 / 35
Introducción Hello World! Programas de edición Reto
¿Qué es ROM Hacking?
Especificaciones (BMP)
1 Cabecera estándar
1 Magic stamp
2 Tamaño fichero
3 Reservado
4 Puntero datos
2 Cabecera DIB
1 Tamaño DIB
2 Ancho
3 Alto
4 Planos de color
5 BPP
6 Meta-datos
3 Paleta
4 Píxeles
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 11 / 35
Introducción Hello World! Programas de edición Reto
¿Qué es ROM Hacking?
Especificaciones (BMP)
1 Cabecera estándar
1 Magic stamp
2 Tamaño fichero
3 Reservado
4 Puntero datos
2 Cabecera DIB
1 Tamaño DIB
2 Ancho
3 Alto
4 Planos de color
5 BPP
6 Meta-datos
3 Paleta
4 Píxeles
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 11 / 35
Introducción Hello World! Programas de edición Reto
¿Qué es ROM Hacking?
Especificaciones (BMP)
1 Cabecera estándar
1 Magic stamp
2 Tamaño fichero
3 Reservado
4 Puntero datos
2 Cabecera DIB
1 Tamaño DIB
2 Ancho
3 Alto
4 Planos de color
5 BPP
6 Meta-datos
3 Paleta
4 Píxeles
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 11 / 35
Introducción Hello World! Programas de edición Reto
¿Qué es ROM Hacking?
Especificaciones (BMP)
1 Cabecera estándar
1 Magic stamp
2 Tamaño fichero
3 Reservado
4 Puntero datos
2 Cabecera DIB
1 Tamaño DIB
2 Ancho
3 Alto
4 Planos de color
5 BPP
6 Meta-datos
3 Paleta
4 Píxeles
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 11 / 35
Introducción Hello World! Programas de edición Reto
¿Qué es ROM Hacking?
Especificaciones (BMP)
1 Cabecera estándar
1 Magic stamp
2 Tamaño fichero
3 Reservado
4 Puntero datos
2 Cabecera DIB
1 Tamaño DIB
2 Ancho
3 Alto
4 Planos de color
5 BPP
6 Meta-datos
3 Paleta
4 Píxeles
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 11 / 35
Introducción Hello World! Programas de edición Reto
¿Qué es ROM Hacking?
Especificaciones (BMP)
1 Cabecera estándar
1 Magic stamp
2 Tamaño fichero
3 Reservado
4 Puntero datos
2 Cabecera DIB
1 Tamaño DIB
2 Ancho
3 Alto
4 Planos de color
5 BPP
6 Meta-datos
3 Paleta
4 Píxeles
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 11 / 35
Introducción Hello World! Programas de edición Reto
¿Qué es ROM Hacking?
Especificaciones (BMP)
1 Cabecera estándar
1 Magic stamp
2 Tamaño fichero
3 Reservado
4 Puntero datos
2 Cabecera DIB
1 Tamaño DIB
2 Ancho
3 Alto
4 Planos de color
5 BPP
6 Meta-datos
3 Paleta
4 Píxeles
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 11 / 35
Introducción Hello World! Programas de edición Reto
¿Qué es ROM Hacking?
Especificaciones (BMP)
1 Cabecera estándar
1 Magic stamp
2 Tamaño fichero
3 Reservado
4 Puntero datos
2 Cabecera DIB
1 Tamaño DIB
2 Ancho
3 Alto
4 Planos de color
5 BPP
6 Meta-datos
3 Paleta
4 Píxeles
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 11 / 35
Introducción Hello World! Programas de edición Reto
¿Qué es ROM Hacking?
Especificaciones (BMP)
1 Cabecera estándar
1 Magic stamp
2 Tamaño fichero
3 Reservado
4 Puntero datos
2 Cabecera DIB
1 Tamaño DIB
2 Ancho
3 Alto
4 Planos de color
5 BPP
6 Meta-datos
3 Paleta
4 Píxeles
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 11 / 35
Introducción Hello World! Programas de edición Reto
¿Qué es ROM Hacking?
Especificaciones (BMP)
1 Cabecera estándar
1 Magic stamp
2 Tamaño fichero
3 Reservado
4 Puntero datos
2 Cabecera DIB
1 Tamaño DIB
2 Ancho
3 Alto
4 Planos de color
5 BPP
6 Meta-datos
3 Paleta
4 Píxeles
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 11 / 35
Introducción Hello World! Programas de edición Reto
¿Qué es ROM Hacking?
Especificaciones (BMP)
1 Cabecera estándar
1 Magic stamp
2 Tamaño fichero
3 Reservado
4 Puntero datos
2 Cabecera DIB
1 Tamaño DIB
2 Ancho
3 Alto
4 Planos de color
5 BPP
6 Meta-datos
3 Paleta
4 Píxeles
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 11 / 35
Introducción Hello World! Programas de edición Reto
¿Qué es ROM Hacking?
Especificaciones (BMP)
1 Cabecera estándar
1 Magic stamp
2 Tamaño fichero
3 Reservado
4 Puntero datos
2 Cabecera DIB
1 Tamaño DIB
2 Ancho
3 Alto
4 Planos de color
5 BPP
6 Meta-datos
3 Paleta
4 Píxeles
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 11 / 35
Introducción Hello World! Programas de edición Reto
¿Qué es ROM Hacking?
Especificaciones (BMP)
1 Cabecera estándar
1 Magic stamp
2 Tamaño fichero
3 Reservado
4 Puntero datos
2 Cabecera DIB
1 Tamaño DIB
2 Ancho
3 Alto
4 Planos de color
5 BPP
6 Meta-datos
3 Paleta
4 Píxeles
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 11 / 35
Introducción Hello World! Programas de edición Reto
¿Qué es ROM Hacking?
¿Qué hay dentro de un juego?
¿ ?
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 12 / 35
Introducción Hello World! Programas de edición Reto
¿Qué es ROM Hacking?
¿Qué hay dentro de un juego?
¿ ? →
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 12 / 35
Introducción Hello World! Programas de edición Reto
¿Qué es ROM Hacking?
La parte cruda de un juego
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 13 / 35
Introducción Hello World! Programas de edición Reto
¿Qué es ROM Hacking?
¿Y ahora? ¿Y la especificación?
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 14 / 35
Introducción Hello World! Programas de edición Reto
¿Qué es ROM Hacking?
ROM Hacking
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 15 / 35
Introducción Hello World! Programas de edición Reto
¿Qué es ROM Hacking?
ROM Hacking
Propósito:
Fan traducciones
Mods
Extraer recursos
Curiosidad
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 16 / 35
Introducción Hello World! Programas de edición Reto
¿Qué es ROM Hacking?
ROM Hacking
Propósito:
Fan traducciones
Mods
Extraer recursos
Curiosidad
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 16 / 35
Introducción Hello World! Programas de edición Reto
¿Qué es ROM Hacking?
ROM Hacking
Propósito:
Fan traducciones
Mods
Extraer recursos
Curiosidad
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 16 / 35
Introducción Hello World! Programas de edición Reto
¿Qué es ROM Hacking?
ROM Hacking
Propósito:
Fan traducciones
Mods
Extraer recursos
Curiosidad
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 16 / 35
Introducción Hello World! Programas de edición Reto
¿Qué es ROM Hacking?
ROM Hacking
Propósito:
Fan traducciones
Mods
Extraer recursos
Curiosidad
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 16 / 35
Introducción Hello World! Programas de edición Reto
Temario
Contenido del curso
Introducción al ROM Hacking
1 Primeros pasos
1 ¿Qué es ROM Hacking?
2 Hello World!
3 Reto
2 Formatos comunes en juegos
1 Textos
2 Imágenes
3 Tipografías y audios
4 Reto
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 17 / 35
Introducción Hello World! Programas de edición Reto
Temario
Contenido del curso
Introducción al ROM Hacking
1 Primeros pasos
1 ¿Qué es ROM Hacking?
2 Hello World!
3 Reto
2 Formatos comunes en juegos
1 Textos
2 Imágenes
3 Tipografías y audios
4 Reto
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 17 / 35
Introducción Hello World! Programas de edición Reto
Hello World!
ROM HACKING TIME!
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 18 / 35
Introducción Hello World! Programas de edición Reto
NitroROM
Especificación de juegos de NDS
GBATEK
Gameboy Advance / Nintendo DS / DSi - Technical Info
Trabajo de Martin Korth en el desarrollo de no$gba.
http://problemkaputt.de/gbatek.htm
Cabecera
Binario ARM9
Overlays ARM9
Binario ARM7
Overlays ARM7
File Name Table
File Allocation Table
Banner
Archivos
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 19 / 35
Introducción Hello World! Programas de edición Reto
NitroROM
Especificación de juegos de NDS
GBATEK
Gameboy Advance / Nintendo DS / DSi - Technical Info
Trabajo de Martin Korth en el desarrollo de no$gba.
http://problemkaputt.de/gbatek.htm
Cabecera
Binario ARM9
Overlays ARM9
Binario ARM7
Overlays ARM7
File Name Table
File Allocation Table
Banner
Archivos
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 19 / 35
Introducción Hello World! Programas de edición Reto
NitroROM
Especificación de juegos de NDS
GBATEK
Gameboy Advance / Nintendo DS / DSi - Technical Info
Trabajo de Martin Korth en el desarrollo de no$gba.
http://problemkaputt.de/gbatek.htm
Cabecera
Binario ARM9
Overlays ARM9
Binario ARM7
Overlays ARM7
File Name Table
File Allocation Table
Banner
Archivos
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 19 / 35
Introducción Hello World! Programas de edición Reto
NitroROM
Especificación de juegos de NDS
GBATEK
Gameboy Advance / Nintendo DS / DSi - Technical Info
Trabajo de Martin Korth en el desarrollo de no$gba.
http://problemkaputt.de/gbatek.htm
Cabecera
Binario ARM9
Overlays ARM9
Binario ARM7
Overlays ARM7
File Name Table
File Allocation Table
Banner
Archivos
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 19 / 35
Introducción Hello World! Programas de edición Reto
NitroROM
Especificación de juegos de NDS
GBATEK
Gameboy Advance / Nintendo DS / DSi - Technical Info
Trabajo de Martin Korth en el desarrollo de no$gba.
http://problemkaputt.de/gbatek.htm
Cabecera
Binario ARM9
Overlays ARM9
Binario ARM7
Overlays ARM7
File Name Table
File Allocation Table
Banner
Archivos
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 19 / 35
Introducción Hello World! Programas de edición Reto
NitroROM
Especificación de juegos de NDS
GBATEK
Gameboy Advance / Nintendo DS / DSi - Technical Info
Trabajo de Martin Korth en el desarrollo de no$gba.
http://problemkaputt.de/gbatek.htm
Cabecera
Binario ARM9
Overlays ARM9
Binario ARM7
Overlays ARM7
File Name Table
File Allocation Table
Banner
Archivos
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 19 / 35
Introducción Hello World! Programas de edición Reto
Conceptos
Números hexadecimales
Decimal: 0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9 10 11 12 13 ...
Binario: 0 1
0 1 10 11 100 101 110 111 1000 ...
0 1 2 3 4 5 6 7 8
Octal: 0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7 10 11 12 13 14 ...
0 1 2 3 4 5 6 7 8 9 10 11 12
Hexadecimal: 0 1 2 3 4 5 6 7 8 9 A B C D E F
0 1 2 3 4 5 6 7 8 9 A B C D E F 10 11 12 ...
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 20 / 35
Introducción Hello World! Programas de edición Reto
Conceptos
Números hexadecimales
Decimal: 0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9 10 11 12 13 ...
Binario: 0 1
0 1 10 11 100 101 110 111 1000 ...
0 1 2 3 4 5 6 7 8
Octal: 0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7 10 11 12 13 14 ...
0 1 2 3 4 5 6 7 8 9 10 11 12
Hexadecimal: 0 1 2 3 4 5 6 7 8 9 A B C D E F
0 1 2 3 4 5 6 7 8 9 A B C D E F 10 11 12 ...
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 20 / 35
Introducción Hello World! Programas de edición Reto
Conceptos
Números hexadecimales
Decimal: 0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9 10 11 12 13 ...
Binario: 0 1
0 1 10 11 100 101 110 111 1000 ...
0 1 2 3 4 5 6 7 8
Octal: 0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7 10 11 12 13 14 ...
0 1 2 3 4 5 6 7 8 9 10 11 12
Hexadecimal: 0 1 2 3 4 5 6 7 8 9 A B C D E F
0 1 2 3 4 5 6 7 8 9 A B C D E F 10 11 12 ...
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 20 / 35
Introducción Hello World! Programas de edición Reto
Conceptos
Números hexadecimales
Decimal: 0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9 10 11 12 13 ...
Binario: 0 1
0 1 10 11 100 101 110 111 1000 ...
0 1 2 3 4 5 6 7 8
Octal: 0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7 10 11 12 13 14 ...
0 1 2 3 4 5 6 7 8 9 10 11 12
Hexadecimal: 0 1 2 3 4 5 6 7 8 9 A B C D E F
0 1 2 3 4 5 6 7 8 9 A B C D E F 10 11 12 ...
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 20 / 35
Introducción Hello World! Programas de edición Reto
Conceptos
Números hexadecimales
Decimal: 0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9 10 11 12 13 ...
Binario: 0 1
0 1 10 11 100 101 110 111 1000 ...
0 1 2 3 4 5 6 7 8
Octal: 0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7 10 11 12 13 14 ...
0 1 2 3 4 5 6 7 8 9 10 11 12
Hexadecimal: 0 1 2 3 4 5 6 7 8 9 A B C D E F
0 1 2 3 4 5 6 7 8 9 A B C D E F 10 11 12 ...
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 20 / 35
Introducción Hello World! Programas de edición Reto
Conceptos
Números hexadecimales
Prefijo 0x o sufijo h
0xA, FBh, 0xCA, FEh
Fácil representación de enteros:
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 21 / 35
Introducción Hello World! Programas de edición Reto
Conceptos
Números hexadecimales
Prefijo 0x o sufijo h
0xA, FBh, 0xCA, FEh
Fácil representación de enteros:
# Rango Ejemplo Bytes Bits Otros nombres
1 [0, 15] 0xC ½ 4
2 [0, 255] 0xC0 1 8 byte
4 [0, 65,535] 0x0200 2 16 ushort, WORD
8 [0, 4,294,967,295] 0xB7000000 4 32 uint, DWORD
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 21 / 35
Introducción Hello World! Programas de edición Reto
Conceptos
Endianness
Orden en el que se guardan los bytes que forman valores
mayores a 8 bits (ushort, uint, ulong, ...). MSB →LSB.
Big Endian:
Little Endian (más común):
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 22 / 35
Introducción Hello World! Programas de edición Reto
Conceptos
Endianness
Orden en el que se guardan los bytes que forman valores
mayores a 8 bits (ushort, uint, ulong, ...). MSB →LSB.
Big Endian:
Little Endian (más común):
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 22 / 35
Introducción Hello World! Programas de edición Reto
Conceptos
Endianness
Orden en el que se guardan los bytes que forman valores
mayores a 8 bits (ushort, uint, ulong, ...). MSB →LSB.
Big Endian:
Little Endian (más común):
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 22 / 35
Introducción Hello World! Programas de edición Reto
Investigando un juego
Tinke
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 23 / 35
Introducción Hello World! Programas de edición Reto
Investigando un juego
Tinke
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 23 / 35
Introducción Hello World! Programas de edición Reto
Investigando un juego
Tipos de ficheros
Paleta
Tiles
Map
Sprites
Animaciones
Modelos 3D
Texturas
Imagen completa
Texto
Tipografía
Scripts
Archivo comprimido
Paquete
Música
Vídeo
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 24 / 35
Introducción Hello World! Programas de edición Reto
Editar juegos
Modificando textos
1 Localizar texto a modificar
2 Abrir juego en Tinke
3 Localizar textos
4 Extraer archivo
5 Modificar con editor
6 Importar archivo
7 Generar ROM
8 Probar en DeSmuME
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 25 / 35
Introducción Hello World! Programas de edición Reto
Editar juegos
Modificando textos
1 Localizar texto a modificar
2 Abrir juego en Tinke
3 Localizar textos
4 Extraer archivo
5 Modificar con editor
6 Importar archivo
7 Generar ROM
8 Probar en DeSmuME
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 25 / 35
Introducción Hello World! Programas de edición Reto
Editar juegos
Modificando textos
1 Localizar texto a modificar
2 Abrir juego en Tinke
3 Localizar textos
4 Extraer archivo
5 Modificar con editor
6 Importar archivo
7 Generar ROM
8 Probar en DeSmuME
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 25 / 35
Introducción Hello World! Programas de edición Reto
Editar juegos
Modificando textos
1 Localizar texto a modificar
2 Abrir juego en Tinke
3 Localizar textos
4 Extraer archivo
5 Modificar con editor
6 Importar archivo
7 Generar ROM
8 Probar en DeSmuME
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 25 / 35
Introducción Hello World! Programas de edición Reto
Editar juegos
Modificando textos
1 Localizar texto a modificar
2 Abrir juego en Tinke
3 Localizar textos
4 Extraer archivo
5 Modificar con editor
6 Importar archivo
7 Generar ROM
8 Probar en DeSmuME
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 25 / 35
Introducción Hello World! Programas de edición Reto
Editar juegos
Modificando textos
1 Localizar texto a modificar
2 Abrir juego en Tinke
3 Localizar textos
4 Extraer archivo
5 Modificar con editor
6 Importar archivo
7 Generar ROM
8 Probar en DeSmuME
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 25 / 35
Introducción Hello World! Programas de edición Reto
Editar juegos
Modificando textos
1 Localizar texto a modificar
2 Abrir juego en Tinke
3 Localizar textos
4 Extraer archivo
5 Modificar con editor
6 Importar archivo
7 Generar ROM
8 Probar en DeSmuME
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 25 / 35
Introducción Hello World! Programas de edición Reto
Editar juegos
Modificando textos
1 Localizar texto a modificar
2 Abrir juego en Tinke
3 Localizar textos
4 Extraer archivo
5 Modificar con editor
6 Importar archivo
7 Generar ROM
8 Probar en DeSmuME
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 25 / 35
Introducción Hello World! Programas de edición Reto
Editar juegos
Modificando textos
1 Localizar texto a modificar
2 Abrir juego en Tinke
3 Localizar textos
4 Extraer archivo
5 Modificar con editor
6 Importar archivo
7 Generar ROM
8 Probar en DeSmuME
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 25 / 35
Introducción Hello World! Programas de edición Reto
Publicar cambios
Parches
Solo contienen las modificaciones
No subir el juego modificado
Tamaño pequeño (entre 1 y 20 MB)
Formatos comunes: IPS y xDelta
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 26 / 35
Introducción Hello World! Programas de edición Reto
Publicar cambios
Parches
Solo contienen las modificaciones
No subir el juego modificado
Tamaño pequeño (entre 1 y 20 MB)
Formatos comunes: IPS y xDelta
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 26 / 35
Introducción Hello World! Programas de edición Reto
Publicar cambios
Parches
Solo contienen las modificaciones
No subir el juego modificado
Tamaño pequeño (entre 1 y 20 MB)
Formatos comunes: IPS y xDelta
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 26 / 35
Introducción Hello World! Programas de edición Reto
Publicar cambios
Parches
Solo contienen las modificaciones
No subir el juego modificado
Tamaño pequeño (entre 1 y 20 MB)
Formatos comunes: IPS y xDelta
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 26 / 35
Introducción Hello World! Programas de edición Reto
Publicar cambios
xDelta
Windows: xdelta UI
http://www.romhacking.net/utilities/598/
Mac OS X: Multipatch
http://projects.sappharad.com/tools/
multipatch.html
Linux: xdelta
Parchear:
xdelta -d -s ORIGINAL PARCHE
Crear parche:
xdelta -9 -s ORIGINAL MODIFICADO
PARCHE
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 27 / 35
Introducción Hello World! Programas de edición Reto
Publicar cambios
xDelta
Windows: xdelta UI
http://www.romhacking.net/utilities/598/
Mac OS X: Multipatch
http://projects.sappharad.com/tools/
multipatch.html
Linux: xdelta
Parchear:
xdelta -d -s ORIGINAL PARCHE
Crear parche:
xdelta -9 -s ORIGINAL MODIFICADO
PARCHE
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 27 / 35
Introducción Hello World! Programas de edición Reto
Publicar cambios
xDelta
Windows: xdelta UI
http://www.romhacking.net/utilities/598/
Mac OS X: Multipatch
http://projects.sappharad.com/tools/
multipatch.html
Linux: xdelta
Parchear:
xdelta -d -s ORIGINAL PARCHE
Crear parche:
xdelta -9 -s ORIGINAL MODIFICADO
PARCHE
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 27 / 35
Introducción Hello World! Programas de edición Reto
Pokémon
Advanced Map
Proyecto: http://ampage.no-ip.info/
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 28 / 35
Introducción Hello World! Programas de edición Reto
Pokémon
Spiky’s DS Map Editor
Proyecto: https://github.com/MarcRiera/SDSME
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 29 / 35
Introducción Hello World! Programas de edición Reto
New Super Mario Bros DS
NSMB Editor
Proyecto: https://github.com/Dirbaio/NSMB-Editor
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 30 / 35
Introducción Hello World! Programas de edición Reto
Super Mario 64 DS
Super Mario 64 Editor
Descarga: http://www.romhacking.net/utilities/764
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 31 / 35
Introducción Hello World! Programas de edición Reto
Ni no kuni
NinoCompiler
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 32 / 35
Introducción Hello World! Programas de edición Reto
Ni no kuni
NinoCompiler
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 32 / 35
Introducción Hello World! Programas de edición Reto
Ni no kuni
NinoCompiler
→
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 32 / 35
Introducción Hello World! Programas de edición Reto
Ni no kuni
NinoCompiler
→
Proyecto: http://gradienwords.com
GitHub: https://github.com/pleonex/Ninokuni
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 32 / 35
Introducción Hello World! Programas de edición Reto
Reto
CHALLENGE TIME!
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 33 / 35
Introducción Hello World! Programas de edición Reto
Puzles en Profesor Layton
Objetivo
Crear un puzle
Título (script/puzzletitle)
Localización (script/qinfo)
Descripción (qtext)
Pistas (qtext)
Respuesta (qtext)
Picarats (script/pcarot)
Entrada (script/qscript)
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 34 / 35
Introducción Hello World! Programas de edición Reto
Puzles en Profesor Layton
Objetivo
Crear un puzle
Título (script/puzzletitle)
Localización (script/qinfo)
Descripción (qtext)
Pistas (qtext)
Respuesta (qtext)
Picarats (script/pcarot)
Entrada (script/qscript)
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 34 / 35
Introducción Hello World! Programas de edición Reto
Puzles en Profesor Layton
Objetivo
Crear un puzle
Título (script/puzzletitle)
Localización (script/qinfo)
Descripción (qtext)
Pistas (qtext)
Respuesta (qtext)
Picarats (script/pcarot)
Entrada (script/qscript)
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 34 / 35
Introducción Hello World! Programas de edición Reto
Puzles en Profesor Layton
Objetivo
Crear un puzle
Título (script/puzzletitle)
Localización (script/qinfo)
Descripción (qtext)
Pistas (qtext)
Respuesta (qtext)
Picarats (script/pcarot)
Entrada (script/qscript)
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 34 / 35
Introducción Hello World! Programas de edición Reto
Puzles en Profesor Layton
Objetivo
Crear un puzle
Título (script/puzzletitle)
Localización (script/qinfo)
Descripción (qtext)
Pistas (qtext)
Respuesta (qtext)
Picarats (script/pcarot)
Entrada (script/qscript)
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 34 / 35
Introducción Hello World! Programas de edición Reto
Puzles en Profesor Layton
Objetivo
Crear un puzle
Título (script/puzzletitle)
Localización (script/qinfo)
Descripción (qtext)
Pistas (qtext)
Respuesta (qtext)
Picarats (script/pcarot)
Entrada (script/qscript)
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 34 / 35
Introducción Hello World! Programas de edición Reto
Puzles en Profesor Layton
Objetivo
Crear un puzle
Título (script/puzzletitle)
Localización (script/qinfo)
Descripción (qtext)
Pistas (qtext)
Respuesta (qtext)
Picarats (script/pcarot)
Entrada (script/qscript)
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 34 / 35
Introducción Hello World! Programas de edición Reto
Puzles en Profesor Layton
Pistas sobre los scripts
Primeros 4 bytes es el tamaño del archivo
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 35 / 35
Introducción Hello World! Programas de edición Reto
Puzles en Profesor Layton
Pistas sobre los scripts
Primeros 4 bytes es el tamaño del archivo
Se compone de múltiples comandos + argumentos
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 35 / 35
Introducción Hello World! Programas de edición Reto
Puzles en Profesor Layton
Pistas sobre los scripts
Primeros 4 bytes es el tamaño del archivo
Se compone de múltiples comandos + argumentos
Despues de 0x0000 va el ID del comando
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 35 / 35
Introducción Hello World! Programas de edición Reto
Puzles en Profesor Layton
Pistas sobre los scripts
Primeros 4 bytes es el tamaño del archivo
Se compone de múltiples comandos + argumentos
Despues de 0x0000 va el ID del comando
El formato de los argumentos es tipo + valor
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 35 / 35
Introducción Hello World! Programas de edición Reto
Puzles en Profesor Layton
Pistas sobre los scripts
Primeros 4 bytes es el tamaño del archivo
Se compone de múltiples comandos + argumentos
Despues de 0x0000 va el ID del comando
El formato de los argumentos es tipo + valor
El tipo 0x0001 es un entero de 32 bits
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 35 / 35
Introducción Hello World! Programas de edición Reto
Puzles en Profesor Layton
Pistas sobre los scripts
Primeros 4 bytes es el tamaño del archivo
Se compone de múltiples comandos + argumentos
Despues de 0x0000 va el ID del comando
El formato de los argumentos es tipo + valor
El tipo 0x0001 es un entero de 32 bits
El tipo 0x0003 es una cadena de caracteres de longitud
variable
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 35 / 35
Introducción Hello World! Programas de edición Reto
Puzles en Profesor Layton
Pistas sobre los scripts
Primeros 4 bytes es el tamaño del archivo
Se compone de múltiples comandos + argumentos
Despues de 0x0000 va el ID del comando
El formato de los argumentos es tipo + valor
El tipo 0x0001 es un entero de 32 bits
El tipo 0x0003 es una cadena de caracteres de longitud
variable
Los scripts terminan con 0x000C
Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 35 / 35

Más contenido relacionado

Similar a Introducción al ROM Hacking - Parte 1

Proyecto de informatica
Proyecto de informaticaProyecto de informatica
Proyecto de informaticaDavid
 
Proyecto de informatica
Proyecto de informaticaProyecto de informatica
Proyecto de informaticaDavid
 
La informática se creó en las calles: Microhistorias de Apple y Microsoft
La informática se creó en las calles: Microhistorias de Apple y MicrosoftLa informática se creó en las calles: Microhistorias de Apple y Microsoft
La informática se creó en las calles: Microhistorias de Apple y MicrosoftEventos Creativos
 
Python ¿2 vs 3?
Python ¿2 vs 3?Python ¿2 vs 3?
Python ¿2 vs 3?Joel Rivera
 
Cómo crear tu propio Shodan con Python
Cómo crear tu propio Shodan con PythonCómo crear tu propio Shodan con Python
Cómo crear tu propio Shodan con PythonQuantiKa14
 
Lo mejores videojuegos.
Lo mejores videojuegos.Lo mejores videojuegos.
Lo mejores videojuegos.Spartan1233
 
python_programacion_introduccion.ppt
python_programacion_introduccion.pptpython_programacion_introduccion.ppt
python_programacion_introduccion.pptJoseCordova761615
 

Similar a Introducción al ROM Hacking - Parte 1 (10)

Play station
Play stationPlay station
Play station
 
Proyecto de informatica
Proyecto de informaticaProyecto de informatica
Proyecto de informatica
 
Proyecto de informatica
Proyecto de informaticaProyecto de informatica
Proyecto de informatica
 
La informática se creó en las calles: Microhistorias de Apple y Microsoft
La informática se creó en las calles: Microhistorias de Apple y MicrosoftLa informática se creó en las calles: Microhistorias de Apple y Microsoft
La informática se creó en las calles: Microhistorias de Apple y Microsoft
 
Python ¿2 vs 3?
Python ¿2 vs 3?Python ¿2 vs 3?
Python ¿2 vs 3?
 
Cómo crear tu propio Shodan con Python
Cómo crear tu propio Shodan con PythonCómo crear tu propio Shodan con Python
Cómo crear tu propio Shodan con Python
 
Lo mejores videojuegos.
Lo mejores videojuegos.Lo mejores videojuegos.
Lo mejores videojuegos.
 
python_programacion_introduccion.ppt
python_programacion_introduccion.pptpython_programacion_introduccion.ppt
python_programacion_introduccion.ppt
 
Investigación gráfica somne
Investigación gráfica somneInvestigación gráfica somne
Investigación gráfica somne
 
Fábricas Mexicanas de Videojuegos
Fábricas Mexicanas de VideojuegosFábricas Mexicanas de Videojuegos
Fábricas Mexicanas de Videojuegos
 

Último

CONCEPTOS EN HIDROGEOLOGIA-diapositivas varias.pptx
CONCEPTOS EN HIDROGEOLOGIA-diapositivas varias.pptxCONCEPTOS EN HIDROGEOLOGIA-diapositivas varias.pptx
CONCEPTOS EN HIDROGEOLOGIA-diapositivas varias.pptxBrayanJavierCalle2
 
Mapas y cartas topográficas y de suelos.pptx
Mapas y cartas topográficas y de suelos.pptxMapas y cartas topográficas y de suelos.pptx
Mapas y cartas topográficas y de suelos.pptxMONICADELROCIOMUNZON1
 
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023RonaldoPaucarMontes
 
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptxProcesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptxJuanPablo452634
 
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdfLA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdfbcondort
 
Falla de san andres y el gran cañon : enfoque integral
Falla de san andres y el gran cañon : enfoque integralFalla de san andres y el gran cañon : enfoque integral
Falla de san andres y el gran cañon : enfoque integralsantirangelcor
 
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESO
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESOCAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESO
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESOLUISDAVIDVIZARRETARA
 
clasificasion de vias arteriales , vias locales
clasificasion de vias arteriales , vias localesclasificasion de vias arteriales , vias locales
clasificasion de vias arteriales , vias localesMIGUELANGEL2658
 
Quimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdfQuimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdfs7yl3dr4g0n01
 
osciloscopios Mediciones Electricas ingenieria.pdf
osciloscopios Mediciones Electricas ingenieria.pdfosciloscopios Mediciones Electricas ingenieria.pdf
osciloscopios Mediciones Electricas ingenieria.pdfIvanRetambay
 
hitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docxhitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docxMarcelaArancibiaRojo
 
PPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfPPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfalexquispenieto2
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALKATHIAMILAGRITOSSANC
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaXimenaFallaLecca1
 
Controladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y VentajasControladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y Ventajasjuanprv
 
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADOPERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADOFritz Rebaza Latoche
 
Tinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiologíaTinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiologíaAlexanderimanolLencr
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMarceloQuisbert6
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfKEVINYOICIAQUINOSORI
 
Base de Datos en Microsoft SQL Server 2024
Base de Datos en Microsoft SQL Server 2024Base de Datos en Microsoft SQL Server 2024
Base de Datos en Microsoft SQL Server 2024CESARHERNANPATRICIOP2
 

Último (20)

CONCEPTOS EN HIDROGEOLOGIA-diapositivas varias.pptx
CONCEPTOS EN HIDROGEOLOGIA-diapositivas varias.pptxCONCEPTOS EN HIDROGEOLOGIA-diapositivas varias.pptx
CONCEPTOS EN HIDROGEOLOGIA-diapositivas varias.pptx
 
Mapas y cartas topográficas y de suelos.pptx
Mapas y cartas topográficas y de suelos.pptxMapas y cartas topográficas y de suelos.pptx
Mapas y cartas topográficas y de suelos.pptx
 
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
 
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptxProcesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
 
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdfLA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
 
Falla de san andres y el gran cañon : enfoque integral
Falla de san andres y el gran cañon : enfoque integralFalla de san andres y el gran cañon : enfoque integral
Falla de san andres y el gran cañon : enfoque integral
 
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESO
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESOCAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESO
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESO
 
clasificasion de vias arteriales , vias locales
clasificasion de vias arteriales , vias localesclasificasion de vias arteriales , vias locales
clasificasion de vias arteriales , vias locales
 
Quimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdfQuimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdf
 
osciloscopios Mediciones Electricas ingenieria.pdf
osciloscopios Mediciones Electricas ingenieria.pdfosciloscopios Mediciones Electricas ingenieria.pdf
osciloscopios Mediciones Electricas ingenieria.pdf
 
hitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docxhitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docx
 
PPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfPPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdf
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
 
Controladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y VentajasControladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y Ventajas
 
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADOPERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
 
Tinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiologíaTinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiología
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principios
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdf
 
Base de Datos en Microsoft SQL Server 2024
Base de Datos en Microsoft SQL Server 2024Base de Datos en Microsoft SQL Server 2024
Base de Datos en Microsoft SQL Server 2024
 

Introducción al ROM Hacking - Parte 1

  • 1. Rama estudiantil de IEEE en la UGR Introducción al ROM Hacking: Primeros pasos Benito Palacios Sánchez benito.palaciossanchez.es@ieee.org 30 de marzo de 2016
  • 2. Introducción Hello World! Programas de edición Reto Sobre mi... ¿Quién soy? Benito Palacios Sánchez @pleonex Graduado en Ingeniería de Tecnologías de Telecomunicación Trabajo Fin de Grado sobre seguridad en videojuegos Miembro de IEEE Student Branch of Granada >6 años en el mundo del ROM Hacking Miembro de GradienWords Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 2 / 35
  • 3. Introducción Hello World! Programas de edición Reto Sobre mi... ¿Quién soy? Benito Palacios Sánchez @pleonex Graduado en Ingeniería de Tecnologías de Telecomunicación Trabajo Fin de Grado sobre seguridad en videojuegos Miembro de IEEE Student Branch of Granada >6 años en el mundo del ROM Hacking Miembro de GradienWords Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 2 / 35
  • 4. Introducción Hello World! Programas de edición Reto Sobre mi... ¿Quién soy? Benito Palacios Sánchez @pleonex Graduado en Ingeniería de Tecnologías de Telecomunicación Trabajo Fin de Grado sobre seguridad en videojuegos Miembro de IEEE Student Branch of Granada >6 años en el mundo del ROM Hacking Miembro de GradienWords Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 2 / 35
  • 5. Introducción Hello World! Programas de edición Reto Sobre mi... ¿Quién soy? Benito Palacios Sánchez @pleonex Graduado en Ingeniería de Tecnologías de Telecomunicación Trabajo Fin de Grado sobre seguridad en videojuegos Miembro de IEEE Student Branch of Granada >6 años en el mundo del ROM Hacking Miembro de GradienWords Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 2 / 35
  • 6. Introducción Hello World! Programas de edición Reto Sobre mi... ¿Quién soy? Benito Palacios Sánchez @pleonex Graduado en Ingeniería de Tecnologías de Telecomunicación Trabajo Fin de Grado sobre seguridad en videojuegos Miembro de IEEE Student Branch of Granada >6 años en el mundo del ROM Hacking Miembro de GradienWords Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 2 / 35
  • 7. Introducción Hello World! Programas de edición Reto Mis proyectos Tinke Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 3 / 35
  • 8. Introducción Hello World! Programas de edición Reto Mis proyectos Ninokuni: El Mago de las Tinieblas Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 4 / 35
  • 9. Introducción Hello World! Programas de edición Reto Mis proyectos Fan traducciones Pokémon Conquest Final Fantasy: Four Heroes Profesor Layton: London Life Shining Force Feather Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 5 / 35
  • 10. Introducción Hello World! Programas de edición Reto Mis proyectos Fan traducciones Pokémon Conquest Final Fantasy: Four Heroes Profesor Layton: London Life Shining Force Feather Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 5 / 35
  • 11. Introducción Hello World! Programas de edición Reto Mis proyectos Fan traducciones Pokémon Conquest Final Fantasy: Four Heroes Profesor Layton: London Life Shining Force Feather Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 5 / 35
  • 12. Introducción Hello World! Programas de edición Reto Mis proyectos Fan traducciones Pokémon Conquest Final Fantasy: Four Heroes Profesor Layton: London Life Shining Force Feather Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 5 / 35
  • 13. Introducción Hello World! Programas de edición Reto ¿Qué es ROM Hacking? Érase una vez... Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 6 / 35
  • 14. Introducción Hello World! Programas de edición Reto ¿Qué es ROM Hacking? ¿Qué es un fichero? ¿ ? Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 7 / 35
  • 15. Introducción Hello World! Programas de edición Reto ¿Qué es ROM Hacking? ¿Qué hay dentro de un fichero? ¿Qué hay para que veamos... ...imágenes? ...vídeos? ...música? ¿Cómo lo vemos eso? Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 8 / 35
  • 16. Introducción Hello World! Programas de edición Reto ¿Qué es ROM Hacking? ¿Qué hay dentro de un fichero? ¿Qué hay para que veamos... ...imágenes? ...vídeos? ...música? ¿Cómo lo vemos eso? Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 8 / 35
  • 17. Introducción Hello World! Programas de edición Reto ¿Qué es ROM Hacking? ¿Qué hay dentro de un fichero? ¿Qué hay para que veamos... ...imágenes? ...vídeos? ...música? ¿Cómo lo vemos eso? Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 8 / 35
  • 18. Introducción Hello World! Programas de edición Reto ¿Qué es ROM Hacking? ¿Qué hay dentro de un fichero? ¿Qué hay para que veamos... ...imágenes? ...vídeos? ...música? ¿Cómo lo vemos eso? Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 8 / 35
  • 19. Introducción Hello World! Programas de edición Reto ¿Qué es ROM Hacking? ¿Qué hay dentro de un fichero? ¿Qué hay para que veamos... ...imágenes? ...vídeos? ...música? ¿Cómo lo vemos eso? Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 8 / 35
  • 20. Introducción Hello World! Programas de edición Reto ¿Qué es ROM Hacking? La parte cruda de los archivos Figura: BMP visto con editor hexadecimal HxD Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 9 / 35
  • 21. Introducción Hello World! Programas de edición Reto ¿Qué es ROM Hacking? Especificaciones (BMP) Posición Tamaño Descripción Cabecera estándar 0x00 0x02 Magic stamp: BM 0x02 0x04 Tamaño del fichero 0x06 0x04 Reservado 0x0A 0x04 Puntero a los datos de la imagen Cabecera DIB 0x00 0x04 Tamaño de esta cabecera 0x04 0x04 Ancho de la imagen 0x06 0x04 Alto de la imagen 0x08 0x02 Número de planos de color (1) 0x0A 0x02 Número de bits por píxel Paleta de colores Píxeles Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 10 / 35
  • 22. Introducción Hello World! Programas de edición Reto ¿Qué es ROM Hacking? Especificaciones (BMP) 1 Cabecera estándar 1 Magic stamp 2 Tamaño fichero 3 Reservado 4 Puntero datos 2 Cabecera DIB 1 Tamaño DIB 2 Ancho 3 Alto 4 Planos de color 5 BPP 6 Meta-datos 3 Paleta 4 Píxeles Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 11 / 35
  • 23. Introducción Hello World! Programas de edición Reto ¿Qué es ROM Hacking? Especificaciones (BMP) 1 Cabecera estándar 1 Magic stamp 2 Tamaño fichero 3 Reservado 4 Puntero datos 2 Cabecera DIB 1 Tamaño DIB 2 Ancho 3 Alto 4 Planos de color 5 BPP 6 Meta-datos 3 Paleta 4 Píxeles Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 11 / 35
  • 24. Introducción Hello World! Programas de edición Reto ¿Qué es ROM Hacking? Especificaciones (BMP) 1 Cabecera estándar 1 Magic stamp 2 Tamaño fichero 3 Reservado 4 Puntero datos 2 Cabecera DIB 1 Tamaño DIB 2 Ancho 3 Alto 4 Planos de color 5 BPP 6 Meta-datos 3 Paleta 4 Píxeles Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 11 / 35
  • 25. Introducción Hello World! Programas de edición Reto ¿Qué es ROM Hacking? Especificaciones (BMP) 1 Cabecera estándar 1 Magic stamp 2 Tamaño fichero 3 Reservado 4 Puntero datos 2 Cabecera DIB 1 Tamaño DIB 2 Ancho 3 Alto 4 Planos de color 5 BPP 6 Meta-datos 3 Paleta 4 Píxeles Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 11 / 35
  • 26. Introducción Hello World! Programas de edición Reto ¿Qué es ROM Hacking? Especificaciones (BMP) 1 Cabecera estándar 1 Magic stamp 2 Tamaño fichero 3 Reservado 4 Puntero datos 2 Cabecera DIB 1 Tamaño DIB 2 Ancho 3 Alto 4 Planos de color 5 BPP 6 Meta-datos 3 Paleta 4 Píxeles Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 11 / 35
  • 27. Introducción Hello World! Programas de edición Reto ¿Qué es ROM Hacking? Especificaciones (BMP) 1 Cabecera estándar 1 Magic stamp 2 Tamaño fichero 3 Reservado 4 Puntero datos 2 Cabecera DIB 1 Tamaño DIB 2 Ancho 3 Alto 4 Planos de color 5 BPP 6 Meta-datos 3 Paleta 4 Píxeles Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 11 / 35
  • 28. Introducción Hello World! Programas de edición Reto ¿Qué es ROM Hacking? Especificaciones (BMP) 1 Cabecera estándar 1 Magic stamp 2 Tamaño fichero 3 Reservado 4 Puntero datos 2 Cabecera DIB 1 Tamaño DIB 2 Ancho 3 Alto 4 Planos de color 5 BPP 6 Meta-datos 3 Paleta 4 Píxeles Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 11 / 35
  • 29. Introducción Hello World! Programas de edición Reto ¿Qué es ROM Hacking? Especificaciones (BMP) 1 Cabecera estándar 1 Magic stamp 2 Tamaño fichero 3 Reservado 4 Puntero datos 2 Cabecera DIB 1 Tamaño DIB 2 Ancho 3 Alto 4 Planos de color 5 BPP 6 Meta-datos 3 Paleta 4 Píxeles Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 11 / 35
  • 30. Introducción Hello World! Programas de edición Reto ¿Qué es ROM Hacking? Especificaciones (BMP) 1 Cabecera estándar 1 Magic stamp 2 Tamaño fichero 3 Reservado 4 Puntero datos 2 Cabecera DIB 1 Tamaño DIB 2 Ancho 3 Alto 4 Planos de color 5 BPP 6 Meta-datos 3 Paleta 4 Píxeles Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 11 / 35
  • 31. Introducción Hello World! Programas de edición Reto ¿Qué es ROM Hacking? Especificaciones (BMP) 1 Cabecera estándar 1 Magic stamp 2 Tamaño fichero 3 Reservado 4 Puntero datos 2 Cabecera DIB 1 Tamaño DIB 2 Ancho 3 Alto 4 Planos de color 5 BPP 6 Meta-datos 3 Paleta 4 Píxeles Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 11 / 35
  • 32. Introducción Hello World! Programas de edición Reto ¿Qué es ROM Hacking? Especificaciones (BMP) 1 Cabecera estándar 1 Magic stamp 2 Tamaño fichero 3 Reservado 4 Puntero datos 2 Cabecera DIB 1 Tamaño DIB 2 Ancho 3 Alto 4 Planos de color 5 BPP 6 Meta-datos 3 Paleta 4 Píxeles Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 11 / 35
  • 33. Introducción Hello World! Programas de edición Reto ¿Qué es ROM Hacking? Especificaciones (BMP) 1 Cabecera estándar 1 Magic stamp 2 Tamaño fichero 3 Reservado 4 Puntero datos 2 Cabecera DIB 1 Tamaño DIB 2 Ancho 3 Alto 4 Planos de color 5 BPP 6 Meta-datos 3 Paleta 4 Píxeles Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 11 / 35
  • 34. Introducción Hello World! Programas de edición Reto ¿Qué es ROM Hacking? Especificaciones (BMP) 1 Cabecera estándar 1 Magic stamp 2 Tamaño fichero 3 Reservado 4 Puntero datos 2 Cabecera DIB 1 Tamaño DIB 2 Ancho 3 Alto 4 Planos de color 5 BPP 6 Meta-datos 3 Paleta 4 Píxeles Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 11 / 35
  • 35. Introducción Hello World! Programas de edición Reto ¿Qué es ROM Hacking? Especificaciones (BMP) 1 Cabecera estándar 1 Magic stamp 2 Tamaño fichero 3 Reservado 4 Puntero datos 2 Cabecera DIB 1 Tamaño DIB 2 Ancho 3 Alto 4 Planos de color 5 BPP 6 Meta-datos 3 Paleta 4 Píxeles Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 11 / 35
  • 36. Introducción Hello World! Programas de edición Reto ¿Qué es ROM Hacking? ¿Qué hay dentro de un juego? ¿ ? Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 12 / 35
  • 37. Introducción Hello World! Programas de edición Reto ¿Qué es ROM Hacking? ¿Qué hay dentro de un juego? ¿ ? → Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 12 / 35
  • 38. Introducción Hello World! Programas de edición Reto ¿Qué es ROM Hacking? La parte cruda de un juego Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 13 / 35
  • 39. Introducción Hello World! Programas de edición Reto ¿Qué es ROM Hacking? ¿Y ahora? ¿Y la especificación? Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 14 / 35
  • 40. Introducción Hello World! Programas de edición Reto ¿Qué es ROM Hacking? ROM Hacking Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 15 / 35
  • 41. Introducción Hello World! Programas de edición Reto ¿Qué es ROM Hacking? ROM Hacking Propósito: Fan traducciones Mods Extraer recursos Curiosidad Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 16 / 35
  • 42. Introducción Hello World! Programas de edición Reto ¿Qué es ROM Hacking? ROM Hacking Propósito: Fan traducciones Mods Extraer recursos Curiosidad Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 16 / 35
  • 43. Introducción Hello World! Programas de edición Reto ¿Qué es ROM Hacking? ROM Hacking Propósito: Fan traducciones Mods Extraer recursos Curiosidad Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 16 / 35
  • 44. Introducción Hello World! Programas de edición Reto ¿Qué es ROM Hacking? ROM Hacking Propósito: Fan traducciones Mods Extraer recursos Curiosidad Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 16 / 35
  • 45. Introducción Hello World! Programas de edición Reto ¿Qué es ROM Hacking? ROM Hacking Propósito: Fan traducciones Mods Extraer recursos Curiosidad Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 16 / 35
  • 46. Introducción Hello World! Programas de edición Reto Temario Contenido del curso Introducción al ROM Hacking 1 Primeros pasos 1 ¿Qué es ROM Hacking? 2 Hello World! 3 Reto 2 Formatos comunes en juegos 1 Textos 2 Imágenes 3 Tipografías y audios 4 Reto Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 17 / 35
  • 47. Introducción Hello World! Programas de edición Reto Temario Contenido del curso Introducción al ROM Hacking 1 Primeros pasos 1 ¿Qué es ROM Hacking? 2 Hello World! 3 Reto 2 Formatos comunes en juegos 1 Textos 2 Imágenes 3 Tipografías y audios 4 Reto Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 17 / 35
  • 48. Introducción Hello World! Programas de edición Reto Hello World! ROM HACKING TIME! Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 18 / 35
  • 49. Introducción Hello World! Programas de edición Reto NitroROM Especificación de juegos de NDS GBATEK Gameboy Advance / Nintendo DS / DSi - Technical Info Trabajo de Martin Korth en el desarrollo de no$gba. http://problemkaputt.de/gbatek.htm Cabecera Binario ARM9 Overlays ARM9 Binario ARM7 Overlays ARM7 File Name Table File Allocation Table Banner Archivos Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 19 / 35
  • 50. Introducción Hello World! Programas de edición Reto NitroROM Especificación de juegos de NDS GBATEK Gameboy Advance / Nintendo DS / DSi - Technical Info Trabajo de Martin Korth en el desarrollo de no$gba. http://problemkaputt.de/gbatek.htm Cabecera Binario ARM9 Overlays ARM9 Binario ARM7 Overlays ARM7 File Name Table File Allocation Table Banner Archivos Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 19 / 35
  • 51. Introducción Hello World! Programas de edición Reto NitroROM Especificación de juegos de NDS GBATEK Gameboy Advance / Nintendo DS / DSi - Technical Info Trabajo de Martin Korth en el desarrollo de no$gba. http://problemkaputt.de/gbatek.htm Cabecera Binario ARM9 Overlays ARM9 Binario ARM7 Overlays ARM7 File Name Table File Allocation Table Banner Archivos Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 19 / 35
  • 52. Introducción Hello World! Programas de edición Reto NitroROM Especificación de juegos de NDS GBATEK Gameboy Advance / Nintendo DS / DSi - Technical Info Trabajo de Martin Korth en el desarrollo de no$gba. http://problemkaputt.de/gbatek.htm Cabecera Binario ARM9 Overlays ARM9 Binario ARM7 Overlays ARM7 File Name Table File Allocation Table Banner Archivos Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 19 / 35
  • 53. Introducción Hello World! Programas de edición Reto NitroROM Especificación de juegos de NDS GBATEK Gameboy Advance / Nintendo DS / DSi - Technical Info Trabajo de Martin Korth en el desarrollo de no$gba. http://problemkaputt.de/gbatek.htm Cabecera Binario ARM9 Overlays ARM9 Binario ARM7 Overlays ARM7 File Name Table File Allocation Table Banner Archivos Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 19 / 35
  • 54. Introducción Hello World! Programas de edición Reto NitroROM Especificación de juegos de NDS GBATEK Gameboy Advance / Nintendo DS / DSi - Technical Info Trabajo de Martin Korth en el desarrollo de no$gba. http://problemkaputt.de/gbatek.htm Cabecera Binario ARM9 Overlays ARM9 Binario ARM7 Overlays ARM7 File Name Table File Allocation Table Banner Archivos Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 19 / 35
  • 55. Introducción Hello World! Programas de edición Reto Conceptos Números hexadecimales Decimal: 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 10 11 12 13 ... Binario: 0 1 0 1 10 11 100 101 110 111 1000 ... 0 1 2 3 4 5 6 7 8 Octal: 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 10 11 12 13 14 ... 0 1 2 3 4 5 6 7 8 9 10 11 12 Hexadecimal: 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 1 2 3 4 5 6 7 8 9 A B C D E F 10 11 12 ... 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 20 / 35
  • 56. Introducción Hello World! Programas de edición Reto Conceptos Números hexadecimales Decimal: 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 10 11 12 13 ... Binario: 0 1 0 1 10 11 100 101 110 111 1000 ... 0 1 2 3 4 5 6 7 8 Octal: 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 10 11 12 13 14 ... 0 1 2 3 4 5 6 7 8 9 10 11 12 Hexadecimal: 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 1 2 3 4 5 6 7 8 9 A B C D E F 10 11 12 ... 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 20 / 35
  • 57. Introducción Hello World! Programas de edición Reto Conceptos Números hexadecimales Decimal: 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 10 11 12 13 ... Binario: 0 1 0 1 10 11 100 101 110 111 1000 ... 0 1 2 3 4 5 6 7 8 Octal: 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 10 11 12 13 14 ... 0 1 2 3 4 5 6 7 8 9 10 11 12 Hexadecimal: 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 1 2 3 4 5 6 7 8 9 A B C D E F 10 11 12 ... 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 20 / 35
  • 58. Introducción Hello World! Programas de edición Reto Conceptos Números hexadecimales Decimal: 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 10 11 12 13 ... Binario: 0 1 0 1 10 11 100 101 110 111 1000 ... 0 1 2 3 4 5 6 7 8 Octal: 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 10 11 12 13 14 ... 0 1 2 3 4 5 6 7 8 9 10 11 12 Hexadecimal: 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 1 2 3 4 5 6 7 8 9 A B C D E F 10 11 12 ... 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 20 / 35
  • 59. Introducción Hello World! Programas de edición Reto Conceptos Números hexadecimales Decimal: 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 10 11 12 13 ... Binario: 0 1 0 1 10 11 100 101 110 111 1000 ... 0 1 2 3 4 5 6 7 8 Octal: 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 10 11 12 13 14 ... 0 1 2 3 4 5 6 7 8 9 10 11 12 Hexadecimal: 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 1 2 3 4 5 6 7 8 9 A B C D E F 10 11 12 ... 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 20 / 35
  • 60. Introducción Hello World! Programas de edición Reto Conceptos Números hexadecimales Prefijo 0x o sufijo h 0xA, FBh, 0xCA, FEh Fácil representación de enteros: Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 21 / 35
  • 61. Introducción Hello World! Programas de edición Reto Conceptos Números hexadecimales Prefijo 0x o sufijo h 0xA, FBh, 0xCA, FEh Fácil representación de enteros: # Rango Ejemplo Bytes Bits Otros nombres 1 [0, 15] 0xC ½ 4 2 [0, 255] 0xC0 1 8 byte 4 [0, 65,535] 0x0200 2 16 ushort, WORD 8 [0, 4,294,967,295] 0xB7000000 4 32 uint, DWORD Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 21 / 35
  • 62. Introducción Hello World! Programas de edición Reto Conceptos Endianness Orden en el que se guardan los bytes que forman valores mayores a 8 bits (ushort, uint, ulong, ...). MSB →LSB. Big Endian: Little Endian (más común): Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 22 / 35
  • 63. Introducción Hello World! Programas de edición Reto Conceptos Endianness Orden en el que se guardan los bytes que forman valores mayores a 8 bits (ushort, uint, ulong, ...). MSB →LSB. Big Endian: Little Endian (más común): Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 22 / 35
  • 64. Introducción Hello World! Programas de edición Reto Conceptos Endianness Orden en el que se guardan los bytes que forman valores mayores a 8 bits (ushort, uint, ulong, ...). MSB →LSB. Big Endian: Little Endian (más común): Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 22 / 35
  • 65. Introducción Hello World! Programas de edición Reto Investigando un juego Tinke Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 23 / 35
  • 66. Introducción Hello World! Programas de edición Reto Investigando un juego Tinke Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 23 / 35
  • 67. Introducción Hello World! Programas de edición Reto Investigando un juego Tipos de ficheros Paleta Tiles Map Sprites Animaciones Modelos 3D Texturas Imagen completa Texto Tipografía Scripts Archivo comprimido Paquete Música Vídeo Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 24 / 35
  • 68. Introducción Hello World! Programas de edición Reto Editar juegos Modificando textos 1 Localizar texto a modificar 2 Abrir juego en Tinke 3 Localizar textos 4 Extraer archivo 5 Modificar con editor 6 Importar archivo 7 Generar ROM 8 Probar en DeSmuME Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 25 / 35
  • 69. Introducción Hello World! Programas de edición Reto Editar juegos Modificando textos 1 Localizar texto a modificar 2 Abrir juego en Tinke 3 Localizar textos 4 Extraer archivo 5 Modificar con editor 6 Importar archivo 7 Generar ROM 8 Probar en DeSmuME Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 25 / 35
  • 70. Introducción Hello World! Programas de edición Reto Editar juegos Modificando textos 1 Localizar texto a modificar 2 Abrir juego en Tinke 3 Localizar textos 4 Extraer archivo 5 Modificar con editor 6 Importar archivo 7 Generar ROM 8 Probar en DeSmuME Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 25 / 35
  • 71. Introducción Hello World! Programas de edición Reto Editar juegos Modificando textos 1 Localizar texto a modificar 2 Abrir juego en Tinke 3 Localizar textos 4 Extraer archivo 5 Modificar con editor 6 Importar archivo 7 Generar ROM 8 Probar en DeSmuME Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 25 / 35
  • 72. Introducción Hello World! Programas de edición Reto Editar juegos Modificando textos 1 Localizar texto a modificar 2 Abrir juego en Tinke 3 Localizar textos 4 Extraer archivo 5 Modificar con editor 6 Importar archivo 7 Generar ROM 8 Probar en DeSmuME Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 25 / 35
  • 73. Introducción Hello World! Programas de edición Reto Editar juegos Modificando textos 1 Localizar texto a modificar 2 Abrir juego en Tinke 3 Localizar textos 4 Extraer archivo 5 Modificar con editor 6 Importar archivo 7 Generar ROM 8 Probar en DeSmuME Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 25 / 35
  • 74. Introducción Hello World! Programas de edición Reto Editar juegos Modificando textos 1 Localizar texto a modificar 2 Abrir juego en Tinke 3 Localizar textos 4 Extraer archivo 5 Modificar con editor 6 Importar archivo 7 Generar ROM 8 Probar en DeSmuME Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 25 / 35
  • 75. Introducción Hello World! Programas de edición Reto Editar juegos Modificando textos 1 Localizar texto a modificar 2 Abrir juego en Tinke 3 Localizar textos 4 Extraer archivo 5 Modificar con editor 6 Importar archivo 7 Generar ROM 8 Probar en DeSmuME Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 25 / 35
  • 76. Introducción Hello World! Programas de edición Reto Editar juegos Modificando textos 1 Localizar texto a modificar 2 Abrir juego en Tinke 3 Localizar textos 4 Extraer archivo 5 Modificar con editor 6 Importar archivo 7 Generar ROM 8 Probar en DeSmuME Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 25 / 35
  • 77. Introducción Hello World! Programas de edición Reto Publicar cambios Parches Solo contienen las modificaciones No subir el juego modificado Tamaño pequeño (entre 1 y 20 MB) Formatos comunes: IPS y xDelta Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 26 / 35
  • 78. Introducción Hello World! Programas de edición Reto Publicar cambios Parches Solo contienen las modificaciones No subir el juego modificado Tamaño pequeño (entre 1 y 20 MB) Formatos comunes: IPS y xDelta Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 26 / 35
  • 79. Introducción Hello World! Programas de edición Reto Publicar cambios Parches Solo contienen las modificaciones No subir el juego modificado Tamaño pequeño (entre 1 y 20 MB) Formatos comunes: IPS y xDelta Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 26 / 35
  • 80. Introducción Hello World! Programas de edición Reto Publicar cambios Parches Solo contienen las modificaciones No subir el juego modificado Tamaño pequeño (entre 1 y 20 MB) Formatos comunes: IPS y xDelta Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 26 / 35
  • 81. Introducción Hello World! Programas de edición Reto Publicar cambios xDelta Windows: xdelta UI http://www.romhacking.net/utilities/598/ Mac OS X: Multipatch http://projects.sappharad.com/tools/ multipatch.html Linux: xdelta Parchear: xdelta -d -s ORIGINAL PARCHE Crear parche: xdelta -9 -s ORIGINAL MODIFICADO PARCHE Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 27 / 35
  • 82. Introducción Hello World! Programas de edición Reto Publicar cambios xDelta Windows: xdelta UI http://www.romhacking.net/utilities/598/ Mac OS X: Multipatch http://projects.sappharad.com/tools/ multipatch.html Linux: xdelta Parchear: xdelta -d -s ORIGINAL PARCHE Crear parche: xdelta -9 -s ORIGINAL MODIFICADO PARCHE Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 27 / 35
  • 83. Introducción Hello World! Programas de edición Reto Publicar cambios xDelta Windows: xdelta UI http://www.romhacking.net/utilities/598/ Mac OS X: Multipatch http://projects.sappharad.com/tools/ multipatch.html Linux: xdelta Parchear: xdelta -d -s ORIGINAL PARCHE Crear parche: xdelta -9 -s ORIGINAL MODIFICADO PARCHE Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 27 / 35
  • 84. Introducción Hello World! Programas de edición Reto Pokémon Advanced Map Proyecto: http://ampage.no-ip.info/ Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 28 / 35
  • 85. Introducción Hello World! Programas de edición Reto Pokémon Spiky’s DS Map Editor Proyecto: https://github.com/MarcRiera/SDSME Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 29 / 35
  • 86. Introducción Hello World! Programas de edición Reto New Super Mario Bros DS NSMB Editor Proyecto: https://github.com/Dirbaio/NSMB-Editor Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 30 / 35
  • 87. Introducción Hello World! Programas de edición Reto Super Mario 64 DS Super Mario 64 Editor Descarga: http://www.romhacking.net/utilities/764 Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 31 / 35
  • 88. Introducción Hello World! Programas de edición Reto Ni no kuni NinoCompiler Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 32 / 35
  • 89. Introducción Hello World! Programas de edición Reto Ni no kuni NinoCompiler Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 32 / 35
  • 90. Introducción Hello World! Programas de edición Reto Ni no kuni NinoCompiler → Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 32 / 35
  • 91. Introducción Hello World! Programas de edición Reto Ni no kuni NinoCompiler → Proyecto: http://gradienwords.com GitHub: https://github.com/pleonex/Ninokuni Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 32 / 35
  • 92. Introducción Hello World! Programas de edición Reto Reto CHALLENGE TIME! Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 33 / 35
  • 93. Introducción Hello World! Programas de edición Reto Puzles en Profesor Layton Objetivo Crear un puzle Título (script/puzzletitle) Localización (script/qinfo) Descripción (qtext) Pistas (qtext) Respuesta (qtext) Picarats (script/pcarot) Entrada (script/qscript) Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 34 / 35
  • 94. Introducción Hello World! Programas de edición Reto Puzles en Profesor Layton Objetivo Crear un puzle Título (script/puzzletitle) Localización (script/qinfo) Descripción (qtext) Pistas (qtext) Respuesta (qtext) Picarats (script/pcarot) Entrada (script/qscript) Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 34 / 35
  • 95. Introducción Hello World! Programas de edición Reto Puzles en Profesor Layton Objetivo Crear un puzle Título (script/puzzletitle) Localización (script/qinfo) Descripción (qtext) Pistas (qtext) Respuesta (qtext) Picarats (script/pcarot) Entrada (script/qscript) Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 34 / 35
  • 96. Introducción Hello World! Programas de edición Reto Puzles en Profesor Layton Objetivo Crear un puzle Título (script/puzzletitle) Localización (script/qinfo) Descripción (qtext) Pistas (qtext) Respuesta (qtext) Picarats (script/pcarot) Entrada (script/qscript) Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 34 / 35
  • 97. Introducción Hello World! Programas de edición Reto Puzles en Profesor Layton Objetivo Crear un puzle Título (script/puzzletitle) Localización (script/qinfo) Descripción (qtext) Pistas (qtext) Respuesta (qtext) Picarats (script/pcarot) Entrada (script/qscript) Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 34 / 35
  • 98. Introducción Hello World! Programas de edición Reto Puzles en Profesor Layton Objetivo Crear un puzle Título (script/puzzletitle) Localización (script/qinfo) Descripción (qtext) Pistas (qtext) Respuesta (qtext) Picarats (script/pcarot) Entrada (script/qscript) Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 34 / 35
  • 99. Introducción Hello World! Programas de edición Reto Puzles en Profesor Layton Objetivo Crear un puzle Título (script/puzzletitle) Localización (script/qinfo) Descripción (qtext) Pistas (qtext) Respuesta (qtext) Picarats (script/pcarot) Entrada (script/qscript) Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 34 / 35
  • 100. Introducción Hello World! Programas de edición Reto Puzles en Profesor Layton Pistas sobre los scripts Primeros 4 bytes es el tamaño del archivo Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 35 / 35
  • 101. Introducción Hello World! Programas de edición Reto Puzles en Profesor Layton Pistas sobre los scripts Primeros 4 bytes es el tamaño del archivo Se compone de múltiples comandos + argumentos Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 35 / 35
  • 102. Introducción Hello World! Programas de edición Reto Puzles en Profesor Layton Pistas sobre los scripts Primeros 4 bytes es el tamaño del archivo Se compone de múltiples comandos + argumentos Despues de 0x0000 va el ID del comando Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 35 / 35
  • 103. Introducción Hello World! Programas de edición Reto Puzles en Profesor Layton Pistas sobre los scripts Primeros 4 bytes es el tamaño del archivo Se compone de múltiples comandos + argumentos Despues de 0x0000 va el ID del comando El formato de los argumentos es tipo + valor Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 35 / 35
  • 104. Introducción Hello World! Programas de edición Reto Puzles en Profesor Layton Pistas sobre los scripts Primeros 4 bytes es el tamaño del archivo Se compone de múltiples comandos + argumentos Despues de 0x0000 va el ID del comando El formato de los argumentos es tipo + valor El tipo 0x0001 es un entero de 32 bits Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 35 / 35
  • 105. Introducción Hello World! Programas de edición Reto Puzles en Profesor Layton Pistas sobre los scripts Primeros 4 bytes es el tamaño del archivo Se compone de múltiples comandos + argumentos Despues de 0x0000 va el ID del comando El formato de los argumentos es tipo + valor El tipo 0x0001 es un entero de 32 bits El tipo 0x0003 es una cadena de caracteres de longitud variable Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 35 / 35
  • 106. Introducción Hello World! Programas de edición Reto Puzles en Profesor Layton Pistas sobre los scripts Primeros 4 bytes es el tamaño del archivo Se compone de múltiples comandos + argumentos Despues de 0x0000 va el ID del comando El formato de los argumentos es tipo + valor El tipo 0x0001 es un entero de 32 bits El tipo 0x0003 es una cadena de caracteres de longitud variable Los scripts terminan con 0x000C Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 35 / 35