106
Rama estudiantil de IEEE en la UGR Introducción al ROM Hacking: Primeros pasos Benito Palacios Sánchez [email protected] de marzo de

Introducción al ROM Hacking - Parte 1

Embed Size (px)

Citation preview

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

Rama estudiantil de IEEE en la UGR

Introducción al ROM Hacking:Primeros pasos

Benito Palacios Sá[email protected]

30 de marzo de 2016

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

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ónTrabajo Fin de Grado sobre seguridad en videojuegos

Miembro de IEEE Student Branch of Granada>6 años en el mundo del ROM HackingMiembro de GradienWords

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

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

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ónTrabajo Fin de Grado sobre seguridad en videojuegos

Miembro de IEEE Student Branch of Granada>6 años en el mundo del ROM HackingMiembro de GradienWords

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

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

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ónTrabajo Fin de Grado sobre seguridad en videojuegos

Miembro de IEEE Student Branch of Granada>6 años en el mundo del ROM HackingMiembro de GradienWords

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

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

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ónTrabajo Fin de Grado sobre seguridad en videojuegos

Miembro de IEEE Student Branch of Granada>6 años en el mundo del ROM HackingMiembro de GradienWords

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

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

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ónTrabajo Fin de Grado sobre seguridad en videojuegos

Miembro de IEEE Student Branch of Granada>6 años en el mundo del ROM HackingMiembro de GradienWords

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

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

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

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

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

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

Introducción Hello World! Programas de edición Reto

Mis proyectos

Fan traducciones

Pokémon ConquestFinal Fantasy: Four Heroes

Profesor Layton: London LifeShining Force Feather

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

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

Introducción Hello World! Programas de edición Reto

Mis proyectos

Fan traducciones

Pokémon ConquestFinal Fantasy: Four Heroes

Profesor Layton: London LifeShining Force Feather

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

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

Introducción Hello World! Programas de edición Reto

Mis proyectos

Fan traducciones

Pokémon ConquestFinal Fantasy: Four Heroes

Profesor Layton: London LifeShining Force Feather

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

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

Introducción Hello World! Programas de edición Reto

Mis proyectos

Fan traducciones

Pokémon ConquestFinal Fantasy: Four Heroes

Profesor Layton: London LifeShining Force Feather

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

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

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

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

Introducción Hello World! Programas de edición Reto

¿Qué es ROM Hacking?

¿Qué es un �chero?

¿ ?Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 7 / 35

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

Introducción Hello World! Programas de edición Reto

¿Qué es ROM Hacking?

¿Qué hay dentro de un �chero?

¿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

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

Introducción Hello World! Programas de edición Reto

¿Qué es ROM Hacking?

¿Qué hay dentro de un �chero?

¿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

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

Introducción Hello World! Programas de edición Reto

¿Qué es ROM Hacking?

¿Qué hay dentro de un �chero?

¿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

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

Introducción Hello World! Programas de edición Reto

¿Qué es ROM Hacking?

¿Qué hay dentro de un �chero?

¿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

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

Introducción Hello World! Programas de edición Reto

¿Qué es ROM Hacking?

¿Qué hay dentro de un �chero?

¿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

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

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 HxDBenito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 9 / 35

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

Introducción Hello World! Programas de edición Reto

¿Qué es ROM Hacking?

Especi�caciones (BMP)

Posición Tamaño DescripciónCabecera estándar

0x00 0x02 Magic stamp: BM0x02 0x04 Tamaño del �chero0x06 0x04 Reservado0x0A 0x04 Puntero a los datos de la imagen

Cabecera DIB0x00 0x04 Tamaño de esta cabecera0x04 0x04 Ancho de la imagen0x06 0x04 Alto de la imagen0x08 0x02 Número de planos de color (1)0x0A 0x02 Número de bits por píxel

Paleta de coloresPíxeles

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

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

Introducción Hello World! Programas de edición Reto

¿Qué es ROM Hacking?

Especi�caciones (BMP)

1 Cabecera estándar1 Magic stamp2 Tamaño �chero3 Reservado4 Puntero datos

2 Cabecera DIB1 Tamaño DIB2 Ancho3 Alto4 Planos de color5 BPP6 Meta-datos

3 Paleta4 Píxeles

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

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

Introducción Hello World! Programas de edición Reto

¿Qué es ROM Hacking?

Especi�caciones (BMP)

1 Cabecera estándar1 Magic stamp2 Tamaño �chero3 Reservado4 Puntero datos

2 Cabecera DIB1 Tamaño DIB2 Ancho3 Alto4 Planos de color5 BPP6 Meta-datos

3 Paleta4 Píxeles

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

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

Introducción Hello World! Programas de edición Reto

¿Qué es ROM Hacking?

Especi�caciones (BMP)

1 Cabecera estándar1 Magic stamp2 Tamaño �chero3 Reservado4 Puntero datos

2 Cabecera DIB1 Tamaño DIB2 Ancho3 Alto4 Planos de color5 BPP6 Meta-datos

3 Paleta4 Píxeles

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

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

Introducción Hello World! Programas de edición Reto

¿Qué es ROM Hacking?

Especi�caciones (BMP)

1 Cabecera estándar1 Magic stamp2 Tamaño �chero3 Reservado4 Puntero datos

2 Cabecera DIB1 Tamaño DIB2 Ancho3 Alto4 Planos de color5 BPP6 Meta-datos

3 Paleta4 Píxeles

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

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

Introducción Hello World! Programas de edición Reto

¿Qué es ROM Hacking?

Especi�caciones (BMP)

1 Cabecera estándar1 Magic stamp2 Tamaño �chero3 Reservado4 Puntero datos

2 Cabecera DIB1 Tamaño DIB2 Ancho3 Alto4 Planos de color5 BPP6 Meta-datos

3 Paleta4 Píxeles

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

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

Introducción Hello World! Programas de edición Reto

¿Qué es ROM Hacking?

Especi�caciones (BMP)

1 Cabecera estándar1 Magic stamp2 Tamaño �chero3 Reservado4 Puntero datos

2 Cabecera DIB1 Tamaño DIB2 Ancho3 Alto4 Planos de color5 BPP6 Meta-datos

3 Paleta4 Píxeles

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

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

Introducción Hello World! Programas de edición Reto

¿Qué es ROM Hacking?

Especi�caciones (BMP)

1 Cabecera estándar1 Magic stamp2 Tamaño �chero3 Reservado4 Puntero datos

2 Cabecera DIB1 Tamaño DIB2 Ancho3 Alto4 Planos de color5 BPP6 Meta-datos

3 Paleta4 Píxeles

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

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

Introducción Hello World! Programas de edición Reto

¿Qué es ROM Hacking?

Especi�caciones (BMP)

1 Cabecera estándar1 Magic stamp2 Tamaño �chero3 Reservado4 Puntero datos

2 Cabecera DIB1 Tamaño DIB2 Ancho3 Alto4 Planos de color5 BPP6 Meta-datos

3 Paleta4 Píxeles

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

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

Introducción Hello World! Programas de edición Reto

¿Qué es ROM Hacking?

Especi�caciones (BMP)

1 Cabecera estándar1 Magic stamp2 Tamaño �chero3 Reservado4 Puntero datos

2 Cabecera DIB1 Tamaño DIB2 Ancho3 Alto4 Planos de color5 BPP6 Meta-datos

3 Paleta4 Píxeles

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

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

Introducción Hello World! Programas de edición Reto

¿Qué es ROM Hacking?

Especi�caciones (BMP)

1 Cabecera estándar1 Magic stamp2 Tamaño �chero3 Reservado4 Puntero datos

2 Cabecera DIB1 Tamaño DIB2 Ancho3 Alto4 Planos de color5 BPP6 Meta-datos

3 Paleta4 Píxeles

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

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

Introducción Hello World! Programas de edición Reto

¿Qué es ROM Hacking?

Especi�caciones (BMP)

1 Cabecera estándar1 Magic stamp2 Tamaño �chero3 Reservado4 Puntero datos

2 Cabecera DIB1 Tamaño DIB2 Ancho3 Alto4 Planos de color5 BPP6 Meta-datos

3 Paleta4 Píxeles

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

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

Introducción Hello World! Programas de edición Reto

¿Qué es ROM Hacking?

Especi�caciones (BMP)

1 Cabecera estándar1 Magic stamp2 Tamaño �chero3 Reservado4 Puntero datos

2 Cabecera DIB1 Tamaño DIB2 Ancho3 Alto4 Planos de color5 BPP6 Meta-datos

3 Paleta4 Píxeles

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

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

Introducción Hello World! Programas de edición Reto

¿Qué es ROM Hacking?

Especi�caciones (BMP)

1 Cabecera estándar1 Magic stamp2 Tamaño �chero3 Reservado4 Puntero datos

2 Cabecera DIB1 Tamaño DIB2 Ancho3 Alto4 Planos de color5 BPP6 Meta-datos

3 Paleta4 Píxeles

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

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

Introducción Hello World! Programas de edición Reto

¿Qué es ROM Hacking?

Especi�caciones (BMP)

1 Cabecera estándar1 Magic stamp2 Tamaño �chero3 Reservado4 Puntero datos

2 Cabecera DIB1 Tamaño DIB2 Ancho3 Alto4 Planos de color5 BPP6 Meta-datos

3 Paleta4 Píxeles

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

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

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

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

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

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

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

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

Introducción Hello World! Programas de edición Reto

¿Qué es ROM Hacking?

¿Y ahora? ¿Y la especi�cación?

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

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

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

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

Introducción Hello World! Programas de edición Reto

¿Qué es ROM Hacking?

ROM Hacking

Propósito:Fan traduccionesModsExtraer recursosCuriosidad

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

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

Introducción Hello World! Programas de edición Reto

¿Qué es ROM Hacking?

ROM Hacking

Propósito:Fan traduccionesModsExtraer recursosCuriosidad

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

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

Introducción Hello World! Programas de edición Reto

¿Qué es ROM Hacking?

ROM Hacking

Propósito:Fan traduccionesModsExtraer recursosCuriosidad

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

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

Introducción Hello World! Programas de edición Reto

¿Qué es ROM Hacking?

ROM Hacking

Propósito:Fan traduccionesModsExtraer recursosCuriosidad

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

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

Introducción Hello World! Programas de edición Reto

¿Qué es ROM Hacking?

ROM Hacking

Propósito:Fan traduccionesModsExtraer recursosCuriosidad

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

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

Introducción Hello World! Programas de edición Reto

Temario

Contenido del curso

Introducción al ROM Hacking

1 Primeros pasos1 ¿Qué es ROM Hacking?2 Hello World!3 Reto

2 Formatos comunes en juegos1 Textos2 Imágenes3 Tipografías y audios4 Reto

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

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

Introducción Hello World! Programas de edición Reto

Temario

Contenido del curso

Introducción al ROM Hacking

1 Primeros pasos1 ¿Qué es ROM Hacking?2 Hello World!3 Reto

2 Formatos comunes en juegos1 Textos2 Imágenes3 Tipografías y audios4 Reto

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

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

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

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

Introducción Hello World! Programas de edición Reto

NitroROM

Especi�cación de juegos de NDS

GBATEKGameboy Advance / Nintendo DS / DSi - Technical InfoTrabajo de Martin Korth en el desarrollo de no$gba.

http://problemkaputt.de/gbatek.htm

CabeceraBinario ARM9Overlays ARM9

Binario ARM7Overlays ARM7File Name Table

File Allocation TableBannerArchivos

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

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

Introducción Hello World! Programas de edición Reto

NitroROM

Especi�cación de juegos de NDS

GBATEKGameboy Advance / Nintendo DS / DSi - Technical InfoTrabajo de Martin Korth en el desarrollo de no$gba.

http://problemkaputt.de/gbatek.htm

CabeceraBinario ARM9Overlays ARM9

Binario ARM7Overlays ARM7File Name Table

File Allocation TableBannerArchivos

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

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

Introducción Hello World! Programas de edición Reto

NitroROM

Especi�cación de juegos de NDS

GBATEKGameboy Advance / Nintendo DS / DSi - Technical InfoTrabajo de Martin Korth en el desarrollo de no$gba.

