preserving arcade games - 31c3

124
Preserving arcade games Ange Albertini - 31c3

Upload: ange-albertini

Post on 13-Jul-2015

74 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Preserving arcade games -  31c3

Preserving arcade gamesAnge Albertini - 31c3

Page 2: Preserving arcade games -  31c3

not everyone understands hardware

Page 3: Preserving arcade games -  31c3

not everyone understands software

Page 4: Preserving arcade games -  31c3

but everyone understand that it's a (good) game!

Page 5: Preserving arcade games -  31c3

that's the cool part of emulation:it brings games to everyone !(games that might be lost forever)

Page 6: Preserving arcade games -  31c3

This talk is about arcade games,the games where you put money to play.That money would go in the operator's pocket,no share to the arcade manufacturer.To be successfull, they had to be awesome."Dedicated" (hardware, controls...) is the key to their success.

Page 7: Preserving arcade games -  31c3

Let's go back in time:This is Night Driver (Atari 1976)...

Page 8: Preserving arcade games -  31c3

It's based on the first racing game,Nürburgring (1975) made of 28 PCBs.

Page 9: Preserving arcade games -  31c3

Berzerk was one of the first game with digitized speech.It cost 1000 USD / word to be digitized(it contained 16 words!)...

Page 10: Preserving arcade games -  31c3

...they also made a german version !same price per word ? ;)

Page 11: Preserving arcade games -  31c3

Battlezone, the first FPS, in 1980...

Page 12: Preserving arcade games -  31c3

...was turned into a military trainer.

Page 13: Preserving arcade games -  31c3

Dragon's Lair, an ‘interactive’ cartoon in 1983,at a time where HDs were 10 Mb and graphics in 16 colors.

Page 14: Preserving arcade games -  31c3

...was using the very recent Laser Disc technology (from 1981).But LD drives were quickly worn out, because of frequent scene skipping.

Page 15: Preserving arcade games -  31c3

Outrun (Sega 1986), awesome racing game!

Page 16: Preserving arcade games -  31c3

...uses 2 main CPUs at 10 Mhz (an Amiga 500 runs at 7 Mhz)the 2nd CPU's only task is to display the roads.(they're drawn at 30 FPS *only*, the rest of the game at 60)

Page 17: Preserving arcade games -  31c3

Hard Drivin (1989), a 3d simulation way before modern GPUs existed...

Page 18: Preserving arcade games -  31c3

...used 3 PCBs.They made a triple screen version of the sequel:6 PCBs, 4 CPUs, 9 DSPs !!!!It’s emulated since last month (November 14) !

Page 19: Preserving arcade games -  31c3

Sometimes, it was the arcade cabinet that was awesome.Hang gliding, bike, car... ass poking ?!?

Page 20: Preserving arcade games -  31c3

Sega's R360 rotates the player on all axis, even upside down !

Page 21: Preserving arcade games -  31c3

Sometimes, the screen was the awesome part: almost half spherical...

Page 22: Preserving arcade games -  31c3

triple CRT screen (with mirrors) or double widescreen...

Page 23: Preserving arcade games -  31c3

...and with awesome games came awesome piracy!

Page 24: Preserving arcade games -  31c3

As long as a game was good enough and its hardware not too extreme,bootlegs would be made. A few of them were 'creative'.

Page 25: Preserving arcade games -  31c3

Space Invaders (text) <> Darth Vader (gfx)Metal Slug 3 <> Metal Slug 6 (!!)

Page 26: Preserving arcade games -  31c3

They went further and were taking a good game,then hacking gfx & sound to create a 'new' game

Page 27: Preserving arcade games -  31c3

With awesome piracy came awesome protections.once again, dedicated stuff, sometimestightly integrated with the game internals

Page 28: Preserving arcade games -  31c3

In Bee Storm, if the protected CPU is missing,the game works, but the enemies don't shoot anymore.

Page 29: Preserving arcade games -  31c3

In Hang-on, if the 2nd CPU (sometimes encrypted) is missing, then roads are straight.

Page 30: Preserving arcade games -  31c3

in S.P.Y., collisions are handled by a custom chip:without it, you can't hurt and cannot be hurt.

Page 31: Preserving arcade games -  31c3

to store protected data, they went further:store data on battery-powered RAM.the battery dies, the game dies.the manual doesn't even mention it!the warranty is void if you open the game's case!

Page 32: Preserving arcade games -  31c3

so you're not supposed to open the game,yet all games will eventually die once all batteries are empty.Hacking these games is the only way to preserve them.

Page 33: Preserving arcade games -  31c3

it also enables the IP to be re-used commercially later.

Page 34: Preserving arcade games -  31c3

Arcade games had to be awesome. They were often using dedicated parts.they were heavily pirated. they were heavily protected.So protected that it makes them vulnerable (to time)!Hacking is the only way to preserve them.

Page 35: Preserving arcade games -  31c3

Let's look at the Capcom Play System, known as CPS1.

Page 36: Preserving arcade games -  31c3

known mostly for Street Fighter II

Page 37: Preserving arcade games -  31c3

