snesrev / smw

Smw
https://discord.gg/AJJbJAzNNJ
Other
427 stars 42 forks source link

Added nintendo switch support #3

Closed KiritoDv closed 1 year ago

KiritoDv commented 1 year ago

This PR adds support for building smw on the nintendo switch, the installation instructions are pretty much the same, with the difference that you need a switch with atmosphere installed and the devkitpro development environment, to install on the switch just copy the .ini, the nro and the sfc file.

impeeza commented 1 year ago

Hello there, I just setup a MSYS environment, with DevKitPro and follow the instructions, but the build ends with error:

Impeeza@Titan MINGW64 ~/smw/src/platform/switch
# make
  config.o glsl_shader.o main.o opengl.o smw_00.o smw_01.o smw_02.o smw_03.o smw_04.o smw_05.o smw_07.o smw_0c.o smw_0d.o smw_cpu_infra.o smw_rtl.o spc_player.o tracing.o util.o apu.o cart.o cpu.o dma.o dsp.o input.o ppu.o ppu_old.o snes.o snes_other.o spc.o switch_impl.o gl_core_3_1.o
../..//config.c ../..//glsl_shader.c ../..//main.c ../..//opengl.c ../..//smw_00.c ../..//smw_01.c ../..//smw_02.c ../..//smw_03.c ../..//smw_04.c ../..//smw_05.c ../..//smw_07.c ../..//smw_0c.c ../..//smw_0d.c ../..//smw_cpu_infra.c ../..//smw_rtl.c ../..//spc_player.c ../..//tracing.c ../..//util.c ../..//snes/apu.c ../..//snes/cart.c ../..//snes/cpu.c ../..//snes/dma.c ../..//snes/dsp.c ../..//snes/input.c ../..//snes/ppu.c ../..//snes/ppu_old.c ../..//snes/snes.c ../..//snes/snes_other.c ../..//snes/spc.c ../..//platform/switch/src/switch_impl.c ../..//../third_party/gl_core/gl_core_3_1.c ...
linking smw.elf
I require pkg-config but it's not installed.  Aborting.
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: cannot find config.o: No such file or directory
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: cannot find glsl_shader.o: No such file or directory
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: cannot find main.o: No such file or directory
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: cannot find opengl.o: No such file or directory
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: cannot find smw_00.o: No such file or directory
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: cannot find smw_01.o: No such file or directory
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: cannot find smw_02.o: No such file or directory
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: cannot find smw_03.o: No such file or directory
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: cannot find smw_04.o: No such file or directory
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: cannot find smw_05.o: No such file or directory
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: cannot find smw_07.o: No such file or directory
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: cannot find smw_0c.o: No such file or directory
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: cannot find smw_0d.o: No such file or directory
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: cannot find smw_cpu_infra.o: No such file or directory
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: cannot find smw_rtl.o: No such file or directory
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: cannot find spc_player.o: No such file or directory
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: cannot find tracing.o: No such file or directory
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: cannot find util.o: No such file or directory
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: cannot find apu.o: No such file or directory
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: cannot find cart.o: No such file or directory
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: cannot find cpu.o: No such file or directory
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: cannot find dma.o: No such file or directory
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: cannot find dsp.o: No such file or directory
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: cannot find input.o: No such file or directory
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: cannot find ppu.o: No such file or directory
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: cannot find ppu_old.o: No such file or directory
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: cannot find snes.o: No such file or directory
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: cannot find snes_other.o: No such file or directory
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: cannot find spc.o: No such file or directory
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: cannot find gl_core_3_1.o: No such file or directory
collect2.exe: error: ld returned 1 exit status
make[1]: *** [/opt/devkitpro/libnx/switch_rules:80: /home/Impeeza/smw/src/platform/switch/smw.elf] Error 1
make: *** [Makefile:167: bin] Error 2