http://problemkaputt.de/gbatek.htm

CabeceraBinario ARM9Overlays ARM9

Binario ARM7Overlays ARM7File Name Table

File Allocation TableBannerArchivos

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

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

Introducción Hello World! Programas de edición Reto

NitroROM

Especi�cación de juegos de NDS

GBATEKGameboy Advance / Nintendo DS / DSi - Technical InfoTrabajo de Martin Korth en el desarrollo de no$gba.

http://problemkaputt.de/gbatek.htm

CabeceraBinario ARM9Overlays ARM9

Binario ARM7Overlays ARM7File Name Table

File Allocation TableBannerArchivos

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

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

Introducción Hello World! Programas de edición Reto

NitroROM

Especi�cación de juegos de NDS

GBATEKGameboy Advance / Nintendo DS / DSi - Technical InfoTrabajo de Martin Korth en el desarrollo de no$gba.

http://problemkaputt.de/gbatek.htm

CabeceraBinario ARM9Overlays ARM9

Binario ARM7Overlays ARM7File Name Table

File Allocation TableBannerArchivos

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

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

Introducción Hello World! Programas de edición Reto

NitroROM

Especi�cación de juegos de NDS

GBATEKGameboy Advance / Nintendo DS / DSi - Technical InfoTrabajo de Martin Korth en el desarrollo de no$gba.

http://problemkaputt.de/gbatek.htm

CabeceraBinario ARM9Overlays ARM9

Binario ARM7Overlays ARM7File Name Table

File Allocation TableBannerArchivos

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

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

Introducción Hello World! Programas de edición Reto

Conceptos

Números hexadecimales

Decimal: 0 1 2 3 4 5 6 7 8 90 1 2 3 4 5 6 7 8 9 10 11 12 13 ...

Binario: 0 10 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 70 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 F0 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

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

Introducción Hello World! Programas de edición Reto

Conceptos

Números hexadecimales

Decimal: 0 1 2 3 4 5 6 7 8 90 1 2 3 4 5 6 7 8 9 10 11 12 13 ...

Binario: 0 10 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 70 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 F0 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

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

Introducción Hello World! Programas de edición Reto

Conceptos

Números hexadecimales

Decimal: 0 1 2 3 4 5 6 7 8 90 1 2 3 4 5 6 7 8 9 10 11 12 13 ...

Binario: 0 10 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 70 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 F0 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

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

Introducción Hello World! Programas de edición Reto

Conceptos

Números hexadecimales

Decimal: 0 1 2 3 4 5 6 7 8 90 1 2 3 4 5 6 7 8 9 10 11 12 13 ...

Binario: 0 10 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 70 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 F0 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

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

Introducción Hello World! Programas de edición Reto

Conceptos

Números hexadecimales

Decimal: 0 1 2 3 4 5 6 7 8 90 1 2 3 4 5 6 7 8 9 10 11 12 13 ...

Binario: 0 10 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 70 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 F0 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

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

Introducción Hello World! Programas de edición Reto

Conceptos

Números hexadecimales

Pre�jo 0x o su�jo h0xA, FBh, 0xCA, FEh

Fácil representación de enteros:

# Rango Ejemplo Bytes Bits Otros nombres1 [0, 15] 0xC ½ 42 [0, 255] 0xC0 1 8 byte4 [0, 65,535] 0x0200 2 16 ushort, WORD8 [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

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

Introducción Hello World! Programas de edición Reto

Conceptos

Números hexadecimales

Pre�jo 0x o su�jo h0xA, FBh, 0xCA, FEh

Fácil representación de enteros:

# Rango Ejemplo Bytes Bits Otros nombres1 [0, 15] 0xC ½ 42 [0, 255] 0xC0 1 8 byte4 [0, 65,535] 0x0200 2 16 ushort, WORD8 [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

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

Introducción Hello World! Programas de edición Reto

Conceptos

Endianness

Orden en el que se guardan los bytes que forman valoresmayores 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

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

Introducción Hello World! Programas de edición Reto

Conceptos

Endianness

Orden en el que se guardan los bytes que forman valoresmayores 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

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

