Homebrew Why I think an N64 emulator would be possible on the New 3DS!

Status
Not open for further replies.
D

Deleted User

Guest
The Nintendo Switch is barely able to emulate N64 with dynarec. The LoZ: OoT, LoZ:MM, and SF64 ports don't count. The only way you can reasonably play N64 games on the 3DS is if you emulate them on PC where video is sent to the handheld while controller input is sent back to computer.

Edit - It's difficult as it is to emulate GBA on the 3DS (mGBA, gpSP). This is considering the fact the 3DS can perfectly play GBA natively through Virtual Console.
umm, what? Ok first off, that dynarec isn't done on the switch, as it's in beta, incomplete. Second off, how on earth are you not getting playable speeds? I can run mario kart 64 just fine without any overclocking.
With my switch rant out of the way. I do see it unlikely the 3ds could run it. If there was any n64 emulation for the 3ds, it would have to be made from the ground up, EXTREMELY efficient, and obviously be able to run every n64 game (or get close to that)
 
  • Like
Reactions: ParzivalWolfram

ParzivalWolfram

Well-Known Member
Member
Joined
Jun 28, 2017
Messages
294
Trophies
0
Age
54
XP
754
Country
United States
umm, what? Ok first off, that dynarec isn't done on the switch, as it's in beta, incomplete. Second off, how on earth are you not getting playable speeds? I can run mario kart 64 just fine without any overclocking.
With my switch rant out of the way. I do see it unlikely the 3ds could run it. If there was any n64 emulation for the 3ds, it would have to be made from the ground up, EXTREMELY efficient, and obviously be able to run every n64 game (or get close to that)
You forgot that the 3DS GBA VC is hardware-backed, that the Wii's emulators aren't very optimized, being emulator ports, and that the 3DS is capable of heavier lifting than the Wii. Good points, other than that.
 

EmulateLife

Well-Known Member
Member
Joined
May 30, 2016
Messages
3,979
Trophies
0
Age
42
XP
1,889
Country
United States
Maybe I would keep listening if others weren't being hostile about it? The technical reason is important when everyone goes "lolololol dis impossible" without HAVING one. We might not be engineers, but we are coders, hackers and homebrew enthusiasts, so unless I missed the memo and we've reverted to banging rocks together, we still need a reason to say something's impossible. I also wasn't demanding it be made, I was trying to ask for an explanation. I wasn't being a dick initially, I only became hostile after receiving hostility. Hackers have always at least acknowledged requests since the hackers KNOW not everyone is on their skill level. The acknowledgement is usually something like "well, it's possible, but we're busy, sorry" or "that's impossible, here's why". You responded with "lol just get a switch, fuck you" so I responded with hostility.

I hope you're like 14, because the sense of entitlement you seem to have should not be in an adult or even a near adult. Adults are usually smart enough to realize an emulator doesn't exist on a certain console, it's probably either impossible or not a priority to the hackers instead of crying about it. You can try to put this off on me but you're the one who caused this. Trying to cry something into existance. It's not what gbatemp exists for. Getting a Switch is a legit way to play the emulator. It's not our problem you can't afford it. Again if you're 14 I guess it's understandable, otherwise it's sad.
 
Last edited by ,
Joined
Jan 1, 2018
Messages
7,292
Trophies
2
XP
5,947
Country
United States
That doesn't answer why this is all possible on a Wii instead.
This is a multi-facet question that doesn't have a simple answer. The first thing you have to realized is that the Nintendo 64, Wii, and 3DS have vastly different hardware that can't be directly compared with one other. Without consideration of their architecture, operating system, and program/executable optimization, the performance numbers of the CPU, GPU, RAM, and VRAM numbers alone mean nothing by themselves.

The first issue is that these three systems don't even share a common CPU architecture.
  • Nintendo 64 - MIPS
  • Wii - PowerPC
  • 3DS - ARM
Because their instruction sets are different, it would be difficult to reverse engineer writing code from one type of CPU reinterpreted in a language understandable by another. This would be like asking a German dude and a Japanese dude to read off something written in Chinese. Japanese guy might mostly get by but will stumble a lot understanding Kanji that's not used in typical Japanese and grammar word order. German man isn't going to have a hell in chance, let alone with a Chinese dictionary reading that passage in a reasonable time frame. This also applies for the GPU.

If I had to assign this crude analogy between systems to languages:
  • Nintendo 64 ~ Chinese (traditional)
  • Wii ~ Japanese
  • 3DS ~ German
***