and many other good games

Page 38: Preserving arcade games -  31c3

the complete list...

Page 39: Preserving arcade games -  31c3

including the least known,only emulated in June 2014.It's SF2-based, but it's a mole hitting game !!

Page 40: Preserving arcade games -  31c3

CPS1 was increasingly protected:Yet it was completely hacked.SF2 bootlegs were common.

Page 41: Preserving arcade games -  31c3

a final fight bootleg, adding extra characters to control.

Page 42: Preserving arcade games -  31c3

an original CPS1… (3 PCBs)

Page 43: Preserving arcade games -  31c3

and a CPS1 bootleg (nothing in common)

Page 44: Preserving arcade games -  31c3

the latest CPS1 generation had custom chip+suicide battery,..

Page 45: Preserving arcade games -  31c3

...but it was defeated nonetheless:weak encryption+encrypted data made plaintext attack easy.

Page 46: Preserving arcade games -  31c3

CPS1 was great.It was protected.It was completely hacked.

Page 47: Preserving arcade games -  31c3

Capcom released its evolution, the CPS2

Page 48: Preserving arcade games -  31c3

it started with this...

Page 49: Preserving arcade games -  31c3

from Super SF2 (1993)to Hyper SF2 (2003)(how original !)

Page 50: Preserving arcade games -  31c3

CPS2 was awesome...

Page 51: Preserving arcade games -  31c3

...really awesome!

Page 52: Preserving arcade games -  31c3

...plenty of great games...

Page 53: Preserving arcade games -  31c3

the real successor to the CPS1the last successful hardware from Capcom.

Page 54: Preserving arcade games -  31c3

here is the complete list of bootlegs, hacks, swaps...(absolutely NOTHING)

Page 55: Preserving arcade games -  31c3

they were so desperate that they couldn't hack that...

Page 56: Preserving arcade games -  31c3

that they hacked a console version into an arcade game (with typo)

Page 57: Preserving arcade games -  31c3

A CPS2 is a sandwich of 2 PCBs(sometimes only 1, sometimes 3)

Page 58: Preserving arcade games -  31c3

the game PCB contains code+data+protection

Page 59: Preserving arcade games -  31c3

what's in green is in clear,in red is encrypted.Code and Data are together.Code is crypted, data isn't.

Page 60: Preserving arcade games -  31c3

decryption is made on the fly,during memory fetch.read standard memory? as is.read for execution? decrypt.

Page 61: Preserving arcade games -  31c3

patch an opcode (unknown encryption)→ black screen. game over. retry ?

Page 62: Preserving arcade games -  31c3

CPS2 was really awesome.it was well protected.it was absolutely unscathed for 6 years.

Page 63: Preserving arcade games -  31c3

Capcom had a major competitor.

Page 64: Preserving arcade games -  31c3

the Neo-Geo is knownfor many games...

Page 65: Preserving arcade games -  31c3

an exceptional success and longevity !

Page 66: Preserving arcade games -  31c3

a success in arcade AND as an expensive console

Page 67: Preserving arcade games -  31c3

So Capcom created somethingthat made the NeoGeo look small and cheap.It was a commercial failure...

Page 68: Preserving arcade games -  31c3

as a last effort, they backported a recent CPS2 game.the first decrypted CPS2 port !!!

Page 69: Preserving arcade games -  31c3

but nothing happened. the dragon was still alive.

Page 70: Preserving arcade games -  31c3

to defeat a dragon, you need adventurers:Razoola, Charles MacDonald, Andreas Naive, Nicola Salmoria, David Haywood, and many others.(I worked with Razoola, and helped him on the PC side)

Page 71: Preserving arcade games -  31c3

In November 1999, Razoola re-enabled SFZ’s internal debugger (first working CPS2 patch !)→ not blind anymore !

Page 72: Preserving arcade games -  31c3

in spring 2000, he found that some specific memory ranges were not using encryption!why ? no reason - just a big facepalm !→ shellcode execution for a split second.

Page 73: Preserving arcade games -  31c3

when reading relatively to code (PC),memory fetches are actually decrypted !Sega prevented that, but Capcom failed.→ first CPS2 decryption, word by word

Page 74: Preserving arcade games -  31c3

so, in Summer 2000, I visited Raz, hoping we'd break the algo.but no success...

Page 75: Preserving arcade games -  31c3

in December 2000, Raz noticed that Capcom leaked the key to keep decryption alive.→ automated dump is now possible !

Page 76: Preserving arcade games -  31c3

we dumped by connecting the CPS2 to the joystick port of the PC.ugly, clumsy, slow, but worked !

Page 77: Preserving arcade games -  31c3

Jan 2001: first cps2 emulation

Page 78: Preserving arcade games -  31c3

the news didn't get it right, as usual...

Page 79: Preserving arcade games -  31c3

game over for CPS2 ?not fully. encryption still unknown, no possible restoration yet.

Page 80: Preserving arcade games -  31c3

recent NeoGeo games also featured better protection

Page 81: Preserving arcade games -  31c3

