# thecod3ryoutube/ps5normodifier architecture

> Architecture diagram of the GitHub repository thecod3ryoutube/ps5normodifier, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-12). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/thecod3ryoutube/ps5normodifier
- Repository: https://github.com/thecod3ryoutube/ps5normodifier

## Overview

This repository contains two Windows applications: a GUI for inspecting and modifying PS5 NOR files, with UART diagnostics, and a separate console UART tool. The primary GUI workflow is to open a NOR dump, inspect or edit board identity and edition data, then save a modified dump; its UART features connect to a console for error-code and command I/O. The excerpts show the GUI entry point, NOR file access, serial handling, and online database calls. Other capability links are documented in the README; unsampled implementation details are not inferred.

Main entry points: [`PS5 NOR Modifier/Form1.cs`](https://github.com/thecod3ryoutube/ps5normodifier/blob/main/PS5%20NOR%20Modifier/Form1.cs) (GUI UART controls), [`UART-CL By TheCod3r/UART-CL By TheCod3r/Program.cs`](https://github.com/thecod3ryoutube/ps5normodifier/blob/main/UART-CL%20By%20TheCod3r/UART-CL%20By%20TheCod3r/Program.cs) (Console UART application), [`PS5 NOR Modifier/Program.cs`](https://github.com/thecod3ryoutube/ps5normodifier/blob/main/PS5%20NOR%20Modifier/Program.cs) (GUI startup)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_nor["NOR management"]
  node_gui_entry["GUI startup<br/>[Program.cs]"]
  node_nor_inspect["Inspect NOR<br/>[Form1.cs]"]
  node_nor_edit["Edit NOR identity<br/>[Form1.cs]"]
  node_nor_output["Save modified NOR<br/>[Form1.cs]"]
end

subgraph group_gui_uart["GUI UART diagnostics"]
  node_gui_uart["GUI UART controls<br/>[Form1.cs]"]
  node_uart_codes["Decode error codes<br/>[Form1.cs]"]
  node_uart_commands["Custom UART commands<br/>[Form1.cs]"]
end

subgraph group_console_uart["Console UART tool"]
  node_console_entry["Console UART application<br/>[Program.cs]"]
  node_console_nor["Console NOR tools<br/>[Program.cs]"]
  node_console_serial["Console serial diagnostics<br/>[Program.cs]"]
end

node_user(("User"))
node_nor_dump["NOR dump"]
node_uart_device["PS5 UART device"]
node_error_service["Online error database"]
node_error_store[("Offline error database")]

node_user -->|"launches"| node_gui_entry
node_gui_entry -->|"opens window"| node_nor_inspect
node_user -->|"opens dump"| node_nor_inspect
node_nor_inspect -->|"reads fields"| node_nor_dump
node_user -->|"edits identity"| node_nor_edit
node_nor_edit -->|"updates data"| node_nor_dump
node_user -->|"saves changes"| node_nor_output
node_nor_output -->|"writes file"| node_nor_dump
node_user -->|"connects device"| node_gui_uart
node_gui_uart -->|"reads serial"| node_uart_device
node_gui_uart -->|"processes codes"| node_uart_codes
node_uart_codes -->|"fetches definitions"| node_error_service
node_user -->|"downloads database"| node_error_store
node_user -->|"sends commands"| node_uart_commands
node_uart_commands -->|"exchanges serial data"| node_uart_device
node_user -->|"runs tool"| node_console_entry
node_console_entry -->|"offers NOR operations"| node_console_nor
node_console_entry -->|"offers UART operations"| node_console_serial
node_console_serial -->|"reads serial"| node_uart_device

click node_gui_entry "https://github.com/thecod3ryoutube/ps5normodifier/blob/main/PS5%20NOR%20Modifier/Program.cs"
click node_nor_inspect "https://github.com/thecod3ryoutube/ps5normodifier/blob/main/PS5%20NOR%20Modifier/Form1.cs"
click node_nor_edit "https://github.com/thecod3ryoutube/ps5normodifier/blob/main/PS5%20NOR%20Modifier/Form1.cs"
click node_nor_output "https://github.com/thecod3ryoutube/ps5normodifier/blob/main/PS5%20NOR%20Modifier/Form1.cs"
click node_gui_uart "https://github.com/thecod3ryoutube/ps5normodifier/blob/main/PS5%20NOR%20Modifier/Form1.cs"
click node_uart_codes "https://github.com/thecod3ryoutube/ps5normodifier/blob/main/PS5%20NOR%20Modifier/Form1.cs"
click node_uart_commands "https://github.com/thecod3ryoutube/ps5normodifier/blob/main/PS5%20NOR%20Modifier/Form1.cs"
click node_console_entry "https://github.com/thecod3ryoutube/ps5normodifier/blob/main/UART-CL%20By%20TheCod3r/UART-CL%20By%20TheCod3r/Program.cs"
click node_console_nor "https://github.com/thecod3ryoutube/ps5normodifier/blob/main/UART-CL%20By%20TheCod3r/UART-CL%20By%20TheCod3r/Program.cs"
click node_console_serial "https://github.com/thecod3ryoutube/ps5normodifier/blob/main/UART-CL%20By%20TheCod3r/UART-CL%20By%20TheCod3r/Program.cs"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_gui_entry,node_nor_inspect,node_nor_edit,node_nor_output,node_user toneBlue
class node_gui_uart,node_uart_codes,node_uart_commands,node_error_service,node_error_store toneAmber
class node_console_entry,node_console_nor,node_console_serial toneMint
class node_nor_dump,node_uart_device toneIndigo
```

## Components

### NOR management

- [GUI startup](https://github.com/thecod3ryoutube/ps5normodifier/blob/main/PS5%20NOR%20Modifier/Program.cs): `PS5 NOR Modifier/Program.cs`
- [Inspect NOR](https://github.com/thecod3ryoutube/ps5normodifier/blob/main/PS5%20NOR%20Modifier/Form1.cs): `PS5 NOR Modifier/Form1.cs`
- [Edit NOR identity](https://github.com/thecod3ryoutube/ps5normodifier/blob/main/PS5%20NOR%20Modifier/Form1.cs): `PS5 NOR Modifier/Form1.cs`
- [Save modified NOR](https://github.com/thecod3ryoutube/ps5normodifier/blob/main/PS5%20NOR%20Modifier/Form1.cs): `PS5 NOR Modifier/Form1.cs`

### GUI UART diagnostics

- [GUI UART controls](https://github.com/thecod3ryoutube/ps5normodifier/blob/main/PS5%20NOR%20Modifier/Form1.cs): `PS5 NOR Modifier/Form1.cs`
- [Decode error codes](https://github.com/thecod3ryoutube/ps5normodifier/blob/main/PS5%20NOR%20Modifier/Form1.cs): `PS5 NOR Modifier/Form1.cs`
- [Custom UART commands](https://github.com/thecod3ryoutube/ps5normodifier/blob/main/PS5%20NOR%20Modifier/Form1.cs): `PS5 NOR Modifier/Form1.cs`

### Console UART tool

- [Console UART application](https://github.com/thecod3ryoutube/ps5normodifier/blob/main/UART-CL%20By%20TheCod3r/UART-CL%20By%20TheCod3r/Program.cs): `UART-CL By TheCod3r/UART-CL By TheCod3r/Program.cs`
- [Console NOR tools](https://github.com/thecod3ryoutube/ps5normodifier/blob/main/UART-CL%20By%20TheCod3r/UART-CL%20By%20TheCod3r/Program.cs): `UART-CL By TheCod3r/UART-CL By TheCod3r/Program.cs`
- [Console serial diagnostics](https://github.com/thecod3ryoutube/ps5normodifier/blob/main/UART-CL%20By%20TheCod3r/UART-CL%20By%20TheCod3r/Program.cs): `UART-CL By TheCod3r/UART-CL By TheCod3r/Program.cs`

### Other components

- **User**
- **NOR dump**
- **PS5 UART device**
- **Online error database**
- **Offline error database**

## Connections

- User → GUI startup: launches (evidence: `README.md`)
- GUI startup → Inspect NOR: opens window (evidence: `PS5 NOR Modifier/Program.cs`)
- User → Inspect NOR: opens dump (evidence: `README.md`)
- Inspect NOR → NOR dump: reads fields (evidence: `PS5 NOR Modifier/Form1.cs`)
- User → Edit NOR identity: edits identity (evidence: `README.md`)
- Edit NOR identity → NOR dump: updates data (evidence: `PS5 NOR Modifier/Form1.cs`)
- User → Save modified NOR: saves changes (evidence: `README.md`)
- Save modified NOR → NOR dump: writes file (evidence: `PS5 NOR Modifier/Form1.cs`)
- User → GUI UART controls: connects device (evidence: `README.md`)
- GUI UART controls → PS5 UART device: reads serial (evidence: `PS5 NOR Modifier/Form1.cs`)
- GUI UART controls → Decode error codes: processes codes (evidence: `PS5 NOR Modifier/Form1.cs`)
- Decode error codes → Online error database: fetches definitions (evidence: `PS5 NOR Modifier/Form1.cs`)
- User → Offline error database: downloads database (evidence: `README.md`)
- User → Custom UART commands: sends commands (evidence: `README.md`)
- Custom UART commands → PS5 UART device: exchanges serial data (evidence: `PS5 NOR Modifier/Form1.cs`)
- User → Console UART application: runs tool (evidence: `README.md`)
- Console UART application → Console NOR tools: offers NOR operations (evidence: `UART-CL By TheCod3r/UART-CL By TheCod3r/Program.cs`)
- Console UART application → Console serial diagnostics: offers UART operations (evidence: `UART-CL By TheCod3r/UART-CL By TheCod3r/Program.cs`)
- Console serial diagnostics → PS5 UART device: reads serial (evidence: `UART-CL By TheCod3r/UART-CL By TheCod3r/Program.cs`)
