Namco System 357 / 369 (PS3-based arcade)¶
The System 357 (2007, for Tekken 6) and its evolution System 369 (2011, Tekken Tag Tournament 2) are, literally, PlayStation 3s in a metal chassis + two Namco boards (I/O + JVS). The game lives on a hard drive paired to a dongle. This page gathers everything: hardware, mounting/reading the disk, and the tutorial to convert a retail PS3 motherboard to replace a dead arcade motherboard.
Method, not piracy
We document how it works and how to repair/preserve (replace a dead motherboard with a PS3 donor). We host neither the GEX firmware, nor keys, nor HDD/dongle dumps. Content is made from your own hardware (your dongle, your original game HDD).
Overview¶
| Field | Value |
|---|---|
| Base | retail PlayStation 3 (motherboard with Product Code ARC = 0xA0) |
| Board specifics | no WiFi/Bluetooth module, no Blu-ray drive (nor integrated BD controller beyond CECH-25xx) |
| Added Namco boards | 1× I/O board + 1× JVS board (JVS / "JAMMA 2" standard) |
| Game media | hard drive (HDD) pre-installed, paired to a dongle |
| Video out | VGA (HD-15) via the JVS board; RCA L/R audio |
| Case | metal "rack assy" (S357-07J, S357B-08J/E, S357C-10J, S357C-11E, S369C-11J/E) |
Variants (crucial to repair/convert)¶
| System | Motherboard | Serial | Flash | PS3 base | Typical games |
|---|---|---|---|---|---|
| 357A | COK-002 | GECR-1100 | NAND | Fat | Tekken 6, T6 Bloodline Rebellion |
| 357B | VER-001 | GECR-1500 | NOR | Fat | T6 / T6BR, Razing Storm, DeadStorm Pirates |
| 357C | JTP-001 | GECR-2500 | NOR | Slim | Gundam Extreme Vs (Maxi/Full Boost), DBZ Zenkai, Taiko |
| 369 | JTP-001 | GECR-2500 CU1 | NOR | Slim | Tekken Tag Tournament 2 (Unlimited) |
- 357C = 369 except: the 357C has a single USB cable, the 369 has a USB hub (3 ports + JVS input). The 369 reportedly has an overclocked RSX/memory vs the 357s.
- Sub-revisions:
...-11E= no H0xx I/O, with USB hub (Taiko, rail-shooters); live-monitor = demo cabinets (show networked live play, not playable).
357 ≠ 369
357 games don't run on 369 (and vice versa): system-specific checks and different HDD crypto. Identify your target correctly.
Where a game lives: HDD + dongle¶
- The game is pre-installed on the HDD, paired to a dongle (HDD and dongle go together; the serial printed on the dongle matches the HDD ref).
- On first boot, the game auto-installs its updates:
- game:
/dev_hdd0/game/SCEEXE000/ARCDIR/INSTALL0.PKG - firmware:
/dev_hdd0/game/SCEEXE000/ARCDIR/PS3UPDAT.PUP - The arcade firmware allows installing packages ("Install package files" icon in the game column).
The HDD key (the key technical point)¶
The hard drive is decrypted by a static key inside
lv1ldrwhen the Product Code =0xA0(ARC). Thelv1/lv1ldris identical to retail models — it's theARCProduct Code that unlocks decryption of the arcade HDD. This is the whole point of the conversion (see below).
Games / HDD / dongle table (per-system compatibility)¶
| Year | Game | HDD ref | Dongle | 357A | 357B | 357C | 369 |
|---|---|---|---|---|---|---|---|
| 2007 | Tekken 6 | TE6100-1-NA-HDD0-A | TE61 | ✅ | |||
| 2008 | T6 Bloodline Rebellion | T6B100-1/2-NA-HDD0-A | T6B1 / T6B2 | ✅ | |||
| 2009 | Razing Storm | RST100-2-NA-MPR0-A | RST1 | ✅ | ✅ | ✅ | |
| 2010 | DeadStorm Pirates | DSP100-2-NA-MPR0-BXX | DSP1 | ✅ | |||
| 2010 | Gundam Extreme Vs. | — | — | ✅ | |||
| 2011 | DBZ Zenkai Battle Royale | — | — | ✅ | |||
| 2011 | Taiko no Tatsujin (series) | ST*100-…-HDD0 | — | ✅ | |||
| 2011 | Tekken Tag Tournament 2 | — | — | ✅ | |||
| 2012 | Gundam Extreme Vs. Full Boost | GEX100-1-NA-HDD0-A | GEX1 | ✅ | |||
| 2012 | Tekken Tag Tournament 2 Unlimited | TG2100-1-NA-HDD0-F17 | TG21 + DTT2G | ✅ |
(Non-exhaustive — see the PS3 Dev Wiki for the full table, including "Live Monitor" versions.)
The I/O and JVS boards (assembly & reading)¶
Signal chain:
Buttons/stick/coin → I/O board → JVS board → (USB) → PS3 board
Video: PS3 board → (AV MultiOUT) → JVS board → VGA → monitor
Audio: JVS board → white RCA (L) / red RCA (R)
- I/O board (top): 24-pin connector, 8 DIP switches (DIP #2 = enable 31 kHz), 10-pin connector.
- JVS board (bottom): USB (JV I/O JAMMA interface), DC IN +5 V (powers the Namco board — 357A/357B only), VGA (video), RCA L/R (audio).
- On later models (357C/369), the I/O + JVS are replaced by a "USB I/O PCB"
(identifier
US1001/USIO01) — visible in the test menu (I/O PCB : Connect OK … NBGI.;USIO01;…). - JVS = Jamma Video Standard ("JAMMA 2"): HD-15/VGA video, RCA audio, JST VL power, serial board↔I/O protocol. See JVS.
Mounting & reading the disk (procedure)¶
- Identify your target (357A/B/C or 369) and the game's HDD + dongle pair.
- Connect the game HDD into the PS3 board's bay (2.5″ SATA, like a PS3). The
HDD is encrypted: it only reads on a board with Product Code
ARC(arcade or converted). - Insert the dongle (USB/I/O port depending on model — see the game manual, e.g. Razing Storm §5.5 "inserting the dongle").
- Connect I/O + JVS (or the USB I/O PCB), VGA to the monitor, audio.
- First boot: the game auto-installs its updates (INSTALL0.PKG / PS3UPDAT.PUP) — do not cut power (XMB message "Copying update data… Do not turn off").
- Test menu: check
MEDIA SYSTEM357 HDD+I/O PCB : Connect OK, set clock, cabinet type, language,HDD CHECK.
Mount & EDIT the HDD on a Linux server (decryption)¶
The arcade HDD is encrypted (like a PS3 HDD). To read/edit its content (game
files in dev_hdd0), you decrypt it on the fly under Linux via device-mapper
(dm-crypt), then mount the partitions.
Work on a COPY, never the original
Always work on a dd image of the HDD, not the original disk. The HDD is
paired to the dongle: corruption = dead game. And never clear the ATA keys
while a partition is mounted (guaranteed corruption).
1. The encryption model (depends on the model!)¶
| System | Motherboard | Flash | HDD encryption | VFLASH |
|---|---|---|---|---|
| 357A | COK-002 | NAND (Phat) | AES-CBC-192 (zero IV) | AES-CBC-128 |
| 357B | VER-001 | NOR (Phat) | AES-CBC-192 | XTS-AES-128 |
| 357C / 369 | JTP-001 | NOR (Slim) | XTS-AES-128 | XTS-AES-128 |
- XTS-AES-128 (Slim): each sector encrypted independently; the key = data key (16 B) + tweak key (16 B) concatenated (256-bit). VFLASH = encrypted twice (ENCDEC then ATA).
- The keys (ATA data/tweak + ENCDEC) derive from the
eid_root_key. For arcade (Product CodeARC= 0xA0), the HDD key is static (inlv1ldr) → decryptable offline with the right key.
The
dev_hdd0filesystem is UFS2 (FreeBSD-derived), not FAT. The mount must handle UFS2 on top of decryption.
2. Get your key (mandatory, whichever route)¶
Every tool needs your eid_root_key (ERK, 32 bytes / 64 hex) — or the
ATA data+tweak keys directly:
- Dump the ERK on the console: via Rebug Toolbox (Dump EID Root Key) or BadWDSD. On an arcade board the key is static but you dump it the same way.
- ⚠️ We don't host keys. You extract yours from your board.
3. TOOL route (recommended — little or no compilation)¶
| Tool | Type | What it does |
|---|---|---|
| PS3HddTool (Pheeeeenom) | GUI .NET 8 / Avalonia (Win/macOS/Linux) | decrypts XTS-AES-128 with the EID Root Key, browses UFS2, extracts files/folders (image or physical drive) |
| PS-HDD-Tools (aerosoul94) | CLI | takes an HDD image + key file → outputs a decrypted partition |
| PS3 HDD Decryption Helper (2023, PSX-Place) | bash scripts | automates decryption + read/write UFS2 mount; compiles the bswap16-ecb module itself (fixed for recent kernels Nov 2023); drop eid_root_key.bin in /keys |
- To just read/extract: PS3HddTool (GUI, simple, no compilation).
- To edit in place then write back: the Decryption Helper (mounts UFS2 read-write) — that's the one for your need.
- Build PS3HddTool:
dotnet build(ordotnet publish -r linux-x64 --self-contained) — .NET 8 required.
Tools archived WITH US (sources disappear)
The original dm-bswap16 repo (gitorious) shut down → we archive the
open-source sources in the wiki repo (no firmware/key/patch):
PS3HDDTool.tar.gz(GUI, source)PS-HDD-Tools.tar.gz(CLI, source)BadWDSD.tar.gz(key dump, source; pico_sdk removed)README.txt(upstream, licenses, notes)
The Decryption Helper (scripts + restored bswap16-ecb source) is on
PSX-Place (forum) → not auto-archivable, link in the README.
4. Manual dm-crypt route (to understand what the Helper does)¶
⚠️ You must compile a kernel module:
bswap16(a.k.a.bswap16-ecb) is not in the standard kernel. The original repo (gitorious.ps3dev.net) is dead; the source is restored and compiled by the Decryption Helper (script in/tmp). Without it, HDD decryption won't work. The TOOL route above saves you this work.
# Kernel/tool prerequisites
modprobe loop dm_mod dm-bswap16
# (dm-bswap16: module that swaps bytes per 16-bit word — MANDATORY for PS3
# HDD/VFLASH decryption)
# 1) Working image (COPY) of the HDD
dd if=/dev/sdX of=hdd.img bs=4M # sdX = your arcade HDD on SATA/USB
losetup /dev/loop1 ./hdd.img
# 2) bswap16 layer
SIZE=$(blockdev --getsz /dev/loop1)
echo "0 $SIZE bswap16 /dev/loop1" | dmsetup create ps3raw
# 3) Key file = data key (hex) + tweak key (hex) → 32 bytes
echo <DATA_KEY_HEX> <TWEAK_KEY_HEX> | xxd -r -p > hdd_key.bin
# 4) dm-crypt XTS-AES-128 layer (Slim/NOR: 357C/369)
# -s 256 because XTS-AES-128 = data(128) + tweak(128) concatenated
cryptsetup create -c aes-xts-plain64 -d ./hdd_key.bin -s 256 hdd_crypt /dev/mapper/ps3raw
# → /dev/mapper/hdd_crypt = DECRYPTED HDD
# (357A/B = Phat: HDD in AES-CBC-192 → -c aes-cbc-plain -s 192, no tweak)
echo "0 8 linear /dev/mapper/hdd_crypt 8" | dmsetup create vflash
echo <ENCDEC_DATA_HEX> <ENCDEC_TWEAK_HEX> | xxd -r -p > vflash_key.bin
cryptsetup create -c aes-xts-plain64 -d ./vflash_key.bin -s 256 -p 8 vflash_crypt /dev/mapper/vflash
5. Partition table & mounting¶
The PS3 partition table is specific (big-endian) → use a PS3-patched kpartx
(or the helper's tool) to expose the decrypted HDD's partitions:
kpartx -av /dev/mapper/hdd_crypt # creates /dev/mapper/hdd_cryptP1, P2...
mkdir -p /mnt/hdd0
# dev_hdd0 = UFS2 (FreeBSD) → type ufs / ufstype=ufs2
mount -t ufs -o ufstype=ufs2,rw /dev/mapper/hdd_cryptP<N> /mnt/hdd0
ls /mnt/hdd0/game/ # ← game content, editable
6. Edit then close cleanly¶
- Edit files under
/mnt/hdd0/...(game scripts,dev_hdd0/game/…). - Unmount in reverse order:
umount /mnt/hdd0 kpartx -d /dev/mapper/hdd_crypt cryptsetup remove vflash_crypt; dmsetup remove vflash cryptsetup remove hdd_crypt; dmsetup remove ps3raw losetup -d /dev/loop1 - Re-encryption is transparent (dm-crypt writes encrypted on the fly) — your
modified
hdd.imgis already re-encrypted. Write it back:dd if=hdd.img of=/dev/sdX bs=4M.
Limits & checks
-
Signatures/hashes: some games verify file integrity → editing without re-signing may prevent boot. Test benign changes first.
-
The right key model: 357A/B (Phat, AES-CBC) ≠ 357C/369 (Slim, XTS) — use the right cipher, else unreadable data.
-
Back up the image before any write.
Where to read more (Linux HDD)¶
- PS3 Dev Wiki — Mounting HDD on PC (dm-bswap16, dm-crypt, kpartx, VFLASH) — https://www.psdevwiki.com/ps3/Mounting_HDD_on_PC
- PS3 Dev Wiki — HDD Encryption (XTS-AES-128 vs AES-CBC-192 per model, ATA/ENCDEC keys) — https://www.psdevwiki.com/ps3/HDD_Encryption
- PSX-Place — [Tutorial] HDD mounting and decryption on Linux + PS3 HDD Decryption Helper (scripts, arcade variant) — https://www.psx-place.com/threads/tutorial-hdd-mounting-and-decryption-on-linux.23308/
- BadWDSD (dump HDD key / eid) — https://github.com/aomsin2526/BadWDSD
Converting a retail PS3 motherboard to replace a dead board¶
Principle: an arcade motherboard is a retail PS3 board whose Product Code
is set to ARC (0xA0); that's what enables arcade HDD decryption. So you can
turn a retail PS3 donor into a replacement motherboard.
Prerequisites¶
- A PS3 donor of the RIGHT motherboard model:
- 357A → COK-002 (Fat, NAND)
- 357B → VER-001 (Fat, NOR)
- 357C / 369 → JTP-001 (Slim, NOR) — e.g. a CECH-2501A has a JTP-001.
- The donor must be CFW-capable: all Fats are; only certain Slims; HEN-only Slims/Super-Slims do not work (incompatible for this conversion).
- GEX firmware: 4.70 GEX CFW, or GEX OFW 3.60-3.70 (most games run on these firmwares).
- You must keep: your dongle, your game HDD, and the I/O + JVS boards (or the USB I/O PCB) — without them, no game boots.
Arcade vs retail board differences (to know)¶
Arcade motherboards are depopulated retail boards: no WiFi/BT module soldered, none of the chips/clips tied to the Blu-ray drive. Conversely, from a retail donor you can reuse the AV port to repair an arcade board (cited to fix a 369).
What is "the Product Code"?¶
It's a console type/region identifier, a byte stored in the IDPS (5th/6th byte, present in EID0 and EID5, in the PerConsole flash region NOR/NAND):
| Code | Type | Model |
|---|---|---|
| 0x82 | DEX (Debug) | DECH-… |
| 0x83 | CEX (Retail Japan) | CECH… |
| 0x84 / 0x85 | Retail USA / Europe | CECH…01 / …04 |
| 0xA0 | ARC (Arcade) | GECR-xx00 |
Converting a donor = changing this byte to 0xA0 (ARC) in the flash. That's what
lets lv1ldr decrypt the arcade HDD (static key).
Detailed procedure (documented level)¶
You must work on the flash (NOR/NAND) of the console → hardware flash it (clip + E3 Flasher / Teensy++ / progskeet), or dump/reflash via a software exploit if the console is already on CFW/HEN.
- Pick a donor of the right model (COK-002 NAND / VER-001 NOR / JTP-001 NOR), CFW-capable.
- Dump the flash (NOR or NAND depending on model) — hardware flasher or software on CFW/HEN.
- Patch the dump with
c2d.exe. Concretely,c2d.exerecomputes the flash'sEID0identity region: it sets the Product Code toARC(0xA0) and re-encrypts/re-signs EID0 with youreid_root_keyso the console accepts this new EID0. (That's why you need the key + OpenSSL.) There's no other "magic patch" on the flash side: the GEX firmware's only other requirement is a USB authentication at boot — see the box below.
⚠️ These edits differ by the console's flash memory TYPE: NOR (357B/C, 369) or NAND (357A). The flash format is not the same → use the matching patch set (NOR patches on a NOR console, NAND on a NAND). Mixing them = brick.
Exact command (c2d.exe) — changes the dump's Product Code (Target ID):
:: syntax: c2d.exe <eid_key.bin> <flash_in.bin> <flash_out.bin> [target_id]
c2d.exe eid_root_key.bin flash_dump.bin flash_arcade.bin A0
:: A0 = ARC (arcade). (ref: 82=DEX, 83=JP, 84=USA, 85=EU, 86=KR, 87=UK...)
-
eid_root_key.bin= the EID (per-console) key extracted from the NOR/NAND dump. -
Prerequisite: OpenSSL 1.0.1 installed in
c:\openssl(ord:\openssl). - On NOR: rename the output to
XXXXX.EID0.NORBINand put it on USB to reflash.
ℹ️
c2d.exeis originally the CEX↔DEX / region-change tool;A0(arcade) support depends on the build you use — check yours acceptsA0. (Download: Wololo / PSX-Place.) 4. Flash the patched EID0 (documented route): rename the output toXXXXX.EID0.NORBIN, put it on USB, flash it viammOS(click the dump → flash EID0), then reboot into recovery mode. 5. Install the GEX firmware (the arcade firmware: OFW GEX 3.60-3.70, or CFW GEX 4.70) — from recovery mode, like a firmware install. GEX firmwares are archived (e.g. Internet Archive ps3-arcade-gex). 6. Get/keep theeid_root_key(dump via Rebug Toolbox) — useful on the PC side for the HDD (see the Linux HDD section). 7. Reconnect I/O + JVS + dongle + game HDD. 8. Boot: the arcade game runs. (The board no longer reads normal PS3 games or discs: Blu-ray and WiFi disabled by the arcade firmware.)
The extra thing the GEX firmware requires: USB authentication
Beyond EID0 (Product Code A0), the GEX firmware checks a "USB authentication" at boot: it expects the I/O + JVS boards and the dongle on USB. Without them, the documented symptom is a ~1 min black screen then "an error occurred during the start operation." Two ways out:
-
Connect the real hardware (I/O + JVS + dongle + HDD) → the full cabinet boots normally. This is the preservation/repair route (what you want when replacing a dead motherboard).
-
Going without the Namco hardware (play without I/O + dongle): you must bypass the USB auth — i.e. firmware patches (MFW) + I/O/JVS + dongle emulation. This is NOT a clean, downloadable solution: it's an ongoing research topic in the scene. Bits float around forums (grey area, dubious reliability), but nothing stable/documented publicly. We don't host this content.
-
The "software" alternative: RPCS3 emulation (already works for some games). RPCS3 runs these titles from a decrypted HDD dump (the
dev_hdd0/game/…folder + the EBOOT) — no key required, the games boot like PS3 games. The only blocker is the dongle/I-O check (error 19-1: the game looks for hardware indev_usb). The scene has produced RPCS3 patches (patch.yml) that NOP out the dongle check per game (+ mapping for special controllers like Taiko drums). With the right patch, a game boots without a dongle (confirmed by users). Apply them via RPCS3's patch manager, on your dump.
Real level: hardware flashing + CFW
This conversion is not a one-click software thing: it requires dumping and
reflashing the NOR/NAND (skill + a hardware flasher), patching the
identity (c2d.exe) and installing a GEX firmware. It's advanced, for
those who know PS3 modding. We host neither the patches nor the firmwares
— we describe the method and tools.
The trap: cooling
On a conversion, the fan speeds stay at retail values (slower than a 357C/369). In prolonged arcade use, the board overheats and risks an early death. The 357A/B have a wire removed on the fan connector (forced speed) — replicate that on the target. Plan extra cooling for 24/7 use.
When it makes sense (and when not)¶
- ✅ Yes: repair/replace a dead motherboard for home/preservation use, with your original HDD + dongle.
- ⚠️ Caution: for heavy arcade use, the cooling issue is not trivial (overheating). Still a young, imperfect method.
Before / after¶
- Dead motherboard replaced: the 357/369 cabinet lives again with a PS3 donor of the right model, your original dongle + HDD.
Where to read more¶
- PS3 Developer Wiki — Namco System 357 (variants, HDD key, I/O/JVS, game/dongle table) — https://www.psdevwiki.com/ps3/Namco_System_357
- Wikipedia — Namco System 357 — https://en.wikipedia.org/wiki/Namco_System_357
- Arcade-Projects — Retail PS3 → 357/369 replacement board (donor, GEX CFW/OFW, I/O + dongle + HDD, cooling) — https://www.arcade-projects.com/
- Arcade Otaku Wiki — Namco System 357 / JVS — https://wiki.arcadeotaku.com/w/Namco_System_357
- PSX-Place — 357/369 XMB hacking & info — https://www.psx-place.com/threads/namco-system-357-369-xmb-hacking-and-other-information.41052/
- PS3 Dev Wiki — Product Code (0x82 DEX / 0x83 CEX / 0xA0 ARC), Downgrading with Hardware flasher — https://www.psdevwiki.com/ps3/Product_Code
- PSX-Place — What to patch in GECR to boot into XMB? (c2d/EID0/mmOS steps + USB auth I/O/dongle, "start operation" error) — https://www.psx-place.com/threads/what-to-patch-in-gecr-to-boot-into-xmb.15763/
- c2d.exe — Wololo Downloads (flash patcher build).
- RPCS3 — suivi du support Namco 357/359/369 (émulation) — https://github.com/RPCS3/rpcs3/issues/11100
- HDD (PC): PS3HddTool (GUI) https://github.com/Pheeeeenom/PS3HDDTool · PS-HDD-Tools https://github.com/aerosoul94/PS-HDD-Tools · PS3 HDD Decryption Helper (PSX-Place) · BadWDSD https://github.com/aomsin2526/BadWDSD
- GEX firmwares archived — Internet Archive ps3-arcade-gex.
- Namco cabinet manuals (Razing Storm, DeadStorm Pirates) — I/O/dongle sections.
Sources & attribution¶
- PS3 Developer Wiki — Namco System 357 (Product Code ARC 0xA0, HDD key in lv1ldr, COK-002/VER-001/JTP-001, I/O+JVS, US1001/USIO01, game/HDD/dongle table) — https://www.psdevwiki.com/ps3/Namco_System_357
- Arcade-Projects — retail→arcade conversion (motherboard models, GEX CFW 4.70 / OFW 3.60-3.70, I/O+dongle+HDD prerequisites, cooling) — https://www.arcade-projects.com/
- Wikipedia / Arcade Otaku — Namco System 357/369.
Review & corrections
How this space is used
Spotted a wrong value, an outdated procedure, a chip reference that does not match your board? Say so here, with what you observed (model, board revision, serial number, measurement). Every report is cross-checked against a source before anything changes — an unverifiable correction is published as “reported by …, not cross-checked” rather than silently applied.
Reading is open to everyone; posting requires signing in with Discord. Reports from the wiki's declared reviewers are handled first; anyone else's are read too, but go through a human before anything is changed.