Asure
Grand Master
Soon i will be releasing a set of roms to bypass a broken security daughter card on your Golden Axe 2.
As a proof of concept, i started to look into this a few days ago, and it turned out really easy.
Sega used a very lazy assembler, programmer, QA checker and what have you. Read below to find out how botched up the Golden Axe 2 release was..
I did this in October, around the 10th, and shared the info with a few people. On oct 21st, the info ended up on TCRF.net.
Maybe a coincidence. Whoever posted there please come forward where you found this. (Rabidrabid, who are you?)
Roms will be released around christmas, just like i did last year with the Espgaluda score save mod. Have patience
Preface
Let's explain a bit about GA2 and security the daughter card. It has a NEC V25 cpu on it, some ram, a rom (already dumped) and sits on the bus. It is designed to stop bootleggers. Sega had lots of games heavily bootlegged, and they lost revenue because of this. Previous platforms have battery backed 68K main cpu's with encryption tables that helped deter bootleggers for a looong time. Some of the System32 games have FD1149 solutions on them which today are still not fully understood. What went wrong with Golden Axe 2? It is a top-tier title with a strong IP that should be properly protected, right?
Bootup
The main cpu can 'talk' to the daughter card by shared ram. When the game boots, maincpu and secure v25 cpu start up. The game waits for some magic string to appear in RAM otherwise the main cpu code will stay in a loop. Other than that, there is also some sprite data reading from shared ram. If the daughter card dies, the game won't start. If you bypass the magic string check, the sprites will be looking like they are on LSD. Seems decent enough right?
Flaws
- Main cpu code not encrypted.
- Expected string can be seen in main cpu code roms. (oops.)
- Expected palletes may be guessed or even brute forced.
- Hardware emulation in 1992 could have seen the content of the encrypted cpu ram..
The attack
The game is fully emulated in MAME for a long time. Source code is available. The game wants a 'WAKE UP! ...' string or it won't boot.
The secure cpu is also fully emulated. There is just some simple opcode obfuscation going on, nothing serious. (first obvious sign of lazyness: Obfuscation is not security.)
I started to look at the ram space for the encrypted cpu to see what the game put there, and what the security cpu was doing. It soon became clear this was going to be a boring job.
- The security cpu creates a page of static data in the shared ram.
- Nothing ever changes in this shared ram.
- Then it sits there idle. Doing nothing.
This could be easier than i thought.
Stupid assembler
I went to look at the rom to see if i was missing any code that the security board might jump to in special cases. There could be some triggers or events i had missed in the main cpu.
Disassembling the obfuscated rom would allow me to see any such hidden surprises. I was really hoping for somekind of a surprise. But not like what i found.
I saw a big issue. Sega had used an assembler that was super sloppy. It had produced a ROM and filled the emptyness with 'random data' from the pc/disk/ram.
Except, it had picked the source code of the V25 encrypted program. Not scrambled. Nicely formatted too.
So, whoever assembled this using uPD70320 Assembler V3.10 in SEC mode on 01 Sep 92 12:30:49 on a PC98 with nickname ARAMAWARI made no QA effort.
Also, another lazy sign: They re-used partial Arabian Fight routines, which could help de-obfuscate the sec cpu on that one, the emulation is not 100% on that game yet.
Work done so far:
- Moved the sprite table into ROM
- Bypassed security string
- Tested on real hardware (see here.)
Todo:
- Document the rom types if you want to convert say, F1 super lap.
- De-obfuscate the Arabian Fight sec board?
- Add AF sec emulation to MAME?
- Do the actual Xmas release
I wanted to play Titanfall 2 but wrote this god damn wall of text.. :awe:
And yes, there's a similar situation in Arabian Fight's sec board rom, but there is a lot less source..
As a proof of concept, i started to look into this a few days ago, and it turned out really easy.
Sega used a very lazy assembler, programmer, QA checker and what have you. Read below to find out how botched up the Golden Axe 2 release was..
I did this in October, around the 10th, and shared the info with a few people. On oct 21st, the info ended up on TCRF.net.
Maybe a coincidence. Whoever posted there please come forward where you found this. (Rabidrabid, who are you?)
Roms will be released around christmas, just like i did last year with the Espgaluda score save mod. Have patience

Preface
Let's explain a bit about GA2 and security the daughter card. It has a NEC V25 cpu on it, some ram, a rom (already dumped) and sits on the bus. It is designed to stop bootleggers. Sega had lots of games heavily bootlegged, and they lost revenue because of this. Previous platforms have battery backed 68K main cpu's with encryption tables that helped deter bootleggers for a looong time. Some of the System32 games have FD1149 solutions on them which today are still not fully understood. What went wrong with Golden Axe 2? It is a top-tier title with a strong IP that should be properly protected, right?
Bootup
The main cpu can 'talk' to the daughter card by shared ram. When the game boots, maincpu and secure v25 cpu start up. The game waits for some magic string to appear in RAM otherwise the main cpu code will stay in a loop. Other than that, there is also some sprite data reading from shared ram. If the daughter card dies, the game won't start. If you bypass the magic string check, the sprites will be looking like they are on LSD. Seems decent enough right?
Flaws
- Main cpu code not encrypted.
- Expected string can be seen in main cpu code roms. (oops.)
- Expected palletes may be guessed or even brute forced.
- Hardware emulation in 1992 could have seen the content of the encrypted cpu ram..
The attack
The game is fully emulated in MAME for a long time. Source code is available. The game wants a 'WAKE UP! ...' string or it won't boot.
The secure cpu is also fully emulated. There is just some simple opcode obfuscation going on, nothing serious. (first obvious sign of lazyness: Obfuscation is not security.)
I started to look at the ram space for the encrypted cpu to see what the game put there, and what the security cpu was doing. It soon became clear this was going to be a boring job.
- The security cpu creates a page of static data in the shared ram.
- Nothing ever changes in this shared ram.
- Then it sits there idle. Doing nothing.
This could be easier than i thought.
Stupid assembler
I went to look at the rom to see if i was missing any code that the security board might jump to in special cases. There could be some triggers or events i had missed in the main cpu.
Disassembling the obfuscated rom would allow me to see any such hidden surprises. I was really hoping for somekind of a surprise. But not like what i found.
I saw a big issue. Sega had used an assembler that was super sloppy. It had produced a ROM and filled the emptyness with 'random data' from the pc/disk/ram.
Except, it had picked the source code of the V25 encrypted program. Not scrambled. Nicely formatted too.
Removed, post over 10.000 chars. Available on request 

So, whoever assembled this using uPD70320 Assembler V3.10 in SEC mode on 01 Sep 92 12:30:49 on a PC98 with nickname ARAMAWARI made no QA effort.
Also, another lazy sign: They re-used partial Arabian Fight routines, which could help de-obfuscate the sec cpu on that one, the emulation is not 100% on that game yet.
Work done so far:
- Moved the sprite table into ROM
- Bypassed security string
- Tested on real hardware (see here.)
Todo:
- Document the rom types if you want to convert say, F1 super lap.
- De-obfuscate the Arabian Fight sec board?
- Add AF sec emulation to MAME?
- Do the actual Xmas release

I wanted to play Titanfall 2 but wrote this god damn wall of text.. :awe:
And yes, there's a similar situation in Arabian Fight's sec board rom, but there is a lot less source..