Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Would really like to know what makes a person (or group of people) invest the time and energy to do this? Is there a group of hobbyist gamers who work on titles they love? Is it about digital conservation?


I've spent a lot of time reverse-engineering vintage synthesizer firmware (which is a bit simpler than modern games). I did complete end-to-end annotations of these two vintage synth ROMs:

- https://github.com/ajxs/yamaha_dx7_rom_disassembly

- https://github.com/ajxs/yamaha_dx9_rom_disassembly

It started because I was just curious about how these devices actually worked. In the end I learned a lot of really invaluable skills that really broadened my horizons as an engineer. I got a chance to talk to a handful of incredibly smart people too. The actual work can be a lot of fun. It's like piecing together a really large and technical jigsaw puzzle. In my case, it also led to me being able to release a fun firmware mod: https://github.com/ajxs/yamaha_dx97

In case anyone is curious about how I worked, I wrote a bit of a tutorial article: https://ajxs.me/blog/Introduction_to_Reverse-Engineering_Vin...

It can be a bit analogous to archaeology too. Even though in my case the DX7 is only 42 years old, that was an aeon ago in computing terms. You gain a bit of insight into how different engineers used to design and build things. Even though development for the N64 is fairly recent, from memory the console had some interesting constraints that made development tricky.


> the console had some interesting constraints that made development tricky

The ones that come to mind are the tiny 4KB texture cache, high memory latency (thanks Rambus), and inefficient RCP microcode. The N64 could have been so much more with a few architectural tweaks but developers liked the Playstation much better on account of its simplicity despite it being technically inferior in most respects.


>developers liked the Playstation much better on account of its simplicity despite it being technically inferior in most respects.

That statement is surprising, as being a kid I remember the PlayStation as obviously graphically superior. I’m not doubting you but what explains the difference between technical and user perception?


The N64's processor had triple the clock speed of the Playstation's on top of having more RAM (up to 8MB versus the 3MB of the Playstation). Its graphics subsystem could also do perspective-correct texture mapping and push more polygons per second. It also had a hardware FPU which the Playstation notably lacked. It's pretty widely acknowledged that the N64's Achilles heel was its small texture cache which caused developers to use lower-resolution textures with heavy anti-aliasing than they otherwise would. This results in the characteristic smeary look of N64 games versus the Playstation's wobbly, pixelated aesthetic. You probably thought the PS1 looked better because of the more detailed textures.

I've no doubt (as a thoroughly amateur video game historian) that with a few small tweaks Nintendo would have ate Sony's lunch that generation. In that alternate universe Sega would have had better developer support for the Saturn and done crazy stuff with their super-wacky architecture too but I digress...


That’s interesting! I thought the answer was going to be related with CD vs cartridge capacity.

It also sounds crazy that games like tekken 3 could run on 3mb RAM total, when just the current music track feels like it could take that much space.


Many PSX games had the music on the CD as standard audio, so they didn't require much of any effort from the console to play.


It's technically 2MB of RAM + 1MB of VRAM.


I guess you’ve never kicked ass and chewed bubble gum


It's hard to do when you're all out of gum


Maybe they just really love the game. This is a form of tribute.

I too have a beloved video game from my childhood: Mega Man Battle Network 2. That game changed my life. I learned English and became a programmer because of it. I have two physical copies of it in my collection, one of them factory sealed.

Sometimes I open the game in IDA and try to reverse engineer bits and pieces of it. I just want to understand the game. I don't have the time, the dedication or even the low level programming knowledge that these badass folks in the ROM hacking community have, but I still try it.


I'm the person who reimplemented Cosmo's Cosmic Adventure (DOS, 1992) and my original reasoning was a desire to know how it was able to do some of the graphical tricks it did on such underpowered hardware (it could run on an IBM AT). The game wasn't anything special by any metric, but it was an important piece of my childhood and I felt an attachment to it. I also learned a hell of a lot about the PC platform, the C ecosystem from the 80s, and my own tastes as an engineer.

https://github.com/smitelli/cosmore

https://cosmodoc.org/


I gave a talk at Game On Expo about decompiling Castlevania: Symphony of the Night (https://github.com/xeeynamo/sotn-decomp ) earlier this year and talked a little bit about exactly this. Almost everyone who works on loves the game. After that, motivation varies: some want to see ports, some want to mod, some want to learn everything they can, some want to preserve. Along with those I also like the challenge (not unlike sudoku).

Doing it long enough requires learning compiler history and theory, understanding business and engineering pressures of making the game, and occasionally reveals why parts of the game work the way they do.

I stream working on SotN and am happy to answer any questions in chat if you’re interested in learning more - https://m.twitch.tv/madeupofwires/home


You climb a mountain because it's there. Different people have different mountains.

It's an interesting challenge, you can improve it or make it do X,Y,Z, you can add speedrunning or competition gaming features, solving puzzles gives a sense of accomplishment, a certain small group gives you social clout, etc.


In addition to those categories, speedrunning glitch hunters tend to gravitate to participating in these projects as well. E.g. the Twilight Princess decomp was started primarily by and for the speedrunning community.


It's also the endgame for romhacking, once a game is fully decompiled modders can go far beyond what was feasible through prodding the original binary. That can mean much more complicated gameplay mods, but also porting the engine to run natively on modern platforms, removing framerate limits, and so on.


This is how the text adventure/interactive fiction community started. Some hackers reverse engineered the Infocom z-machine then built new languages and compilers so new games could be created.


Preservation and ease of modification. New console units are not being made anymore, and the number of old ones is limited, they can break, and there is an issue with output video formats that are incompatible with modern monitors/TVs. There is emulation, but it's not perfect and can be demanding. Decompilations enable people to create native binaries for different platforms. This makes playing the game easier and more accessible.


Same. Is there a project page or anything that explains the context, the reasons, the history behind this? I bet it would be very interesting.

The Readme is too technical and misses a writeup on the soul of the project: Section 1, title. Section 2, already talking about Ubuntu and dependencies. Where is section "Why?" :-) ?


Based off the commit history, this has been one person's on-off project for 3 years. My guess is that they like this game and they were curious about how decomps come to fruition - and what better way to find out than to do it?


There are people who spend hours and hours analyzing bit characters in things like Lord of the Rings (where did the Blue Wizards go? Who is Tom Bombadil?) or Star Wars. This is a similar fan obsession. Remember fan comes from fanatic.


Nostalgia: a sentimental longing or wistful affection for the past, typically for a period or place with happy personal associations.




Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

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

Search: