Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
f53fa11
Add section on kernel development with C++ and related video
Dec 13, 2025
8e7b908
Deleted the writing nes games page and move it to the main NES page i…
Dec 13, 2025
6b52c87
Revise NES Assembly Programming section to enhance clarity and detail…
Dec 13, 2025
e09754c
Add sections on decompiled retail console games, game engines & middl…
Dec 13, 2025
c78e802
Update Hacking.md with new sections on the Samy Worm exploit and reve…
Dec 13, 2025
303a76d
Update PlayStation4DevelopmentSystem.md with detailed specifications …
Dec 13, 2025
b85ab22
Update PlayStation4DevelopmentSystem.md to enhance pricing informatio…
Dec 13, 2025
47ff128
Revise DUH-D1000AA description and add reference
RetroGameDeveloper Dec 13, 2025
e4272f1
Add rear photo of DUH-D1000AA PS4 Development Kit from Reddit to Play…
Dec 13, 2025
c0794dd
Add sections on Development Hardware and Operating System to PS4.md; …
Dec 13, 2025
ab51120
Add historical context and reference for DUH-D1000AA PS4 Development …
Dec 13, 2025
da5ada8
Add pricing information for DUH-T1000xA PS4 Testing Kit and create a …
Dec 13, 2025
5f9c94f
Add XBOX Prototype section with video documentation and comparison de…
Dec 13, 2025
96e160c
Include image of PS4 dev kit board
RetroGameDeveloper Dec 13, 2025
c004d86
Updated tags to add hacking tag
Dec 13, 2025
696f7b0
Merge branch 'obsidian' of github.com:RetroReversing/retroReversing i…
Dec 13, 2025
f3a0834
Add Mark Cerny's "The Road to PS4" presentation details and video emb…
Dec 13, 2025
2463ef8
Update redirect paths in hardware.md to include additional console ro…
Dec 13, 2025
0d3307a
Add NES Graphics Explained section with video embed and technical det…
Dec 13, 2025
71144e7
Add ZX Spectrum emulator section with presentation details and video …
Dec 13, 2025
f2bf256
Update CheatCartridges.md with additional details on Action Replay an…
Dec 13, 2025
d08a9a1
Add Romantic Robot Multiface 128 Re-Creation section to CheatCartridg…
Dec 13, 2025
7e4d0dd
removed diaphora file as it has been moved to tools
Dec 13, 2025
1c9249d
Update Diaphora section in Tools.md: enhance description, add link to…
Dec 13, 2025
5ddd95b
Update Awesome2DTechniques.md: add 3D graphics section, enhance bread…
Dec 13, 2025
d34e5f7
Updated tags
Dec 13, 2025
22fb965
Update NES-Sprite-Tile-Editing.md: add introduction to tags, enhance …
Dec 13, 2025
08ab6d7
Update CheatCartridges.md: add sections on Game Genie history, legal …
Dec 13, 2025
4e4b973
Update Amiga.md: reorder recommendation tags, add YouTube video compi…
Dec 13, 2025
00af5b2
Update Amiga.md: correct spelling of "X-Acto" knife and "Blitter" in …
Dec 13, 2025
dc19047
Add iOS.md with introduction, App Store history, Frida toolkit detail…
Dec 13, 2025
ea98944
Update iOS.md: refine introduction, add detailed sections on the hist…
Dec 13, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 7 additions & 3 deletions categories/consoles/Amiga.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ _twitterimage: https://www.retroreversing.com/public/images/thumbnails/categorie
tags:
- amiga
recommend:
- introduction
- amiga
- introduction
_updatedAt: 2025-12-08
redirect_from:
- /Amiga/
Expand All @@ -41,11 +41,11 @@ The engineers on the panel, listed in the order they were introduced or spoke:
* **Ron Nicholson** - Director of Hardware Development
* Ron worked on the system architecture and wire-wrapped the original prototype motherboards (building 2 or 3 of them). He mentioned being influenced by Apple's Bill Atkinson to implement a hardware "blitter" for graphics performance.
* **Glenn Keller** - Hardware Engineer
* Glenn was responsible for the Porsche chip (which became Paula), handling the audio, disk controller, and UART. He shared a famous story about fixing a fatal flaw in the disk controller chip by physically cutting a microscopic wire on the silicon die with an X-Acto knife and a microscope.
* Glenn was responsible for the Porsche chip (which became Paula), handling the audio, disk controller, and UART. He shared a famous story about fixing a fatal flaw in the disk controller chip by physically cutting a microscopic wire on the silicon die with an "X-Acto" knife and a microscope.
* **Sam Dicker** - Software Engineer
* A former Williams Electronics employee (**Defender**, **Sinistar**), he worked on entertainment software and sound drivers. He created the original spinning ball demo (using color cycling to simulate rotation) and the sound effects for the Boing Ball demo (recorded by hitting a garage door with a foam bat).
* **Mike Slifcak** - Manager of Software QA
* Mike was responsible for testing hardware and software, including "torture testing" floppy drives (e.g., inserting disks upside down). He also wrote early graphics algorithms (like Bresenham line drawing) in C before the hardware blitter was ready.
* Mike was responsible for testing hardware and software, including "torture testing" floppy drives (e.g., inserting disks upside down). He also wrote early graphics algorithms (like Bresenham line drawing) in C before the hardware Blitter was ready.
* **R.J. Mical** - Software Engineer (Intuition/User Interface)
* In the video, he focuses on the "folklore" of the Amiga team, recounting stories like the "mystery wire" on a wire-wrap board that seemed essential for the system to work despite not being connected to anything, and the team's intense work ethic (sleeping in the office) leading up to CES.

Expand All @@ -57,6 +57,10 @@ The engineers on the panel, listed in the order they were introduced or spoke:
According to **MobyGames** There are 3,930 video games for the Amiga [^1] but the number would be much larger if Public Domain/shareware and other more indie titles are included.
[MobyGames - Amiga games list](https://www.mobygames.com/platform/amiga/)

### All Commodore Amiga Games Compilation
[All Games](https://www.youtube.com/watch?v=Ro9S27OJVgo) presents a massive seven-hour video compilation documenting the extensive library of the Commodore Amiga. This visual archive serves as a comprehensive reference for the platform's software history, showcasing the graphical and auditory evolution across thousands of titles.

<iframe width="560" height="315" src="https://www.youtube.com/embed/Ro9S27OJVgo" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>

### The 150 Essential AMIGA Games
**itsaPIXELthing** has created a video compilation showcasing 150 essential titles for the Commodore Amiga. It covers a vast array of genres and gameplay styles, serving as a comprehensive visual reference for the platform's graphical capabilities and software history.
Expand Down
24 changes: 21 additions & 3 deletions categories/consoles/Nes.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,11 @@ breadcrumbs:
- name: Home
url: /
- name: Consoles
url: /
url: /hardware
- name: Reverse Engineering NES Games - Uncovering the Secrets of Classic Gaming
url: #
redirect_from:
- /writing-nes-games/
recommend:
- nes
- snes
Expand Down Expand Up @@ -238,8 +240,19 @@ Mesen even comes with a HD Pack Builder Tool to create your own texture packs, f

## NES Assembly Programming

### Writing 6502 NES Assembly
The best 6502 Assembly tutorial for the NES has to be **Brian Parker's** Nerdy Nights tutorial series which goes from the basics all the way up to writing a version of pong! The original posts have been taken down but you can find a mirror here: [Nerdy Nights Mirror](https://nerdy-nights.nes.science/#main_tutorial-0)
### Nerdy Nights NES Programming Tutorials
The best 6502 Assembly tutorial for the NES has to be **Brian Parker's** Nerdy Nights tutorial series which goes from the basics all the way up to writing a version of pong!

It stats with basic architecture and moves through PPU graphics (sprites, backgrounds), APU sound engine creation, and advanced mappers like MMC1.

The original posts have been taken down but you can find a mirror here:

{% include link-to-other-site.html url="https://nerdy-nights.nes.science/#main_tutorial-0" description="A complete, preserved archive of the Nerdy Nights tutorials covering NES development from 'Hello World' to a full Pong clone and sound engine." image="https://nerdy-nights.nes.science/assets/nerdy-nights.png" title="Nerdy Nights Mirror" %}

### Writing NES Games! With Assembly!!
[Coding Tech](https://www.youtube.com/watch?v=kXbMCKMJXXQ) presents a talk by Christian, a web developer who spent three months learning 6502 assembly to build a game for the NES. The presentation walks through the technical hurdles of retro development, from understanding ROM board architecture and the Picture Processing Unit (PPU) to writing low-level code for sprite movement and controller input using the **CC65** toolchain.

<iframe width="560" height="315" src="https://www.youtube.com/embed/kXbMCKMJXXQ" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

## How are NES games so small (40KB)?
The game developer **Morphcat Games** has released a video on how they created an impressive game called **Micro Mages** in just 40KB without using a mapper (NROM board):
Expand All @@ -263,6 +276,11 @@ It covers the following topics related to NES Graphics:
* **Attribute Table** - A look up table of which Palette to use for that Block (set of 4x4 tiles)
* **Sprites** - Graphics made up of tiles but are rendered above the background tiles

### NES Graphics Explained - The PPU
[NesHacker](https://www.youtube.com/watch?v=7Co_8dC2zb8) provides a technical deep dive into the Nintendo Entertainment System's graphics architecture, focusing on the Picture Processing Unit (PPU). The video explains the four critical memory sections used to render 8-bit graphics: Pattern Tables for raw tile data, Name Tables for background layouts, Palettes for color management, and Object Attribute Memory (OAM) for handling foreground sprites.

<iframe width="560" height="315" src="https://www.youtube.com/embed/7Co_8dC2zb8" frameborder="0" allowfullscreen></iframe>

---
# Reverse Engineering Famicom and NES games
If you're interested in exploring the inner workings of classic video games, reverse engineering is a process that can help you uncover the secrets of how these games were designed and programmed.
Expand Down
17 changes: 16 additions & 1 deletion categories/consoles/PS4.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,10 @@ Welcome to our page dedicated to PS4 reverse engineering! The PlayStation 4 was

On this page, we've compiled a list of links to other pages that cover various topics related to PS4 reverse engineering. Whether you're interested in understanding the hardware architecture of the console, analyzing game code, or exploring the many mods and hacks that have been created by enthusiasts over the years, you'll find a wealth of resources and information on the pages we've linked to.

So grab your DualShock 4 controller, and get ready to dive into the exciting world of PS4 reverse engineering!
### Mark Cerny: The Road to PS4 Architecture
[Darien](https://www.youtube.com/watch?v=JJW5OKbh0WA) features a recording of **Mark Cerny's** "The Road to PS4" presentation from GameLabs 2013, where the lead architect details the technical philosophy behind the console's design. Cerny explains the strategic shift from the complex Cell processor of the PS3 to the developer-friendly x86 architecture of the PS4, emphasizing the critical decision to utilize unified GDDR5 memory to reduce "time to triangle" for game creators.

<iframe width="560" height="315" src="https://www.youtube.com/embed/JJW5OKbh0WA" frameborder="0" allowfullscreen></iframe>

---
# Hardware
Expand All @@ -35,9 +38,21 @@ In this section of our guide, we will provide you with detailed information and
## Retail Hardware
The PS4 has an 8-core AMD x64 class CPU paired with a AMD DirectX 11 class GPU with a few DirectX 12 features built in.

## Development Hardware
We have a post all about the Official Playstation 4 Development Hardware:
{% include link-to-other-post.html post="/official-playStation4-devkit" %}


## Operating System
According to [Phoronix](https://www.phoronix.com/news/MTM5NDI) the operating system for the PS4 is called OrbisOS and is based on FreeBSD 9.0 [^1].

---
# All Posts
<div>

{% include console.html %}
</div>

---
# References
[^1]: [Sony's PlayStation 4 Is Running Modified FreeBSD 9 - Phoronix](https://www.phoronix.com/news/MTM5NDI)
9 changes: 9 additions & 0 deletions categories/consoles/ZXSpectrum.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,15 @@ Tools such as **SkoolKit** and **Spectrum Analyser** are instrumental in reverse

**Spectrum Analyser** combines emulation with debugging and disassembly features, enabling interactive exploration of a program's behavior.

---
## ZX Spectrum Emulation

## How I built a ZX Spectrum emulator from scratch using C# and Blazor
[Øredev Conference](https://www.youtube.com/watch?v=AI_gtlR_k5Y) features a presentation by Jimmy Engström detailing his personal history with the ZX Spectrum and his journey to build an emulator for it.
He dives into the technical challenges of emulating the Z80 CPU instructions, memory management, and screen rendering, eventually demonstrating how he ported the project to the web using C# and Blazor WebAssembly with AOT compilation for performance.

<iframe width="560" height="315" src="https://www.youtube.com/embed/AI_gtlR_k5Y" frameborder="0" allowfullscreen></iframe>

---
# Official Software Development

Expand Down
77 changes: 77 additions & 0 deletions categories/consoles/iOS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
---
layout: post
permalink: /ios
title: iOS
breadcrumbs:
- name: Home
url: /
- name: iOS
url:
editlink: ../categories/iOS.md
_image: /public/images/iOS.jpg
_twitterimage: https://www.retroreversing.com/public/images/iOS.jpg
tags:
- ios
recommend:
- ios
- introduction
_updatedAt: 2025-12-07
redirect_from:
- /iPhone
- /iPad
- /iPod
---

# iOS Introduction (iPhone OS)
The first version of iOS (retroactively called iPhone OS 1.0 after the launch of 2.0) was released on June 29, 2007, alongside the first iPhone [^1].
It was renamed iOS in 2010 with the release of iOS 4 which is what this page will refer to it as.

## History of iOS
[Apple Explained](https://www.youtube.com/watch?v=l7eucqQMXDw) presents a comprehensive documentary covering the technical and visual evolution of Apple's mobile operating system, ranging from the secretive "Project Purple" development phase to the release of iOS 16.

The video details critical milestones in the platform's history, including the pivot from web apps to a native SDK, the architectural changes required for multitasking, the controversial shift away from Google services (Maps/YouTube), and the major interface overhaul introduced in iOS 7.

<iframe width="560" height="315" src="https://www.youtube.com/embed/l7eucqQMXDw" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>

## History of the App Store
[Apple Explained](https://www.youtube.com/watch?v=t_CDefOuAww) documents the pivotal shift in mobile computing history from Steve Jobs' initial vision of web-based applications to the creation of the native iOS App Store. The video details the internal debates that led to the release of the iPhone SDK in 2008, the subsequent explosion of the "app economy," and major platform milestones like the introduction of In-App Purchases (IAP) and the "Walled Garden" censorship controversies.

<iframe width="560" height="315" src="https://www.youtube.com/embed/t_CDefOuAww" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>

### Steve Jobs Introduces the App Store (2008)
[gamingandtechnology](https://www.youtube.com/watch?v=xo9cKe_Fch8) archives the historic iPhone SDK Keynote where **Steve Jobs** officially unveils the **App Store**. The presentation outlines the ecosystem's distribution model, detailing how developers can reach every user wirelessly (or via iTunes), the 70/30 revenue split, and the handling of free applications. Jobs emphasizes the centralized update mechanism and the curated nature of the platform to prevent malicious software, establishing the closed-garden software distribution model standard in modern mobile computing.

<iframe width="560" height="315" src="https://www.youtube.com/embed/xo9cKe_Fch8" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>

---
# Reverse Engineering iOS Games

## Frida: Dynamic Instrumentation Toolkit
**Frida** is a world-class dynamic instrumentation framework created by **Ole André Vadla Ravnås** that allows developers and reverse engineers to inject custom scripts into black-box processes. It enables users to hook functions, trace APIs, and manipulate application behavior in real-time across a wide range of platforms, including Windows, macOS, Linux, iOS, Android, and QNX, without requiring source code or recompilation.

{% include link-to-other-site.html url="https://frida.re/" description="Frida is a free, scriptable, and portable dynamic instrumentation toolkit that lets you inject JavaScript into native apps to debug, trace, and reverse engineer software on multiple operating systems." image="https://frida.re/img/logotype.svg" title="Frida: A World-Class Dynamic Instrumentation Toolkit" %}

### Frida on iOS
[Frida](https://frida.re/docs/ios/) provides the official documentation for deploying the Frida dynamic instrumentation toolkit on iOS devices. The guide details the setup process for both jailbroken environments (via Cydia/Sileo) and non-jailbroken devices (using the Frida Gadget), enabling users to inject JavaScript, trace functions, and manipulate application behavior at runtime.

{% include link-to-other-site.html url="https://frida.re/docs/ios/" description="The official Frida guide for iOS explains how to set up the environment on both jailbroken and non-jailbroken devices to perform dynamic instrumentation and function tracing." image="https://frida.re/img/logotype.svg" title="Frida: iOS Documentation" %}

### **friman**: Frida Version Management Tool
**Thelicato** has developed **friman**, a Python-based utility that simplifies the management of multiple Frida versions, which is necessary due to compatibility issues across different devices and target projects.

The tool enables seamless installation, local tracking, and switching of versions, along with specific helpers for downloading `frida-gadget` and `frida-server` assets, including a convenience utility for pushing the server to Android devices.

{% include link-to-other-site.html url="https://github.com/thelicato/friman" description="Python tool designed to manage and switch between multiple Frida versions, including helpers for downloading and deploying **frida-server** and gadget binaries." image="https://opengraph.githubassets.com/1/thelicato/friman" title="**friman**: Frida version management tool" %}

---
## File Formats

### QLCARFiles: Assets.car Viewer for macOS
The **cgnkrz** repository provides **QLCARFiles**, a native macOS application built for the static analysis and inspection of Apple's compiled **Assets.car** files from iOS and macOS applications. This tool is valuable for reverse engineering as it offers a graphical interface to browse and view all bundled assets—including images at multiple scales, colors, and embedded data—and allows for easy extraction to disk. The project explicitly credits and builds upon the technical reverse engineering work of Timac on the underlying `.car` file format.

{% include link-to-other-site.html url="https://github.com/cgnkrz/QLCARFiles" description="cgnkrz's QLCARFiles is a native macOS application that enables reverse engineers to visually browse, view, and extract bundled assets (images, colors, data) from iOS and macOS Assets.car files." image="https://opengraph.githubassets.com/1/cgnkrz/QLCARFiles" title="QLCARFiles: A native macOS app to view, explore, and extract assets from .car files" %}


---
# References
[^1]: [iPhone OS 1: The Beginning of an Era - Low End MacLow End Mac](https://lowendmac.com/2017/iphone-os-1-the-beginning-of-an-era/?utm_source=chatgpt.com)
13 changes: 13 additions & 0 deletions categories/games/Games.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,25 @@ tags:
---
This page collects all the posts that are related to reverse engineering a specific game rather than an entire console or platform.

## Decompiled Retail Console Games
This page maintains a comprehensive, curated list of retail console games that have been successfully reverse engineered and decompiled back into compilable source code (C/C++). It tracks the progress of major community projects across platforms like the **Nintendo 64**, **GameCube**, and **PlayStation**, including high-profile achievements such as *Super Mario 64*, *The Legend of Zelda: Ocarina of Time*, and *Jak and Daxter*. We have a specific post all about it here:

{% include link-to-other-post.html post="/source-code/decompiled-retail-console-games" %}

## Retail Console Game Source code (C/C++)
We have a specific page that serves as a directory for officially released or leaked source code of retail console games, specifically focusing on the official source code rather than disassemblies and decompilations:

{% include link-to-other-post.html post="/source-code/retail-console-source-code" %}

## Game Engines & Middleware
Game engines provide the foundational logic for graphics, audio, and input, while middleware focuses on specific subsystems like physics (PhysX) or sound (FMOD). Our page explores the evolution of these tools, from proprietary in-house engines to commercial giants like Unity and Game Maker, and categorizes them by platform to aid in reverse engineering efforts.

{% include link-to-other-post.html post="/games/engines" %}

## Games with Debug Symbols
We have a specific post that aggregates all our posts on games with debug symbols separated by console platform here:

{% include link-to-other-post.html post="/symbols" %}

---
# All Posts related to Specific Games
Expand Down
Loading