Back

Decompiling Xbox games using PDB debug info

93 points3 daysi686.me
tomaytotomato13 hours ago

Over the last year I have seen some really nice exploration posts on HN with people poking around on:

- Splinter Cell

- Deus Ex

- Thief

- Civ

This is great work and will help tell the story of how these games were made.

It would be great if all games after a certain period of time were opensourced like some companies are doing:

https://github.com/electronicarts

https://github.com/bobeff/open-source-games?tab=readme-ov-fi...

anonymous90821312 hours ago

> It would be great if all games after a certain period of time were opensourced

I would settle for simple copyright expiration in a reasonable amount of time. 70 years after death of author is so wholly unreasonable. Even though so many IPs are now part of the collective cultural consciousness, people can't explore their creativity using them without threat of getting Nintendo'd (even for non-commercial projects!), and entire generations that grew up experiencing them will be dead and gone by the time they enter public domain. It is a travesty that we impose such heavy shackles on human creativity.

direwolf2010 hours ago

You can do whatever if you don't get caught doing it

account4211 hours ago

Software copyright without mandatory source code escrow was always an insanely bad deal for society.

nucleardog9 hours ago

When I look back, seems to me the default was sort of "anything can copy and modify anything" because without additional measures or rules... what's stopping them? We added copyright as a time-limited exclusivity available to the creator to encourage people to create things (knowing they would have time to recoup some of their effort commercially).

With anything else (books or stories, pictures or movies, etc) the ability to modify or extend the work was the default. Copyright was a carve-out in this.

With software it's actually the reverse--the ability to modify or extend the work is _not_ the default. It takes explicit action by the creator to make that reasonable without substantial effort in most cases. We're actually dealing with an entirely different situation here, and providing that exclusivity on top really does seem like a bad deal for society in a lot of ways.

Is there anything else that's covered by copyright that's in a similar sort of situation as software? Where the thing that's covered by copyright _isn't_ really modifiable to begin with?

Which is a lot of words to say--on the surface, yeah, I agree with you. Besides shorter terms, I think if you want that exclusivity from society you should be required to give something back in return... like the source code so everyone can benefit from and build off of your work after your period of exclusivity expires.

ndiddy7 hours ago

> Is there anything else that's covered by copyright that's in a similar sort of situation as software? Where the thing that's covered by copyright _isn't_ really modifiable to begin with?

I don't see how software is unique here. You can modify a compiled executable, just like you can modify a finished graphic, or a produced movie, or a piece of music from an album. It takes additional effort, but so does modifying the graphic without the PSD file, the movie without the editor project files, and the music without the stems.

mikepurvis7 hours ago

The original copyright laws date from the 1700s; at the time the only thing being protected was text: stories, essays, reference volumes, etc. Basically, stuff for which there was no "source code" to conceal, the whole thing was right there on the page.

It's only been in the 20th century that we've increasingly seen classes of copyrightable works for which the source code dwarfs the final released product: music, digital visual arts, film, and software

To make matters even worse, the commercial interest in copyright doesn't care about any of this, because pirates only duplicate and distribute the end product anyway. So it's only the creative side wanting to remix and extend that is shut out by a lack of source escrow.

kg7 hours ago

It's even a bad deal for the rightsholder. There are lots of stories in video games of how a studio or publisher lost the original source code or assets for a game, then 5, 10 or 20 years later they want to remaster it and they can't do so without jumping through really elaborate hoops involving binary recompilation, emulation, repainting assets from scratch, etc.

If the code and assets were escrowed, the rightsholder could just go claim that stuff whenever they need it.

RandomTeaParty11 hours ago

My general experience with decompilation has been very negative (rough and not ready for use)

It feels like tool devs target byte editting more than refactoring decompiled code into something readable - you can't move lines of code, can't flip statement checked in if() for early return

Author of this article mentioned "byte euivalence", and while I'd be fine with functional sameness, I imagine provably-reversible refactor steps would be of great help for everyone

peder6 hours ago

Not sure if you're a .NET/C# person, but PDBs are a bit different tho in that they contain full debug information and you can absolutely decompile a .DLL + .PDB combo. Very successfully even in the case of obfuscation.

direwolf2010 hours ago

Hm, I wrote a decompiler that does this. Maybe I should work on it more.

starkrights6 hours ago

This site never ceases to surprise me with new username jumpscares (no negative connotation intended)

I had no idea you were an (ex?) sysadmin! Apologies for the offtopic driveby reply, but what a small world we live in.

01hman12 hours ago

Do you think it is possible/easy to de-compile MCLA?

orange_redditor12 hours ago

It's possible and made a lot easier if you have a debug build of the game or any build that doesn't use LTO. If you targetted the Xbox 360 version of the game in particular you could use this fork of decomp-toolkit but it's still a work in progress https://github.com/rjkiv/jeff