Just for fun, I tried to compile Mupen64Plus, [yes, I know it won't work so please don't go "TOLD YOU" on me], and here is the result:
The core isn't designed for video game consoles with homebrew installed (I've found only Windows, Linux, Mac OS X, iOS and Android in its Makefile), so it constantly keeps throwing me up an error culminating in "make: *** [Makefile:333: GLideN64/src/Combiner.o] Error 1", no matter what changes I try to make to the Makefile.
I think Parallel-N64 was designed for video game consoles though, since I found a compilation process code for PS Vita in its Makefile. GLupeN64 was ported to the (S)NES Classic although I haven't found the source code for the port though, neither in the Makefile nor on GitHub.
I decided to try and compile Parallel-N64, and I did some changes to the LibNX code upon porting it there:
In file included from mupen64plus-core/src/r4300/recomp.h:49,
from mupen64plus-core/src/r4300/cached_interp.h:30,
from mupen64plus-core/src/r4300/cached_interp.c:37:
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h: In function 'fldcw_m16'
:
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h:406:10: warning: cast fr
om pointer to integer of different size [-Wpointer-to-int-cast]
put32((unsigned int)(m16));
^
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h: In function 'mov_reg8_m
8':
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h:413:10: warning: cast fr
om pointer to integer of different size [-Wpointer-to-int-cast]
put32((unsigned int)(m8));
^
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h: In function 'mov_reg32_
m32':
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h:420:10: warning: cast fr
om pointer to integer of different size [-Wpointer-to-int-cast]
put32((unsigned int)(m32));
^
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h: In function 'add_reg32_
m32':
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h:427:10: warning: cast fr
om pointer to integer of different size [-Wpointer-to-int-cast]
put32((unsigned int)(m32));
^
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h: In function 'movsx_reg3
2_m16':
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h:435:10: warning: cast fr
om pointer to integer of different size [-Wpointer-to-int-cast]
put32((unsigned int)(m16));
^
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h: In function 'movsx_reg3
2_m8':
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h:443:10: warning: cast fr
om pointer to integer of different size [-Wpointer-to-int-cast]
put32((unsigned int)(m8));
^
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h: In function 'mul_m32':
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h:450:10: warning: cast fr
om pointer to integer of different size [-Wpointer-to-int-cast]
put32((unsigned int)(m32));
^
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h: In function 'mov_m32_im
m32':
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h:457:10: warning: cast fr
om pointer to integer of different size [-Wpointer-to-int-cast]
put32((unsigned int)(m32));
^
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h: In function 'cmp_m32_im
m32':
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h:465:10: warning: cast fr
om pointer to integer of different size [-Wpointer-to-int-cast]
put32((unsigned int)(m32));
^
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h: In function 'inc_m32':
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h:473:10: warning: cast fr
om pointer to integer of different size [-Wpointer-to-int-cast]
put32((unsigned int)(m32));
^
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h: In function 'and_m32_im
m32':
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h:480:10: warning: cast fr
om pointer to integer of different size [-Wpointer-to-int-cast]
put32((unsigned int)(m32));
^
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h: In function 'sub_m32_im
m32':
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h:488:10: warning: cast fr
om pointer to integer of different size [-Wpointer-to-int-cast]
put32((unsigned int)(m32));
^
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h: In function 'or_m32_imm
32':
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h:496:10: warning: cast fr
om pointer to integer of different size [-Wpointer-to-int-cast]
put32((unsigned int)(m32));
^
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h: In function 'mov_m8_reg
8':
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h:504:10: warning: cast fr
om pointer to integer of different size [-Wpointer-to-int-cast]
put32((unsigned int)(m8));
^
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h: In function 'mov_reg16_
m16':
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h:512:10: warning: cast fr
om pointer to integer of different size [-Wpointer-to-int-cast]
put32((unsigned int)(m16));
^
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h: In function 'mov_m16_re
g16':
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h:520:10: warning: cast fr
om pointer to integer of different size [-Wpointer-to-int-cast]
put32((unsigned int)(m16));
^
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h: In function 'cmp_reg32_
m32':
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h:527:10: warning: cast fr
om pointer to integer of different size [-Wpointer-to-int-cast]
put32((unsigned int)(m32));
^
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h: In function 'add_m32_re
g32':
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h:534:10: warning: cast fr
om pointer to integer of different size [-Wpointer-to-int-cast]
put32((unsigned int)(m32));
^
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h: In function 'sub_reg32_
m32':
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h:541:10: warning: cast fr
om pointer to integer of different size [-Wpointer-to-int-cast]
put32((unsigned int)(m32));
^
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h: In function 'mov_eax_me
moffs32':
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h:547:10: warning: cast fr
om pointer to integer of different size [-Wpointer-to-int-cast]
put32((unsigned int)(memoffs32));
^
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h: In function 'test_m32_i
mm32':
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h:569:10: warning: cast fr
om pointer to integer of different size [-Wpointer-to-int-cast]
put32((unsigned int)m32);
^
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h: In function 'mov_m32_re
g32':
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h:590:10: warning: cast fr
om pointer to integer of different size [-Wpointer-to-int-cast]
put32((unsigned int)(m32));
^
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h: In function 'mov_memoff
s32_eax':
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h:691:10: warning: cast fr
om pointer to integer of different size [-Wpointer-to-int-cast]
put32((unsigned int)(memoffs32));
^
In file included from mupen64plus-core/src/r4300/mips_instructions.def:50,
from mupen64plus-core/src/r4300/cached_interp.c:165:
mupen64plus-core/src/r4300/fpu.h: At top level:
mupen64plus-core/src/r4300/fpu.h:56:12: fatal error: fenv.h: No such file or dir
ectory
#include <fenv.h>
^~~~~~~~
compilation terminated.
make: *** [Makefile:892: mupen64plus-core/src/r4300/cached_interp.o] Error 1
Just for fun, I tried to compile Mupen64Plus, [yes, I know it won't work so please don't go "TOLD YOU" on me], and here is the result:
The core isn't designed for video game consoles with homebrew installed (I've found only Windows, Linux, Mac OS X, iOS and Android in its Makefile), so it constantly keeps throwing me up an error culminating in "make: *** [Makefile:333: GLideN64/src/Combiner.o] Error 1", no matter what changes I try to make to the Makefile.
I think Parallel-N64 was designed for video game consoles though, since I found a compilation process code for PS Vita in its Makefile. GLupeN64 was ported to the (S)NES Classic although I haven't found the source code for the port though, neither in the Makefile nor on GitHub.
I decided to try and compile Parallel-N64, and I did some changes to the LibNX code upon porting it there:
In file included from mupen64plus-core/src/r4300/recomp.h:49,
from mupen64plus-core/src/r4300/cached_interp.h:30,
from mupen64plus-core/src/r4300/cached_interp.c:37:
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h: In function 'fldcw_m16'
:
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h:406:10: warning: cast fr
om pointer to integer of different size [-Wpointer-to-int-cast]
put32((unsigned int)(m16));
^
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h: In function 'mov_reg8_m
8':
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h:413:10: warning: cast fr
om pointer to integer of different size [-Wpointer-to-int-cast]
put32((unsigned int)(m8));
^
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h: In function 'mov_reg32_
m32':
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h:420:10: warning: cast fr
om pointer to integer of different size [-Wpointer-to-int-cast]
put32((unsigned int)(m32));
^
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h: In function 'add_reg32_
m32':
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h:427:10: warning: cast fr
om pointer to integer of different size [-Wpointer-to-int-cast]
put32((unsigned int)(m32));
^
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h: In function 'movsx_reg3
2_m16':
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h:435:10: warning: cast fr
om pointer to integer of different size [-Wpointer-to-int-cast]
put32((unsigned int)(m16));
^
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h: In function 'movsx_reg3
2_m8':
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h:443:10: warning: cast fr
om pointer to integer of different size [-Wpointer-to-int-cast]
put32((unsigned int)(m8));
^
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h: In function 'mul_m32':
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h:450:10: warning: cast fr
om pointer to integer of different size [-Wpointer-to-int-cast]
put32((unsigned int)(m32));
^
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h: In function 'mov_m32_im
m32':
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h:457:10: warning: cast fr
om pointer to integer of different size [-Wpointer-to-int-cast]
put32((unsigned int)(m32));
^
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h: In function 'cmp_m32_im
m32':
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h:465:10: warning: cast fr
om pointer to integer of different size [-Wpointer-to-int-cast]
put32((unsigned int)(m32));
^
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h: In function 'inc_m32':
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h:473:10: warning: cast fr
om pointer to integer of different size [-Wpointer-to-int-cast]
put32((unsigned int)(m32));
^
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h: In function 'and_m32_im
m32':
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h:480:10: warning: cast fr
om pointer to integer of different size [-Wpointer-to-int-cast]
put32((unsigned int)(m32));
^
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h: In function 'sub_m32_im
m32':
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h:488:10: warning: cast fr
om pointer to integer of different size [-Wpointer-to-int-cast]
put32((unsigned int)(m32));
^
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h: In function 'or_m32_imm
32':
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h:496:10: warning: cast fr
om pointer to integer of different size [-Wpointer-to-int-cast]
put32((unsigned int)(m32));
^
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h: In function 'mov_m8_reg
8':
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h:504:10: warning: cast fr
om pointer to integer of different size [-Wpointer-to-int-cast]
put32((unsigned int)(m8));
^
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h: In function 'mov_reg16_
m16':
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h:512:10: warning: cast fr
om pointer to integer of different size [-Wpointer-to-int-cast]
put32((unsigned int)(m16));
^
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h: In function 'mov_m16_re
g16':
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h:520:10: warning: cast fr
om pointer to integer of different size [-Wpointer-to-int-cast]
put32((unsigned int)(m16));
^
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h: In function 'cmp_reg32_
m32':
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h:527:10: warning: cast fr
om pointer to integer of different size [-Wpointer-to-int-cast]
put32((unsigned int)(m32));
^
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h: In function 'add_m32_re
g32':
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h:534:10: warning: cast fr
om pointer to integer of different size [-Wpointer-to-int-cast]
put32((unsigned int)(m32));
^
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h: In function 'sub_reg32_
m32':
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h:541:10: warning: cast fr
om pointer to integer of different size [-Wpointer-to-int-cast]
put32((unsigned int)(m32));
^
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h: In function 'mov_eax_me
moffs32':
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h:547:10: warning: cast fr
om pointer to integer of different size [-Wpointer-to-int-cast]
put32((unsigned int)(memoffs32));
^
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h: In function 'test_m32_i
mm32':
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h:569:10: warning: cast fr
om pointer to integer of different size [-Wpointer-to-int-cast]
put32((unsigned int)m32);
^
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h: In function 'mov_m32_re
g32':
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h:590:10: warning: cast fr
om pointer to integer of different size [-Wpointer-to-int-cast]
put32((unsigned int)(m32));
^
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h: In function 'mov_memoff
s32_eax':
mupen64plus-core/src/r4300/hacktarux_dynarec/assemble.h:691:10: warning: cast fr
om pointer to integer of different size [-Wpointer-to-int-cast]
put32((unsigned int)(memoffs32));
^
In file included from mupen64plus-core/src/r4300/mips_instructions.def:50,
from mupen64plus-core/src/r4300/cached_interp.c:165:
mupen64plus-core/src/r4300/fpu.h: At top level:
mupen64plus-core/src/r4300/fpu.h:56:12: fatal error: fenv.h: No such file or dir
ectory
#include <fenv.h>
^~~~~~~~
compilation terminated.
make: *** [Makefile:892: mupen64plus-core/src/r4300/cached_interp.o] Error 1
Found only Mupen64Plus.
And I also found this within its document:
CPU Core (dynamic_recompiler/cached_interpreter/pure_interpreter)
Choose which kind of CPU emulation is going to be used. Dynamic recompiler is the fastest mode. Dynamic recompilier is not available on all platforms.
Dynamic no doubt.
Switch should have one available since Mupen64 is available for Android devices with similar architecture to the Switch (ARM64/AArch64/ARMv8)
Still, no matter what modifications I try to do, I get the exact same Combiner.o error.
In file included from GLideN64/src/OpenGL.h:13,
from GLideN64/src/Combiner.cpp:6:
GLideN64/src/winlnxdefs.h:33:10: fatal error: dlfcn.h: No such file or directory
So I had the time to read from page 18 and up, saw tons of cores being ported, but they're lost in the waves. Would it be a problem for me to sort them so they could be placed on the front page for those like me?
So I had the time to read from page 18 and up, saw tons of cores being ported, but they're lost in the waves. Would it be a problem for me to sort them so they could be placed on the front page for those like me?
So I had the time to read from page 18 and up, saw tons of cores being ported, but they're lost in the waves. Would it be a problem for me to sort them so they could be placed on the front page for those like me?
It's a good time to be a first generation Pokemon fan. But when was it not a good time to be one? In recent weeks we've seen a native LOVE2D recreation of Pokemon Red...
If you've been waiting for an excuse to replay Super Mario Sunshine and happen to have up to nine friends, do I have some good news for you. Released earlier today...
Images for the rumoured Zelda-themed limited edition Switch 2 for The Legend of Zelda's 40th Anniversary have started to leak online.
The leak shows only the...
Hoenn to the ROM hacking scene is like Kanto to the official games. It's everywhere. At this point you've probably played through Pokemon Emerald with a party of...
After being announced last year, the fan-made remake Gamma Emerald has finally gotten its first early access release. A complete rebuild of fan-favourite Pokemon...
The golden age of emulation on the Switch continues as a native Dolphin port was released by @Nagaa earlier today. Included in this port, we're looking at cover art...
With the latest entry to the Fire Emblem series, Fortune's Weave, set to launch in September, Nintendo have today announced a new Nintendo Direct to put it soundly in...
Harbour Masters were cutting it close with this one, promising a release of their Banjo Kazooie PC port "Lighthouse" by the end of this month. And they did not...
So I got pretty lucky on this one. Having ordered the physical version of Oblivion Remastered on Switch 2, I had it delivered earlier today, beating out the official...
Though we knew all the way back in May that this was coming, the exact numbers remained a mystery for prospective Nintendo gamers in the UK. If you happen to have...
Though we knew all the way back in May that this was coming, the exact numbers remained a mystery for prospective Nintendo gamers in the UK. If you happen to have...
Images for the rumoured Zelda-themed limited edition Switch 2 for The Legend of Zelda's 40th Anniversary have started to leak online.
The leak shows only the...
After being announced last year, the fan-made remake Gamma Emerald has finally gotten its first early access release. A complete rebuild of fan-favourite Pokemon...
With the latest entry to the Fire Emblem series, Fortune's Weave, set to launch in September, Nintendo have today announced a new Nintendo Direct to put it soundly in...
GBAtemp is and always has been an independent community. Since 2002 our staff have voluntarily kept the site running, added new forums, features, provided constant...
Over the past week, rumors have started swirling as Redditors (probably correctly) deduced the title of the upcoming Elder Scrolls game, which will apparently be...
It's a good time to be a first generation Pokemon fan. But when was it not a good time to be one? In recent weeks we've seen a native LOVE2D recreation of Pokemon Red...
So I got pretty lucky on this one. Having ordered the physical version of Oblivion Remastered on Switch 2, I had it delivered earlier today, beating out the official...
Over the weekend, SQUARE ENIX and Disney & Pixar Games shared the release window for the highly anticipated action-RPG Kingdom Hearts IV. A new trailer also...
Hoenn to the ROM hacking scene is like Kanto to the official games. It's everywhere. At this point you've probably played through Pokemon Emerald with a party of...