snesrev / smw Goto Github PK
View Code? Open in Web Editor NEWSmw
Home Page: https://discord.gg/AJJbJAzNNJ
License: Other
Smw
Home Page: https://discord.gg/AJJbJAzNNJ
License: Other
When a non-QWERTY keyboard layout is used, the keys don't work. This can be fixed by using SDL's physical keys
Linux
And also, do you have any plans on reverse-engineering Super Mario All-Stars, Super Mario World 2: Yoshi's Island, and/or any other SNES game?
I'm not actually writing to ask to add something but I just wanna say this is really cool and impressive. I do have a question though. Is this fully native or is it still running off of emulation?
So Is it possible for you guys to create a N3DS port?
If not, how do I get the port working myself?
The .ini file for Nintendo Switch is missing this line in order to use joycons:
# Whether the gamepads will be enabled. The game will not use them unless they're on.
EnableGamepad1 = true
See attached .ini modified.
Thanks for making it possible!
smw.ini.zip
Nintendo Switch
(First of all, holy cow, this project is surreal... My brain is not used to instant load times in this game!)
Playing for a bit, I'm noticing that the audio latency is a little higher than you'd expect (~80+ ms?) playing this. Just a guess, is the buffer you're using for your audio sized too conservatively?
Linux
There seems to be no settings for player 2 input.
There is no detection for the second player.
Could someone please add the detection of the second joypad, and add the input config to the ini file?
Windows
The audio sounds a tad off from what you'd hear from an emulator, whether it's mixing at 32 kHz or some higher sample rate. I could be wrong, but it sounds somewhat like aliasing issues (audio isn't being resampled to the target sample rate in a smooth way).
Linux
When you enable autosave and run the game, the audio doesn't play until a full restart.
Enable autosave, play the game, exit and launch it again, audio isn't there.
Windows
according to the build:
A Super Mario World rom (Make sure to rename it to smw.sfc)
which does not specify Universal (US) Europe (E) or Japan (J)
my file: SMW (U) !.smc
cdd3c8c37322978ca8669b34bc89c804 smw.sfc
its possibly a very old file, SMC file versus SFC, im looking for a SFC (U) file to test against
USA:
MD5 CDD3C8C37322978CA8669B34BC89C804
JAPAN:
MD5 4E4F8F4CFDAABFFDDE20C8053202D4F0
EUROPE v1.1:
MD5 7BB0487EACDB78D6635E89D797E5AB74
EUROPE v1.0:
MD5 4F17A1A17A098D0A5312703B55AD134B
i also have smw (E) v1.1 d1c9b36495c7126ea2bc5b5b648faea5
Extracting game resources
/usr/bin/env python3 assets/restool.py
cc smb1/smb1_02.o smb1/smb1_00.o smb1/smb1_08.o smb1/smb1_cpu_infra.o smb1/smb1_spc_player.o smb1/smb1_01.o smbll/smbll_08.o smbll/smbll_cpu_infra.o smbll/smbll_01.o smbll/smbll_02.o smbll/smbll_00.o smbll/smbll_0b.o src/smw_cpu_infra.o src/smw_02.o src/smw_04.o src/smw_07.o src/lm.o src/smw_0c.o src/common_rtl.o src/smw_0d.o src/opengl.o src/smw_03.o src/main.o src/common_cpu_infra.o src/smw_spc_player.o src/smw_00.o src/util.o src/glsl_shader.o src/smw_01.o src/config.o src/tracing.o src/smw_rtl.o src/smw_05.o src/snes/dsp.o src/snes/spc.o src/snes/ppu.o src/snes/snes_other.o src/snes/cart.o src/snes/snes.o src/snes/cpu.o src/snes/apu.o src/snes/dma.o src/snes/ppu_old.o third_party/gl_core/gl_core_3_1.o -o smw -lSDL2 -lm
cc: error: smb1/smb1_02.o: No such file or directory
cc: error: smb1/smb1_00.o: No such file or directory
cc: error: smb1/smb1_08.o: No such file or directory
cc: error: smb1/smb1_cpu_infra.o: No such file or directory
cc: error: smb1/smb1_spc_player.o: No such file or directory
cc: error: smb1/smb1_01.o: No such file or directory
cc: error: smbll/smbll_08.o: No such file or directory
cc: error: smbll/smbll_cpu_infra.o: No such file or directory
cc: error: smbll/smbll_01.o: No such file or directory
cc: error: smbll/smbll_02.o: No such file or directory
cc: error: smbll/smbll_00.o: No such file or directory
cc: error: smbll/smbll_0b.o: No such file or directory
cc: error: src/smw_cpu_infra.o: No such file or directory
cc: error: src/smw_02.o: No such file or directory
cc: error: src/smw_04.o: No such file or directory
cc: error: src/smw_07.o: No such file or directory
cc: error: src/lm.o: No such file or directory
make: *** [Makefile:22: smw] Error 1
editing Makefile:33 add restool.py -f allows compilation
sed -i 's/restool.py/restool.py -f/g' Makefile
x64 linux
cc -c -O2 -fno-strict-aliasing -Werror -I/usr/include/SDL2 -D_REENTRANT -DSYSTEM_VOLUME_MIXER_AVAILABLE=0 -I. src/main.c -o src/main.o
src/main.c: In function ‘main’:
src/main.c:389:10: error: lvalue required as left operand of assignment
389 | kRom = ReadWholeFile(argv[0], &size);
| ^
make: *** [Makefile:25: src/main.o] Error 1
modifying the configuration file to change the backend or activate the linear filter has no effect. it still runs with SDL and no filter.
makes it impossible to use shaders
Windows
Super Mario World
you can replicate this by going to the level "yoshi's island 1" and entering the level pipe, when you exit the background music will be that of a bonus stage instead of the overworld theme.
I was able to replicate the bug on Linux and Windows.
Linux
I'm ecstatic about this port!
I want to know if there could be compatibility with Lunar Magic, such that we could use it as the level editor. Or at least perhaps a version of Lunar Magic that's targeted for this specific PC Port version.
I have a 16 year old Romhack that I'd love to be able to easily port over to the PC Version. However it used a lot of custom graphics and behaviors. For example one of the early levels was a water level with new enemies, a screen waving BG effect, custom sprites, custom BG and FG graphics, etc.
I'd love to be able to implement new features through scripting on the PC version and have those be instantly picked up by Lunar Magic (as if using any modern game engine).
It's been ages since I last engaged with SMW modding, so forgive me if things have changed drastically in the last 10+ years.
What do you think?
The NTSC version of the game hides the bottom row of tiles on each map. The PAL version shows them, but loses 10fps. We've never been able to play this game at 60fps and 240p at the same time.
Hello there, Thanks for all your effort.
On the Building.md on SWITCH section is stated you build switch version executing the command>
CD to
switch
folder by typingcd src/platfrom/switch
in the terminal on thesmw
root folder.
but the actual and past code doesn't have the src/platfrom/switch folder.
Thanks a lot.
As reported on Discord, when you try to build Switch version on latest commits including eae20c6, you get errors:
C:/msys64/home/Impeeza/smw/src/types.h:4: warning: ignoring '#pragma warning ' [-Wunknown-pragmas]
4 | #pragma warning(disable: 4244)
|
switch_impl.c
gl_core_3_1.c
linking smw.elf
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.2.0/../../../../aarch64-none-elf/bin/ld.exe: main.o: in function `main':
main.c:(.text.startup.main+0xe6c): undefined reference to `SmasSpcPlayer_Create'
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.2.0/../../../../aarch64-none-elf/bin/ld.exe: common_cpu_infra.o: in function `SnesInit':
common_cpu_infra.c:(.text.SnesInit+0x274): undefined reference to `kSmbllGameInfo'
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.2.0/../../../../aarch64-none-elf/bin/ld.exe: common_cpu_infra.c:(.text.SnesInit+0x278): undefined reference to `kSmbllGameInfo'
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.2.0/../../../../aarch64-none-elf/bin/ld.exe: common_cpu_infra.c:(.text.SnesInit+0x2ec): undefined reference to `kSmb1GameInfo'
C:/msys64/opt/devkitpro/devkitA64/bin/../lib/gcc/aarch64-none-elf/13.2.0/../../../../aarch64-none-elf/bin/ld.exe: common_cpu_infra.c:(.text.SnesInit+0x2f0): undefined reference to `kSmb1GameInfo'
collect2.exe: error: ld returned 1 exit status
make[1]: *** [/opt/devkitpro/libnx/switch_rules:81: /home/Impeeza/smw/src/platform/switch/smw.elf] Error 1
make: *** [Makefile:167: bin] Error 2
Impeeza@Titan MINGW64 ~/smw/src/platform/switch```
![image](https://github.com/snesrev/smw/assets/41979604/9303090c-3eb4-4c56-a830-491aa16bc44f)
With the help of @GodReborn a new Makefile was created some little tweaks was made:
![image](https://github.com/snesrev/smw/assets/41979604/ef904499-c025-4502-bf65-d39674d7fd50)
Creating a PR including these changes.
### What is your build target?
Nintendo Switch
In a number of games it is possible to enable a Background Input setting so that the game can still be controlled while it is not the currently focused application.
I believe this is possible with SDL2.
This is a really useful feature for multitasking, for example with multiple monitors, so that the keyboard can be used elsewhere quickly, while the gamepad continues to control the game.
Make errors:
cc -c -O2 -fno-strict-aliasing -Werror -I/usr/local/include/SDL2 -D_THREAD_SAFE -DSYSTEM_VOLUME_MIXER_AVAILABLE=0 -I. -Wno-strict-prototypes smb1/smb1_00.c -o smb1/smb1_00.o
smb1/smb1_00.c:963:12: error: result of comparison of constant 7 with expression of type 'bool' is always true [-Werror,-Wtautological-constant-out-of-range-compare]
if (v5 < 7)
~~ ^ ~
1 error generated.
make: *** [smb1/smb1_00.o] Error 1
Mac
nuff said
Windows
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.