The next stumbling block directly relates to the first. Because of those vast differences, programmers will not often undertake an emulator project if they deem the end result will be half-baked or crappy. Unless the source hardware you're working with has lots of overhead (ie, horsepower) where it makes up for some deficits in the coding, someone who has an inkling of interest creating a N64 emulator on the 3DS would only do so as a proof of concept or "test demo". Even if said emulator was programmed perfectly, software will only get you so far if any part of the target hardware is bottle-necked.

umm, what? Ok first off, that dynarec isn't done on the switch, as it's in beta, incomplete. Second off, how on earth are you not getting playable speeds? I can run mario kart 64 just fine without any overclocking.
With my switch rant out of the way. I do see it unlikely the 3ds could run it. If there was any n64 emulation for the 3ds, it would have to be made from the ground up, EXTREMELY efficient, and obviously be able to run every n64 game (or get close to that)
I don't own a Switch. I read stuff on r/SwitchHaxing, r/SwitchHacks, and GBAtemp from time to time. My last read article about N64 emulation on the Switch was something about a slight bump in clockspeed.
 

ParzivalWolfram

Well-Known Member
Member
Joined
Jun 28, 2017
Messages
294
Trophies
0
Age
54
XP
754
Country
United States
This is a multi-facet question that doesn't have a simple answer. The first thing you have to realized is that the Nintendo 64, Wii, and 3DS have vastly different hardware that can't be directly compared with one other. Without consideration of their architecture, operating system, and program/executable optimization, the performance numbers of the CPU, GPU, RAM, and VRAM numbers alone mean nothing by themselves.

The first issue is that these three systems don't even share a common CPU architecture.
  • Nintendo 64 - MIPS
  • Wii - PowerPC
  • 3DS - ARM
Because their instruction sets are different, it would be difficult to reverse engineer writing code from one type of CPU reinterpreted in a language understandable by another. This would be like asking a German dude and a Japanese dude to read off something written in Chinese. Japanese guy might mostly get by but will stumble a lot understanding Kanji that's not used in typical Japanese and grammar word order. German man isn't going to have a hell in chance, let alone with a Chinese dictionary reading that passage in a reasonable time frame. This also applies for the GPU.

If I had to assign this crude analogy between systems to languages:
  • Nintendo 64 ~ Chinese (traditional)
  • Wii ~ Japanese
  • 3DS ~ German
***

The next stumbling block directly relates to the first. Because of those vast differences, programmers will not often undertake an emulator project if they deem the end result will be half-baked or crappy. Unless the source hardware you're working with has lots of overhead (ie, horsepower) where it makes up for some deficits in the coding, someone who has an inkling of interest creating a N64 emulator on the 3DS would only do so as a proof of concept or "test demo". Even if said emulator was programmed perfectly, software will only get you so far if any part of the target hardware is bottle-necked.


I don't own a Switch. I read stuff on r/SwitchHaxing, r/SwitchHacks, and GBAtemp from time to time. My last read article about N64 emulation on the Switch was something about a slight bump in clockspeed.
Thanks. This is all I wanted.
I hope you're like 14, because the sense of entitlement you seem to have should not be in an adult or even a near adult. Adults are usually smart enough to realize an emulator doesn't exist on a certain console, it's probably either impossible or not a priority to the hackers instead of crying about it. You can try to put this off on me but you're the one who caused this. Trying to cry something into existance. It's not what gbatemp exists for. Getting a Switch is a legit way to play the emulator. It's not our problem you can't afford it. Again if you're 14 I guess it's understandable, otherwise it's sad.
Why couldn't you just do this? You couldn't just explain? I like how you keep saying i'm trying to beg and plead for someone to make an emulator or cry one into existence, when I just wanted an explanation on why people don't think it'll work from the start.

Maybe you should re-read your posts and think about that? Honestly, this skull density shouldn't be in an adult either.
 

mike a

Well-Known Member
Member
Joined
Oct 28, 2014
Messages
719
Trophies
0
Age
43
XP
1,224
Country
United States
I will ask a dumb question then... If an n64 is truly impossible then explain why both n64 Zelda games are ported to 3ds and hell starfox 64 too
 
D

Deleted User

Guest
I will ask a dumb question then... If an n64 is truly impossible then explain why both n64 Zelda games are ported to 3ds and hell starfox 64 too
Oh boy.
Nintendo ported those games to the 3ds. They had the source code to those games, so they could get it to run better since it's not emulation.
Zelda MM and OOT where ported over, which is a massive difference than emulating them.
 
  • Like
Reactions: Namesnipe
Joined
Jan 1, 2018
Messages
7,292
Trophies
2
XP
5,947
Country
United States
I will ask a dumb question then... If an n64 is truly impossible then explain why both n64 Zelda games are ported to 3ds and hell starfox 64 too
Think of ported games like popular books that are re-translated in a different language than what it was originally written in. If you extend that analogy in post #64 (hah!), let's say that passage or book those German and Japanese dudes were trying to read is called 西游记.

To most English readers like you and me, we wouldn't know what that actually means. However, when that title is translated to its English equivalent, Journey to the West, you now have an idea what this may be about if you're not already familiar with this story.

For anyone curious of what Journey to the West is about, it's a story about Sun Wukong or better known as the Monkey King. Fans of Dragon Ball will know (or should know) that the series is in some ways inspired by this classical Chinese novel.

Depending how different the source and target gaming hardwares are and how flexible the dev engine that game was build in, ports can end up being like recreating a game from scratch.
 
Last edited by TurdPooCharger,

the_randomizer

The Temp's official fox whisperer
Member
Joined
Apr 29, 2011
Messages
31,284
Trophies
2
Age
38
Location
Dr. Wahwee's castle
XP
18,969
Country
United States
I will ask a dumb question then... If an n64 is truly impossible then explain why both n64 Zelda games are ported to 3ds and hell starfox 64 too

Not emulated, new assets made from scratch, ported over, etc, big difference.

I'm personally convinced that the 3DS will struggle massively with N64 emulation, given that it's MIPS vs ARM, etc.
 
Last edited by the_randomizer,
  • Like
Reactions: ParzivalWolfram

lone_wolf323

Well-Known Member
Member
Joined
May 27, 2011
Messages
5,492
Trophies
2
XP
4,941
Country
Canada
I will ask a dumb question then... If an n64 is truly impossible then explain why both n64 Zelda games are ported to 3ds and hell starfox 64 too
if those were all just a n64 rom stuck on the 3ds, those games would run at like 5fps...if at all. Those were re-coded to the 3ds language from the ground up. Thats the only way they would ever work with the 3ds
 

kuwanger

Well-Known Member
Member
Joined
Jul 26, 2006
Messages
1,510
Trophies
0
XP
1,783
Country
United States
Having a higher clockspeed isnt the only thing that decides power. If that were true then the 3.1 GHz core2 duos of old would be much more powerfull the the 1.7GHz i3s pf today.

It's funny you bring that up because in some tests comparing Core 2 Duos (or Quads) to i3 or i5 systems really doesn't show much a difference regardless of comparable clock speed. I know some benchmarks seem to indicate substantial difference in the Intel line over time in given lower clock speeds, but I highly question how much of that is real world results. Maybe it's heavily attached to certain compression/encryption tasks and would benefit those. I honestly don't know.

Having said all that, yes, clock speed isn't alone the answer. Architecture is often a major thing which is why ARM still seems well behind x86 even ignoring clock speed. I do hope that changes, though. The other part is optimization. It's the reason why seeing a test of the Sega Saturn on the Nvidia Shield really impressed me compared to my own x86 system. So, I wouldn't be quick to suggest I really know what's possible. :/
 
  • Like
Reactions: Ryccardo

nl255

Well-Known Member
Member
Joined
Apr 9, 2004
Messages
3,000
Trophies
2
XP
2,800
Country
This is a multi-facet question that doesn't have a simple answer. The first thing you have to realized is that the Nintendo 64, Wii, and 3DS have vastly different hardware that can't be directly compared with one other. Without consideration of their architecture, operating system, and program/executable optimization, the performance numbers of the CPU, GPU, RAM, and VRAM numbers alone mean nothing by themselves.

The first issue is that these three systems don't even share a common CPU architecture.
  • Nintendo 64 - MIPS
  • Wii - PowerPC
  • 3DS - ARM
Because their instruction sets are different, it would be difficult to reverse engineer writing code from one type of CPU reinterpreted in a language understandable by another. This would be like asking a German dude and a Japanese dude to read off something written in Chinese. Japanese guy might mostly get by but will stumble a lot understanding Kanji that's not used in typical Japanese and grammar word order. German man isn't going to have a hell in chance, let alone with a Chinese dictionary reading that passage in a reasonable time frame. This also applies for the GPU.

If I had to assign this crude analogy between systems to languages:
  • Nintendo 64 ~ Chinese (traditional)
  • Wii ~ Japanese
  • 3DS ~ German
***

