Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Video Game Preservation – An archive of commercial video game source code (github.com/videogamepreservation)
213 points by groundlogic on Aug 17, 2019 | hide | past | favorite | 41 comments


As every time this comes up, and in the hopes of someone reading HN knows someone who knows someone... I'd love to get my hands on the source code of Dark Sun: Shattered Lands and Dark Sun: Wake of the Ravager (SSI Gold Box RPGs), and to a lesser extent Twilight: 2000 (Paragon Software), and Little Big Adventure / Twinsen's Adventure and Twinsen's Oddysey. I'd love to port them to modern systems and/or remaster the art to the extent that is possible. These are games with incredible gameplay but whose art hasn't aged that well.

Also periodic beg to Splash Damage / whoever owns the rights to the content for Enemy Territory to release them, so they can be modded (not the source, but the maps and models). Again, perfect gameplay, would love to see it with modern 3D capabilities.


Years ago I really wanted the sauce to AOL's NWN. Gold Box RPG in MMO form! I actually played it online back when AOL was $5/hr (after the first five free hours!).

At some point I talked to someone who worked at the co who ate the co who would've owned the source. IIRC someone went looking for it but it was gone/lost. There've been some recreations but man it'd be great to get the orignial.

The other k-rad 90's MMO I played, Meridian 59, got its sauce dumped relatively recently too. That was a fun read.


For LBA at least, a group of fans reverse engineered the entire engine and made a new one:

https://github.com/xesf/twin-e


Dotemu have also re-released it:

http://www.dotemu.com/game/little-big-adventure/


There's few things I wouldn't give for the source code to the old Westwood games. Particularly Tiberian Sun/Red Alert 2

Word around the internet though is that EA lost the source code to all the pre-Generals (2004) C&C games


I can't comment for sure if they still have the source, but I know that EA made changes to those games when they released The First Decade [0] to make their CD-checks accept the new DVD. Most of the games were recompiled (so source was available) for that.

---