but the files are present on ~/smw and subfolders ;( what I am missing?

KiritoDv commented 1 year ago

Hello there, I just setup a MSYS environment, with DevKitPro and follow the instructions, but the build ends with error:

Impeeza@Titan MINGW64 ~/smw/src/platform/switch
# make
  config.o glsl_shader.o main.o opengl.o smw_00.o smw_01.o smw_02.o smw_03.o smw_04.o smw_05.o smw_07.o smw_0c.o smw_0d.o smw_cpu_infra.o smw_rtl.o spc_player.o tracing.o util.o apu.o cart.o cpu.o dma.o dsp.o input.o ppu.o ppu_old.o snes.o snes_other.o spc.o switch_impl.o gl_core_3_1.o
../..//config.c ../..//glsl_shader.c ../..//main.c ../..//opengl.c ../..//smw_00.c ../..//smw_01.c ../..//smw_02.c ../..//smw_03.c ../..//smw_04.c ../..//smw_05.c ../..//smw_07.c ../..//smw_0c.c ../..//smw_0d.c ../..//smw_cpu_infra.c ../..//smw_rtl.c ../..//spc_player.c ../..//tracing.c ../..//util.c ../..//snes/apu.c ../..//snes/cart.c ../..//snes/cpu.c ../..//snes/dma.c ../..//snes/dsp.c ../..//snes/input.c ../..//snes/ppu.c ../..//snes/ppu_old.c ../..//snes/snes.c ../..//snes/snes_other.c ../..//snes/spc.c ../..//platform/switch/src/switch_impl.c ../..//../third_party/gl_core/gl_core_3_1.c ...
linking smw.elf
I require pkg-config but it's not installed.  Aborting.
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: cannot find config.o: No such file or directory
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: cannot find glsl_shader.o: No such file or directory
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: cannot find main.o: No such file or directory
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: cannot find opengl.o: No such file or directory
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: cannot find smw_00.o: No such file or directory
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: cannot find smw_01.o: No such file or directory
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: cannot find smw_02.o: No such file or directory
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: cannot find smw_03.o: No such file or directory
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: cannot find smw_04.o: No such file or directory
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: cannot find smw_05.o: No such file or directory
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: cannot find smw_07.o: No such file or directory
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: cannot find smw_0c.o: No such file or directory
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: cannot find smw_0d.o: No such file or directory
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: cannot find smw_cpu_infra.o: No such file or directory
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: cannot find smw_rtl.o: No such file or directory
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: cannot find spc_player.o: No such file or directory
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: cannot find tracing.o: No such file or directory
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: cannot find util.o: No such file or directory
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: cannot find apu.o: No such file or directory
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: cannot find cart.o: No such file or directory
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: cannot find cpu.o: No such file or directory
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: cannot find dma.o: No such file or directory
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: cannot find dsp.o: No such file or directory
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: cannot find input.o: No such file or directory
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: cannot find ppu.o: No such file or directory
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: cannot find ppu_old.o: No such file or directory
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: cannot find snes.o: No such file or directory
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: cannot find snes_other.o: No such file or directory
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: cannot find spc.o: No such file or directory
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: cannot find gl_core_3_1.o: No such file or directory
collect2.exe: error: ld returned 1 exit status
make[1]: *** [/opt/devkitpro/libnx/switch_rules:80: /home/Impeeza/smw/src/platform/switch/smw.elf] Error 1
make: *** [Makefile:167: bin] Error 2

but the files are present on ~/smw and subfolders ;( what I am missing?

The same compiler is telling you the error, you need to install pkg-config

impeeza commented 1 year ago

Damn, I am blind!!! thanks a lot. today I am a lost cause :P

impeeza commented 1 year ago

build a brand new NRO:

linking smw.elf
built ... smw.nro

Thank you so much.

KiritoDv commented 1 year ago

build a brand new NRO:

linking smw.elf
built ... smw.nro

Thank you so much.

Np ❤️

buggii commented 1 year ago

I receive this error, any hint about how to solve ?

gl_core_3_1.c linking smw.elf C:/devkitPro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.ex e: main.o: in function main': main.c:(.text.startup.main+0x28): undefined reference toSwitchImpl_Init' C:/devkitPro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.ex e: main.c:(.text.startup.main+0x580): undefined reference to SwitchImpl_Exit' C:/devkitPro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.ex e: main.c:(.text.startup.main+0xad0): undefined reference toThrowMissingROM' collect2.exe: error: ld returned 1 exit status make[1]: [/opt/devkitpro/libnx/switch_rules:80: /home/Andrew/smw/src/platform/switch/smw.elf] Error 1 make: [makefile:167: bin] Error 2