The next stumbling block directly relates to the first. Because of those vast differences, programmers will not often undertake an emulator project if they deem the end result will be half-baked or crappy. Unless the source hardware you're working with has lots of overhead (ie, horsepower) where it makes up for some deficits in the coding, someone who has an inkling of interest creating a N64 emulator on the 3DS would only do so as a proof of concept or "test demo". Even if said emulator was programmed perfectly, software will only get you so far if any part of the target hardware is bottle-necked.


I don't own a Switch. I read stuff on r/SwitchHaxing, r/SwitchHacks, and GBAtemp from time to time. My last read article about N64 emulation on the Switch was something about a slight bump in clockspeed.

The only way I could see even a halfway decent N64 emulator on the 3DS working would be to use the same approach UltraHLE did, intercepting the SDK library calls that games use and using a native ARM reimplementation of said libraries. Of course that for the most part each game would need to have support added one at a time (unless you get lucky and an unsupported game just happens to only use library calls that are all supported) which would be a royal pain in the ass. Even then UltraHLE only supported around 20 games to a playable standard and it is unlikely it would be much better on the 3DS.
 

ParzivalWolfram

Well-Known Member
Member
Joined
Jun 28, 2017
Messages
294
Trophies
0
Age
54
XP
754
Country
United States
The only way I could see even a halfway decent N64 emulator on the 3DS working would be to use the same approach UltraHLE did, intercepting the SDK library calls that games use and using a native ARM reimplementation of said libraries. Of course that for the most part each game would need to have support added one at a time (unless you get lucky and an unsupported game just happens to only use library calls that are all supported) which would be a royal pain in the ass. Even then UltraHLE only supported around 20 games to a playable standard and it is unlikely it would be much better on the 3DS.
So... something like Nintendont for the Wii or more like NES2PCE where the game itself is modded? TBH that could work either way but performance could be an issue with the former, yeah.
 

nl255

Well-Known Member
Member
Joined
Apr 9, 2004
Messages
3,000
Trophies
2
XP
2,800
Country
So... something like Nintendont for the Wii or more like NES2PCE where the game itself is modded? TBH that could work either way but performance could be an issue with the former, yeah.

No, nintendon't is a hypervisor not an emulator. It would be more like the Hangover project for Wine where Windows API calls are "emulated" using native code and only CPU instructions in the Windows executable being run are emulated which is much faster than just running Wine itself under the qemu emulator. Of course that would mean reimplementing the N64 SDK libraries as native ARM code which as we have seen with UltraHLE (which did the same but on x86) is not an easy task.


Similar to User-Space-Emulation, but much faster. Here we jump out of emulation at the win32 API level. This means you only need a native Wine installation, some wrapper DLLs and some Wine DLLs comiled for Windows. It currently only works on ARM64 and x86_64 with Linux or Android. The code can be found at GitHub, but it's not quite ready for users yet. If you want to try it anyway, carefully read the README and make sure you understand it. See also WineConf2017
 

ParzivalWolfram

Well-Known Member
Member
Joined
Jun 28, 2017
Messages
294
Trophies
0
Age
54
XP
754
Country
United States
No, nintendon't is a hypervisor not an emulator. It would be more like the Hangover project for Wine where Windows API calls are "emulated" using native code and only CPU instructions in the Windows executable being run are emulated which is much faster than just running Wine itself under the qemu emulator. Of course that would mean reimplementing the N64 SDK libraries as native ARM code which as we have seen with UltraHLE (which did the same but on x86) is not an easy task.


Similar to User-Space-Emulation, but much faster. Here we jump out of emulation at the win32 API level. This means you only need a native Wine installation, some wrapper DLLs and some Wine DLLs comiled for Windows. It currently only works on ARM64 and x86_64 with Linux or Android. The code can be found at GitHub, but it's not quite ready for users yet. If you want to try it anyway, carefully read the README and make sure you understand it. See also WineConf2017
Oh.
 

Anxiety_timmy

Average Asura
Member
Joined
Oct 20, 2019
Messages
824
Trophies
1
Location
The Local Dumpster
XP
2,643
Country
United States
This is going to take some explaining.Nintendont is a hyper visor not an emulator.In fact gamecube emulation on the wii u is possible but dog ass slow.The only reason why nintendont works is because of the fact that the wii u shares the same architecture with the wii and gc.However emulation is completely recreating the hardware so that it can be run on other hardware.The 3ds is ARM while the n64 is MIPS.
 
Status
Not open for further replies.

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    BakerMan @ BakerMan: this mf def ain't watching ghost shit, he boutta beat his meat fr