Rando support is planned, but not there yetDoes a Majora's Mask from ran thru the randomizer work in this recomp?
Recompile tool takes in a n64 file as an elf, interprets each instruction writing it out in C code. Said C code uses the libraries built from things like SM64 decomp and OOT recomp. You can also say you want to patch specific functionality by configuring the toml file to provide override instructions. If you have a patches, you write the code for the patch. You then compile the code into an executable and people can provide the assets by providing their backups. Basically what a JIT emulator does, this does too except thanks to the work from previous decomps it can generate whole executables.Can't wrap my head around how this works. What's the process here?
Recompile tool takes in a n64 file as an elf, interprets each instruction writing it out in C code. Said C code uses the libraries built from things like SM64 décimo and OOT recomp. You can also say you want to patch specific functionality by configuring the toml file to provide override instructions. If you have a patches, you write the code for the patch. You then compile the code into an executable and people can provide the assets by providing their backups. Basically what a JIT emulator does, this does too except thanks to the work from previous decomps it can generate whole executables.
This system decouples simulation framerate from visual updates. Basically the framerate of the games doesn't actually change(stabilizing aside) they just render faster with interpolation (essentially - not unlike what frame-gen does, another level down on the rendering stack).Be really interested to see how WR64 functions at higher frame rates, I can see the water physics beinf tied to the games native frame rate. That's complete speculation tho
okay good to know, might wait and see what features get added anywayI reported that to Wiseguy during testing, he wants to fix it but didn't want to screw around with the controls so close to launch
Oh, in Nerrel's video (in the OP) he mentions you should use a US ROM.Wait how are you doing this? I recompiled MM from my PAL ROM and now I don't know what to do
According to the github you need the North American version of the gameWait how are you doing this? I recompiled MM from my PAL ROM and now I don't know what to do
The analog stick's range isn't corrected -- the N64 controller's analog stick has a shorter range than modern controllers, so when you use a modern controller with N64 games, everything is far too sensitive. I was having issues with the camera moving too fast while aiming my arrows at the shooting gallery, for example.I'm playing with a controller and I feel like rotation is handled rather poorly. For instance if I rotate the analog stick I expect Link to run in small circles but even at rather slow speeds the circle is broken. Other than that it's really great feeling.
You can do it with any game just be aware you may have to do some programming. It's not just run and go. However, you can get games running in about a day.So does this only work with majora's mask so far? And is there a guide for steam deck users?
Rockstar's DMCAs went through because those projects presumably had leaked source code in them.Rockstar DMCAed the GTA3 and VC decomps. They're not inherently immune to companies coming after them, Nintendo just hasn't yet.
Here's your guide:So does this only work with majora's mask so far? And is there a guide for steam deck users?
Stupid question: If this is possible for N64 games, how is there not a similar tool for less complex consoles like NES, SNES and GB? Can a similar tool even exist for those platforms, or is this a N64 only thing?
I'd love to play Pokemon Red on the PC. That Link's Awakening DX port that got C&D'd was so awesome.
View: https://twitter.com/VinciusMedeiro6/status/1734968463754494057
Because N64 games were largely written in C, so translating calls is, simple isn't the word, it is far from simple, but there is a knowledge base there to work from to get from N64 to Vulkan.
Older consoles were straight assembly. Every piece of software is doing something uniquely by and large. Not 100% obviously, they are building on each other, but it isn't nearly as straightforward
Just the idea of being able to run Conker's Bad Fur Day at a stable, modern frame rate is delighting me. I've only played through it once and I've longed to play through it again, but the frame rate was just dire. It was too ambitious a game for the hardware.
Things like improved graphics and modern controls are just a nice shiny cherry on top of the rest of the cake.
I'm sure it's possible. Anything possible in a decomp is possible in a recomp; just a lot harder to read because of how the code is translated. The Banjo-Kazooie decomp is pretty far along though, so a modder may be able to reference that.How moddable would recompilation be beyond just framerate and resolution? Like for example, with Banjo-Kazooie, would it be possible to add the option to a recomp to make notes save like they do in the XBLA remaster? Or would only a decompilation make that possible?
Live & Reloaded is Enhanced, so runs 4k (technically 1920p, the 4:3 equivalent) 60fps on Series X and One X. 1440p on Series S and 1080p (960p) on Xbone. However, the script was heavily toned down, to the point many people prefer the N64 game. No realistic amount of mods will put the N64 release on-par with Live & Reloaded visually though since it was a full remake.You can play the Xbox version (I don't know if it runs on a Xbox Series console). Or maybe they can match that version with mods.
It's super easy, barely an inconvenience. In desktop mode, download the Linux version, unzip, add the executable to Steam, launch and point it at your MM rom. Voila.So does this only work with majora's mask so far? And is there a guide for steam deck users?
That makes a lot of sense. I tried it with a Flydigi Vader 3 Pro and a GameSir T4 Kaleid and both exhibit this behavior in both Switch and Xinput mode. I might be able to create a Majora's Mask profile for the controller in the mean time. I found the Deku rupee mini game in northern Clock Town especially challenging.The analog stick's range isn't corrected -- the N64 controller's analog stick has a shorter range than modern controllers, so when you use a modern controller with N64 games, everything is far too sensitive. I was having issues with the camera moving too fast while aiming my arrows at the shooting gallery, for example.
Unfortunately this port doesn't currently have a setting to fix the range, but the developer wrote on the GitHub that it's a planned feature. So I'm sure it'll be there soon.
It's super easy, barely an inconvenience. In desktop mode, download the Linux version, unzip, add the executable to Steam, launch and point it at your MM rom. Voila.
I don't have an XBox and from memory, the script was toned down. I originally played it on the N64 and to be honest, I'd love to play that version again with the original graphics, if enhanced. I honestly preferred the original look to the changes they made with regard to colour tones, lighting and the added fur. Of course technically the XBox version destroys the N64 original, but for me they changed the look of it too much. The lighting for example is technically miles ahead, but it gave the game this slightly realistic look over the pure cartoony bright colours of the original.You can play the Xbox version (I don't know if it runs on a Xbox Series console). Or maybe they can match that version with mods.
Yeah, a very simplified take on the general difference between a decomp and a recomp as I understand them:I'm sure it's possible. Anything possible in a decomp is possible in a recomp; just a lot harder to read because of how the code is translated. The Banjo-Kazooie decomp is pretty far along though, so a modder may be able to reference that.
Stupid question: If this is possible for N64 games, how is there not a similar tool for less complex consoles like NES, SNES and GB? Can a similar tool even exist for those platforms, or is this a N64 only thing?
I'd love to play Pokemon Red on the PC. That Link's Awakening DX port that got C&D'd was so awesome.
View: https://twitter.com/VinciusMedeiro6/status/1734968463754494057
So basically, rather than end users waiting for years for the decompilation to be finished to get a working PC port, now recompilation will allow that in a fraction of the time, with the trade-off being that the port will be fairly simple and we'll still have to wait for the decomp to get mods on the level of the SM64 or OoT ports?Yeah, a very simplified take on the general difference between a decomp and a recomp as I understand them:
Decompilation:
With a recompilation however, it sounds like steps 1 and 3 above are combined into a single process and step 2 is skipped entirely. This eliminates those years taken to make the code developer-friendly, but results in code that's basically only really useful to players who just want the thing to run. Modding will still highly rely on decomp projects or their equivalent with recomp projects (i.e. take the code generated by the recomp process and document it instead).
- Tends to start with an automated decompilation via software to get some base code that's ugly but compiles to an exact duplicate of the original ROM file.
- Teams then take years going through that ugly autogenerated code to figure out what everything actually does, document it, and rename variables, functions, etc. to the point where they are easily understood.
- Typically another team then comes in and converts certain N64 calls into equivalent calls for modern systems.
I don't see decomp's going away any time soon because that specific segment of interest will likely remain because most decomp projects stop at the point of generating a ROM because THAT is their goal rather than a PC port. They want to be able to build something that runs natively on the original hardware and NOT elsewhere.
In terms of what gets mass online attention though, I definitely see recomps becoming the internet at large's darling.
Depends on how complicated any issues with the recompilation are since they have to be fixed before a playable version is viable. This becomes simpler with games that are completely or largely decompiled already like Majora's Mask or Banjo-Kazooie since you can reference the decomps and potentially use them to help you solve the problem. So, it is still going to be a case-by-case on how viable recomps are as well.So basically, rather than end users waiting for years for the decompilation to be finished to get a working PC port, now recompilation will allow that in a fraction of the time, with the trade-off being that the port will be fairly simple and we'll still have to wait for the decomp to get mods on the level of the SM64 or OoT ports?
Either way I'm excited, because the Banjo-Kazooie decomp has been stuck at 98% for a year at this point and I don't even think Tooie has a decomp started yet, but a recomp could see BK or even both playable on PC by the end of the year.
I'd say your description is more fitting static recompilation than reverse engineering the code. When manually re-creating a source code, I'm pretty sure it's step 1 that takes the longest amount of time, and you would combine it with 2. That, or I'm doing something seriously wrong with my approach trying to reverse engineer Prince of Persia 2. I wish there was a way to get an automatic decompilation that I could immediately compile and run. Once you get to the point you can compile and run something, it becomes drastically easier and faster to document the code.Yeah, a very simplified take on the general difference between a decomp and a recomp as I understand them:
Decompilation:
- Tends to start with an automated decompilation via software to get some base code that's ugly but compiles to an exact duplicate of the original ROM file.
- Teams then take years going through that ugly autogenerated code to figure out what everything actually does, document it, and rename variables, functions, etc. to the point where they are easily understood.
- Typically another team then comes in and converts certain N64 calls into equivalent calls for modern systems.