[Beta] Super Mario World Port

  • Thread starter Thread starter Lywx
  • Start date Start date
  • Views Views 33,341
  • Replies Replies 112
  • Likes Likes 35
I try to test this using my patched rom for Spanish Language and it actually works.

So, if you get this works in widescreen will be amazing.

Because right now I can run widescreen using this: https://github.com/VitorVilela7/wide-snes

And I got the patch for spanish language using this: https://tradusquare.es/proyectos/super-mario-world/

But I can't merge both implementations.

So, this is an excellent oportunity to get Super Mario World Widescreen in spanish.
 
On my Windows PC, on the MSYS environment with DevKitPro installed I do use the next commands:

Bash:
pacman -Syu --needed --noconfirm git make pkg-config switch-dev switch-sdl2 switch-tools
cd ~
git clone --recursive https://github.com/snesrev/smw
cd ~/smw
cp "C:\ROMS\smw.sfc" ~/smw/
git fetch origin pull/3/head
git checkout -b pr3 FETCH_HEAD
cd ~/smw/src/platform/switch
make -j$(nproc)

I have the ROM on my PC on the folder C:\ROMS\ you need the original ROM to run the build.

and note the git fetch and git checkout commands, they commit the PR #3 which in this case is the Switch support pending to be approved on the repo.
Keep getting the error below, any ideas?

make[1]: *** [/opt/devkitpro/libnx/switch_rules:81: /home/user/smw/src/platform/switch/smw.elf] Error 1
make: *** [Makefile:179: bin] Error 2
 
Last edited by The_Chaotician,
Can you please share all the log? Thanks
Sure, please see below:

Code:
user@DESKTOP-TME9DB7 MINGW64 ~/smw/src/platform/switch
$ make -j4
  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 animated.o background.o stars.o types.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 ../..//enhancements/animated.c ../..//enhancements/background.c ../..//enhancements/stars.c ../..//enhancements/types.c ../..//platform/switch/src/switch_impl.c ../..//../third_party/gl_core/gl_core_3_1.c ...
linking smw.elf
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: types.o: in function `Frame_DecodeGIF':
types.c:(.text.Frame_DecodeGIF+0x3c): undefined reference to `gd_open_gif'
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: types.c:(.text.Frame_DecodeGIF+0xcc): undefined reference to `gd_get_frame'
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: types.c:(.text.Frame_DecodeGIF+0x124): undefined reference to `gd_render_frame'
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: types.c:(.text.Frame_DecodeGIF+0x188): undefined reference to `gd_is_bgcolor'
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: types.c:(.text.Frame_DecodeGIF+0x228): undefined reference to `gd_close_gif'
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: types.o: in function `Frame_DecodeJSON':
types.c:(.text.Frame_DecodeJSON+0x40): undefined reference to `cJSON_Parse'
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: types.c:(.text.Frame_DecodeJSON+0x68): undefined reference to `cJSON_GetObjectItem'
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: types.c:(.text.Frame_DecodeJSON+0xa8): undefined reference to `cJSON_GetObjectItem'
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: types.c:(.text.Frame_DecodeJSON+0xbc): undefined reference to `cJSON_GetObjectItem'
collect2.exe: error: ld returned 1 exit status
make[1]: *** [/opt/devkitpro/libnx/switch_rules:81: /home/rossc/smw/src/platform/switch/smw.elf] Error 1
make: *** [Makefile:179: bin] Error 2
 
Sure, please see below:

Code:
user@DESKTOP-TME9DB7 MINGW64 ~/smw/src/platform/switch
$ make -j4
  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 animated.o background.o stars.o types.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 ../..//enhancements/animated.c ../..//enhancements/background.c ../..//enhancements/stars.c ../..//enhancements/types.c ../..//platform/switch/src/switch_impl.c ../..//../third_party/gl_core/gl_core_3_1.c ...
linking smw.elf
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: types.o: in function `Frame_DecodeGIF':
types.c:(.text.Frame_DecodeGIF+0x3c): undefined reference to `gd_open_gif'
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: types.c:(.text.Frame_DecodeGIF+0xcc): undefined reference to `gd_get_frame'
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: types.c:(.text.Frame_DecodeGIF+0x124): undefined reference to `gd_render_frame'
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: types.c:(.text.Frame_DecodeGIF+0x188): undefined reference to `gd_is_bgcolor'
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: types.c:(.text.Frame_DecodeGIF+0x228): undefined reference to `gd_close_gif'
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: types.o: in function `Frame_DecodeJSON':
types.c:(.text.Frame_DecodeJSON+0x40): undefined reference to `cJSON_Parse'
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: types.c:(.text.Frame_DecodeJSON+0x68): undefined reference to `cJSON_GetObjectItem'
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: types.c:(.text.Frame_DecodeJSON+0xa8): undefined reference to `cJSON_GetObjectItem'
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.1.0/../../../../aarch64-none-elf/bin/ld.exe: types.c:(.text.Frame_DecodeJSON+0xbc): undefined reference to `cJSON_GetObjectItem'
collect2.exe: error: ld returned 1 exit status
make[1]: *** [/opt/devkitpro/libnx/switch_rules:81: /home/rossc/smw/src/platform/switch/smw.elf] Error 1
make: *** [Makefile:179: bin] Error 2

Sorry that was my fault, you need to pull the latest changes and rebuild, make sure to make clean first
 
I try to test this using my patched rom for Spanish Language and it actually works.

So, if you get this works in widescreen will be amazing.

Because right now I can run widescreen using this: https://github.com/VitorVilela7/wide-snes

And I got the patch for spanish language using this: https://tradusquare.es/proyectos/super-mario-world/

But I can't merge both implementations.

So, this is an excellent oportunity to get Super Mario World Widescreen in spanish.
The widescreen mod is cool and all, but it doesn't run well on switch.
At least in my experience it's glitchy in RetroArch and runs at a low FPS
 
On discord they are talking and posting screenshots of SMB 1 from Super Mario Bros. All Stars ported to PC, did anyone manage to compile for Switch?
 
I try to test this using my patched rom for Spanish Language and it actually works.

So, if you get this works in widescreen will be amazing.

Because right now I can run widescreen using this: https://github.com/VitorVilela7/wide-snes

And I got the patch for spanish language using this: https://tradusquare.es/proyectos/super-mario-world/

But I can't merge both implementations.

So, this is an excellent oportunity to get Super Mario World Widescreen in spanish.
Did you get this Widescreen mod to work on the Switch? If so, how?

I’m getting build errors for the latest commit too. The only repo that builds successfully for me is the pr request that @impeeza submitted on page 2 of this thread. I can’t get his fork to work either!
 
I just tested this steps and works fine:


Bash:
cd ~
rm -rf ./smw
pacman -Syuu --needed --noconfirm git make pkg-config switch-dev switch-sdl2 switch-tools switch-pkg-config mingw-w64-x86_64-python
cd ~
git clone --recursive https://github.com/snesrev/smw

YOU NEED TO COPY THE ORIGINAL Super Mario World (1991)(Nintendo)(US).sfc to ~/smw/smw.sfc

Bash:
cd ~/smw
git fetch origin pull/31/head
git checkout -b pr31 FETCH_HEAD -f
cd ~/smw/src/platform/switch
make -j$(nproc)
 
  • Like
Reactions: lordelan
I just tested this steps and works fine:


Bash:
cd ~
rm -rf ./smw
pacman -Syuu --needed --noconfirm git make pkg-config switch-dev switch-sdl2 switch-tools switch-pkg-config mingw-w64-x86_64-python
cd ~
git clone --recursive https://github.com/snesrev/smw

YOU NEED TO COPY THE ORIGINAL Super Mario World (1991)(Nintendo)(US).sfc to ~/smw/smw.sfc

Bash:
cd ~/smw
git fetch origin pull/31/head
git checkout -b pr31 FETCH_HEAD -f
cd ~/smw/src/platform/switch
make -j$(nproc)
Thanks! I’ll check it out!

Edit: yep, works fine. Thanks again, @impeeza!
 
Last edited by The_Chaotician,
  • Love
Reactions: impeeza

Site & Scene News

Popular threads in this forum