[HN Gopher] Overhauling Mario 64's code to reach 30 FPS and rend...
___________________________________________________________________
Overhauling Mario 64's code to reach 30 FPS and render 6x faster on
N64 [video]
Author : kibwen
Score : 135 points
Date : 2022-04-18 19:54 UTC (2 days ago)
(HTM) web link (www.youtube.com)
(TXT) w3m dump (www.youtube.com)
| vmception wrote:
| is there any part of this video that is a side by side
| comparison? didn't see any obvious marks in the description or
| comments
| vmception wrote:
| pretty amazing what you can do when you push the release deadline
| back by 26 years.
| iforgotpassword wrote:
| Heh, but even then, 6x is still impressive. I doubt in 26 years
| you could optimize a tripe A title from today to the same
| extent. It seems that the vast majority of optimizations is
| actually achieved manually and not through Compiler magic and
| other modern tools. But then again maybe in 26 years we will
| have magic tools that will get the job done. ;)
| [deleted]
| ydnaclementine wrote:
| At some point, these older games should be open source. They can
| follow the doom/quake model where textures/art aren't included,
| and Nintendo can also still sell the games on newer consoles for
| convenience because not everyone will want to compile it
| themselves
|
| I guess you could argue a mario 64 custom levels mod competes
| directly with a new mario game. But halo and cod sell fine. Maybe
| I have a bias that thinks Nintendo is fearful that custom mods
| for old games will be more popular than anything new and official
| makotech221 wrote:
| Only under an economic system that abolishes private property.
| Won't ever happen under capitalist governments, unfortunately.
| flatearth22 wrote:
| tenebrisalietum wrote:
| Intellectual property is imaginary property, private or not.
| it's not a real thing until committed to a medium.
|
| Upkeep of the _fiction_ that intellectual property is real
| property has societal benefits _for a limited time_ insofar
| as works of art - and the original idea of copyright was
| reasonably limited. Over 100 years is inhumane.
| ajsnigrutin wrote:
| My controversial opinion is, that everything that cannot be
| bought for reasonable amount of money, also cannot be "pirated"
| (the act of copying should not be considered as illegal
| piracy).
|
| The main reason why piracy is illegal is, that
| studios/producers/writers lose money, because people pirate
| instead of buy. If I cannot buy eg. Super Mario 64 from
| nintendo in my country, and if I copy the game (and emulate it
| or whatever), I never actually caused any monetary loss for
| Nintendo by doing that.
| bricemo wrote:
| You can still buy Super Mario 64. It's part of the paid
| subscription virtual console service on Nintendo Switch
| ajsnigrutin wrote:
| So, no copying SuperMario64 then.
|
| But my opinion stands for things that are not available
| this way.
| bottled_poe wrote:
| For a long time Super Mario 64 was not available this
| way, but now is. How to handle this case? It's a hell of
| a lot easier to just have a time duration of copyright
| expiry.
| flatearth22 wrote:
| TazeTSchnitzel wrote:
| Copyright terms should be limited to 20 years. Open source or
| not, this project would be legal in that case.
| noobermin wrote:
| I think about my fundamentalist feelings about copyright
| (between complete abolition and say 20 years like you
| suggest) and the practical reality of how that would
| fundamentally change content industries today. For example,
| I'm thinking of anime franchises, also Disney, etc, who
| essentially create whole industries out of remakes and
| repackaging their old IP. Essentially, millions of workers
| hired to maintain the less creative recreation/maintenance of
| these IPs would be reshuffled and or lost. Btw, this isn't
| just creative workers like writers, animators, and the like,
| but things like merchandise creation, manufacturing, live
| events, and so on, they'd all be much less of an incentive to
| maintain a _franchise_ over the mere creation of works that
| might be separate from each other.
|
| Apart from the business/worker side, the ability for an IP
| holder to release continuing sequels to works (like manga,
| movie installments, etc) and the legal force against fan
| works essentially gives more power essentially to the
| original creator to shape what is "canon" in their work.
| Perhaps fans could still decide the original creator's later
| installments are canon, but the extra legal force sort of
| makes this defacto, while a world of limited copyright the
| power of the original creator is less so. Thus, the way fans
| consume media and experience it will change completely as
| well.
|
| It would just be a completely different world, one where a
| lot of these ills are addressed (like the ones mentioned by
| GP), and things will be very different. It's hard to say from
| my vantage point whether the differences would also be "ills"
| or not (and that might be my bias), but it would certainly be
| a different world with different rules and different
| expectations from fans and audiences.
| noobermin wrote:
| I'm not sure what Nintendo "thinks" but they've always been
| protective since the NES days, which arguably allowed them to
| pick the video game industry out of the funk that befell all
| the other 8-bit consoles. I'm not sure if there is any
| philosophy around why they do it vs. it just seems like a
| corporate culture to them to be controlling of their consoles
| and their IP. I think a while back, the switch removed a game
| from the nintendo store that had an interpreter in it, even
| this with sanctioned basic interpreters around there. They've
| always been control freaks to the point where it doesn't really
| even make much dollar sense for it.
| astrange wrote:
| Btw, that video game crash was limited to the US - it didn't
| happen in Japan or European markets. I remember complaints
| that other language Wikipedias covered it as a global thing
| anyway because they were translated from English.
| noobermin wrote:
| Interesting piece of history! I am too young to have
| experienced it, I mostly just know about it from reading
| video game history, and yes the only cited makers were
| atari, commodore, and other American companies.
| foolfoolz wrote:
| nintendo games have much higher replay value than the others
| you mentioned. they are mostly off line. they have different
| mechanics beyond graphics. people will buy them on multiple
| consoles happily. they are not rotting, these are active
| revenue streams.
|
| nintendo isn't afraid of mods, they would rather just sell you
| mario maker and create an experience.
|
| quake and cod are mostly online, and there's no community
| anymore. there's over 30 cod games, no scarcity on the
| experience since they're so similar. the one mostly offline
| game series you mentioned, halo, is closed source and still
| sold today. it is far less likely quake 3 is going to be bought
| and played today vs mario64. those games are not active revenue
| streams and don't have a good path to become one again
| Lerc wrote:
| This is a good lesson about the benefit of time when it comes to
| software development. Mario 64 could have been a much much better
| game on the same hardware, but the time cost would have resulted
| in a release late enough that the entire game might have been
| considered irrelevant.
|
| Game consoles have had the benefit of the platform freezing for a
| few years allowing improvements to accumulate and later titles
| utilizing knowledge gained from the earlier titles.
|
| Much of the software we use every day could benefit from this
| level of scrutiny but the pressure to deliver on time means we
| won't get to see such benefits unless it becomes a crazy persons
| labour of love.
| noobermin wrote:
| Small thing but I hate how a lot of the modding community (and
| retro gaming) has turned to videos and youtube, I just don't have
| time to watch a 20 minute video on these things. I'm often
| searching high and low for basic documentation and descriptions
| of things and google always recommends some 20 minute video, it's
| infuriating.
| dendriti wrote:
| You get infuriated that talented modders and hackers perform
| research and entertain you for free?
| vmception wrote:
| Given how much competition there is in "the scene" for clout
| alone, there is no need to dismiss any criticism with "but
| its free". consumers/end users/spectators can absolutely
| complain and don't have to put up with anything and the
| production value increases.
| RicoElectrico wrote:
| Yeah, being to the point is crucial in these days of abundant
| content. Sometimes I wish they reinstated the 10-minute limit.
| [deleted]
| tiborsaas wrote:
| - Speeding up the video saves you time
|
| - Listen to the audio only, occasionally take a peek, don't
| tell me you are being productive 16 hours a day
|
| - _Video_ Games are visual so it's a natural to present them
| with video, hardly a blame for the authors
| blamazon wrote:
| What I do is skip relentlessly through videos (using left/right
| keys on PC or tap-tap on mobile) and adjust the playback speed
| to be as fast as can be intelligible, I can get the gist of a
| 20 minute video in 2-3 minutes this way. Then, if something
| catches my attention, I go back and watch that at normal speed.
| iforgotpassword wrote:
| Idk, for content that doesn't teach me anything important I
| prefer video over text, as I can play it on the side while
| doing something else (that doesn't require too much focusing)
| and if something sounds interesting/important I might pay
| attention for a while.
| CrazedGeek wrote:
| At least for Super Mario 64, Ukikipedia is a good text-based
| resource: https://ukikipedia.net/wiki/Main_Page
| noobermin wrote:
| Just a note, these wiki's are great. nesdev really saved me
| for example. I am thankful for people who put things out
| there like this.
| pasmat wrote:
| The good thing is that a platform like YouTube can support
| creators like him spending so much time on thing that wouldn't
| otherwise perhaps be financially feasible, even if his
| contributions to the modding community aren't as easily
| digestible.
| pupppet wrote:
| I always wonder if the original devs ever find these videos and
| are like oh shit we should've done that.
| MBCook wrote:
| It would certainly be interesting to see their reaction.
|
| Mario 64 is a bit of a worst case as the game was being
| developed at the same time as the hardware and had to get out
| on day one no matter what. Between the Japanese and US releases
| I believe they even fixed some bugs.
|
| Some of the things he did seem quite obvious, like cutting down
| the repeated calculations for every single coin on the screen.
| You have to think they would've thought of that if they have
| the time.
|
| It would be interesting to see a series like this on a number
| of games over the console's lifetime. Especially if it
| highlighted the tips and tricks the developers started to learn
| to get more out of the hardware over time.
| orblivion wrote:
| > You have to think they would've thought of that if they
| have the time.
|
| Stuck forever in the issue tracker as "priority: low"
| ehsankia wrote:
| Can't even imagine being a dev back when you only had one
| shot at your game going gold and couldn't update it after the
| fact to patch bugs.
| munk-a wrote:
| Speedrunners famously need to hunt down first press
| cartridges on the US release because the Shindou release
| fixed the bug that allows BLJs (backwards long jumps).
| giantrobot wrote:
| One thing mentioned in the video is his memory tricks _require_
| the RAM expansion module. Mario 64 being a launch title couldn
| 't have used the RAM expansion. The RAM module came out two
| years after the console launched if I remember right.
| Gravyness wrote:
| Its absolutely amazing the level of expertise and dedication a
| single person can have on the inner workings of something.
| BolexNOLA wrote:
| Mario 64 has to be one of the most dissected games ever. It's
| kind of wild what speed runners, modders, etc. have uncovered.
| IntelMiner wrote:
| I know they don't "owe" anyone anything. But it is disappointing
| they've apparently declined to release their code changes
|
| It's also apparently unclear if the overhauled version will run
| on a real N64 or if it only runs in an emulator
| Quillbert182 wrote:
| He is planning to release the source code at a later date. He
| is waiting because the source code is intertwined with a ROM
| Hack he made, and he is unable to release the improvements
| without releasing the ROM Hack in an unfinished state.
|
| The overhauled version will run on a real N64 as long as it has
| the RAM expansion pack.
| phillipcarter wrote:
| "roll those loops back up and don't compile in debug mode to
| achieve significant performance gains" is not the takeaway I
| thought I'd have going in, heh.
| astrange wrote:
| It was common belief in that era that you made code faster by
| making it longer and more complicated. The opposite is true now
| (because of cache size and deep OoO) - simple predictable loops
| are great - but even then people tended to overdo it.
|
| Of course, it's a way worse problem that they compiled at -O0.
| AussieWog93 wrote:
| >Of course, it's a way worse problem that they compiled at
| -O0.
|
| There was a Modern Vintage Gamer video going into this.
| Apparently it wasn't a mistake or misunderstanding, but a bug
| that existed in the original version of the compiler that
| caused issues when compiled with optimisation. Even then, the
| main library that did most of the heavy lifting was compiled
| with o2.
|
| Super Mario 64 was a launch title, and they simply didn't
| have the time to work out the kinks in the compiler to get
| those few extra fps in Dire Dire Docks.
| infogulch wrote:
| Unrolled loops trade instruction cache for cycles. Whether it's
| good depends on what your bottleneck is, in this case ram
| access is a bigger bottleneck than cpu due to being shared with
| the rendering coprocessor. I wonder if we'll hit this crossover
| point again in the future.
| monocasa wrote:
| And the code N64 was particularly unrolled for whatever
| reason. IIRC, there was one game that bit me when writing a
| JIT N64 emulator because there was a single code stream with
| no branches that was larger than multiple MMU pages. My JIT
| kind of assumed that actual code in practice wouldn't be
| larger than the actual N64 I$ without branching. Womp womp.
|
| But hey, I guess I don't want to be judged on my mid-90s code
| either.
| amatecha wrote:
| Wow, this is amazing! Plus he's adding split-screen co-op mode??!
| Mind blown. Impressive work, seriously.
| arriu wrote:
| This is a serious amount of effort for what I imagine is little
| payout. I really enjoy work like this and hope that he is able to
| make a living off it.
|
| Anyone have thoughts on how to make projects like this more
| sustainable?
| eigenvalue wrote:
| This seems to clearly be a passion project. The author is being
| paid in the satisfaction that he gets in improving this famous
| game way beyond what the original creators managed to do, all
| while being bound by the same technical limitations. He also
| gets to show off his skills to a fairly large (in absolute
| numbers at least) global audience of people who are also really
| into this particular game. I doubt you would see someone going
| to such great lengths for an obscure title that few other
| people would appreciate or care about.
| tantalor wrote:
| Art doesn't need to have a payout or be sustainable.
___________________________________________________________________
(page generated 2022-04-20 23:00 UTC)