Introducción Hello World! Programas de edición Reto

Conceptos

Endianness

Orden en el que se guardan los bytes que forman valoresmayores 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

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

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

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

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

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

Introducción Hello World! Programas de edición Reto

Investigando un juego

Tipos de �cheros

PaletaTilesMapSpritesAnimacionesModelos 3DTexturasImagen completa

TextoTipografíaScriptsArchivo comprimidoPaqueteMúsicaVídeo

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

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

Introducción Hello World! Programas de edición Reto

Editar juegos

Modi�cando textos

1 Localizar texto a modi�car2 Abrir juego en Tinke3 Localizar textos4 Extraer archivo5 Modi�car con editor6 Importar archivo7 Generar ROM8 Probar en DeSmuME

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

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

Introducción Hello World! Programas de edición Reto

Editar juegos

Modi�cando textos

1 Localizar texto a modi�car2 Abrir juego en Tinke3 Localizar textos4 Extraer archivo5 Modi�car con editor6 Importar archivo7 Generar ROM8 Probar en DeSmuME

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

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

Introducción Hello World! Programas de edición Reto

Editar juegos

Modi�cando textos

1 Localizar texto a modi�car2 Abrir juego en Tinke3 Localizar textos4 Extraer archivo5 Modi�car con editor6 Importar archivo7 Generar ROM8 Probar en DeSmuME

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

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

Introducción Hello World! Programas de edición Reto

Editar juegos

Modi�cando textos

1 Localizar texto a modi�car2 Abrir juego en Tinke3 Localizar textos4 Extraer archivo5 Modi�car con editor6 Importar archivo7 Generar ROM8 Probar en DeSmuME

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

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

Introducción Hello World! Programas de edición Reto

Editar juegos

Modi�cando textos

1 Localizar texto a modi�car2 Abrir juego en Tinke3 Localizar textos4 Extraer archivo5 Modi�car con editor6 Importar archivo7 Generar ROM8 Probar en DeSmuME

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

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

Introducción Hello World! Programas de edición Reto

Editar juegos

Modi�cando textos

1 Localizar texto a modi�car2 Abrir juego en Tinke3 Localizar textos4 Extraer archivo5 Modi�car con editor6 Importar archivo7 Generar ROM8 Probar en DeSmuME

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

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

Introducción Hello World! Programas de edición Reto

Editar juegos

Modi�cando textos

1 Localizar texto a modi�car2 Abrir juego en Tinke3 Localizar textos4 Extraer archivo5 Modi�car con editor6 Importar archivo7 Generar ROM8 Probar en DeSmuME

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

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

Introducción Hello World! Programas de edición Reto

Editar juegos

Modi�cando textos

1 Localizar texto a modi�car2 Abrir juego en Tinke3 Localizar textos4 Extraer archivo5 Modi�car con editor6 Importar archivo7 Generar ROM8 Probar en DeSmuME

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

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

Introducción Hello World! Programas de edición Reto

Editar juegos

Modi�cando textos

1 Localizar texto a modi�car2 Abrir juego en Tinke3 Localizar textos4 Extraer archivo5 Modi�car con editor6 Importar archivo7 Generar ROM8 Probar en DeSmuME

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

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

Introducción Hello World! Programas de edición Reto

Publicar cambios

Parches

Solo contienen las modi�caciones

No subir el juego modi�cado

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

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

Introducción Hello World! Programas de edición Reto

Publicar cambios

Parches

Solo contienen las modi�caciones

No subir el juego modi�cado

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

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

Introducción Hello World! Programas de edición Reto

Publicar cambios

Parches

Solo contienen las modi�caciones

No subir el juego modi�cado

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

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

Introducción Hello World! Programas de edición Reto

Publicar cambios

Parches

Solo contienen las modi�caciones

No subir el juego modi�cado

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

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

Introducción Hello World! Programas de edición Reto

Publicar cambios

xDelta

Windows: xdelta UIhttp://www.romhacking.net/utilities/598/

Mac OS X: Multipatchhttp://projects.sappharad.com/tools/multipatch.html

