Live data from Hacker News

Nearly all Nintendo 64 games can now be recompiled into native PC ports

tomshardware.com

31–40 of 182 posts

Re: Nearly all Nintendo 64 games can now be recompiled into native PC ports

#31
post #9

Earlier quoted context omitted.

> N64 is notoriously tricky to emulate Huh, I wouldn't have expected that. I don't know much about the specifics of N64 emulation, but I've had N64 emulators running perfectly since the early 2010s. I played mostly the big classics, so I'm unfamiliar with more niche title performance.

I think part of the issue is that some purists believe anything less than pixel perfect fidelity is unacceptable. I recall reading a report on N64(?) Wii(?) about how the flame flicker in one level of one game was off.

Depends what you're trying to do, but some glitches used in speed runs literally depend on the exact values of pixels on the screen

https://youtu.be/0B095eHBrCg?t=24m40s

Not saying that supporting glitches like that is a hard requirement for these ports though

Re: Nearly all Nintendo 64 games can now be recompiled into native PC ports

#32

I saw this when it came out, and as someone that doesn't follow the ROM hacking scene, I'm wondering - why did this approach take so long to come up with? Translating the assembly instructions to C and then recompiling them seems like an obvious method to try early on, but I'm wondering if there was some other breakthrough that made this possible in a way it wasn't before?

Are they using self-modifying code or anything else that would make this tricky?

Re: Nearly all Nintendo 64 games can now be recompiled into native PC ports

#33
post #12

Would this recompilation technique be applicable to other systems (3DS, GameCube, Wii, etc.)?

In theory it will work for anything, but there is a LOT of work that must be done to annotate the binaries on the source platform so that tooling such as this can pull it apart and reassemble all the pieces into something that works on the target platform.

A straight recompilation is one thing, but what this tool does is recompile with the target system’s apis for input and output in mind. A straight recompilation would offer less than an emulator, really.

This tool knows (or is told) where rendering routines are, for example, so that they can be replaced with destination platform versions. That’s how higher resolutions and different aspect ratios are supported in a recombination.

Re: Nearly all Nintendo 64 games can now be recompiled into native PC ports

#34
post #21

To operate this tool, you still need to disassemble the ROM up front and annotate it heavily before it can be recompiled. This tool is very nice, to be sure, but the hyperbole about anything close to one-click generation of standalone executables for an arbitrary ROM is getting out of hand.

Except this work can be done once, stored somewhere and shared. Take a ROM (it means read-only after all) and get native port out...

Re: Nearly all Nintendo 64 games can now be recompiled into native PC ports

#35
post #9

Earlier quoted context omitted.

> N64 is notoriously tricky to emulate Huh, I wouldn't have expected that. I don't know much about the specifics of N64 emulation, but I've had N64 emulators running perfectly since the early 2010s. I played mostly the big classics, so I'm unfamiliar with more niche title performance.

You'd be surprised, even Nintendo doesn't get it perfect themselves. When N64 games were first made available on the Nintendo Switch Online platform, there were several problems with graphical effects and input lag. Here's an MVG video from the time: https://www.youtube.com/watch?v=jSyBMSOfPxg

Haha I remember this launch and how awful it was an thinking about how a bunch of fans have done such a better job. Hell, even Nintendo did a better job for the Wii's Virtual Console.

Re: Nearly all Nintendo 64 games can now be recompiled into native PC ports

#36

One thing this could be cool for is games like Goldeneye, which is hard to play on PC because it expects that weird joystick input. It would be awesome to have a native Goldeneye port with normal mouse behaviour like other FPSes.

WASD with mouse aim control doesn't really work with the game though. The modal aspect of aiming combined with the travel time/return-to-center of the cursor is a really fun part of the game. If you could just free-aim while running a la PC FPS it would kind of ruin the campaign since everything is designed around this. Picking your spots and keeping cool while aiming are the appeal. That said, if you keep the modal…

You can turn off auto aim in the game though. Always the first thing I do.

Re: Nearly all Nintendo 64 games can now be recompiled into native PC ports

#37

One thing this could be cool for is games like Goldeneye, which is hard to play on PC because it expects that weird joystick input. It would be awesome to have a native Goldeneye port with normal mouse behaviour like other FPSes.

WASD with mouse aim control doesn't really work with the game though. The modal aspect of aiming combined with the travel time/return-to-center of the cursor is a really fun part of the game. If you could just free-aim while running a la PC FPS it would kind of ruin the campaign since everything is designed around this. Picking your spots and keeping cool while aiming are the appeal. That said, if you keep the modal…

Deus Ex has quake controls but you need to focus a little before aiming. Then, later you get upgrades and laser reticles allowing you to shoot near instantly.

Re: Nearly all Nintendo 64 games can now be recompiled into native PC ports

#39
post #30

I saw this when it came out, and as someone that doesn't follow the ROM hacking scene, I'm wondering - why did this approach take so long to come up with? Translating the assembly instructions to C and then recompiling them seems like an obvious method to try early on, but I'm wondering if there was some other breakthrough that made this possible in a way it wasn't before?

Emulating the hardware usually requires cycle-accurate emulation of things running in parallel, so it's not quite so simple as just the program in the ROM.

Yes and no, with the 8bits and probably 16bits like the C64, NES, etc you really want cycle accuracy and emulating something like the PS2 really well would probably need a fair bit of accuracy.

HOWEVER.. writing an recompiler (not feasible for 8bits due to the amount of self-mod code) you could probably insert pattern checks to detect writes to DMA-starting locations,etc (thinking back to our PS2 games) and transform it to safe sequences without accurate timing for most games that really only would be happy with some extra cycles.

Re: Nearly all Nintendo 64 games can now be recompiled into native PC ports

#40

One thing this could be cool for is games like Goldeneye, which is hard to play on PC because it expects that weird joystick input. It would be awesome to have a native Goldeneye port with normal mouse behaviour like other FPSes.

WASD with mouse aim control doesn't really work with the game though. The modal aspect of aiming combined with the travel time/return-to-center of the cursor is a really fun part of the game. If you could just free-aim while running a la PC FPS it would kind of ruin the campaign since everything is designed around this. Picking your spots and keeping cool while aiming are the appeal. That said, if you keep the modal…

Weirdly Goldeneye did have a control layout where you could move with one joystick and aim with the other using 2 controllers: https://www.youtube.com/watch?v=dZaEpugk3hY
Post reply on HN