But the RA2: Yuri's Revenge binary was just patched where needed. This distinction was made because at the time YR already had some hardcore fans decompiling it and enhancing it, EA's community manager heard about this and made sure that community effort was not destroyed. I was one of those fans, and taking it apart was one hell of an adventure. We didn't decompile all of it, but we figured out many details, and added a lot of bugfixes and enhancements. It's not the same thing as the real source code, but you can see what we got in [1]/[2]/[3] (unfortunately those haven't been updated in a while).

[0]: https://en.wikipedia.org/wiki/Command_%26_Conquer:_The_First...

[1]: https://github.com/Ares-Developers/YRpp

[2]: https://github.com/Ares-Developers/Ares

[3]: https://www.modenc.renegadeprojects.com/Contributing_to_Ares


You're in luck, my friend. https://github.com/OpenRA/OpenRA


The Descent readme was interesting:

Mike: ... At first all I cared about was writing technically good code.

Matt: Then we ran out of money and all we cared about was finishing our game.

Mike: Right. Our code got ugly, but our game got done.

[1] https://github.com/videogamepreservation/descent


Looking at the source for Descent would be rather fascinating - it was certainly one of the earliest examples of a 'true' 3D engine, with 3DoF, where DOOM was still locked to flat surfaces.

(ZDoom, and the beyond-incredible Sonic fan game SRB2, based on the DOOM II source, both support slopes in their engine, at this point).

I'm not gonna lie, Descent blew my mind when I was like 11 and fiddling with the DOOM II source.


The code for Descent has been available for a long time and if you're going to look, you should probably check out some of the links and info here: http://icculus.org/d2x/


Tangentially related, I have a dozen or so of my favorite games from the mid 90's through early 00's on CD-ROM that I would like to preserve. Unfortunately they seem to almost all have some DRM that prevents me ripping an image from them, but I'd much rather keep a few hundred meg ISOs on my media server than a stack of jewel cases in my closet.

Has anyone else solved this issue?


I guess, if all else fails, mail them to the Internet Archive Physical Archive in Richmond California:

https://help.archive.org/hc/en-us/articles/360017876312-How-...

It should be a matter of time until someone figures out the DRM, and this is the right place for these historical artefacts to be.

(And if you do manage to rip them yourself, please upload the images to their cdrom collection (https://archive.org/details/cd-roms)!)


Scrolling through the CD-ROM collection is such a hit of nostalgia.


Without knowing the games, I can't say for certain, but I would strongly suspect most of the games that got commercially pressed at any scale in that timeframe have had their DRM circumvented effectively by now.

If I were the one doing this, I'd go look up NFO files for piracy scene rips of said games and see what image formats they provided, and then look into the software to produce those formats, since there were once a horde of different optical media ripping tools which boasted the ability to effectively produce more complicated image formats than ISOs which would permit exact replication of the media (or software emulation thereof).

A less effort-intensive way of doing this might be preserving an unsophisticated copy of the disc contents along with whatever modifications might be required to circumvent the DRM.


DOS games used security by volume, counting on users not having enough HDD to rip whole games. Pinnacle of DOS era copyright was check if game data comes from a Network redirector - Mscdex is a TSR network redirector, there were easy to bypass by writing your own redirector, or using one of many available like CDEMU2/0CD/fakecd.

Dosbox emulates cdrom out of the box. Most DOS era games will work with file level copy rips. If you are heavily into DOS games you might want to download 'Total DOS Collection' or eXoDOS. There is also Win3xO for 16bit win games.


You don't have any contact details listed in your profile so I'll ask here: what games are they?


Commercial games are shipped on a quick schedule, so this doesn't always apply unless its a project that's maintained/cleaned up.

What I'd like to see (2D games): Permissively licensed, widget / sprite tooling, handling of rotation, blitter, canvas resizing, scaling.

Anecdote: I made a request for a Zelda clone to make their code available via a commercial-friendly license here: https://github.com/solarus-games/solarus/issues/826

Look at this, well-maintained C++ bits and pieces wrapping around SDL2, that could easily apply to more than just this game:

https://github.com/solarus-games/solarus/tree/dev/src/core

https://github.com/solarus-games/solarus/tree/dev/src/graphi...

If something is open sourced, I highly prefer it if generic parts are available for everyone to use on their own projects. Keep the creative work proprietary / GPL / etc.

One reason we do open source is we don't want to perpetually reinvent the wheel. Projects last longer when they have users. And in this case of a library, your stuff is directly used by developers, further increasing the likelihood of reciprocal contributions / sharing the burden of maintenance.


The GPL is a commercial-friendly license, and in fact, that's one of the freedoms it explicitly protects.


Its disingenuous to call it commercially-friendly. The vast majority of commercial users don't want to be subject to the terms of sharing their own code or modified versions of the GPL'd code, regardless of how 'fair' one thinks such an agreement is. Permissively licensed code allows commercial usage without the restrictions that commercial users actively avoid.


They don't have to share it unless they release their changed binaries.


The GPL is no less commercially friendly than the MIT, given it allows commercial usage, and explicitly protects commercial usage.


Funny that every company I've worked at is ok with MIT and won't touch GPL with a 10 foot pole.


[flagged]


This comment breaks the site guidelines. Would you mind reviewing them and using this site in the intended spirit? We'd appreciate it.

https://news.ycombinator.com/newsguidelines.html


Hey, that's pretty inflammatory. Uncool.


Please don't make these dismissals, there are many companies that make tons of money off of GPL software. The GPL purposefully disallows anyone adding restrictions to the code that would cripple commercial use. It's fine if your company doesn't want to comply with its terms, you don't have to use that software. But just remember that the GPL is not meant to pander to companies that intend to take the code, lock it up in a proprietary product and never give anything back to the community.


The GPL's very nature cripples commercial use because a very large number of companies rely on being able to control distribution, or need to participate in markets where distribution requirements cannot be met if the GPL is used. Good luck navigating the specifics of deploying GPL tainted software on a closed down app store or a console for example. Companies don't have any obligation to 'give back to the community', and I'm not arguing on whether anyone thinks that is fair. The GPL is commercially-friendly in a very very narrow set of examples. Imo, to call it 'commercial friendly' in a general sense especially within the context of other FOSS licenses is insincere.


The distribution controls and market requirements are unfortunate, but if they are being imposed on you by a platform owner then it's that vendor's fault. Those app store agreements are absolutely loaded with commercial restrictions. Please don't pin the blame for this on copyleft licensing, when those vendors have explicitly decided they were against it long ago and would do everything they could to stop it including banning it from their platforms in an effort to destroy the commercial viability of what they view as competition.


There's a fascinating write-up by John Carmack in there about porting the original Wolfenstein 3D to the iPhone. Crazy to think that was over 10 years ago.

https://github.com/videogamepreservation/wolf3dios/blob/mast...


Note: This collection is the work of Simon Morgan, https://sjm.io/.


That's me. Thanks for the credit. I've had some help with people pointing me to some things that I don't already have archived so if anybody's aware of anything that I'm not, please tell.


I recently completed the partial source code release for a game called Airline Tycoon if you're interested: https://github.com/Armada651/AirlineTycoon


Thanks for the work, dude. It's an awesome collection.

Edit: a suggestion: you should have an index somewhere with a year-by-year list of the games. Maybe create an index github repo with some static HTML/markdown?


Good idea. I should probably knock up some kind of website for that kind of thing.


I just did some busywork picking out what I think were the impact-wise most important games out of these (roughly half of them - super subjective :)), and then sorted them by release year, for your browsing pleasure!:

Robotron: 2084 (1986) by Vid Kidz for the Atari 7800

https://github.com/videogamepreservation/robotron-7800

Galaga (1987) by Namco Limited for the Atari 7800

https://github.com/videogamepreservation/galaga-7800

Dig Dug (1987) by Namco Limited for the Atari 7800

https://github.com/videogamepreservation/digdug-7800

Centipede (1987) by Atari, Inc. for the Atari 7800

https://github.com/videogamepreservation/centipede-7800

Asteroids (1987) by Atari, Inc. for the Atari 7800

https://github.com/videogamepreservation/asteroids-7800

Ms. Pac-Man (1987) by General Computer Corporation for the Atari 7800

https://github.com/videogamepreservation/mspacman-7800

Commando (1989) by Capcom Co., Ltd. for the Atari 7800

https://github.com/videogamepreservation/commando-7800

Prince of Persia (1989) by Jordan Mechner for the Apple II

https://github.com/videogamepreservation/princeofpersia

Hovertank One (1991) by id Software, Inc.

https://github.com/videogamepreservation/hovertank3d

Wolfenstein 3D (1992) by id Software, Inc. for DOS

https://github.com/videogamepreservation/wolf3d

DOOM (1993) by id Software, Inc.

https://github.com/videogamepreservation/doom

Rise of the Triad: Dark War (1994) by Apogee Software, Ltd.:

https://github.com/videogamepreservation/rott

Beneath a Steel Sky (1994) by Revolution Software.

https://github.com/videogamepreservation/bass

Heretic (1994) by Raven Software

https://github.com/videogamepreservation/heretic

Gravity Force 2 (1994) by Bits Productions

https://github.com/videogamepreservation/gravityforce2

Descent (1995) by Parallax Software Corp.

https://github.com/videogamepreservation/descent

Hexen: Beyond Heretic (1995) by Raven Software

https://github.com/videogamepreservation/hexen

Abuse (1995) by Crack dot Com

https://github.com/videogamepreservation/abuse

Duke Nukem 3D (1996) by 3D Realms Entertainment, Inc.

https://github.com/videogamepreservation/dukenukem3d

Descent II (1996) by Parallax Software Corp.

https://github.com/videogamepreservation/descent2

Quake (1996) by id Software, Inc

https://github.com/videogamepreservation/quake

Quake II (1997) by id Software, Inc.

https://github.com/videogamepreservation/quake2

Postal (1997) by Running With Scissors

https://github.com/videogamepreservation/postal

FreeSpace 2 (1999) by Volition, Inc.

https://github.com/videogamepreservation/freespace2

Homeworld (1999) by Relic Entertainment

https://github.com/videogamepreservation/homeworld

Aliens versus Predator (1999) by Rebellion Developments Ltd.

https://github.com/videogamepreservation/avp

MechCommander 2 (2001) by FASA Studio

https://github.com/videogamepreservation/mechcommander2

DOOM³ (2004) by id Software, Inc.

https://github.com/videogamepreservation/doom3


Wow - this is an amazing list.


This is really cool! Video game preservation has been something on my mind recently, but I was interested in preserving the game play experience for some older and more esoteric games that haven't been recorded on youtube or twitch, along with some notes on the core mechanics so information about them isn't lost.


I'm going to drop this on HN hoping that the internet works its magic...

If you worked on microprose and for some reason still have the source code for Mtg Shandalar, please do us all a favor and leak it!


Can any one recommend an old engine to go through? I'm working on learning graphics programming, and would appreciate a few examples. I've poked through godot a little, but modern graphics engines are seriously complex beasts and I figure an old one will be a bit simpler. I'd appreciate advice here; thank you.


check out fabian sanglad's blog:

http://fabiensanglard.net/quakeSource/index.php


That looks like a great resource; much appreciated!


This totally awesome! Installing dosbox to play them!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: