3 ms·
How I optimized Portal to run on the Nintendo 64 [video]
- lifthrasiir 3y agoA link to the actual repository if you don't like videos: https://github.com/lambertjamesd/portal64 https://github.com/lambertjamesd/portal64 Previously on HN: https://news.ycombinator.com/item?id=37381407 https://news.ycombinator.com/item?id=37381407 (2023-09-04, 385 points) That demake does seem more like an (unofficial) port that preserves much of the original game play and style than most other demakes. (Disclaimer: I haven't actually played the game, I only watched videos.) How much would be achievable in the theory? Would it be only limited by the cartridge storage?
- Cthulhu_ 3y agoThe N64 cartridges officially go up to 64 GB, whereas the original Portal looks to be about 5 GB in size, but that probably includes the Source engine; other sources say it's about 2 GB if you already have the engine installed. But the N64 version's assets will take up a lot less space, audio quality (if anything) can be dropped, etc. I'm sure they can make it fit.
- ageitgey 3y agoN64 carts only go up to 64 megabytes, not gigabytes.
- deleted 3y ago[deleted]
- tivert 3y ago> N64 carts only go up to 64 megabytes, not gigabytes. I don't know anything specific about it, but given the cartridges were hardware, couldn't you theoretically bank switch to get any size you want?
- anthk 3y agoAnd bankrupt yourself with 64 GB of banks because they were really expensive compared to just some CD's.
- calamari4065 3y agoYes, but bank switching isn't a magic bullet. The code that runs the engine and all core and currently active functions must be in the active bank at all times. You have to either segment your address space so part of each bank always points to the same memory, or duplicate code across every bank that needs it. Either way, your banks are now effectively much smaller than the real address space so you need more banks and more physical memory. Then you have to do a lot of work to actually manage those banks. Switching banks is kind of expensive, so you need to optimize your memory layout to minimize switching. Then you have to actually manage those banks at runtime. Really, it's impractical to have more than a few banks. Expanding the N64 out to 64GB is just ridiculous. At that point, you'd be better off putting a modern CPU in the cartridge, emulate the game, and just use the N64 as a glorified display adapter.
- leoc 3y agoQuake (1) is probably a useful comparison, especially since Source's actual game engine is directly descended from it. There was an N64 Quake port, and apparently https://www.reddit.com/r/NoStupidQuestions/comments/5x0ziv/comment/deefaf9/ https://www.reddit.com/r/NoStupidQuestions/comments/5x0ziv/c... https://www.quaddicted.com/quake/installation https://www.quaddicted.com/quake/installation a full PC install was a bit over 50MiB, overwhelmingly the PAK files.
- rightbyte 3y agoThat is really impressive. But then again Goldeneye had more animated objects and longer draw distance? It has to be annoying to play with only one joystick though. Maybe he should add support for using two.
- skibz 3y agoNot only is using two controllers simultaneously already supported, but there is also support for using a mouse: https://www.youtube.com/watch?v=KibcE-qg_rg https://www.youtube.com/watch?v=KibcE-qg_rg
- qup 3y ago... Which GoldenEye also had
- rightbyte 3y agoNo way I didn't know that ... I have try it. Is it better then a single one?
- qup 3y agoAs a kid I found it impossible. But yes, of course it's better. Joystick to strafe is way better than the yellow buttons to strafe. (I always made the one thumb stick the aiming, plus invert Y--not sure if everyone else did that)
- estebank 3y agoNote that the companion cubes have full physics interactions with the world, something that I don't think was ever done on the N64. Also, looking at the video, the framerate is significantly smoother than the famously choppy GoldenEye.
- slowhadoken 3y agoSpatial partitioning is deceptively simple.
- djmips 3y agoWhat do you mean by "deceptively simple".?
- spoiler 3y agonot OP, but I think this usually means it's simple to get something naïve working, but to get something production ready it can get tricky. Eg stuff like quad/oct trees
- slowhadoken 3y agoThe data structures themselves have an overhead you have to manage. It can also go beyond tree structures too and get into advanced hashing.
- slowhadoken 3y agoseems simple but isn't. That's what I've always understood it to mean.
- k2xl 3y agoCan you imagine if this came out back in the Nintendo 64 days? Kind of incredible that it was technically possible...
- eska 3y agoI find the project and title very intriguing, but the presentation really turned me off. The script for the video is all over the place and most of it doesn’t have to do with the topic at hand.