Homebrew RELEASE Development Thread - RetroArch libnx

  • Thread starter Thread starter m4xw
  • Start date Start date
  • Views Views 764,798
  • Replies Replies 4,272
  • Likes Likes 69
Status
Not open for further replies.
Hi guys,
There are so many cores being ported I can't keep track of! I'm guessing there will be an ultimate retroarch emulator with the function of selecting desired core at some point?
Anyways you are working wonders here!
 
Last edited by Zumoly,
@m4xw

I was actually working on CICD for this today. Got some stuff working but still need to add some more things so that the zip includes the icon, config, etc. In gitlab Starcarr/snes9x/-/jobs/72361429 you can see how it's looking so far, it currently builds the nro of snes9x.

Please PM me to give me access to your repo so that I send some MRs in a few hours once I get it all done – I don't have enough posts to send a PM yet.

Edit: I made it so that it generates a zip that you can extract and use Starcarr/snes9x/-/jobs/72379227 . Still need to test that the nro works correctly. Once I have access to the repo I will send the MRs for the cores that have been ported.
 
Last edited by Starcarr,
  • Like
Reactions: m4xw
This does not work, at least not for me with the FCEUMM core. I'm tired from work and kind of bitter, but fuck it; I said this yesterday, and was told to just edit the file on my PC. I pointed out that I said I already did that and it did not work, and was ignored, which I expect this post to be as well.
dont-panic-everything.jpg
 
  • Like
Reactions: Samus20XX
Are the ports each a homebrew programm or is it retroarch and installable cores for that?
I´m very new to retroarch.
 
Docked mode seems to be working well with new hekate update and hbmenu, tried multiple apps and not crashing anymore. Maybe I got lucky? Can anyone else confirm this?

docked.jpg
 
  • Like
Reactions: Kioku and Ty_
Docked mode seems to be working well with new hekate update and hbmenu, tried multiple apps and not crashing anymore. Maybe I got lucky? Can anyone else confirm this?

View attachment 130443
Had no issues with docked mode, either. Didn't try to swap between portable and docked, though.
 
Last edited by Melon__Bread,
  • Like
Reactions: angelhp
  • Like
Reactions: wicksand420
Welp, no matter what I try, parallel-n64 always keeps throwing me up a fenv.h error when trying to compile it.
-I./libretro -DNEW_DYNAREC=3 -DDYNAREC -c mupen64plus-core/src/r4300/r43
00.c -o mupen64plus-core/src/r4300/r4300.o
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/r4300.c:29:
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));
^
aarch64-none-elf-gcc -DSWITCH=1 -U__linux__ -U__linux -DRARCH_INTERNAL -g -O2 -
fPIE -I/opt/devkitpro/libnx/include/ -ffunction-sections -fdata-sections -ftls-m
odel=local-exec -Wl,--allow-multiple-definition -specs=/opt/devkitpro/libnx/swit
ch.specs -D__SWITCH__ -std=gnu11 -MMD -DINLINE="inline" -O3 -DNDEBUG -fipa-pt
a -D__LIBRETRO__ -DM64P_PLUGIN_API -DM64P_CORE_PROTOTYPES -D_ENDUSER_RELEASE -D
SINC_LOWER_QUALITY -I./mupen64plus-core/src -I./mupen64plus-core/src/api -I./in
clude -I./mupen64plus-core/src/plugin/audio_libretro -I./libretro-common/include
-I./libretro -DNEW_DYNAREC=3 -DDYNAREC -c mupen64plus-core/src/r4300/cac
hed_interp.c -o mupen64plus-core/src/r4300/cached_interp.o
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:895: mupen64plus-core/src/r4300/cached_interp.o] Error 1
@Melon__Bread can you try to help me at my GitHub repo please?
 
@m4xw
I have sent the MR to add CICD to snes9x2010. See git.m4xw.net /Switch/RetroArch/snes9x/merge_requests/1

I will try to test the generated nro soon, and maybe link a test build here for others to test as well.
 
  • Like
Reactions: ownedlol
Does the other way around still crash? Probably a easy fix on my side, but still stuck at work.

Btw proper 1080p support should be easy to achieve too (its scaled right now).

Do you have a list of priorities/fixes and what their respective parts would fix?
 
Does the other way around still crash? Probably a easy fix on my side, but still stuck at work.
Seems to work the other way around no issue. (Used FCEUmm for testing & Dragon Quest 2 as the game if it matters)


Welp, no matter what I try, parallel-n64 always keeps throwing me up a fenv.h error when trying to compile it.

@Melon__Bread can you try to help me at my GitHub repo please?
Note sure how I can really help.
The tech provided is not there yet and I am by no means that good at providing it.
Like m4xw said just hold out.
 
@m4xw
I have sent the MR to add CICD to snes9x2010. See git.m4xw.net /Switch/RetroArch/snes9x/merge_requests/1

I will try to test the generated nro soon, and maybe link a test build here for others to test as well.

Ya, thanks for that. Don't expect too much from that NRO tho, from what I know snes9x doesn't run (yet)

Do you have a list of priorities/fixes and what their respective parts would fix?

https://git.m4xw.net/Switch/RetroArch/RetroArch/blob/develop/gfx/drivers/switch_gfx.c

Any 1280/720 needs to be replaced with a proper variable for the current resolution and the resolution should actually be read from the libnx functions instead of hardcode it.

Code:
 gfxInitResolution(1280, 720);

needs to become

Code:
gfxInitResolutionDefault();

Reference: https://github.com/switchbrew/libnx/blob/master/nx/include/switch/gfx/gfx.h

For other stuff: "Status" in the main thread. Maybe I can write down some stuff, but busy af.

--------------------- MERGED ---------------------------

Seems to work the other way around no issue. (Used FCEUmm for testing & Dragon Quest 2 as the game if it matters)



Note sure how I can really help.
The tech provided is not there yet and I am by no means that good at providing it.
Like m4xw said just hold out.

Can you try snes9x2010?

It def. used to crash when starting undocked, then dock it.
 
Last edited by m4xw,
  • Like
Reactions: ownedlol
Status
Not open for further replies.

Site & Scene News

Popular threads in this forum