Charla y taller de introducción al ROM Hacking para la rama de estudiantes de IEEE de la UGR. Esta presentación es un resumen de la parte 1 y 2 disponibles también.
Segunda parte del taller de introducción al ROM Hacking impartido gracias a la rama de estudiantes de IEEE de Granada.
En esta ocasión se detalla qué se puede encontrar en un fichero y cual es su representación binaria.
Mucho se ha debatido sobre que versión de Python es la mejor para usar, particularmente cuando apenas están aprendiendo o cuando ya se tiene una buena cantidad de código en Python 2 y no encuentran incentivos a migrar a Python 3.
Esta platica va orientada a esclarecer un poco los pros y contras de elegir uno u el otro y ver que tan fácil/complicado es escribir código portable en las dos versiones.
Al final la platica acabo muy cargada al lado de Python 3. Espero luego a futuro hacer una más hacia Python 2.
Trabajo Fin de Grado sobre Mecanismos de protección de datos en videojuegos.
Para este trabajo se aplicaron conceptos de ingeniería inversa sobre videojuegos (ROM Hacking) para estudiar y documentar los diferentes formatos y algoritmos de protección para evitar tanto traducciones no oficiales, extracción de contenido con derechos de autor o acciones no autorizadas en comunicaciones inalámbricas.
El ROM Hacking es una de las técnicas imprescindibles a la hora de realizar una fan traducción. Se trata de analizar el juego para poder modificarlo. En esta charla se explicó cómo hacerlo para un caso concreto.
Segunda parte del taller de introducción al ROM Hacking impartido gracias a la rama de estudiantes de IEEE de Granada.
En esta ocasión se detalla qué se puede encontrar en un fichero y cual es su representación binaria.
Mucho se ha debatido sobre que versión de Python es la mejor para usar, particularmente cuando apenas están aprendiendo o cuando ya se tiene una buena cantidad de código en Python 2 y no encuentran incentivos a migrar a Python 3.
Esta platica va orientada a esclarecer un poco los pros y contras de elegir uno u el otro y ver que tan fácil/complicado es escribir código portable en las dos versiones.
Al final la platica acabo muy cargada al lado de Python 3. Espero luego a futuro hacer una más hacia Python 2.
Trabajo Fin de Grado sobre Mecanismos de protección de datos en videojuegos.
Para este trabajo se aplicaron conceptos de ingeniería inversa sobre videojuegos (ROM Hacking) para estudiar y documentar los diferentes formatos y algoritmos de protección para evitar tanto traducciones no oficiales, extracción de contenido con derechos de autor o acciones no autorizadas en comunicaciones inalámbricas.
El ROM Hacking es una de las técnicas imprescindibles a la hora de realizar una fan traducción. Se trata de analizar el juego para poder modificarlo. En esta charla se explicó cómo hacerlo para un caso concreto.
Expo sobre los tipos de transistores, su polaridad, y sus respectivas configu...LUISDAMIANSAMARRONCA
a polarización fija es una técnica de polarización simple y económica, adecuada para aplicaciones donde la estabilidad del punto de operación no es crítica. Sin embargo, debido a su alta sensibilidad a las variaciones de
𝛽
β y temperatura, su uso en aplicaciones prácticas suele ser limitado. Para mayor estabilidad, se prefieren configuraciones como la polarización con divisor de tensión o la polarización por retroalimentación.
Criterios de la primera y segunda derivadaYoverOlivares
Criterios de la primera derivada.
Criterios de la segunda derivada.
Función creciente y decreciente.
Puntos máximos y mínimos.
Puntos de inflexión.
3 Ejemplos para graficar funciones utilizando los criterios de la primera y segunda derivada.
2024 State of Marketing Report – by HubspotMarius Sescu
https://www.hubspot.com/state-of-marketing
· Scaling relationships and proving ROI
· Social media is the place for search, sales, and service
· Authentic influencer partnerships fuel brand growth
· The strongest connections happen via call, click, chat, and camera.
· Time saved with AI leads to more creative work
· Seeking: A single source of truth
· TLDR; Get on social, try AI, and align your systems.
· More human marketing, powered by robots
ChatGPT is a revolutionary addition to the world since its introduction in 2022. A big shift in the sector of information gathering and processing happened because of this chatbot. What is the story of ChatGPT? How is the bot responding to prompts and generating contents? Swipe through these slides prepared by Expeed Software, a web development company regarding the development and technical intricacies of ChatGPT!
Expo sobre los tipos de transistores, su polaridad, y sus respectivas configu...LUISDAMIANSAMARRONCA
a polarización fija es una técnica de polarización simple y económica, adecuada para aplicaciones donde la estabilidad del punto de operación no es crítica. Sin embargo, debido a su alta sensibilidad a las variaciones de
𝛽
β y temperatura, su uso en aplicaciones prácticas suele ser limitado. Para mayor estabilidad, se prefieren configuraciones como la polarización con divisor de tensión o la polarización por retroalimentación.
Criterios de la primera y segunda derivadaYoverOlivares
Criterios de la primera derivada.
Criterios de la segunda derivada.
Función creciente y decreciente.
Puntos máximos y mínimos.
Puntos de inflexión.
3 Ejemplos para graficar funciones utilizando los criterios de la primera y segunda derivada.
2024 State of Marketing Report – by HubspotMarius Sescu
https://www.hubspot.com/state-of-marketing
· Scaling relationships and proving ROI
· Social media is the place for search, sales, and service
· Authentic influencer partnerships fuel brand growth
· The strongest connections happen via call, click, chat, and camera.
· Time saved with AI leads to more creative work
· Seeking: A single source of truth
· TLDR; Get on social, try AI, and align your systems.
· More human marketing, powered by robots
ChatGPT is a revolutionary addition to the world since its introduction in 2022. A big shift in the sector of information gathering and processing happened because of this chatbot. What is the story of ChatGPT? How is the bot responding to prompts and generating contents? Swipe through these slides prepared by Expeed Software, a web development company regarding the development and technical intricacies of ChatGPT!
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
The realm of product design is a constantly changing environment where technology and style intersect. Every year introduces fresh challenges and exciting trends that mold the future of this captivating art form. In this piece, we delve into the significant trends set to influence the look and functionality of product design in the year 2024.
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
Mental health has been in the news quite a bit lately. Dozens of U.S. states are currently suing Meta for contributing to the youth mental health crisis by inserting addictive features into their products, while the U.S. Surgeon General is touring the nation to bring awareness to the growing epidemic of loneliness and isolation. The country has endured periods of low national morale, such as in the 1970s when high inflation and the energy crisis worsened public sentiment following the Vietnam War. The current mood, however, feels different. Gallup recently reported that national mental health is at an all-time low, with few bright spots to lift spirits.
To better understand how Americans are feeling and their attitudes towards mental health in general, ThinkNow conducted a nationally representative quantitative survey of 1,500 respondents and found some interesting differences among ethnic, age and gender groups.
Technology
For example, 52% agree that technology and social media have a negative impact on mental health, but when broken out by race, 61% of Whites felt technology had a negative effect, and only 48% of Hispanics thought it did.
While technology has helped us keep in touch with friends and family in faraway places, it appears to have degraded our ability to connect in person. Staying connected online is a double-edged sword since the same news feed that brings us pictures of the grandkids and fluffy kittens also feeds us news about the wars in Israel and Ukraine, the dysfunction in Washington, the latest mass shooting and the climate crisis.
Hispanics may have a built-in defense against the isolation technology breeds, owing to their large, multigenerational households, strong social support systems, and tendency to use social media to stay connected with relatives abroad.
Age and Gender
When asked how individuals rate their mental health, men rate it higher than women by 11 percentage points, and Baby Boomers rank it highest at 83%, saying it’s good or excellent vs. 57% of Gen Z saying the same.
Gen Z spends the most amount of time on social media, so the notion that social media negatively affects mental health appears to be correlated. Unfortunately, Gen Z is also the generation that’s least comfortable discussing mental health concerns with healthcare professionals. Only 40% of them state they’re comfortable discussing their issues with a professional compared to 60% of Millennials and 65% of Boomers.
Race Affects Attitudes
As seen in previous research conducted by ThinkNow, Asian Americans lag other groups when it comes to awareness of mental health issues. Twenty-four percent of Asian Americans believe that having a mental health issue is a sign of weakness compared to the 16% average for all groups. Asians are also considerably less likely to be aware of mental health services in their communities (42% vs. 55%) and most likely to seek out information on social media (51% vs. 35%).
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
This article is all about what AI trends will emerge in the field of creative operations in 2024. All the marketers and brand builders should be aware of these trends for their further use and save themselves some time!
A report by thenetworkone and Kurio.
The contributing experts and agencies are (in an alphabetical order): Sylwia Rytel, Social Media Supervisor, 180heartbeats + JUNG v MATT (PL), Sharlene Jenner, Vice President - Director of Engagement Strategy, Abelson Taylor (USA), Alex Casanovas, Digital Director, Atrevia (ES), Dora Beilin, Senior Social Strategist, Barrett Hoffher (USA), Min Seo, Campaign Director, Brand New Agency (KR), Deshé M. Gully, Associate Strategist, Day One Agency (USA), Francesca Trevisan, Strategist, Different (IT), Trevor Crossman, CX and Digital Transformation Director; Olivia Hussey, Strategic Planner; Simi Srinarula, Social Media Manager, The Hallway (AUS), James Hebbert, Managing Director, Hylink (CN / UK), Mundy Álvarez, Planning Director; Pedro Rojas, Social Media Manager; Pancho González, CCO, Inbrax (CH), Oana Oprea, Head of Digital Planning, Jam Session Agency (RO), Amy Bottrill, Social Account Director, Launch (UK), Gaby Arriaga, Founder, Leonardo1452 (MX), Shantesh S Row, Creative Director, Liwa (UAE), Rajesh Mehta, Chief Strategy Officer; Dhruv Gaur, Digital Planning Lead; Leonie Mergulhao, Account Supervisor - Social Media & PR, Medulla (IN), Aurelija Plioplytė, Head of Digital & Social, Not Perfect (LI), Daiana Khaidargaliyeva, Account Manager, Osaka Labs (UK / USA), Stefanie Söhnchen, Vice President Digital, PIABO Communications (DE), Elisabeth Winiartati, Managing Consultant, Head of Global Integrated Communications; Lydia Aprina, Account Manager, Integrated Marketing and Communications; Nita Prabowo, Account Manager, Integrated Marketing and Communications; Okhi, Web Developer, PNTR Group (ID), Kei Obusan, Insights Director; Daffi Ranandi, Insights Manager, Radarr (SG), Gautam Reghunath, Co-founder & CEO, Talented (IN), Donagh Humphreys, Head of Social and Digital Innovation, THINKHOUSE (IRE), Sarah Yim, Strategy Director, Zulu Alpha Kilo (CA).
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
The search marketing landscape is evolving rapidly with new technologies, and professionals, like you, rely on innovative paid search strategies to meet changing demands.
It’s important that you’re ready to implement new strategies in 2024.
Check this out and learn the top trends in paid search advertising that are expected to gain traction, so you can drive higher ROI more efficiently in 2024.
You’ll learn:
- The latest trends in AI and automation, and what this means for an evolving paid search ecosystem.
- New developments in privacy and data regulation.
- Emerging ad formats that are expected to make an impact next year.
Watch Sreekant Lanka from iQuanti and Irina Klein from OneMain Financial as they dive into the future of paid search and explore the trends, strategies, and technologies that will shape the search marketing landscape.
If you’re looking to assess your paid search strategy and design an industry-aligned plan for 2024, then this webinar is for you.
5 Public speaking tips from TED - Visualized summarySpeakerHub
From their humble beginnings in 1984, TED has grown into the world’s most powerful amplifier for speakers and thought-leaders to share their ideas. They have over 2,400 filmed talks (not including the 30,000+ TEDx videos) freely available online, and have hosted over 17,500 events around the world.
With over one billion views in a year, it’s no wonder that so many speakers are looking to TED for ideas on how to share their message more effectively.
The article “5 Public-Speaking Tips TED Gives Its Speakers”, by Carmine Gallo for Forbes, gives speakers five practical ways to connect with their audience, and effectively share their ideas on stage.
Whether you are gearing up to get on a TED stage yourself, or just want to master the skills that so many of their speakers possess, these tips and quotes from Chris Anderson, the TED Talks Curator, will encourage you to make the most impactful impression on your audience.
See the full article and more summaries like this on SpeakerHub here: https://speakerhub.com/blog/5-presentation-tips-ted-gives-its-speakers
See the original article on Forbes here:
http://www.forbes.com/forbes/welcome/?toURL=http://www.forbes.com/sites/carminegallo/2016/05/06/5-public-speaking-tips-ted-gives-its-speakers/&refURL=&referrer=#5c07a8221d9b
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
Everyone is in agreement that ChatGPT (and other generative AI tools) will shape the future of work. Yet there is little consensus on exactly how, when, and to what extent this technology will change our world.
Businesses that extract maximum value from ChatGPT will use it as a collaborative tool for everything from brainstorming to technical maintenance.
For individuals, now is the time to pinpoint the skills the future professional will need to thrive in the AI age.
Check out this presentation to understand what ChatGPT is, how it will shape the future of work, and how you can prepare to take advantage.
A brief introduction to DataScience with explaining of the concepts, algorithms, machine learning, supervised and unsupervised learning, clustering, statistics, data preprocessing, real-world applications etc.
It's part of a Data Science Corner Campaign where I will be discussing the fundamentals of DataScience, AIML, Statistics etc.
Time Management & Productivity - Best PracticesVit Horky
Here's my presentation on by proven best practices how to manage your work time effectively and how to improve your productivity. It includes practical tips and how to use tools such as Slack, Google Apps, Hubspot, Google Calendar, Gmail and others.
The six step guide to practical project managementMindGenius
The six step guide to practical project management
If you think managing projects is too difficult, think again.
We’ve stripped back project management processes to the
basics – to make it quicker and easier, without sacrificing
the vital ingredients for success.
“If you’re looking for some real-world guidance, then The Six Step Guide to Practical Project Management will help.”
Dr Andrew Makar, Tactical Project Management
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
[IEEEsbUGR] Introducción al ROM Hacking
1. Rama estudiantil de IEEE en la UGR
Introducción al ROM Hacking:
Primeros pasos
Benito Palacios
benito.palaciossanchez.es@ieee.org
24 de marzo de 2017
2. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Sobre mi...
¿Quién soy?
Benito Palacios
@pleonex
Graduado en Ingeniería de Tecnologías de Telecomunicación
Trabajo Fin de Grado sobre seguridad en videojuegos
Miembro fundador de IEEE Student Branch of Granada
>7 años en el mundo del ROM Hacking
Miembro de GradienWords
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 2 / 59
3. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Sobre mi...
¿Quién soy?
Benito Palacios
@pleonex
Graduado en Ingeniería de Tecnologías de Telecomunicación
Trabajo Fin de Grado sobre seguridad en videojuegos
Miembro fundador de IEEE Student Branch of Granada
>7 años en el mundo del ROM Hacking
Miembro de GradienWords
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 2 / 59
4. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Sobre mi...
¿Quién soy?
Benito Palacios
@pleonex
Graduado en Ingeniería de Tecnologías de Telecomunicación
Trabajo Fin de Grado sobre seguridad en videojuegos
Miembro fundador de IEEE Student Branch of Granada
>7 años en el mundo del ROM Hacking
Miembro de GradienWords
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 2 / 59
5. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Sobre mi...
¿Quién soy?
Benito Palacios
@pleonex
Graduado en Ingeniería de Tecnologías de Telecomunicación
Trabajo Fin de Grado sobre seguridad en videojuegos
Miembro fundador de IEEE Student Branch of Granada
>7 años en el mundo del ROM Hacking
Miembro de GradienWords
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 2 / 59
6. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Sobre mi...
¿Quién soy?
Benito Palacios
@pleonex
Graduado en Ingeniería de Tecnologías de Telecomunicación
Trabajo Fin de Grado sobre seguridad en videojuegos
Miembro fundador de IEEE Student Branch of Granada
>7 años en el mundo del ROM Hacking
Miembro de GradienWords
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 2 / 59
7. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Mis proyectos
Tinke
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 3 / 59
8. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Mis proyectos
Ninokuni: El Mago de las Tinieblas
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 4 / 59
9. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Mis proyectos
Fan traducciones
Pokémon Conquest
Final Fantasy: Four Heroes
Profesor Layton: London Life
Shining Force Feather
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 5 / 59
10. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Mis proyectos
Fan traducciones
Pokémon Conquest
Final Fantasy: Four Heroes
Profesor Layton: London Life
Shining Force Feather
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 5 / 59
11. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Mis proyectos
Fan traducciones
Pokémon Conquest
Final Fantasy: Four Heroes
Profesor Layton: London Life
Shining Force Feather
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 5 / 59
12. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Mis proyectos
Fan traducciones
Pokémon Conquest
Final Fantasy: Four Heroes
Profesor Layton: London Life
Shining Force Feather
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 5 / 59
13. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
¿Qué es ROM Hacking?
Érase una vez...
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 6 / 59
14. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
¿Qué es ROM Hacking?
¿Qué es un fichero?
¿ ?
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 7 / 59
15. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
¿Qué es ROM Hacking?
La parte cruda de los archivos
Figura: BMP visto con editor hexadecimal HxD
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 8 / 59
16. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
¿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 (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 9 / 59
17. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
¿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 (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 10 / 59
18. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
¿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 (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 10 / 59
19. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
¿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 (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 10 / 59
20. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
¿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 (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 10 / 59
21. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
¿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 (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 10 / 59
22. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
¿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 (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 10 / 59
23. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
¿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 (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 10 / 59
24. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
¿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 (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 10 / 59
25. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
¿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 (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 10 / 59
26. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
¿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 (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 10 / 59
27. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
¿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 (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 10 / 59
28. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
¿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 (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 10 / 59
29. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
¿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 (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 10 / 59
30. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
¿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 (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 10 / 59
31. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
¿Qué es ROM Hacking?
¿Qué hay dentro de un juego?
¿ ?
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 11 / 59
32. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
¿Qué es ROM Hacking?
¿Qué hay dentro de un juego?
¿ ? →
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 11 / 59
33. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
¿Qué es ROM Hacking?
La parte cruda de un juego
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 12 / 59
34. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
¿Qué es ROM Hacking?
¿Y ahora? ¿Y la especificación?
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 13 / 59
35. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
¿Qué es ROM Hacking?
ROM Hacking
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 14 / 59
36. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
¿Qué es ROM Hacking?
ROM Hacking
Propósito:
Fan traducciones
Mods
Extraer recursos
Curiosidad
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 15 / 59
37. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
¿Qué es ROM Hacking?
ROM Hacking
Propósito:
Fan traducciones
Mods
Extraer recursos
Curiosidad
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 15 / 59
38. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
¿Qué es ROM Hacking?
ROM Hacking
Propósito:
Fan traducciones
Mods
Extraer recursos
Curiosidad
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 15 / 59
39. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
¿Qué es ROM Hacking?
ROM Hacking
Propósito:
Fan traducciones
Mods
Extraer recursos
Curiosidad
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 15 / 59
40. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
¿Qué es ROM Hacking?
ROM Hacking
Propósito:
Fan traducciones
Mods
Extraer recursos
Curiosidad
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 15 / 59
41. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Temario
Contenido del curso
IEEEsbUGR ROM Hacking Group
1 Introducción al ROM Hacking
1 Introducción
2 Hello World!
3 Reto 1
4 Textos
5 Imágenes
6 Media
7 Reto 2
2 Proyecto
3 Presentación y taller
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 16 / 59
42. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Hello World!
ROM HACKING TIME!
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 17 / 59
43. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
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 (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 18 / 59
44. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
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 (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 18 / 59
45. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
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 (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 18 / 59
46. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
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 (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 18 / 59
47. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
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 (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 18 / 59
48. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Conceptos
Números hexadecimales
Prefijo 0x o sufijo h
0xA, FBh, 0xCA, FEh
Fácil representación de enteros:
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 19 / 59
49. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
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 (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 19 / 59
50. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
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 (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 20 / 59
51. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
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 (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 20 / 59
52. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
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 (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 20 / 59
53. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
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 (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 20 / 59
54. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
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 (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 20 / 59
55. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
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 (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 20 / 59
56. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
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 (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 20 / 59
57. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
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 (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 20 / 59
58. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Publicar cambios
Parches
Solo contienen las modificaciones
No subir el juego modificado
Tamaño pequeño
Formatos comunes: xDelta
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 21 / 59
59. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Publicar cambios
Parches
Solo contienen las modificaciones
No subir el juego modificado
Tamaño pequeño
Formatos comunes: xDelta
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 21 / 59
60. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Publicar cambios
Parches
Solo contienen las modificaciones
No subir el juego modificado
Tamaño pequeño
Formatos comunes: xDelta
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 21 / 59
61. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Publicar cambios
Parches
Solo contienen las modificaciones
No subir el juego modificado
Tamaño pequeño
Formatos comunes: xDelta
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 21 / 59
62. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Programas de edición
Pokémon: Advanced Map
Proyecto: http://ampage.no-ip.info/
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 22 / 59
63. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Programas de edición
Pokémon: Spiky’s DS Map Editor
Proyecto: https://github.com/MarcRiera/SDSME
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 23 / 59
64. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Programas de edición
NSMB Editor
Proyecto: https://github.com/Dirbaio/NSMB-Editor
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 24 / 59
65. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Programas de edición
Super Mario 64 Editor
Descarga: http://www.romhacking.net/utilities/764
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 25 / 59
66. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Programas de edición
Ninokuni
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 26 / 59
67. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Programas de edición
Ninokuni
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 26 / 59
68. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Programas de edición
Ninokuni
→
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 26 / 59
69. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Programas de edición
Ninokuni
→
Proyecto: http://gradienwords.com
GitHub: https://github.com/pleonex/Ninokuni
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 26 / 59
70. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Reto 1
CHALLENGE TIME!
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 27 / 59
71. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Puzles en Profesor Layton
Objetivo
Modifica un puzle
Descripción (qtext)
Pistas (qtext)
Solución (script/qscript)
Confirmación (qtext)
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 28 / 59
72. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Puzles en Profesor Layton
Objetivo
Modifica un puzle
Descripción (qtext)
Pistas (qtext)
Solución (script/qscript)
Confirmación (qtext)
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 28 / 59
73. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Puzles en Profesor Layton
Objetivo
Modifica un puzle
Descripción (qtext)
Pistas (qtext)
Solución (script/qscript)
Confirmación (qtext)
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 28 / 59
74. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Puzles en Profesor Layton
Objetivo
Modifica un puzle
Descripción (qtext)
Pistas (qtext)
Solución (script/qscript)
Confirmación (qtext)
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 28 / 59
75. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Naturaleza de los textos
¿Cómo guardamos texto de forma digital?
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 29 / 59
76. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Codificaciones
Codificación de caracteres
Es el método que permite convertir un carácter de un
lenguaje natural en un símbolo de otro sistema de
representación aplicando reglas de codificación. [Wikipedia]
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 30 / 59
77. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Codificaciones
Codificación de caracteres
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 30 / 59
78. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Codificaciones
ASCII
Codifica caracteres del alfabeto latino en 7 bits.
↓
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 31 / 59
79. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Codificaciones
Latin-1 (ISO 8859-1)
Codificación extendida de ASCII. Utiliza 8 bits añadiendo 128
caracteres necesarios para las lenguas europeas.
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 32 / 59
80. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Codificaciones
Unicode
Estándar universal de codificación de caracteres para la
mayoría de lenguas (incluidas las muertas). La última versión
8.0 incluye 120.737 caracteres.
Unicode es solo una tabla, no especifica la codificación.
Codificaciones para Unicode:
UTF-8: codificación de 8 bits de longitud variable.
’A’ = 41h, ’ ’ = F0 A0 9C 8E
UTF-16: codificación de 16 bits de longitud variable.
’A’ = 0041, ’ ’ = D841 DF0E
UTF-32: codificación de 32 bits de longitud fija.
’A’ = 00000041, ’ ’ = 0002070E
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 33 / 59
81. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Codificaciones
Unicode
Estándar universal de codificación de caracteres para la
mayoría de lenguas (incluidas las muertas). La última versión
8.0 incluye 120.737 caracteres.
Unicode es solo una tabla, no especifica la codificación.
Codificaciones para Unicode:
UTF-8: codificación de 8 bits de longitud variable.
’A’ = 41h, ’ ’ = F0 A0 9C 8E
UTF-16: codificación de 16 bits de longitud variable.
’A’ = 0041, ’ ’ = D841 DF0E
UTF-32: codificación de 32 bits de longitud fija.
’A’ = 00000041, ’ ’ = 0002070E
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 33 / 59
82. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Codificaciones
Unicode
Estándar universal de codificación de caracteres para la
mayoría de lenguas (incluidas las muertas). La última versión
8.0 incluye 120.737 caracteres.
Unicode es solo una tabla, no especifica la codificación.
Codificaciones para Unicode:
UTF-8: codificación de 8 bits de longitud variable.
’A’ = 41h, ’ ’ = F0 A0 9C 8E
UTF-16: codificación de 16 bits de longitud variable.
’A’ = 0041, ’ ’ = D841 DF0E
UTF-32: codificación de 32 bits de longitud fija.
’A’ = 00000041, ’ ’ = 0002070E
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 33 / 59
83. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Codificaciones
Unicode
Estándar universal de codificación de caracteres para la
mayoría de lenguas (incluidas las muertas). La última versión
8.0 incluye 120.737 caracteres.
Unicode es solo una tabla, no especifica la codificación.
Codificaciones para Unicode:
UTF-8: codificación de 8 bits de longitud variable.
’A’ = 41h, ’ ’ = F0 A0 9C 8E
UTF-16: codificación de 16 bits de longitud variable.
’A’ = 0041, ’ ’ = D841 DF0E
UTF-32: codificación de 32 bits de longitud fija.
’A’ = 00000041, ’ ’ = 0002070E
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 33 / 59
84. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Codificaciones
Unicode
Estándar universal de codificación de caracteres para la
mayoría de lenguas (incluidas las muertas). La última versión
8.0 incluye 120.737 caracteres.
Unicode es solo una tabla, no especifica la codificación.
Codificaciones para Unicode:
UTF-8: codificación de 8 bits de longitud variable.
’A’ = 41h, ’ ’ = F0 A0 9C 8E
UTF-16: codificación de 16 bits de longitud variable.
’A’ = 0041, ’ ’ = D841 DF0E
UTF-32: codificación de 32 bits de longitud fija.
’A’ = 00000041, ’ ’ = 0002070E
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 33 / 59
85. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Codificaciones
Unicode
Estándar universal de codificación de caracteres para la
mayoría de lenguas (incluidas las muertas). La última versión
8.0 incluye 120.737 caracteres.
Unicode es solo una tabla, no especifica la codificación.
Codificaciones para Unicode:
UTF-8: codificación de 8 bits de longitud variable.
’A’ = 41h, ’ ’ = F0 A0 9C 8E
UTF-16: codificación de 16 bits de longitud variable.
’A’ = 0041, ’ ’ = D841 DF0E
UTF-32: codificación de 32 bits de longitud fija.
’A’ = 00000041, ’ ’ = 0002070E
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 33 / 59
86. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Codificaciones
Shift Jis (CP 932)
Codificación de longitud variable (1 o 2 bytes) para caracteres
japoneses. Incluye ASCII.
Figura: Tabla para caracteres con primer byte 0x82
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 34 / 59
87. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Codificaciones
Ejemplos en archivos
¿?
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 35 / 59
88. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Codificaciones
Ejemplos en archivos
UTF-16
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 35 / 59
89. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Codificaciones
Ejemplos en archivos
UTF-16
¿?
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 35 / 59
90. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Codificaciones
Ejemplos en archivos
UTF-16
Shift Jis
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 35 / 59
91. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Codificaciones
Tablas
Algunos juegos usan codificaciones propietarias...
... fácil mapeo con la tipografía.
... dificultar el acceso.
Figura: Textos de Pokémon Perla
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 36 / 59
92. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Codificaciones
Tablas
Valor Carácter Valor Carácter Valor Carácter
01A9h ¡ 01ABh ! 01ADh ,
01DEh SP E000h NL 0152h E
0132h H 013Ah P 013Eh T
0145h a 0147h c 0148h d
014Ch h 0150h l 0152h n
0153h o 0156h r 0158h t
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 37 / 59
93. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Formatos
Punteros (offsets)
Número enteros que indican la posición del texto.
Tipos:
Absoluto: desde el comienzo del archivo.
Relativo: desde otra posición
Relativo a una sección del fichero.
Relativo a la posición actual.
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 38 / 59
94. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Formatos
Punteros (offsets)
Número enteros que indican la posición del texto.
Tipos:
Absoluto: desde el comienzo del archivo.
Relativo: desde otra posición
Relativo a una sección del fichero.
Relativo a la posición actual.
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 38 / 59
95. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Formatos
Punteros (offsets)
Número enteros que indican la posición del texto.
Tipos:
Absoluto: desde el comienzo del archivo.
Relativo: desde otra posición
Relativo a una sección del fichero.
Relativo a la posición actual.
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 38 / 59
96. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Formatos
Punteros (offsets)
Número enteros que indican la posición del texto.
Tipos:
Absoluto: desde el comienzo del archivo.
Relativo: desde otra posición
Relativo a una sección del fichero.
Relativo a la posición actual.
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 38 / 59
97. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Formatos
Punteros (offsets)
Formato BMG
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 39 / 59
98. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Formatos
Punteros (offsets)
Formato BMG
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 39 / 59
99. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Formatos
Punteros (offsets)
Formato BMG
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 39 / 59
100. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Formatos
Punteros (offsets)
Formato BMG
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 39 / 59
101. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Formatos
Punteros (offsets)
Formato BMG
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 39 / 59
102. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Formatos
Punteros (offsets)
Formato BMG
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 39 / 59
103. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Formatos
Punteros (offsets)
Formato BMG
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 39 / 59
104. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Formatos
Punteros (offsets)
Formato BMG
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 39 / 59
105. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Formatos
Punteros (offsets)
Formato BMG
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 39 / 59
106. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Naturaleza de las imágenes
¿Qué necesitamos para formar una imagen?
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 40 / 59
107. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Imágenes de fondo
Partes de una imagen
Una imagen se compone de sucesión de colores (píxeles).
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 41 / 59
108. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Imágenes de fondo
Partes de una imagen
Una imagen se compone de sucesión de colores (píxeles).
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 41 / 59
109. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Imágenes de fondo
Partes de una imagen
Una imagen se compone de sucesión de colores (píxeles).
+
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 41 / 59
110. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Imágenes de fondo
Partes de una imagen
Una imagen se compone de sucesión de colores (píxeles).
+ =
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 41 / 59
111. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Imágenes de fondo
Colores
Los colores se forman mezclando los tres colores base
(componentes / canal): rojo, verde y azul.
El rango de valores de cada componente define
los colores únicos.
Generalmente: 8 bits/canal
28
= 256 → 2563
= 16,777,216 colores únicos.
NDS: 5 bits (BGR555) → 32.768 colores únicos.
Un color ocupa 16 bits:
5 por canal + 1 transparencia.
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 42 / 59
112. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Imágenes de fondo
Colores
Los colores se forman mezclando los tres colores base
(componentes / canal): rojo, verde y azul.
El rango de valores de cada componente define
los colores únicos.
Generalmente: 8 bits/canal
28
= 256 → 2563
= 16,777,216 colores únicos.
NDS: 5 bits (BGR555) → 32.768 colores únicos.
Un color ocupa 16 bits:
5 por canal + 1 transparencia.
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 42 / 59
113. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Imágenes de fondo
Colores
Los colores se forman mezclando los tres colores base
(componentes / canal): rojo, verde y azul.
El rango de valores de cada componente define
los colores únicos.
Generalmente: 8 bits/canal
28
= 256 → 2563
= 16,777,216 colores únicos.
NDS: 5 bits (BGR555) → 32.768 colores únicos.
Un color ocupa 16 bits:
5 por canal + 1 transparencia.
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 42 / 59
114. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Imágenes de fondo
Colores
Los colores se forman mezclando los tres colores base
(componentes / canal): rojo, verde y azul.
El rango de valores de cada componente define
los colores únicos.
Generalmente: 8 bits/canal
28
= 256 → 2563
= 16,777,216 colores únicos.
NDS: 5 bits (BGR555) → 32.768 colores únicos.
Un color ocupa 16 bits:
5 por canal + 1 transparencia.
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 42 / 59
115. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Imágenes de fondo
Paletas
Agrupación de colores. Definen los colores de una imagen. El
primer color suele ser el transparente.
Modalidades del formato NCLR:
1 paleta de 256 colores = 256 colores.
16 paletas de 16 colores = 256 colores.
16 paletas de 256 colores = 4.096 colores.
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 43 / 59
116. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Imágenes de fondo
Paletas
Agrupación de colores. Definen los colores de una imagen. El
primer color suele ser el transparente.
Modalidades del formato NCLR:
1 paleta de 256 colores = 256 colores.
16 paletas de 16 colores = 256 colores.
16 paletas de 256 colores = 4.096 colores.
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 43 / 59
117. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Imágenes de fondo
Paletas
Agrupación de colores. Definen los colores de una imagen. El
primer color suele ser el transparente.
Modalidades del formato NCLR:
1 paleta de 256 colores = 256 colores.
16 paletas de 16 colores = 256 colores.
16 paletas de 256 colores = 4.096 colores.
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 43 / 59
118. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Imágenes de fondo
Paletas
Agrupación de colores. Definen los colores de una imagen. El
primer color suele ser el transparente.
Modalidades del formato NCLR:
1 paleta de 256 colores = 256 colores.
16 paletas de 16 colores = 256 colores.
16 paletas de 256 colores = 4.096 colores.
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 43 / 59
119. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Imágenes de fondo
Píxeles
La información que guardamos por píxel es la posición en la
paleta de su color.
Codificaciones del formato NCGR:
8 bits por píxel (bpp): 28 = 256 posiciones diferentes →
256 colores diferentes.
4 bpp: 16 colores diferentes.
1 bpp: 2 colores diferentes (blanco o negro).
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 44 / 59
120. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Imágenes de fondo
Píxeles
La información que guardamos por píxel es la posición en la
paleta de su color.
Codificaciones del formato NCGR:
8 bits por píxel (bpp): 28 = 256 posiciones diferentes →
256 colores diferentes.
4 bpp: 16 colores diferentes.
1 bpp: 2 colores diferentes (blanco o negro).
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 44 / 59
121. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Imágenes de fondo
Píxeles
La información que guardamos por píxel es la posición en la
paleta de su color.
Codificaciones del formato NCGR:
8 bits por píxel (bpp): 28 = 256 posiciones diferentes →
256 colores diferentes.
4 bpp: 16 colores diferentes.
1 bpp: 2 colores diferentes (blanco o negro).
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 44 / 59
122. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Imágenes de fondo
Píxeles
La información que guardamos por píxel es la posición en la
paleta de su color.
Codificaciones del formato NCGR:
8 bits por píxel (bpp): 28 = 256 posiciones diferentes →
256 colores diferentes.
4 bpp: 16 colores diferentes.
1 bpp: 2 colores diferentes (blanco o negro).
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 44 / 59
123. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Imágenes de fondo
Compresión
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 45 / 59
124. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Imágenes de fondo
Compresión
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 45 / 59
125. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Imágenes de fondo
Compresión
+
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 45 / 59
126. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Imágenes de fondo
Compresión
+ =
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 45 / 59
127. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Imágenes de fondo
Compresión
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 45 / 59
128. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Imágenes de fondo
Compresión
→
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 45 / 59
129. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Sprites
Casos de uso
Capas
Animaciones
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 46 / 59
130. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Sprites
Casos de uso
Capas
Animaciones
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 46 / 59
131. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Sprites
Casos de uso
Capas
Animaciones
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 46 / 59
132. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Sprites
Casos de uso
Capas
Animaciones
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 46 / 59
133. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Sprites
Casos de uso
Ahorro de espacio con capas
+ =
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 46 / 59
134. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Sprites
Formatos base
Paleta (.nclr)
+
Tiles (.ncgr)
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 47 / 59
135. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Sprites
Formatos base
Paleta (.nclr)
+
Tiles (.ncgr)
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 47 / 59
136. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Sprites
Celdas
Nitro CElls Resource (.ncer)
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 48 / 59
137. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Sprites
Animaciones
Nitro AnimatioN Resource (.nanr)
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 49 / 59
138. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
3D
Texturas
Nitro TeXture (.nsbtx)
Uso en modelos 3D
Paletas + Tiles
Codificaciones: A3I5, A4I4, A5I3,
4x4 texel
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 50 / 59
139. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
3D
Texturas
Nitro TeXture (.nsbtx)
Uso en modelos 3D
Paletas + Tiles
Codificaciones: A3I5, A4I4, A5I3,
4x4 texel
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 50 / 59
140. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
3D
Texturas
Nitro TeXture (.nsbtx)
Uso en modelos 3D
Paletas + Tiles
Codificaciones: A3I5, A4I4, A5I3,
4x4 texel
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 50 / 59
141. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
3D
Texturas
Nitro TeXture (.nsbtx)
Uso en modelos 3D
Paletas + Tiles
Codificaciones: A3I5, A4I4, A5I3,
4x4 texel
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 50 / 59
142. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
3D
Modelos 3D
Nitro MoDel (.nsbbmd)
Geometría 3D.
Comandos de OpenGL 1.0.
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 51 / 59
143. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
3D
Modelos 3D
Nitro MoDel (.nsbbmd)
Geometría 3D.
Comandos de OpenGL 1.0.
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 51 / 59
144. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
3D
Modelos 3D
Nitro MoDel (.nsbbmd)
Geometría 3D.
Comandos de OpenGL 1.0.
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 51 / 59
145. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Tipografías y audios
Tipografías
Nitro FonT Resource (.nftr)
Una imagen por carácter.
Mapeo binario ↔ imagen.
Tabla + Imágenes.
Útil para reemplazo de
caracteres.
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 52 / 59
146. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Tipografías y audios
Tipografías
Nitro FonT Resource (.nftr)
Una imagen por carácter.
Mapeo binario ↔ imagen.
Tabla + Imágenes.
Útil para reemplazo de
caracteres.
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 52 / 59
147. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Tipografías y audios
Tipografías
Nitro FonT Resource (.nftr)
Una imagen por carácter.
Mapeo binario ↔ imagen.
Tabla + Imágenes.
Útil para reemplazo de
caracteres.
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 52 / 59
148. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Tipografías y audios
Tipografías
Nitro FonT Resource (.nftr)
Una imagen por carácter.
Mapeo binario ↔ imagen.
Tabla + Imágenes.
Útil para reemplazo de
caracteres.
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 52 / 59
149. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Tipografías y audios
Audios
Sound DATa (.sdat)
Sonido digitalizado (STRM).
PCM, ADPCM, Procyon.
Mono y estéreo.
Sample format: 4 a 16 bits.
Sample rate: 16 KHz, 32 KHz.
Bucles.
Sonido sintetizado (SSEQ).
Partitura: SSEQ.
Notas musicales: SBNK, SWAR.
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 53 / 59
150. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Tipografías y audios
Audios
Sound DATa (.sdat)
Sonido digitalizado (STRM).
PCM, ADPCM, Procyon.
Mono y estéreo.
Sample format: 4 a 16 bits.
Sample rate: 16 KHz, 32 KHz.
Bucles.
Sonido sintetizado (SSEQ).
Partitura: SSEQ.
Notas musicales: SBNK, SWAR.
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 53 / 59
151. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
Reto 2
CHALLENGE TIME!
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 54 / 59
152. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
The Legend of Zelda: Phantom Hourglass
Contenido sorpresa
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 55 / 59
153. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
The Legend of Zelda: Phantom Hourglass
Contenido sorpresa
¿/Test/picture.narc?
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 55 / 59
154. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
The Legend of Zelda: Phantom Hourglass
Contenido sorpresa
¿/Test/picture.narc?
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 55 / 59
155. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
The Legend of Zelda: Phantom Hourglass
Contenido sorpresa
¿/Test/picture.narc? ¿/Test/BgMap.narc?
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 55 / 59
156. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
The Legend of Zelda: Phantom Hourglass
Contenido sorpresa
¿/Test/picture.narc? ¿/Test/BgMap.narc?
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 55 / 59
157. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
The Legend of Zelda: Phantom Hourglass
Historia
Modificar cuarto diálogo.
Modificar imagen.
Modificar tipografía.
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 56 / 59
158. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
The Legend of Zelda: Phantom Hourglass
Historia
Modificar cuarto diálogo.
Modificar imagen.
Modificar tipografía.
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 56 / 59
159. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
The Legend of Zelda: Phantom Hourglass
Historia
Modificar cuarto diálogo.
Modificar imagen.
Modificar tipografía.
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 56 / 59
160. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
The Legend of Zelda: Phantom Hourglass
Historia: Punteros
Modificar cuarto diálogo.
Ruta: /Spanish/Message/demo.bmg.
Punteros en la sección INF1 (cabecera: 16 B).
Hay 0x08 bytes por texto.
Primeros 0x04 bytes es el puntero.
Puntero i: OffsetINF1 + 16 + i ∗ 8 = 48h.
Punteros relativos a 0x0AE8.
Ignorar 6 bytes después de 001Ah.
Añadir pausa al final con:
1A 00 08 01 0E 00 7D 00.
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 57 / 59
161. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
The Legend of Zelda: Phantom Hourglass
Historia: Imágenes
Modificar imagen
Ruta: /Event/Kamishibai/kami1/kami1-01.
Seleccionar Replace palette.
Importar imagen con mismas dimensiones:
Ancho: 256 píxeles.
Alto: 192 píxeles.
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 58 / 59
162. Introducción Hello World! Reto 1 Textos Imágenes Media Reto 2
The Legend of Zelda: Phantom Hourglass
Historia: Tipografía
Modificar tipografía
Cambiar primer texto por:
2xdx = x2
+ K
Tipografía: /Font/zeldaDS_15.nftr.
Reemplazar caracteres japoneses por: y 2
Benito Palacios (IEEE SB UGR) Introducción al ROM Hacking Marzo de 2017 59 / 59