Linux: xdeltaParchear:xdelta -d -s ORIGINAL PARCHECrear parche:xdelta -9 -s ORIGINAL MODIFICADOPARCHE

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

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

Introducción Hello World! Programas de edición Reto

Publicar cambios

xDelta

Windows: xdelta UIhttp://www.romhacking.net/utilities/598/

Mac OS X: Multipatchhttp://projects.sappharad.com/tools/multipatch.html

Linux: xdeltaParchear:xdelta -d -s ORIGINAL PARCHECrear parche:xdelta -9 -s ORIGINAL MODIFICADOPARCHE

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

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

Introducción Hello World! Programas de edición Reto

Publicar cambios

xDelta

Windows: xdelta UIhttp://www.romhacking.net/utilities/598/

Mac OS X: Multipatchhttp://projects.sappharad.com/tools/multipatch.html

Linux: xdeltaParchear:xdelta -d -s ORIGINAL PARCHECrear parche:xdelta -9 -s ORIGINAL MODIFICADOPARCHE

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

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

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

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

Introducción Hello World! Programas de edición Reto

Pokémon

Spiky’s DS Map Editor

Proyecto: https://github.com/MarcRiera/SDSMEBenito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 29 / 35

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

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

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

Introducción Hello World! Programas de edición Reto

Super Mario 64 DS

Super Mario 64 Editor

Descarga: http://www.romhacking.net/utilities/764Benito Palacios Sánchez (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2016 31 / 35

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

Introducción Hello World! Programas de edición Reto

Ni no kuni

NinoCompiler

Proyecto: http://gradienwords.comGitHub: https://github.com/pleonex/Ninokuni

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

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

Introducción Hello World! Programas de edición Reto

Ni no kuni

NinoCompiler

Proyecto: http://gradienwords.comGitHub: https://github.com/pleonex/Ninokuni

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

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

Introducción Hello World! Programas de edición Reto

Ni no kuni

NinoCompiler

Proyecto: http://gradienwords.comGitHub: https://github.com/pleonex/Ninokuni

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 + argumentosDespues de 0x0000 va el ID del comandoEl formato de los argumentos es tipo + valorEl tipo 0x0001 es un entero de 32 bitsEl tipo 0x0003 es una cadena de caracteres de longitudvariableLos scripts terminan con 0x000C

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

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

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 archivoSe compone de múltiples comandos + argumentos

Despues de 0x0000 va el ID del comandoEl formato de los argumentos es tipo + valorEl tipo 0x0001 es un entero de 32 bitsEl tipo 0x0003 es una cadena de caracteres de longitudvariableLos scripts terminan con 0x000C

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

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

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 archivoSe compone de múltiples comandos + argumentosDespues de 0x0000 va el ID del comando

El formato de los argumentos es tipo + valorEl tipo 0x0001 es un entero de 32 bitsEl tipo 0x0003 es una cadena de caracteres de longitudvariableLos scripts terminan con 0x000C

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

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

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 archivoSe compone de múltiples comandos + argumentosDespues de 0x0000 va el ID del comandoEl formato de los argumentos es tipo + valor

El tipo 0x0001 es un entero de 32 bitsEl tipo 0x0003 es una cadena de caracteres de longitudvariableLos scripts terminan con 0x000C

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

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

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 archivoSe compone de múltiples comandos + argumentosDespues de 0x0000 va el ID del comandoEl formato de los argumentos es tipo + valorEl tipo 0x0001 es un entero de 32 bits

El tipo 0x0003 es una cadena de caracteres de longitudvariableLos scripts terminan con 0x000C

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

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

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 archivoSe compone de múltiples comandos + argumentosDespues de 0x0000 va el ID del comandoEl formato de los argumentos es tipo + valorEl tipo 0x0001 es un entero de 32 bitsEl tipo 0x0003 es una cadena de caracteres de longitudvariable

Los scripts terminan con 0x000C

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

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

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 archivoSe compone de múltiples comandos + argumentosDespues de 0x0000 va el ID del comandoEl formato de los argumentos es tipo + valorEl tipo 0x0001 es un entero de 32 bitsEl tipo 0x0003 es una cadena de caracteres de longitudvariableLos scripts terminan con 0x000C

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