Hacker Timesnew | past | comments | ask | show | jobs | submit | teiferer's commentslogin

I understand the technical appeal of this effort, but wouldn't it be easier to try to obtain the original source code? Or has that been lost and all that's left is a blob?

Fundamentally, decompilation is not solving a technical problem most of the time (because the source already exists somewhere) but a social one (that the owner doesn't want to release it).


I wouldn't be surprised if the original source code is probably lost and forgotten in a ZIP drive stored in a basement somewhere in Tokyo.

I've made a similar point in an earlier comment, but consider the following:

Even if the original sources leaked in a human-readable format, the original game was probably written in a mixture of the device-specific dialect of the Mips R3000 assembly used by the Nintendo 64, whatever in-house assembler macro routines SGI provided for the RSP game-specific microcode, and some C89 glue code in an IDE like Metrowerks Codewarrior 4, by a team of overworked japanese developers in a hurry.

We can safely assume that the final decompiled code is way more readable/usable than the original.


You're probably right that it's forgotten and all, but..

> We can safely assume that the final decompiled code is way more readable/usable than the original.

Have you looked at any rediscovered repositories lately?

It's a pretty daft assumption that the original source code wouldn't carry more value than the decompiled machine-generated "source code". And much more so.

Certainly from the game historian's perspective. Just think about it. Inline comments, logs, scraps of documents/notes, variable/function naming, scrapped files and artwork, engine code, etc. These things are essentially a time capsule treasure and a peek into the history of the game, no matter their state.

If you've seen any rediscovered source code releases of old software, e.g. 86-DOS, Prince of Persia, Command & Conquer, Little Big Adventure, even Apollo or any of the "the making of"-style game releases built around it (Karateka, Ninja Turles) you'd probably think differently. These are super interesting to dive into because they capture the thoughts and decisions of the developers at the time.

Here are also some interesting articles to showcase what that means: https://gamehistory.org/category/source-code/


I was lucky enough to speak with one of the guys who ported Final Fantasy VIII to Windows (A crazy talented guy from Naples and one of the earliest members of the OG playstation emulation scene) and the porting team of several IREM arcade shootemups to the Game boy advance (incidentally they were also from south Italy) and both of them told me the same story:

The source code they were given for the job was so specific to the assembler, compiler, build stack and internal company libraries and SDKs (which often they had no access to) that reverse engineering the final game was usually the quickest route.

> Certainly from the game historian's perspective.

That's a completely different topic, and I mean, sure - from an historical perspective it's absolutely essential, even simple changelogs become of enormous importance.


By that logic VPNs and many other technical solutions are also not solving technical problems, since it is theoretically possible to achieve the same results by other means.

> Wouldn't it be easier to try to obtain the original source code? Or has that been lost and all that's left is a blob?

Define easier? There is virtually no incentive for a game studio to release their original source code. Studios are running on already tight enough margins as it is with one lackluster release being enough to doom a company to oblivion.

Unless you have a method to completely reorient capitalism away from the idea of intellectual property then painstakingly reversing the C code from MIPS assembly will always be the easier path.

Remember too, that we are on Hacker News. Only a tiny sliver of the population, in some cases just one or two people, cares about the source code. Not worthwhile for a studio to release the code just to satisfy a couple of nerds. What is the upside? Unknown. Downsides? Numerous.

Almost all instances of source code being released have come from small studios or individuals who are ideologically motivated, and are otherwise independently successful. John Carmack / Id Software comes to mind.


This is a game released in 1999. It's silly that source code isn't released for games this old.

> This is a game released in 1999. It's silly that source code isn't released for games this old.

Completely agreed. But even if the will was there, how do we know the source code even exists? 1999 was a long time ago. Source code is company IP. Generally it's the devs who write it and care enough to want to release it to the masses or archive it properly. But they are not the decision makers. There are too many stories of source code quite literally disappearing despite the devs best efforts. A lot of the times when we do get access to source code it comes from rogue behavior aka a former dev putting their ass on the line for the community (see the recent MGS leak on 4chan).

Also like a sibling comment has stated there is no guarantee that the code would be a in a usable format. With the crazy crunch culture in game dev, I doubt most of these studios from the 90s were pumping out clean code. Like an archaeology dig, you'd have to budget a non-trivial amount of time getting what you find in a state that is useable by modern standards.

All to say, I think reversing these older games is a worthy endeavor that is not going away anytime soon. I for one, am excited by the productivity benefits that AI tools have brought with them.


And why would they? There isn't any incentive for the company to do that.

With these old games sometimes the source is just lost. I used to work with a guy who wrote Brian the Lion(the Amiga game) and he always says he wishes he still had the source code for it. We've also looked briefly at the source code of Driver, and the only one in company archives was not the final version. There were 2 revisions after that one but no one has a copy of those. And then we pulled a bunch of old CDs with assets and code burnt back in 1990s and about 50% were unreadable already, god knows what exactly was on them.

And a lot of the "funding" is through mutual deals with MSFT, Nvidia, etc. The Europeans have none of that and would need to pay in actual cash.

> I am wondering what is keeping them back, though: Money? Compute? Skills? Training data?

Not ruthless enough and no backing by a corrupt govt administration that has no morals but focuses on self-enrichment instead.

Might sound drastic but I think that's actually closer to the truth thn everbody likes to admit.

> My fear is that you are really only getting really good models by training on very dubious data (outputs from the frontier models etc) and that Mistral is too European and too enterprisey to take those risks.

Exactly.


My hope is that people working with less resources will need to push on ingenuity to do more with less, leading to innovations. But there’s certainly no guarantee of it

Where exactly do you want to draw the line?

The future I'm seeing is AI coprocessors running inference locally in most devices that today have a CPU. Just look at how powerful your mobile phone has become compared to your desktop computer 15 years ago and compared to a main frame 30 years ago.

The days of requiring a data center to run anything resembling opus 4.6 are already counted. (But the industry will fight hard to get people to keep paying the Claude tax.)


I'm already running a google TPU over USB on an otherwise very cheap board to do local computer vision on a front-door camera since I wanted to get away from Ring and other cloud services for that use case.

And yeah, that may be the ~decade world, but we're in the mainframe era of the frontier models. It's going to be more economical for basically any consumer, and most businesses, to pay someone else to host models for quite a while.


A gaming PC can already host models that perfectly serve casual users who just want recipes, todo tracking, picture identification, etc. E.g. Qwen 3.6 35b which will run on a $650 GPU at 75 t/s (Nvidia 1660 ti 16GB).

Said model will also run as a tool-calling coding model excellently (it's no Opus, but for a thing that once set up is just the cost of energy, it's incredible). It can type faster than you can, probably 10x faster, so with guidance it'll make you faster. And it's free.

It's here. If folks want ChatGPT without a subscription, they can have it today on their computer. The only money to be made is in the high end models doing "serious business" work spanning 1M+ token contexts and massive uncertainty. Everything else is already set to be eaten by today's local models.


The problem with models like Qwen 3.6 35B (which really is an excellent model) is that my expectations of what a model can do have gone SO high now.

Here's a prompt I just ran against Claude Opus 4.7:

> Use python3 to experiment with whether the SQLite3 authorizer mechanism can be used to detect an INSERT OR REPLACE based just on running an explain query without examining the SQL string itself

Opus nailed it: https://claude.ai/share/c4212606-3fee-4b7c-bc97-505e0348ccac

I tried the same thing against qwen/qwen3.5-35b-a3b running locally in lmstudio, with the Pi coding agent. At first it looked like it was going to do great! And then it fell apart over the course of several tool calls: https://gisthost.github.io/?8ae2f842df619fb7fd8f1ccd82fe41c7

I'm used to GPT-5.5 and Opus 4.7 handling that kind of prompt without any problems at all.


Something is definitely going wrong with your Qwen setup, in the link you posted it starts and ends with a compaction step due to a 4k token context limit. Qwen 35b supports I think up to 200k+ context limit (though I run only with 128k), that seems to be a major source of the problem.

Good call, I need to check if LM Studio is misconfigured.

This worked for me with qwen3.6-36b-a3b even at a q4 quant. I ran pi in a docker container and it had to figure out how to install python as well. I used the same initial prompt you had without any additional. You talked about Qwen 3.6, but then said you tried Qwen 3.5 in lmstudio. Not sure if you meant Qwen 3.6. I ran with llama.cpp llama-server with the recommended settings from unsloth.

I'm not an expert in SQLLite so I can't say if this is 100% correct, but it seemed directionally similar to the conclusion from claude.

  ### TL;DR
  
  - Authorizer + EXPLAIN:  No — authorizer only sees SQLITE_INSERT, not VDBE opcodes
  - EXPLAIN opcode analysis alone:  Yes — Delete opcode at position 10 is the unique signature of INSERT OR REPLACE / REPLACE
I can't help but think the not-so-distant future will see language models expected on commodity personal computing devices.

OK that's a very good answer! Do you mind sharing the transcript?

Sure I cleaned up the jsonl session file a little here: https://pastebin.com/PL9EPn9Y

I tried it a second time, and it spent a lot of time trying to figure out some authorization issue, so definitely not a slam dunk. I might run it a few more times for science. But while this is a new model it's also quite lightweight, and as hardware adapts and improves it seems inevitable that for many use-cases a packaged language model running locally will do the trick.


So one of the prominent LLM advocates known for testing every model shared a prompt intended to exhibit Opus 4.7 capabilities, and Qwen 3.6 sorted it out okay? Interesting.

Not saying they're equivalent, local models still decohere much quicker as the context grows in my experience. But... Interesting.


Thats when your build a better Ralph loop around your llm for it to converge to an answer and not rely on 1 shots

> a thing that once set up is just the cost of energy

I don't think we can discount this, frankly. Newer electronics are energy efficient, but older devices are more energy-intensive, and unless configured well, a gaming PC can easily use a few dollars a month in electricity, so now you're approaching subscription territory. A subscription comes with no upfront cost, higher reliability, no wasted space in your home, mobile apps, etc. (and less privacy).


Curious why you went for a custom solution. I am aware of at least one company that seems to ship devices with local computer vision (Reolink).

My experience over the past decade has been being subsequently burned by being reliant on one provider's ecosystem after another. This is great until Reolink starts doing something shady to pad the bottom line and then it's on to the next.

I wanted the ability to run whatever cameras on a VLAN and own the stack.


I'm guessing that they are using Fargate which is an OSS NVR. It supports a little addon USB stick you can buy for about $30 that will run common computer vision tasks for object detection. Stuff that we've been able to do with WebAssembly and Canvas for a long time now.

> But the industry will fight hard to get people to keep paying the Claude tax.

I bet this will ironically be couched in "safety" reasons or regulation to get anti-AI folks on board, even if it favors the large incumbents.


Counted but not yet numbered?

Even when run on datacenters, it would be like current day webhosting. It is hyper competitive and it will be a race to the bottom. There is money to be made but not as much as investors hope. There will be datacenters in random countries like Kazakhstan because some oligarchs have found a free energy glitch (like with bitcoin mining).

Magical thinking. I guess if your phone is going to have 128gb of dddr5 then sure. You people fundamentally don't understand the memory requirements for running inference. Your cute local models seem good enough because you have no standards and anything an LLM produces seems like magic to you.

> Magical thinking. I guess if your phone is going to have 128gb of dddr5 then sure.

Why would it not? The typical new phone today has 16gb of RAM. 20 years ago that was somewhere around 32mb. Factor 512. It's not hard to see that we'll get there rather soon, especially if there is an application that provides demand.

> You people fundamentally don't understand the memory requirements for running inference.

You seem to be overlooking how fast things change in this industry, especially if tons o money can be made as a consequence.

> Your cute local models seem good enough because you have no standards and anything an LLM produces seems like magic to you.

Please don't generalize. I'm an expressed AI skeptic and have to deal with the bad consequences of AI slop every day. But you can't deny that there are enough applicationn areas where people have use cases and those will be much easier if things don't need a few round trips to a data center that sucks all the electricity and water out of neighboring communities.


Eh, you're off by an order of magnitude or so on both ends.

The iPhone 17 has like 8 gb, the Pixel 10 12.

The original iPhone was 128mb, and the iPhone 6 from 2016-2018 was around 1gb; that puts the iPhone at around 8x RAM per decade, and puts us at 128gb in our pockets at around 2036 or so.

(Incidentally, the big news in phone RAM is that a lot of new phones are dropping back to 4gb because of RAM shortages.)


Sarcastic or for real? Because I find that an obvious choice, a little depending on context though.

I like such interviews. They tell me it's not a place I want to work at without wasting much time finding out.

Hard to claim the moral high ground if you do eye for an eye. Always be nicer than the other side.

Even for practical reasons. If they think you are a prick, the blast radius can be substantially wider than this specific interview. And for what? The lulz?

I'm not saying to accept rude behavior, but one can leave such situations without being rude back or making a scene.


> Hard to claim the moral high ground if you do eye for an eye.

I do not claim the moral high ground. My moral is more flexible, than just "an eye for an eye" or "be nicer than the other side". I can do any of that depending on a situation. I'm starting any communication with the latter, it is a consequence of my upbringing, but if it doesn't work I may do anything. I want to note, I know that "be nicer than the other side" works oftentimes, people are entering into a communication in some emotional state and with some expectations, and these things can change during the communication. So I let my upbringing to try it first not just because of upbringing, but because I know the value of it.

> one can leave such situations without being rude back or making a scene.

One can. And I can. However there are situations when I just don't want to. A series of interviews that took my time just to end with the rudeness, so I just wasted my time is one of these situations. If they wanted to hire pushovers they could write it upfront in the requirements for applicants, I wouldn't bother them.


Agreed. Wasting applicants time should have consequences. I can play along for a little bit to appease people who are intentionally testing how I handle a difficult situation but I am not going to allow an extended waste of time to occur and that's something I want to communicate to potential employers as well

> Wasting applicants time should have consequences.

The consequence is that they don't get to enjoy your competence as an employee nor that of others who don't feel treated well, with implications for their future strength in the market. That's a much stronger consequence that being rude for a moment to somebody who doesn't care anyway.


> Agreed. Wasting applicants time should have consequences.

This is so funny. "I'll show them by being slightly obnoxious for ten minutes! Then they'll know not to mess with me!"

I'm sure they'll really feel those consequences.


the consequences are that they dont get to be in charge of the time anymore and i stop entertaining the interview game. its not about "showing them" or giving them some sort of punishment, it would be about me relaxing into behavior I want do regardless of them. Which for me would likely be a brief statement that they are losing me as a general professional courtesy and then hanging up on them because I almost certainly have better things to be doing with my time

but having already blocked the time off it's also completely reasonable to take 5 or 10 minutes to farm them for some content for my personal life like the other commentator stated, more or less.

it's not a calculated maneuver centered around them. The purpose of stating that consequences exist is because there are people out there who genuinely believe you have to be a monkey and jump through all the hoops of whatever any employer asks and would condemn someone for trolling a blatant tie waster for 10 minutes. My intent with this public discourse is to give the trolling a pass, not uplift it as some sort of standard of justice


It's easy to be nice in the beginning or when the other side is nice. Point is to be nice even if the other side is rude or wants conflict. In a sense you are giving in to their game if you are rude back. What really hits them is if their counterpart can't be bothered to be rude back.

I just start blessing hearts.

Beautifully spoken, you take the words out of my mouth.

As long as everybody is nationalist (not to say racist) and keeps borders closed to protect the homeland, those differences matter. Realizing that one thing people get worked up about (immigration) is a solution to the other thing they get worked up about (not enough kids!!1) would be a great insight.

Yes, but no one is really complaining about "not enough kids." They are complaining about not enough kids of their preferred skin tone. So they see immigration as an exacerbation.

I can't help but agree here. "Declining birth rate in the western world" just comes across as a dog-whistle to me. I guess I kind of only alluded to this myself with my response that they were being "weirdly cagey", and I wish I had been more direct like you were willing to, so thank you for this

[flagged]


Your juvenile insult is not appropriate here.

The world population has been increasing steadily and shows no sign of slowing down.

The dog whistle in question is the inordinate concern that certain groups show for the population of the "western world" specifically, which is not-so-secret code for white babies specifically.


All my sibling comments are missing the message here which is that if Claude can find security issues then it can avoid them right when writing the code, so it could just never commit anything containing a security issue.

You're assigning human capabilities to fancy linear algebra.

It's not a matter of its own capabilities but of how you query it.

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

Search: