- Joined
- Sep 30, 2026
- Messages
- 5
- Likes
- 7
Hey everyone,
Inspired by @Tschicki and @Mister M 's work, I decided to attack the PS2 some more, and what better way to attack, than to tackle the two "useless" chips on the trim, Mechacon and DSP.
So, I bought a couple of SCPH-90004's to abuse
It all started out because I was really curious if I could use the CDVD dma channel for game loading( I can), So, after days of reading pcsx2 code and ps2tek, I did a simple FPGA implementation that tries to replace the registers provided by CDVD...
Booom! It boots, only issue? It randomly switches to being japanese, Obviously, the mechacon has an NVRAM, which im currently completely ignoring and returning 00's, Oh well, but there is a bigger issue, memory card not detected, why? MAGICGATE, at this point im starting to worry, but soon, I was able to find the algorithm and the keys, thus, I made a simple magicgate cooprocessor on an stm32, connected to the fpga via spi, and guess what,
It also works!, Now, as I try to load fortuna, it just keeps booting me back to the browser, at which point im thinking, maybe I do need the NVRAM, so i dump my nvram, put it as a c array into the stm32 firmware, and sure enough, I have homebrew running.
At this point I wanted to start loading games via the dma channel, and this took some work, first, I needed to design a custom board, that EP4CE6 devboard off aliexpress wasnt really cooperating too well, and after designing a board, ripping off the dsp, and spending days on signal integrity, I came up with this unique solution:
And yes, It does work, I can load commercial games using OPL off my sd card, performance seems great, games load fast, but my test shows an effective rate of 3.5MB/s or so, I know I can go faster, as the DMA channel is about 150MB/s
But, as of now, I have the DSP removed, mechacon controlling the power/reset, but otherwise completely isolated, and the board boots, and runs games, not sure yet of the stability, as i have only tested MGS2, GTA VC, GTA LCS, BULLY, FLATOUT 2 and GT4, which all seem to be doing really well.
My eventual plan is to make a custom, super small PS2 pcb, and possibly try to get a real ODE working, so that OPL compatability issues can be bypassed. I still have a code cleanup to do, but I currently deem it stable enough to release, so will be releasing the schematics and code shortly.
Inspired by @Tschicki and @Mister M 's work, I decided to attack the PS2 some more, and what better way to attack, than to tackle the two "useless" chips on the trim, Mechacon and DSP.
So, I bought a couple of SCPH-90004's to abuse

It all started out because I was really curious if I could use the CDVD dma channel for game loading( I can), So, after days of reading pcsx2 code and ps2tek, I did a simple FPGA implementation that tries to replace the registers provided by CDVD...
Booom! It boots, only issue? It randomly switches to being japanese, Obviously, the mechacon has an NVRAM, which im currently completely ignoring and returning 00's, Oh well, but there is a bigger issue, memory card not detected, why? MAGICGATE, at this point im starting to worry, but soon, I was able to find the algorithm and the keys, thus, I made a simple magicgate cooprocessor on an stm32, connected to the fpga via spi, and guess what,
It also works!, Now, as I try to load fortuna, it just keeps booting me back to the browser, at which point im thinking, maybe I do need the NVRAM, so i dump my nvram, put it as a c array into the stm32 firmware, and sure enough, I have homebrew running.
At this point I wanted to start loading games via the dma channel, and this took some work, first, I needed to design a custom board, that EP4CE6 devboard off aliexpress wasnt really cooperating too well, and after designing a board, ripping off the dsp, and spending days on signal integrity, I came up with this unique solution:
And yes, It does work, I can load commercial games using OPL off my sd card, performance seems great, games load fast, but my test shows an effective rate of 3.5MB/s or so, I know I can go faster, as the DMA channel is about 150MB/s
But, as of now, I have the DSP removed, mechacon controlling the power/reset, but otherwise completely isolated, and the board boots, and runs games, not sure yet of the stability, as i have only tested MGS2, GTA VC, GTA LCS, BULLY, FLATOUT 2 and GT4, which all seem to be doing really well.
My eventual plan is to make a custom, super small PS2 pcb, and possibly try to get a real ODE working, so that OPL compatability issues can be bypassed. I still have a code cleanup to do, but I currently deem it stable enough to release, so will be releasing the schematics and code shortly.
Last edited: