Live data from Hacker News

How Naughty Dog Fit Crash Bandicoot into 2MB of RAM on the PS1

quora.com

191–200 of 254 posts

Re: How Naughty Dog Fit Crash Bandicoot into 2MB of RAM on the PS1

#191
Compare this to the Super Nintendo's 128KB of working memory.

It's hard to tell which games used more or less of that memory; the big thing about game complexity in that era was always ROM size limiting asset complexity, rather than RAM size limiting computational complexity, so the games released toward the end of the console's lifecycle were just ones with the biggest ROMs and therefore most assets, rather than games that used the available CPU+RAM more efficiently.[1]

Now I'm considering writing a memory profiler patch for a SNES emulator, to see how much of the 128KB is "hot" for any given game. I would bet the hardest-to-fit game would be something like SimCity or SimAnt or Populous.

On the other hand, the SNES also had "OAM" memory—effectively the 2D-sprite equivalent to GPU mesh handles. And those were a very conserved resource—I think there was space to have 128 sprites active in total? Developers definitely had problems fitting enough live sprites into a level. Super Mario World's naive answer was to basically do aggressive OAM garbage-collection, for example: any sprite scrolled far-enough offscreen ceases to exist, and must be spawned again by code. Later games got more clever about it, but it was always a worry in some form or another.

---

[1] There were also those that used expansion chips to effectively displace the SNES with something like an ARM SoC in the cartridge, once that became affordable. It's somewhat nonsensical to talk about how much SNES system memory some games used, because they came with their own.

Re: How Naughty Dog Fit Crash Bandicoot into 2MB of RAM on the PS1

#192
post #158

Earlier quoted context omitted.

Metal Gear Solid

I worked on the port of MGS to PC back in 1999-2000. Here is what I've learned: - Models were not "skinned" as it was popular in the day. Some textures were covering only the front part of the body, others arms, etc. As such it was possible to use very little colors per texture (16) and use palettes (which is a very small "texture" in the graphics memory). If models were skinned they would've required all the colors…

Thank you so much for this. MGS is my all time favourite series and i spent countless hours on the PS1 version and also the Integral version on PC.

Re: How Naughty Dog Fit Crash Bandicoot into 2MB of RAM on the PS1

#193
post #48

Earlier quoted context omitted.

> It doesn't matter how many frameworks are out there. .... Former IGDA member, Gamasutra subscriber and GDCE attendee here, hence why I asked for numbers. > Reducing package size isn't really comparable to writing portions of your game in assembler. I don't consider that low level coding or pushing hardware limits. It is not, but the goal of fitting as much code as possible in small packages is.

> Former IGDA member, Gamasutra subscriber and GDCE attendee here, hence why I asked for numbers. Maybe "former" is why. There are no numbers published to confirm or deny. It's apparent if you keep up with the community and ask developers what they use. > It is not, but the goal of fitting as much code as possible in small packages is. You're really talking about reducing sizes of assets & included libs. That has mor…

> There are no numbers published to confirm or deny. It's apparent if you keep up with the community and ask developers what they use.

So just an anecdote, kind of "on my neighbourhood...".

Re: How Naughty Dog Fit Crash Bandicoot into 2MB of RAM on the PS1

#194

Earlier quoted context omitted.

I don't mean this sarcastically but what's wrong with quora? I've always found it to have pretty good content but your comment seems to be implying it's assumed to be a bad place to read things. Why?

To read the rest of this comment, please log in or append a secret URL parameter to the URL.

Or disable JavaScript :D (e.g. NoScript/ScriptSafe)

Re: How Naughty Dog Fit Crash Bandicoot into 2MB of RAM on the PS1

#195
post #141
post #128

Earlier quoted context omitted.

A Pentium 133 with 8MB and 800x600 (32bit colors) run fine in with Win95a and several open applications. Try that with Android, even with 2GB RAM and quad core CPU - the Java based system on top of Linux is quite resource hungry. Flagship Android 5 phones have at least twice the hardware spec (twice as much RAM and CPU) of the iPhone 6 and are comparable in performance and user experience (latency) and not faster. Th…

Java is not the problem, rather Google's shitty compilers. Lots of industrial applications run embedded Java with a few KBs and acceptable performance for their use cases.

Android used the Oracle javac compiler until this year, so blaming anything on Google's new compilers is a little strange.

Re: How Naughty Dog Fit Crash Bandicoot into 2MB of RAM on the PS1

#196
post #38

Earlier quoted context omitted.

It's the same. All iOS devices except the iPad Air 2 have less than 2GB RAM (most 512 MB). Android 1-4 devices have often less than 1GB RAM. It's common that only 1-3 apps can stay in RAM depending on the platform and the apps memory usage (foreground apps, not background services). Applications/games in the Win95/PS1/N64 era were coded a lot more efficient. Back than, a common Win95a PC had 4-8MB RAM, (highend was 3…

Win95 machines with 4 MB RAM were exceptions, not the rule. It was very painful to use such machine, as it was swapping all time time, otherwise doing nothing. Any realistic setup had 8 MB RAM or more. Application at that time also didn't support i18n, didn't anti alias fonts, had low-res, low-color assets, that were enough at 320x200(240)/640x480 resolution.

Windows 95 was painful to use even with 8 MB. 12 MB was minimum amount that didn't cause it to swap all the time when actually doing something. 16 MB was nice.

Re: How Naughty Dog Fit Crash Bandicoot into 2MB of RAM on the PS1

#197

Earlier quoted context omitted.

The problem is, that fps stays below 30 for 90% of the development cycle. Only in the last few months of a project everyone rips out useless code, debug code, debug overlays, loggers, extra network connections for statistic and performance servers,and finally you can produce a "nearly" final version of the game that doesn't have any debug code in - and only in that state you can see how it will run on actual hardware…

That sounds like a very, very risky software development process. I think best practice is to make sure release builds are done and are used for testing from day one. QA doesn't test with all this debug code and debug overlays do they? #ifdef DEBUG

They do. The project I'm on has been in development for 5 years, has hundreds of people working on it globally, and not a single #ifdef DEBUG in it. It's currently my job to add that in,it's going to take weeks to finish.

Re: How Naughty Dog Fit Crash Bandicoot into 2MB of RAM on the PS1

#198
post #183

Earlier quoted context omitted.

?share=1, though it's not a secret, it was posted about when this change went in: https://blog.quora.com/Making-Sharing-Better Then again, who's going to find that old blog post :P

Thank you!! (I figured out you don't have to pass anything specific into the share parameter, you can do "?share=poop" or even just "?share."

Hah, nice :)

Also, this parameter used to (maybe still does) set a cookie so that you can browse around the rest of your session without worrying about a sign up modal.

Re: How Naughty Dog Fit Crash Bandicoot into 2MB of RAM on the PS1

#199
post #123
post #89

Earlier quoted context omitted.

Nice read. I really like this part: "But we worried about the camera, dizziness, and the player’s ability to judge depth – more on that later." It's interesting that they were concerned with dizziness and the camera, concerns which seem to have unfortunately evaporated in most 3d games made since, to their detriment.

I never had issues with dizziness ... until games started using an over-the-shoulder camera. Basically, if the character is too far removed to the side, I stop connecting my input with their movement. It feels like I'm here and there's some random guy right next to my left who mimics my movements and also I'm incorporeal. It's a sort of uncanny valley territory - if the camera is just a bit to the side - no problem;…

[deleted]

Re: How Naughty Dog Fit Crash Bandicoot into 2MB of RAM on the PS1

#200

Earlier quoted context omitted.

Unfortunately, I can't find a reference (probably in a video), but I heard that Bethesda Softworks had a party when Microsoft announced that the 360 would have 512MB RAM.

I suspect such a party was figurative.

Then they found out where that extra memory had come from.
Post reply on HN