but with 'joystick dumping', that was defeated quickly :p(decryption done by Nicola Salmoria)

Page 82: Preserving arcade games -  31c3

what about dead CPS2 boards ?

Page 83: Preserving arcade games -  31c3

if you put back decrypted code on a dead CPS2,it still doesn't work.

Page 84: Preserving arcade games -  31c3

Razoola was donated a working PCB to sacrifice,then found out why.

Page 85: Preserving arcade games -  31c3

video and sound registers had a different address on dead games.patching these addresses makes them work again !

Page 86: Preserving arcade games -  31c3

workflow: decrypt code, merge with data, patch addresses...

Page 87: Preserving arcade games -  31c3

Razoola made a universal test ROM,and 'no more battery' Phoenix versions.

Page 88: Preserving arcade games -  31c3

this also made bootlegs possible.no more battery...from MegaMan to Gigaman :(

Page 89: Preserving arcade games -  31c3

and also some cool all-in-one:play all games with just one board.

Page 90: Preserving arcade games -  31c3

PC, 1999

CPS2, 1994

these 2 games look different...

Page 91: Preserving arcade games -  31c3

however, the IP was the same.Some nice lawyer wrote us a letter...You see who your friends really are,in these cases ;)

Page 92: Preserving arcade games -  31c3

so now even the most obscure CPS2 games were preserved,but the encryption was still unknown.and it would take us 200 years to dump all possible values for one game...

Page 93: Preserving arcade games -  31c3

so we needed someone else to continue...

Page 94: Preserving arcade games -  31c3

if you can't defeat the ennemy, bring your friends.In 2005, Charles MacDonald started to work on the CPS2.

Page 95: Preserving arcade games -  31c3

Charles MacDonald is an awesome hacker, with special weapons.Here, his PAL blackboxer.So, he took the CPS2 PAL, determine their internal configurationby blackboxing them, replace them with GALs.He now had controls over memory mapping !

Page 96: Preserving arcade games -  31c3

then he designed his own dedicated device...

Page 97: Preserving arcade games -  31c3

to dump CPS2 directly via its expansion port, to USB !!!He could dump the 8 Gb set in 17h.He did that for several games. but that wasn't enough to understand the algorithm......

Page 98: Preserving arcade games -  31c3

so someone else needed to continue to break the algo...

Page 99: Preserving arcade games -  31c3

that's where Nicola Salmoria and Andreas Naive helped.they're awesome to determine encryption algorithm.the algo was feistel based, and the key was 64 bits.

Page 100: Preserving arcade games -  31c3

so, from one european decrypted dump of a game,the key could be determined,which could then decrypt the rare japanese version of the game.

Page 101: Preserving arcade games -  31c3

Last, Dave Haywood designed an attack to determinethe key just from the ENCRYPTED dump of the game.So even the rarest CPS2 game was preserved !

Page 102: Preserving arcade games -  31c3

Conclusion

Page 103: Preserving arcade games -  31c3

Capcom's mistakes

Page 104: Preserving arcade games -  31c3

many people contributed, in various ways

Page 105: Preserving arcade games -  31c3

and overall, an awesome victory !

Page 106: Preserving arcade games -  31c3

this is the Bubble Memory system.it’s very fragile.

Page 107: Preserving arcade games -  31c3

to work, it needs to warm up to a certain temperature.to me, this big countdown says:'all these games are going to disappear if no one hacks or contribute for them'

Page 108: Preserving arcade games -  31c3

Last Survivor, a System X game from 1989, was thought to be lost forever.Someone still had one in working conditions:it was preserved, 20 years later !

Page 109: Preserving arcade games -  31c3

it's one of the first split-screen multiplayer FPS

Page 110: Preserving arcade games -  31c3

So, before it’s too late: hacking is the only way to preserve these over-protected yet great games...

Page 112: Preserving arcade games -  31c3

yes, this is a CPS2 timeline :p

Page 113: Preserving arcade games -  31c3

some bonus ?

Page 114: Preserving arcade games -  31c3

SFA3 has a time lock: if you let it run long enough,some special modes are unlocked.the title background tells how many modes are unlocked.

Page 115: Preserving arcade games -  31c3

extra characters, extra playing modes

Page 116: Preserving arcade games -  31c3

Hidden in the operator menu,Razoola found the crazy cheat codes in the disassembly to turn on this extras without waiting weeks.

Page 117: Preserving arcade games -  31c3

Charles MacDonald also worked on Sega hardware and created his own device for it...

Page 118: Preserving arcade games -  31c3

Dumping from a Sega System24’s FD1094 to USB

Page 119: Preserving arcade games -  31c3

to preserve games fromSystem 16, 24 & System X

Page 120: Preserving arcade games -  31c3

modern tools show how fighting games engine actually work.damage areas change from one version to the other.

Page 121: Preserving arcade games -  31c3

there are bugs in the official releases !

Page 122: Preserving arcade games -  31c3

attack behind you, or be hit for no reason...

Page 123: Preserving arcade games -  31c3

tools assisted speedruns abuse games via standard controls.

Page 124: Preserving arcade games -  31c3