diff --git a/categories/consoles/Amiga.md b/categories/consoles/Amiga.md
index 9cb829066..92df215b3 100644
--- a/categories/consoles/Amiga.md
+++ b/categories/consoles/Amiga.md
@@ -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/
@@ -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.
@@ -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.
+
+
### 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.
diff --git a/categories/consoles/Nes.md b/categories/consoles/Nes.md
index 4499c509e..f9cd8a493 100644
--- a/categories/consoles/Nes.md
+++ b/categories/consoles/Nes.md
@@ -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
@@ -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.
+
+
## 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):
@@ -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.
+
+
+
---
# 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.
diff --git a/categories/consoles/PS4.md b/categories/consoles/PS4.md
index f06c81507..ee91556ba 100644
--- a/categories/consoles/PS4.md
+++ b/categories/consoles/PS4.md
@@ -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.
+
+
---
# Hardware
@@ -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
{% include console.html %}
+
+---
+# References
+[^1]: [Sony's PlayStation 4 Is Running Modified FreeBSD 9 - Phoronix](https://www.phoronix.com/news/MTM5NDI)
\ No newline at end of file
diff --git a/categories/consoles/ZXSpectrum.md b/categories/consoles/ZXSpectrum.md
index 7df2f052c..eb44930ac 100644
--- a/categories/consoles/ZXSpectrum.md
+++ b/categories/consoles/ZXSpectrum.md
@@ -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.
+
+
+
---
# Official Software Development
diff --git a/categories/consoles/iOS.md b/categories/consoles/iOS.md
new file mode 100644
index 000000000..969cea91d
--- /dev/null
+++ b/categories/consoles/iOS.md
@@ -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.
+
+
+
+## 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.
+
+
+
+### 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.
+
+
+
+---
+# 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)
\ No newline at end of file
diff --git a/categories/games/Games.md b/categories/games/Games.md
index 0ca80b11a..fb960da0c 100644
--- a/categories/games/Games.md
+++ b/categories/games/Games.md
@@ -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
diff --git a/categories/hardware/CheatCartridges.md b/categories/hardware/CheatCartridges.md
index bff89b8b6..588415ca2 100644
--- a/categories/hardware/CheatCartridges.md
+++ b/categories/hardware/CheatCartridges.md
@@ -25,28 +25,63 @@ tags:
---
# Action Replay (Datel)
-**Datel** first developed their **Action Replay** cartridges for the Commodore 64 in 1986 [^2].
+**Datel** first developed their **Action Replay** cartridges for the **Commodore 64** in 1986 [^2]. The Action Replay line then went on to include products for the NES, Super Nitendo, Nintendo 64, Playstation and various handheld consoles.
+
+Since Datel have produced many chat cartidges and other custom unlicensed console hardware we have split this section into its own page:
+
+{% include link-to-other-post.html post="/companies/datel/" %}
+
---
-# Multiface (Romantic Robot)
+# Multiface (Romantic Robot) (1986)
**Romantic Robot** released their Multiface One for the ZX Spectrum in 1986 [^3] which allowed Memory Dumps similar to save states in modern emulators, cheats could then be applied to these memory dumps with the **POKE** command.
+[Vintage Sinclair Archive](https://k1.spdns.de/Vintage/Sinclair/82/Peripherals/Multiface%20I%2C%20128%2C%20and%20%2B3%20(Romantic%20Robot)/) provides a comprehensive directory of technical resources for the **Multiface** series (I, 128, and +3). The archive includes essential reverse engineering data such as **ROM dumps**, hardware **schematics**, and original **user manuals** for these legendary NMI-based hardware debuggers and snapshot devices used on the ZX Spectrum.
+
+{% include link-to-other-site.html url="https://k1.spdns.de/Vintage/Sinclair/82/Peripherals/Multiface%20I%2C%20128%2C%20and%20%2B3%20(Romantic%20Robot)/" description="A file repository containing firmware ROMs, circuit diagrams, and documentation for the Romantic Robot Multiface series, a critical tool for early hardware-level debugging and backup creation on Sinclair systems." image="https://upload.wikimedia.org/wikipedia/commons/8/87/Multiface_One.jpg" title="Multiface I, 128, and +3 Archive" %}
+
+## Romantic Robot Multiface 128 Re-Creation
+[Lost Retro Tapes](https://www.lostretrotapes.com/romantic-robot-multiface-128-re-creation/) has a detailed write-up about reverse engineering and re-creating the **Romantic Robot Multiface 128** for the Sinclair Spectrum.
+
+The author outlines the painstaking process of photographing the original PCB, tracing all component connections and vias with a multimeter to generate a complete KiCad schematic, and then designing a modern, compact PCB layout for fabrication. This recreation provides a fully functional version of the classic game-hacking tool.
+
+{% include link-to-other-site.html url="https://www.lostretrotapes.com/romantic-robot-multiface-128-re-creation/" description="Lost Retro Tapes documents the full hardware reverse engineering and KiCad re-creation process for the iconic Sinclair Spectrum Multiface 128 cartridge." image="https://www.lostretrotapes.com/wp-content/uploads/2023/02/IMG_1010-copy-scaled.jpg" title="Romantic Robot Multiface 128 Re-Creation" %}
+
+
---
# Game Genie (Codemasters)
The **Game Genie** was one of the first Cheat Code cartridges to be developed for **home consoles** as they realised their first version for the Nintendo Entertainment System (NES) in 1990.
-Nintendo feared that this would either cause harm to their brand or make game piracy even easier and thus decided to sue Codemasters.
+## Game Genie: History and Functionality
+[Gaming Historian](https://www.youtube.com/watch?v=PCvIZ80RIhE) presents a detailed history of the **Game Genie**, a popular cheat device originally developed by Codemasters. The video covers the legal battles between Nintendo and Galoob (the US distributor) over copyright infringement and derivative works, eventually establishing important precedents for fair use in gaming.
-Codemasters eventually won the court case after four long years and got a nice bonus out of it: $140 million! This cash injection more than covered their court fees and allowed Codemasters to expand and develop more games [^1].
+It also briefly explains the technical method of operation: the device intercepts and modifies data signals between the game cartridge and the console (e.g., preventing the "lives" counter from decrementing) to enable cheats like infinite lives.
-## How were Game Genie's created?
+
+
+### Legal Court Cases against Nintendo
+Nintendo feared that this would either cause harm to their brand or make game piracy even easier and thus decided to sue Galoob Toys and Camerica.
+Both companies eventually won the court case after four long years and got a nice bonus out of it: $140 million! This cash injection more than covered their court fees and allowed Codemasters to expand and develop more games [^1].
+
+#### Lewis Galoob Toys, Inc. v. Nintendo of America, Inc.
+[Justia](https://law.justia.com/cases/federal/district-courts/FSupp/780/1283/1445354/) hosts the full text of the landmark 1991 U.S. District Court decision that validated the legality of the **Game Genie**.
+
+The court ruled that the device, which temporarily modifies game data to enable cheats (like infinite lives), does not create an infringing "derivative work" because the changes are not permanent. Furthermore, it established that a consumer's private use of the device to alter their own purchased games constitutes **fair use**, setting a vital precedent for reverse engineering and aftermarket software tools.
+
+{% include link-to-other-site.html url="https://law.justia.com/cases/federal/district-courts/FSupp/780/1283/1445354/" description="The official 1991 ruling in Lewis Galoob Toys, Inc. v. Nintendo of America, Inc. confirmed that the Game Genie's temporary data alteration was fair use and not copyright infringement." image="https://upload.wikimedia.org/wikipedia/commons/thumb/a/a5/Game-Genie-NES.jpg/640px-Game-Genie-NES.jpg" title="Legal Ruling: Galoob v. Nintendo (Game Genie)" %}
+
+---
+## How was the Game Genie cartridge developed?
In an interview with **GSHI** (a now defunct website) **Richard Aplin** who worked on the Game Genie line of products as a hardware engineer had the following to say [^4]:
-> We had no way to get any info on the hardware or software of the consoles (and we had a very litigious relationship w/Nintendo) , so we did it "the hard way" by reverse-engineering them - by literally going to a store, buying a few systems, tearing them apart, and attaching a logic analyser to them.
+> We had no way to get any info on the hardware or software of the consoles (and we had a very litigious relationship w/Nintendo) , so we did it "the hard way" by **reverse-engineering** them - by literally going to a store, buying a few systems, tearing them apart, and attaching a **logic analyser** to them.
+>
> A logic analyser is basically like a digital oscilloscope (shows you what high-speed signals are doing in real time) but typically has lots of separate channels (32-48).
> You connect each channel to signals/chip pins that look "interesting" inside your console, run the analyzer, then spend some time figuring out what all the signals are doing and what the hell is going on.
>
> Once you've got the basic signals figured out (typically you want to figure out the pinout of the cartridge connector) - found the address and data bus of the CPU and the basic control lines (Read, Write, etc) then you've got to the point where you can typically build a 'dev board'.
-> We'd build a PCB (with suitable cartridge edge connector on it) that contained an EPROM, an FPGA, a bunch of SRAM, a high-speed parallel port, and typically for fun a 2-line LCD display and some lights.
+
+He then goes on to explain the contents of the dev board:
+> We'd build a PCB (with suitable cartridge edge connector on it) that contained an **EPROM**, an **FPGA**, a bunch of **SRAM**, a high-speed parallel port, and typically for fun a 2-line LCD display and some lights.
> The eprom contained whatever boot code was required to get the console booted, then it entered a monitor program where you could remotely view/change the console memory using the parallel port on the board.
> The parallel port always used the ubiquitous "PDS" style interface (PDS= Programmers Development System, at the time a very widely used - and very fast - PC-based cross-assembling system by Andrew Glaister and others) so everything was fairly standard.
@@ -54,10 +89,13 @@ In an interview with **GSHI** (a now defunct website) **Richard Aplin** who work
In the same interview **Richard Aplin** explains that they created custom hardware and software running on a Commodore 64[^4]:
> We usually used a custom PCB that had (typically) a parallel port, a passthru connector for the original cart, and basic byte-replacement hardware. Also a few simple tools running (I think) on a Commodore 64.
-This software was presumably very similar to how "Cheat Engine" works, take a dump of memory, loose a life in the game, then take another dump and compare the memory addresses that have changed. For the ROM level cheats it would be harder, presumably they would take a full ROM dump and run it through a disassembler as best they could, then see what the program counter's value is at when it writes to the memory address you are interested in and find that in the disassembly.
+This software was presumably very similar to how **Cheat Engine** works, take a dump of memory, loose a life in the game, then take another dump and compare the memory addresses that have changed.
+
+For the ROM level cheats it would be harder, presumably they would take a full ROM dump and run it through a disassembler as best they could, then see what the program counter's value is at when it writes to the memory address you are interested in and find that in the disassembly.
+### The Codemeisters
Also I love this quote from the same interview, it shows just how time consuming it would be to support a whole book of codes for the NES library [^4]:
-> They had teams of people making codes (a guy called Graham Rigby was the main Codemeister - he lived in a room full of nothing but shelves and racks of NES games - he had every NES game in every territory I think)
+> They had teams of people making codes (a guy called **Graham Rigby** was the main **Codemeister** - he lived in a room full of nothing but shelves and racks of NES games - he had every NES game in every territory I think)
Presumably they has similar rooms with Game Boy, Game Gear and Sega Mega Drive games stacked high, I wonder what happened to all those games!
diff --git a/categories/hardware/hardware.md b/categories/hardware/hardware.md
index 43eba70ca..d09e67e1e 100644
--- a/categories/hardware/hardware.md
+++ b/categories/hardware/hardware.md
@@ -11,12 +11,12 @@ breadcrumbs:
redirect_from:
- /hardware
- /console
+ - /hardware/consoles
+ - /consoles
- /cpu
- /playStation-evolution
- /consolearchitecture
- /architecture
- - /console-architecture
- - /consolehardware
- /games/console
- /hardware-architecture
tags:
diff --git a/categories/misc/Hacking.md b/categories/misc/Hacking.md
index 07aaed862..16e72efa7 100644
--- a/categories/misc/Hacking.md
+++ b/categories/misc/Hacking.md
@@ -8,14 +8,28 @@ breadcrumbs:
- name: Home
url: /
editlink: ../categories/misc/Hacking.md
-recommend: industry
+recommend:
+ - industry
+ - introduction
+ - pc
image_: /public/images/categories/Hacking.jpg
twitterimage_: https://www.retroreversing.com/public/images/categories/Hacking.jpg
tags:
- industry
+ - hacking
---
# Hacking History
-## 2005 - Samy Kamkar Takes Down Myspace
-
+## 2005 - Samy Worm: The Myspace XSS Exploit
+[Motherboard](https://www.youtube.com/watch?v=DtnuaHl378M) features an interview with **Samy Kamkar** detailing the infamous 2005 "Samy Worm" that took down Myspace. Kamkar explains the technical mechanics of the Cross-Site Scripting (XSS) vulnerability that allowed the worm to exponentially propagate by automatically adding him as a friend and infecting visiting profiles. The video also covers the aftermath, including the site-wide outage and the legal repercussions that led to a three-year ban from computer use.
+
+
+
+---
+# Hacking Random Numbers
+
+## How hackers reverse Math.random()
+[Zanzlanz](https://www.youtube.com/watch?v=XDsYPXRCXAs) has a video that explores the mechanics and vulnerabilities of pseudo-random number generators (PRNGs), focusing on Linear Congruential Generators (LCGs) and Xorshift algorithms. It demonstrates practical techniques for reverse engineering these functions to predict future values and recover previous states, illustrated by exploiting Flash-based games like Minesweeper.
+
+
\ No newline at end of file
diff --git a/categories/tools/ProgrammingLanguages.md b/categories/tools/ProgrammingLanguages.md
index 520db6617..a3a4aa9f5 100644
--- a/categories/tools/ProgrammingLanguages.md
+++ b/categories/tools/ProgrammingLanguages.md
@@ -60,6 +60,13 @@ C/C++ Compilers:
* Turbo C++
* Microsoft Visual C++
+## Kernel Development
+
+### Make your own kernel from scratch... with C++!
+[Cinemint](https://www.youtube.com/@cinemint) Has a video on how he created a kernel with C++ and a bit of assembly:
+
+
+
---
# Shader Languages
Shaders are tiny programs that run on GPUs and thus have their own category of programming languages more suited to the task, as general purpose programming languages are too bloated and contain too many concepts that would not work on a GPU.
diff --git a/categories/tools/Tools.md b/categories/tools/Tools.md
index 88ad02c65..5b0906708 100644
--- a/categories/tools/Tools.md
+++ b/categories/tools/Tools.md
@@ -12,6 +12,7 @@ redirect_from:
- /tooling
- /tutorials/tools
- /software
+ - /Diaphora
editlink: ../categories/tools/Tools.md
title: Retro Game Development and Reversing Tools of the Trade
recommend:
@@ -149,6 +150,7 @@ Debuggers are used to test and analyze game code in real-time, allowing you to t
- **x64dbg**: An open-source debugger for Windows with modern features and an active development community.
- **Cheat Engine**: While primarily known as a game cheating tool, Cheat Engine’s debugging features make it useful for reverse engineering.
+---
## Hex Editors
Hex editors let you view and modify the raw binary data of game files. They are essential for making precise changes to game code and assets at the byte level.
@@ -156,6 +158,7 @@ Hex editors let you view and modify the raw binary data of game files. They are
- **Hex Fiend**: A powerful hex editor for macOS, capable of handling large files with ease.
- **010 Editor**: A professional-grade hex editor with powerful scripting and parsing capabilities.
+---
## Decompilers
Decompilers attempt to convert executable code back into a higher-level programming language, making it easier to understand and modify.
@@ -165,7 +168,7 @@ Decompilers attempt to convert executable code back into a higher-level programm
{% include link-to-other-post.html post="/intro-decompiling-with-ghidra" description="For more information on Ghidra check out this post." %}
-
+---
## File Format Analyzers
Understanding game-specific file formats is crucial for modifying assets and extracting valuable information. These tools help analyze and manipulate proprietary file formats used in games.
@@ -174,6 +177,26 @@ Understanding game-specific file formats is crucial for modifying assets and ext
- **TrID**: A utility for identifying file types and formats based on their binary signatures.
- **Detect It Easy**: [horsicq/Detect-It-Easy: Program for determining types of files for Windows, Linux and MacOS.](https://github.com/horsicq/Detect-It-Easy?tab=readme-ov-file) (excellent for getting compiler/linker information for an executable)
+### Diaphora - The Deeply Interactive Program Diffing Tool
+**Diaphora** is an advanced program diffing framework written by **joxeankoret** that integrates directly into the IDA Pro disassembler (and supports Ghidra via a script).
+This tool is essential for tasks like comparing binary versions, allowing users to identify changes in functions, structures, and global variables between two databases. It provides a visual and interactive way to track code evolution and analyze modifications in complex binaries.
+
+{% include link-to-other-site.html url="https://github.com/joxeankoret/diaphora" description="joxeankoret's Diaphora is a highly interactive program diffing tool for IDA Pro (with Ghidra support) used to compare two binary databases and highlight differences in functions, types, and data." image="https://opengraph.githubassets.com/1/joxeankoret/diaphora" title="Diaphora: The Deeply Interactive Program Diffing Tool" %}
+
+[BSides Lisbon](https://www.youtube.com/watch?v=eAVfRxp99DM) features a presentation by **Joxean Koret**, the creator of **Diaphora**, an open-source program diffing plugin for IDA Pro.
+
+Koret details the tool's architecture, which exports IDA databases to **SQLite** and uses **44 different heuristics** to match functions, including techniques based on the **Hex-Rays decompiler's Abstract Syntax Tree (AST)** for high-quality, cross-architecture comparison. The presentation includes demos of identifying a security patch and porting symbols between stripped and unstripped binaries.
+
+
+
+
+### Using BinDiff and Diaphora
+[Guided Hacking](https://www.youtube.com/watch?v=n06QSoICU6c) presents a tutorial on using both **Diaphora** and **BinDiff** to perform binary diffing.
+The video demonstrates how to set up workspaces to visually compare function control flow graphs and identify code similarities, which is essential for analyzing security patches, identifying vulnerabilities, and detecting code reuse in malware variants like the **Conti ransomware**.
+
+
+
+---
## Emulators
Emulators replicate the hardware of old gaming systems on modern computers, allowing you to run and test games in a controlled environment.
@@ -192,7 +215,7 @@ It covers the Tiny Code Generator (TCG), memory management via SoftMMU, and the
{% include link-to-other-site.html url="https://airbus-seclab.github.io/qemu_blog/" description="Airbus Security Lab provides a comprehensive series of blog posts detailing QEMU internals, including the TCG JIT compiler, memory access handling, and device emulation." image="https://avatars.githubusercontent.com/u/41308365?v=4" title="A Deep Dive into QEMU Internals" %}
-
+---
## Game Cracking Software used back in the day
Cracking games for piracy and other purposes has existed for almost as long as the games industry has existed.
@@ -203,8 +226,6 @@ We have a post specifically about this software in the link below.
{% include link-to-other-post.html post="/cracking-software" description="For more information on Game Cracking software used back in the day check out this post." %}
-
-
---
# Posts
Here is a list of posts on the site that have been tagged as related to game development or reverse engineering tools.
diff --git a/cspell.json b/cspell.json
index 5c9d5402e..8e81d6004 100644
--- a/cspell.json
+++ b/cspell.json
@@ -22,6 +22,7 @@
"(^|\\n)```[\\s\\S]*?```",
"\\*[^*]+\\*",
"\\*\\*[^*]+\\*\\*",
+ "\"[^\"]+\"",
"\\[[^\\]]+\\]",
"\"[A-Za-z0-9_/\\.-]+\"",
"\"\\/[A-Za-z0-9_-]+",
diff --git a/pages/Introduction/HowEmulatorsWork.md b/pages/Introduction/HowEmulatorsWork.md
index a1b350448..3f29d3c2d 100644
--- a/pages/Introduction/HowEmulatorsWork.md
+++ b/pages/Introduction/HowEmulatorsWork.md
@@ -391,6 +391,11 @@ A very cool feature of his emulator is it has an embedded 6502 assembler inside
+## 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.
+
+
+
---
# References
[^1]: [Are there good books/resources/guides on Emulator Architecture and how to structure your projects? : EmuDev](https://www.reddit.com/r/EmuDev/comments/w0epiv/are_there_good_booksresourcesguides_on_emulator/)
diff --git a/pages/SourceCode/graphics/Awesome2DTechniques.md b/pages/SourceCode/graphics/Awesome2DTechniques.md
index 5eff84ad9..9272462f7 100644
--- a/pages/SourceCode/graphics/Awesome2DTechniques.md
+++ b/pages/SourceCode/graphics/Awesome2DTechniques.md
@@ -2,32 +2,48 @@
layout: post
tags:
- 2d
-title: 2D Graphics Techniques
+- 3d
+- introduction
+title: 2D & 3D Graphics Techniques
thumbnail: /public/images/RetroReversingLogoSmall.png
permalink: /2d-graphics
breadcrumbs:
- name: Home
url: /
+ - name: Introduction
+ url: /introduction
+ - name: 2D & 3D Graphics Techniques
+ url: #
redirect_from:
- /2d
+ - /3d-graphics
recommend:
- 2d
+ - 3d
- introduction
editlink: /pages/SourceCode/graphics/Awesome2DTechniques.md
---
This is a Work in progress page to list interesting articles on 2D graphics techniques to create cool effects.
-# Screen Transitions
+# 2D Graphics effects
## How Doom's Melting Screen Works
-The Youtuber **decino** has created an excellent video explaining how the 2d melting screen transition works in the original Doom. It is well worth a watch!
+The YouTuber **decino** has created an excellent video explaining how the 2d melting screen transition works in the original Doom. It is well worth a watch!
----
-# Others
-
## Pseudo 3d Roads
For information on how to create 2D games that look pseudo 3d (e.g outrun) Check out:
[Lou's Pseudo 3d Page](http://www.extentofthejam.com/pseudo/)
+
+---
+# 3D Graphics effects
+
+## Sonic R's "Impossible" Fading transparency
+The video by [GameHut](https://www.youtube.com/watch?v=FdD0GvVRSMc) provides a technical breakdown of a challenging graphical achievement on the Sega Saturn: implementing transparent object fading despite the hardware's limitations.
+
+The Saturn's sprite-based polygon rendering caused transparency corruption when polygons were distorted, leading to objects *popping* in, as seen in *Daytona*. The solution involved a clever two-step process called **"twelve layer transparency"**: first, stripping away the polygon's **Gouraud shading** by storing and calculating three additional sets of lighting data [03:43], and then using the Saturn's eight available **color calculation ratio** hardware registers to fade the now-unlit texture over the background [04:07].
+
+
+
diff --git a/pages/consoles/n64/N64MipsAssembly.md b/pages/consoles/n64/N64MipsAssembly.md
index 7b0498c0e..735f912a7 100644
--- a/pages/consoles/n64/N64MipsAssembly.md
+++ b/pages/consoles/n64/N64MipsAssembly.md
@@ -31,5 +31,5 @@ First of all in order to help support the creation of more excellent N64 MIPS tu
If you are lucky you can catch the stream live here: [fraserN64 - Twitch](https://www.twitch.tv/frasern64/)
# Source Code and Resources
-You can access all the source code and resources refeenced in the videos here: [fraser125/N64_ASM_Videos: The files complementing my video series N64 MIPS Assembly](https://github.com/fraser125/N64_ASM_Videos)
+You can access all the source code and resources referenced in the videos here: [fraser125/N64_ASM_Videos: The files complementing my video series N64 MIPS Assembly](https://github.com/fraser125/N64_ASM_Videos)
diff --git a/pages/consoles/nes/NES-Sprite-Tile-Editing.md b/pages/consoles/nes/NES-Sprite-Tile-Editing.md
index 43a3df841..9eae1c966 100644
--- a/pages/consoles/nes/NES-Sprite-Tile-Editing.md
+++ b/pages/consoles/nes/NES-Sprite-Tile-Editing.md
@@ -4,6 +4,7 @@ permalink: /nes-sprite-tile-editing/
tags:
- nes
- gameboy
+- introduction
layout: post
youtube: "iMACSQjyRDs"
image: /public/QkyxcBhunP1JpTNuoeDIMw_img_0.png
@@ -15,18 +16,28 @@ breadcrumbs:
url: /nes
- name: NES Sprite Tile Editing
url: #
-recommend: nes
+recommend:
+- nes
+- snes
+- introduction
editlink: /consoles/nes/NES-Sprite-Tile-Editing.md
---
-# NES Sprite Tile editing with Tile Layer Pro
+# Sprite Tile editing with Tile Layer Pro
If you have ever wondered how graphical rom hacks are made this is for you! This should work for most early games such as NES and Game Boy. Future generation games start to compress their sprites which makes it more difficult.
-Back in the day of NES and Game Boy development, the sprites and tiles were saved in the rom file completely uncompressed and thus visible with the correct editor.
+Back in the day of NES and Game Boy development, the sprites and tiles were saved in the rom file completely uncompressed and thus visible with the correct editor, one such editor is **Tile Layer Pro**.

-You need to download an application called 'Tile Layer Pro'.
+## Tile Layer Pro: ROM Graphics Editor
+Tile Layer Pro is a fundamental and widely-used utility in the field of ROM hacking and graphical reverse engineering. The application allows users to view, edit, and manipulate the raw tile data (8x8 or 16x16 pixel blocks) that constitute the sprites, background images, and foreground elements within classic video game ROM files. This tool is essential for understanding how tilemaps are laid out in memory, enabling hackers to customize graphics across numerous tile-based consoles.
+
+{% include link-to-other-site.html url="https://segaretro.org/Tile_Layer_Pro" description="Sega Retro has an entry for Tile Layer Pro, a classic ROM hacking utility used for viewing and editing the tile-based graphics data in video game ROMs." title="Tile Layer Pro" %}
+
+### How to Hack NES Games: Editing Graphics
+[John Riggs](https://www.youtube.com/watch?v=iMACSQjyRDs) presents a tutorial on modifying NES game graphics using **Tile Layer Pro**. The video demonstrates how to locate 8x8 tile patterns within a ROM (using *Super Mario Bros.* as an example), use the "Tile Arranger" to visualize sprites, and edit them pixel-by-pixel or by importing graphics from other games to create custom characters.
-One cool feature of Tile Layer Pro is being able to open multiple games at once and copy tiles over. In the video below they copy a ghost from pacman and replace the mario goomba with it!
+One cool feature of Tile Layer Pro is being able to open multiple games at once and copy tiles over, so in the video they copy a ghost from Pacman and replace the Mario Goomba with it!
+
diff --git a/pages/consoles/nes/WritingNESGamesWithAssembly.md b/pages/consoles/nes/WritingNESGamesWithAssembly.md
deleted file mode 100644
index 473e23eea..000000000
--- a/pages/consoles/nes/WritingNESGamesWithAssembly.md
+++ /dev/null
@@ -1,34 +0,0 @@
----
-title: Writing NES Games with Assembly
-layout: post
-permalink: /writing-nes-games/
-image: https://i3.ytimg.com/vi/kXbMCKMJXXQ/hqdefault.jpg
-tags:
-- nes
-- introduction
-- assembly
-recommend:
-- nes
-- introduction
-- assembly
-youtube: kXbMCKMJXXQ
-editlink: /consoles/pages/nes/WritingNESGamesWithAssembly.md
----
-
-I’d like to take you on a stroll down memory lane and dig into the internals of the Nintendo Entertainment System (NES) to figure out how it works.
-
-While we’re there, we’ll see how to build a game for the NES using 6502 assembly with the help of a few modern tools.
-
-We’ll gain a new respect for ’80s developers and an appreciation for the high-level languages we have today!
-
-## EVENT:
-
-!!Con 2017
-
-## SPEAKER:
-
-Christian Joudrey
-
-## PERMISSIONS:
-
-The original video was published with the Creative Commons Attribution license (reuse allowed).
diff --git a/pages/consoles/ps4/PlayStation4DevelopmentSystem.md b/pages/consoles/ps4/PlayStation4DevelopmentSystem.md
index d53e72f72..63e6fd564 100644
--- a/pages/consoles/ps4/PlayStation4DevelopmentSystem.md
+++ b/pages/consoles/ps4/PlayStation4DevelopmentSystem.md
@@ -21,19 +21,95 @@ recommend:
editlink: /consoles/ps4/PlayStation4DevelopmentSystem.md
---
-This post covers the hardware used to develop Playstation 4 games by major studios back in the day, for the software side see the post on the Official PS4 SDK.
+This post covers the hardware used to develop PlayStation 4 games by major studios back in the day, for the software side see the post on the Official PS4 SDK.
+
+## Pricing Information
+The PS4 development kits were split into "Testing Kits" for QA and "Development Kits" for software developers. With both having an alternative Bundle version.
+
+The prices for standard PS4 testing kits and the PS4 Pro testing/development hardware are listed in the table below in Euros (€), currently we don't know the price of the standard PS4 Development kit.
-# Pricing Information
-
ID | Name | Price in Euro
---|---|---
9267669 | DUALSHOCK 4 CONTROLLER | € 50.00
-DUH-D7000AA | PS4 PRO DEVELOPMENT KIT | € 2,000.00
-DUH-D7000AAB | PS4 PRO DEVELOPMENT KIT BUNDLE | € 2,000.00
+DUH-D1000AA | PS4 DEVELOPMENT KIT | Unknown ?
+DUH-T1000xA | PS4 TESTING KIT (B CHASSIS) | € 800.00
DUH-T1200AA | PS4 TESTING KIT (C CHASSIS) | € 800.00
DUH-T1200AAB | PS4 TESTING KIT BUNDLE (C CHASSIS) | € 800.00
DUH-T2000AA | PS4 TESTING KIT (D CHASSIS) | € 800.00
DUH-T2000AAB | PS4 TESTING KIT BUNDLE (D CHASSIS) | € 800.00
+DUH-D7000AA | PS4 PRO DEVELOPMENT KIT | € 2,000.00
+DUH-D7000AAB | PS4 PRO DEVELOPMENT KIT BUNDLE | € 2,000.00
DUH-T7000AA | PS4 PRO TESTING KIT | € 800.00
DUH-T7000AAB | PS4 PRO TESTING KIT BUNDLE | € 800.00
+## DUH-D1000AA - Original PS4 Development Kit (DUH-D1000AA)
+
+
+The development kit details were known about as early as July 2013 due to the FCC white papers that are available to the public [^3]. These included sketches of the front and back of the unit and low level hardware details including the new intake fan.
+
+[devkit](https://www.youtube.com/watch?v=dgfGF2Dt_Bs) provides a detailed overview of an early PlayStation 4 development hardware unit (model DUH-D1000AA), highlighting physical differences such as additional USB/Ethernet ports and debug LEDs.
+
+The video demonstrates the system's "expired" state, explores the extensive debug settings menu, and showcases the **Neighborhood** desktop software used for remote console management and package installation.
+
+
+
+Thanks to **WorldUponAString** over on Reddit we have a photo of the rear of the Unit [^2]:
+
+
+---
+## DUH-T1000xA - PS4 TESTING KIT
+The PS4 Testing Kits look almost identical to the standard retail PlayStation 4 apart from the text "TEST" written on it along with a "Kensington Lock":
+
+
+
+
+---
+## DUH-D7000AA - Sony PlayStation 4 Pro Development Kit
+The PS4 Pro development kit **DUH-D7000AA** was made by Foxconn [^1] and had a stackable design ideal for rack mounting which would be useful for connecting to the hardware from developers machines over the network.
+
+### Front Panel
+Here are some specifications about the front panel of the development kit:
+ * **Material:** Thin brushed aluminum plate.
+ * **Debug:** Row of LEDs numbered 0–7 (likely for binary debug codes).
+ * **Controls:** Standard Power/Eject plus Dev-specific buttons (Reset, System/Memory access).
+
+### I/O (Connectivity):**
+The hardware provided the following ports:
+ * **Front:** 3x USB ports.
+ * **Rear:**
+ * 2x Ethernet (RJ45): One standard, one labeled **DevLAN**.
+ * 1x USB Type-B ("Dev USB").
+ * 1x Standard Rear USB.
+ * Aux port (likely for Camera/VR).
+ * HDMI & Optical Out.
+
+### Internal Hardware
+[Gamers Nexus](https://www.youtube.com/watch?v=aPBFzdQCrVE) performs a detailed teardown of a the DUH-D7000AA PlayStation 4 Pro development kit. The analysis reveals a unique, robust cooling system with massive 12mm heat pipes that potentially influenced the later PS5 design, alongside a doubled memory capacity of 16GB GDDR5 compared to the retail version.
+
+
+
+Here are the internal hardware components shown off in the video:
+ * **SoC (Processor):**
+ * **Model Number:** Sony CXD90044GC.
+ * **Die Size:** ~23.0mm x 14.9mm.
+ * **Memory (RAM):**
+ * **Total Capacity:** **16GB GDDR5**.
+ * **Configuration:** 16 x 1GB modules (8 on each side of the motherboard).
+ * **Note:** This is double the 8GB found in the consumer PS4 Pro to assist with debugging.
+ * **Storage:**
+ * **Drive Type:** 2.5-inch HGST HDD.
+ * **Specs:** 1TB, 5400 RPM, SATA 3Gb/s.
+ * **Power Supply:**
+ * **Output:** ~330 Watts on the 12V rail.
+ * **Features:** Modular design with accessible external probe points for technicians.
+
+Here is a screengrab of the board from [Gamers Nexus](https://www.youtube.com/watch?v=aPBFzdQCrVE)'s video:
+
+
+
+
+---
+# References
+[^1]: [Gamers Nexus - PS4 Pro Development Kit](https://www.youtube.com/watch?v=aPBFzdQCrVE)
+[^2]: [WorldUponAString - Finally got what I consider to be a grail in my collection, a PS4 Development Kit. : r/gamecollecting](https://www.reddit.com/r/gamecollecting/comments/xapla7/finally_got_what_i_consider_to_be_a_grail_in_my/)
+[^3]: [PS4 dev kit reveals juicy hardware details - MyGaming](https://mygaming.co.za/news/playstation/56346-ps4-dev-kit-reveals-juicy-hardware-details)
diff --git a/pages/consoles/saturn/SaturnTransparencyEffects.md b/pages/consoles/saturn/SaturnTransparencyEffects.md
index d7ad2cedd..eca537fbf 100644
--- a/pages/consoles/saturn/SaturnTransparencyEffects.md
+++ b/pages/consoles/saturn/SaturnTransparencyEffects.md
@@ -25,9 +25,9 @@ videocarousel:
recommend: sega
editlink: /consoles/saturn/SaturnTransparencyEffects.md
---
-The Sega Saturns unique way of drawing 3D vertices made life very difficult for developers to implement Alpha Transparency techniques such as objects fading into view.
+The Sega Saturn's unique way of drawing 3D vertices made life very difficult for developers to implement Alpha Transparency techniques such as objects fading into view.
In Sonic R the developer Travellers Tales took a very clever approach to implementing this feature despite the lack of hardware support.
# References
-[^1]: Coding Secrets on Youtube - https://www.youtube.com/watch?v=FdD0GvVRSMc
+[^1]: Coding Secrets on YouTube - https://www.youtube.com/watch?v=FdD0GvVRSMc
diff --git a/pages/consoles/xbox/XboxDevkitHardware.md b/pages/consoles/xbox/XboxDevkitHardware.md
index 1675c982f..a15ade60e 100644
--- a/pages/consoles/xbox/XboxDevkitHardware.md
+++ b/pages/consoles/xbox/XboxDevkitHardware.md
@@ -107,6 +107,10 @@ There were multiple different variants of the Debug Kit, in the video below PToP
If you happen to buy a Debug kit, please take extra care with the hard drive, it may contain an unreleased prototype. In the Video Below Modern Vintage Gamer takes you through the steps to preserving prototypes.
+## XBOX Prototype
+[Macho Nacho Productions](https://www.youtube.com/watch?v=kfaJ7gFdmyM) documents a trip to Microsoft headquarters to compare a custom-built, machined aluminum replica of the original Xbox prototype against the actual historical unit stored in the Microsoft Archives. The investigation reveals surprising differences in construction methods—such as the original being welded rather than milled from a solid block—as well as significant discrepancies in size and finish between the replica and the genuine artifact.
+
+
---
# References
diff --git a/pages/tools/Diaphora.md b/pages/tools/Diaphora.md
deleted file mode 100644
index 34a86af7c..000000000
--- a/pages/tools/Diaphora.md
+++ /dev/null
@@ -1,38 +0,0 @@
----
-layout: post
-tags:
-- tools
-title: Diaphora - Binary Executable Difference Tool
-image: https://img.youtube.com/vi/dAwXrUKaUsw/0.jpg
-videocarousel:
- - title: Diaphora
- image: https://img.youtube.com/vi/dAwXrUKaUsw/0.jpg
- youtube: 'dAwXrUKaUsw'
-thumbnail: /public/consoles/Nintendo 64.png
-permalink: /Diaphora
-breadcrumbs:
- - name: Home
- url: /
- - name: Tools
- url: /tools
- - name: Diaphora - Binary Executable Difference Tool
- url: #
-recommend: tools
-editlink: /tools/Diaphora.md
----
-
-# Introduction to Diaphora
-Diaphora is a tool that can plugin to a disassembler such as Radare2 or IDA Pro that gives the ability to DIFF two different executables.
-
-This has a number of advantages for reverse engineering:
-1. Move symbols such as function names from a unstripped executable to a stripped executable
-2. Move symbols from an older version of an executable to a newer version
-3. View the changes made in a newer version of an executable
-
-So for example this can be very useful for comparing a beta build of a game that contains symbols with a retail version of a game that is stripped of symbols.
-
-It can also be interesting to see what bugs have been fixed between different versions of games and they can give hints as to how the game works, especially useful if you also have the release Notes.
-
-# Installing Diaphora
-
-# Using Diaphora
diff --git a/public/images/ps4/PS4_DUH-D1000AA_Rear_WorldUponAString.png b/public/images/ps4/PS4_DUH-D1000AA_Rear_WorldUponAString.png
new file mode 100644
index 000000000..c9154c00e
Binary files /dev/null and b/public/images/ps4/PS4_DUH-D1000AA_Rear_WorldUponAString.png differ
diff --git a/public/images/ps4/PS4_DUH-T1000AA_TEST_Text.png b/public/images/ps4/PS4_DUH-T1000AA_TEST_Text.png
new file mode 100644
index 000000000..837d88831
Binary files /dev/null and b/public/images/ps4/PS4_DUH-T1000AA_TEST_Text.png differ
diff --git a/scripts/rr-spelling-dictionary.txt b/scripts/rr-spelling-dictionary.txt
index f27438c52..137e638ef 100644
--- a/scripts/rr-spelling-dictionary.txt
+++ b/scripts/rr-spelling-dictionary.txt
@@ -12,6 +12,7 @@ Datel
decompilation
decompiler
decompiling
+Diaphora
disassemblers
Doak
DOSBox
@@ -19,14 +20,17 @@ Dreamcast
EBOOT
Ecco
Famicom
+Foxconn
Frida
Frogger
frontmatter
Gamecube
+GDDR
Gerdy
Ghidra
GhidrAssist
Gigaleak
+Goomba
Herdy
HLSL
Hollingworth
@@ -53,6 +57,7 @@ nasm
NES
Ollama
OllyDbg
+Pacman
Psygnosis
PSYLIB
PSYQ
@@ -76,6 +81,7 @@ twitterimage
W32Dasm
Wario
Xenos
+Xorshift
Yabasic
Yaroze
YouTuber
diff --git a/scripts/surnames-spelling-dictionary.txt b/scripts/surnames-spelling-dictionary.txt
index 89b5c8f93..cc51e1f37 100644
--- a/scripts/surnames-spelling-dictionary.txt
+++ b/scripts/surnames-spelling-dictionary.txt
@@ -1,12 +1,14 @@
+Cerny
Copetti
Doak
Gerdy
Herdy
Hollingworth
Izuka
+Kamkar
LaMothe
Miceli
Naka
Takashi
Ventafridda
-Yuji
\ No newline at end of file
+Yuji
diff --git a/valid-tags.json b/valid-tags.json
index c8e2033d4..7a6f31159 100644
--- a/valid-tags.json
+++ b/valid-tags.json
@@ -1,19 +1,19 @@
{
"summary": {
- "totalFiles": 287,
- "filesWithTags": 286,
- "uniqueTags": 101,
- "generatedAt": "2025-12-10T21:11:57.728Z"
+ "totalFiles": 277,
+ "filesWithTags": 277,
+ "uniqueTags": 102,
+ "generatedAt": "2025-12-13T21:26:02.651Z"
},
"tags": {
- "introduction": 52,
+ "introduction": 54,
"tutorial": 10,
"companies": 5,
- "industry": 23,
+ "industry": 22,
"crossproducts": 5,
"datel": 2,
"snsystems": 12,
- "sdk": 49,
+ "sdk": 47,
"3do": 1,
"3ds": 8,
"amiga": 1,
@@ -29,21 +29,21 @@
"console": 2,
"devkit": 29,
"handhelds": 3,
- "gameboy": 16,
+ "gameboy": 15,
"gamegear": 4,
"sega": 28,
"gamecube": 10,
"gamecom": 1,
"megadrive": 6,
"n64": 32,
- "nes": 16,
- "snes": 8,
+ "nes": 15,
+ "snes": 9,
"pc-88": 1,
"pc-engine": 1,
- "ps1": 19,
- "ps2": 12,
- "ps3": 4,
- "ps4": 3,
+ "ps1": 17,
+ "ps2": 10,
+ "ps3": 3,
+ "ps4": 2,
"psp": 7,
"pokemonmini": 3,
"sg1000": 1,
@@ -57,24 +57,24 @@
"xbox": 8,
"xbox360": 2,
"zxspectrum": 1,
+ "ios": 1,
"fileformats": 13,
"gameengines": 13,
"middleware": 11,
- "games": 25,
- "sourcecode": 12,
+ "games": 24,
"symbols": 14,
"debug": 6,
- "hardware": 42,
- "consolearchitecture": 5,
+ "hardware": 38,
"bookazines": 1,
"magazines": 4,
"books": 2,
+ "hacking": 1,
"incomplete": 2,
"leak": 25,
"maths": 4,
- "3d": 5,
+ "3d": 6,
"software": 5,
- "tools": 17,
+ "tools": 16,
"disassemblers": 1,
"cracking": 2,
"ghidra": 4,
@@ -84,20 +84,21 @@
"copyright": 1,
"documentary": 1,
"memory": 3,
+ "sourcecode": 11,
"2d": 1,
"32x": 1,
"nds": 1,
"homebrew": 2,
"nintendo": 2,
- "assembly": 5,
+ "assembly": 4,
"reverseengineering": 5,
"cheatcartridge": 1,
+ "consolearchitecture": 2,
"ique": 2,
"radare2": 1,
"emulation": 1,
"windows": 1,
"psyq": 3,
- "featured": 2,
"segasaturn": 1,
"switch": 3,
"android": 2,
@@ -232,7 +233,9 @@
"ps1"
],
"categories/consoles/PS2.md": [
- "ps2"
+ "ps2",
+ "ps1",
+ "introduction"
],
"categories/consoles/PS3.md": [
"ps3"
@@ -298,7 +301,7 @@
"nes"
],
"categories/consoles/iOS.md": [
- "industry",
+ "ios",
"introduction"
],
"categories/games/FileFormats.md": [
@@ -313,11 +316,6 @@
"categories/games/Games.md": [
"games"
],
- "categories/games/SourceCode.md": [
- "sourcecode",
- "games",
- "sdk"
- ],
"categories/games/debugSymbols.md": [
"symbols",
"debug",
@@ -327,10 +325,6 @@
"categories/hardware/CheatCartridges.md": [
"hardware"
],
- "categories/hardware/GameConsoleHardware.md": [
- "hardware",
- "consolearchitecture"
- ],
"categories/hardware/devkits.md": [
"devkit",
"hardware"
@@ -357,7 +351,10 @@
"introduction"
],
"categories/misc/Hacking.md": [
- "industry"
+ "industry",
+ "hacking",
+ "introduction",
+ "pc"
],
"categories/misc/Incomplete.md": [
"incomplete",
@@ -484,7 +481,7 @@
],
"pages/Introduction/RetroCartridges.md": [
"introduction",
- "pc",
+ "hardware",
"nes",
"snes",
"n64",
@@ -513,6 +510,7 @@
],
"pages/SourceCode/graphics/Awesome2DTechniques.md": [
"2d",
+ "3d",
"introduction"
],
"pages/consoles/3ds/3DSDevkitHardware.md": [
@@ -623,10 +621,6 @@
"games",
"assembly"
],
- "pages/consoles/gameboy/pokemonSilverGold.md": [
- "gameboy",
- "introduction"
- ],
"pages/consoles/gamecube/007 Agent Under Fire.md": [
"gamecube",
"symbols",
@@ -814,7 +808,9 @@
],
"pages/consoles/nes/NES-Sprite-Tile-Editing.md": [
"nes",
- "gameboy"
+ "gameboy",
+ "introduction",
+ "snes"
],
"pages/consoles/nes/NESDevkitHardware.md": [
"nes",
@@ -837,11 +833,6 @@
"nes",
"games"
],
- "pages/consoles/nes/WritingNESGamesWithAssembly.md": [
- "nes",
- "introduction",
- "assembly"
- ],
"pages/consoles/pc/PlanetX3.md": [
"dos",
"pc",
@@ -865,11 +856,6 @@
"ps1",
"games"
],
- "pages/consoles/ps1/GTE.md": [
- "ps1",
- "hardware",
- "sdk"
- ],
"pages/consoles/ps1/NetYaroze.md": [
"ps1",
"hardware",
@@ -912,25 +898,11 @@
"sdk",
"tutorial"
],
- "pages/consoles/ps1/PlayStation Hardware Architecture.md": [
- "ps1",
- "hardware",
- "featured",
- "consolearchitecture"
- ],
"pages/consoles/ps1/PlayStationDevelopmentSystem.md": [
"ps1",
"hardware",
"devkit"
],
- "pages/consoles/ps1/PlaystationEvolution.md": [
- "ps1",
- "ps2",
- "ps3",
- "ps4",
- "hardware",
- "featured"
- ],
"pages/consoles/ps1/psx-exe.md": [
"ps1",
"sdk",
@@ -940,11 +912,6 @@
"ps2",
"sdk"
],
- "pages/consoles/ps2/PS2 Hardware Architecture.md": [
- "ps2",
- "hardware",
- "consolearchitecture"
- ],
"pages/consoles/ps2/PS2DemoDisks.md": [
"ps2",
"symbols",
@@ -1305,7 +1272,8 @@
],
"pages/leaks/Nintendo/OriginalSource.md": [
"leak",
- "gameboy"
+ "gameboy",
+ "introduction"
],
"pages/leaks/Nintendo/Paladin.md": [
"leak",
@@ -1359,9 +1327,6 @@
"sdk",
"tools"
],
- "pages/tools/Diaphora.md": [
- "tools"
- ],
"pages/tools/GameMaker.md": [
"gameengines",
"middleware"