snesrev / sm Goto Github PK
View Code? Open in Web Editor NEWearly version
License: Other
early version
License: Other
When you grapple on a left wall with grapple blocks, until you get the "wall jump"-like sprite, and you let go of grapple, then a mismatch is detected (with the 300 counting down like said it the readme). I've tested this in 2 rooms that the community calls "aqueduct" and "halfie climb room".
console output:
@3549: Memory compare failed (mine != theirs, prev):
0x000AF9: A0 != 00 (A0)
0x000B13: A0 != 00 (A0)
0x000DA2: 01 != 00 (01)
0x000DA5: 00 != 60 (00)
0x000DD0: 00 != 01 (00)
total of 5 failed bytes
Verify failure!
@3550: Memory compare failed (mine != theirs, prev):
0x000DD0: 00 != 01 (01)
total of 1 failed bytes
Verify failure!
@3551: Memory compare failed (mine != theirs, prev):
0x000DD0: 00 != 01 (01)
total of 1 failed bytes
Verify failure!
@3552: Memory compare failed (mine != theirs, prev):
0x000DD0: 00 != 01 (01)
total of 1 failed bytes
Verify failure!
@3553: Memory compare failed (mine != theirs, prev):
0x000DD0: 00 != 01 (01)
total of 1 failed bytes
Verify failure!
@3554: Memory compare failed (mine != theirs, prev):
0x000DD0: 00 != 01 (01)
total of 1 failed bytes
Verify failure!
@3555: Memory compare failed (mine != theirs, prev):
0x000DD0: 00 != 01 (01)
total of 1 failed bytes
Verify failure!
@3556: Memory compare failed (mine != theirs, prev):
0x000DD0: 00 != 01 (01)
total of 1 failed bytes
Verify failure!
@3557: Memory compare failed (mine != theirs, prev):
0x000DD0: 00 != 01 (01)
total of 1 failed bytes
Verify failure!
@3558: Memory compare failed (mine != theirs, prev):
0x000DD0: 00 != 01 (01)
total of 1 failed bytes
Verify failure!
@3559: Memory compare failed (mine != theirs, prev):
0x000DD0: 00 != 01 (01)
total of 1 failed bytes
Verify failure!
@3560: Memory compare failed (mine != theirs, prev):
0x000DD0: 00 != 01 (01)
total of 1 failed bytes
Verify failure!
@3561: Memory compare failed (mine != theirs, prev):
0x000DD0: 00 != 01 (01)
total of 1 failed bytes
Verify failure!
@3562: Memory compare failed (mine != theirs, prev):
0x000DD0: 00 != 01 (01)
total of 1 failed bytes
Verify failure!
@3563: Memory compare failed (mine != theirs, prev):
0x000DD0: 00 != 01 (01)
total of 1 failed bytes
Verify failure!
@3564: Memory compare failed (mine != theirs, prev):
0x000DD0: 00 != 01 (01)
total of 1 failed bytes
Verify failure!
@3565: Memory compare failed (mine != theirs, prev):
0x000DD0: 00 != 01 (01)
total of 1 failed bytes
Verify failure!
@3566: Memory compare failed (mine != theirs, prev):
0x000DD0: 00 != 01 (01)
total of 1 failed bytes
Verify failure!
@3567: Memory compare failed (mine != theirs, prev):
0x000DD0: 00 != 01 (01)
total of 1 failed bytes
Verify failure!
@3568: Memory compare failed (mine != theirs, prev):
0x000DD0: 00 != 01 (01)
total of 1 failed bytes
Verify failure!
@3569: Memory compare failed (mine != theirs, prev):
0x000DD0: 00 != 01 (01)
total of 1 failed bytes
Verify failure!
@3570: Memory compare failed (mine != theirs, prev):
0x000DD0: 00 != 01 (01)
total of 1 failed bytes
Verify failure!
@3571: Memory compare failed (mine != theirs, prev):
0x000DD0: 00 != 01 (01)
total of 1 failed bytes
Verify failure!
@3572: Memory compare failed (mine != theirs, prev):
0x000DD0: 00 != 01 (01)
total of 1 failed bytes
Verify failure!
@3573: Memory compare failed (mine != theirs, prev):
0x000DD0: 00 != 01 (01)
total of 1 failed bytes
Verify failure!
@3574: Memory compare failed (mine != theirs, prev):
0x000DD0: 00 != 01 (01)
total of 1 failed bytes
Verify failure!
@3575: Memory compare failed (mine != theirs, prev):
0x000DD0: 00 != 01 (01)
total of 1 failed bytes
Verify failure!
@3576: Memory compare failed (mine != theirs, prev):
0x000DD0: 00 != 01 (01)
total of 1 failed bytes
Verify failure!
@3577: Memory compare failed (mine != theirs, prev):
0x000DD0: 00 != 01 (01)
total of 1 failed bytes
Verify failure!
@3578: Memory compare failed (mine != theirs, prev):
0x000DD0: 00 != 01 (01)
total of 1 failed bytes
Verify failure!
Linux
Just trigger Mother Brain's second "form".
Windows
Loading the game is impossible and it closes immediately, the console mentions assertion failure on line 497 for one of the files. (i am unsure if this similar to another issue that is on here, as the amount of times ive attempted launching it has gained 0 results so far, so im guessing whatever issue i am having is probably different and could possibly be on my own end..? I am unsure).
Here is the image of what is mentioned in the console:
need to be 1-to-1 with snes
It looks like you're using two separate, hand-rolled build systems here. I understand this project is in its infancy but I think you'll want to use a "real" build system sooner rather than later. The two major options for cross-platform C/C++ projects are CMake and meson. Both have their pros and cons, and I have experience with both.
In general, I would recommend meson, but visual studio support (if that's a hard requirement?) is less mature than CMake. I'd be willing to make a PR for either, as I'd like to start hacking on this project but I also don't want to deal with makefiles.
I have put g_runmode to RM_MINE to check it out. When leaving the save selection screen to go back to the intro, the game crashes in RunOneFrameOfGameInner src/sm_82.c:691 . It appears that the variable st was 65545 (cause of crash), while if the g_runmode is on the default RM_BOTH, after 14 it just goes back to 10.
Linux
skip to ceres or skip to crateria
A white screen is displayed for a short moment before it shuts itself down with no obvious error messages displayed to the user.
If, however, the game is run from terminal, you will be able to see an error message:
Loaded LoROM rom
"Super Metroid "
Assertion failed: cpu->sp == cpu->spBreakpoint, file src/snes/cpu.c, line 1442
The game does on some occasions however run just fine. Just now, I had to run it nine times before it successfully ran.
In the long room before kraid (with the three pirates and minikraid), the audio crackles. I noticed the same issue in croc's room. I'm on linux if that matters.
I tried to compile this and ran into this error:
make: sdl2-config: Command not found
make: sdl2-config: Command not found
cc -c -O2 -Werror -DSYSTEM_VOLUME_MIXER_AVAILABLE=0 -I. src/config.c -o src/config.o
In file included from src/config.c:1:
src/config.h:3:10: fatal error: 'SDL_keycode.h' file not found
#include <SDL_keycode.h>
Hi there I understand this is a project that is in early development but I wanted report the game having a lot of slow downs in the game also I would like to report that the second area after you land your ship gets soft locked when you enter the door on the left.
Linux
Hi,
I have tried to build this port for the odroid go advance (which is a portable arm console by hardkernel) using the rk3226 rockchip cpu and it is running fine in emuelec. I have just one problem; the select and start buttons are not working, all other buttons are fine. I have not modified the ini and left as default. This happens on all snes games ports like zelda and mario world. Instead Ports like mario 64 works well on this device as it uses the gamecontrollerdb.txt to map keys.
What can i do to make those buttons work on this device? do i need to modify just the ini or it needs a source code modification to adapt my controls?
Thanks!
Linux aarch64
After cd-ing into my sm folder, it gives 1 warning and 10 errors. I simply type “make”.
Mac
On the vanilla game on console, if you go into a message box (save room or getting an item, for instance) with an input held you can continue holding it for the whole message and it will clear automatically. I noticed that doesn't work with this. I had to release after the message box is on screen and re-hold the input or otherwise shift input if I want it to clear automatically.
Make errors:
src/sm_8f.c:500:10: error: passing 'uint8 *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Werror,-Wpointer-sign]
strcpy((uint8 *)&room_main_asm_variables[2], "@");
~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_string.h:84:27: note: expanded from macro 'strcpy'
__builtin___strcpy_chk (dest, __VA_ARGS__, __darwin_obsz (dest))
^~~~
src/sm_8f.c:501:10: error: passing 'uint8 *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Werror,-Wpointer-sign]
strcpy((uint8 *)&room_main_asm_variables[6], " ");
~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_string.h:84:27: note: expanded from macro 'strcpy'
__builtin___strcpy_chk (dest, __VA_ARGS__, __darwin_obsz (dest))
^~~~
src/sm_8f.c:615:10: error: passing 'uint8 *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Werror,-Wpointer-sign]
strcpy((uint8 *)room_main_asm_variables, "\"");
~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_string.h:84:27: note: expanded from macro 'strcpy'
__builtin___strcpy_chk (dest, __VA_ARGS__, __darwin_obsz (dest))
^~~~
src/sm_8f.c:616:10: error: passing 'uint8 *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Werror,-Wpointer-sign]
strcpy((uint8 *)&room_main_asm_variables[2], "<");
~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_string.h:84:27: note: expanded from macro 'strcpy'
__builtin___strcpy_chk (dest, __VA_ARGS__, __darwin_obsz (dest))
^~~~
src/sm_8f.c:658:12: error: passing 'uint8 *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Werror,-Wpointer-sign]
strcpy((uint8 *)room_main_asm_variables, "*");
~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_string.h:84:27: note: expanded from macro 'strcpy'
__builtin___strcpy_chk (dest, __VA_ARGS__, __darwin_obsz (dest))
^~~~
src/sm_8f.c:675:12: error: passing 'uint8 *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Werror,-Wpointer-sign]
strcpy((uint8 *)room_main_asm_variables, "*");
~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_string.h:84:27: note: expanded from macro 'strcpy'
__builtin___strcpy_chk (dest, __VA_ARGS__, __darwin_obsz (dest))
^~~~
6 errors generated.
make: *** [src/sm_8f.o] Error 1
make: *** Waiting for unfinished jobs....
Mac
Getting this error message:
src/snes/cpu.c: In function 'cpu_doOpcode':
src/snes/cpu.c:1346:9: error: implicit declaration of function 'Die' [-Werror=implicit-function-declaration]
1346 | Die("The game has crashed!\n");
| ^~~
I fixed it locally by adding #include "../types.h"
to src/snes/cpu.c
.
I'm not sure what's needed to reproduce this. I was trying things out (seems like a cool project). I killed kraid. Got wave and speed. Then I went down to say hi to croc. I killed him then grabbed his etank. I then did the wrap around shot where you shoot off the right side of the screen and it opens the left side door. I heard the sound, so I assumed it worked. I paused the game to tell a friend. And when I focused the game again the music kept playing but it seemed to ignore all my inputs like it was frozen.
Shooting a blue door with grapple beam to open it causes the log message:
BUG: projectile_index invalid
The door opens just fine. Makes me think this bug message itself is mistaken.
time to rename some functions...
banklogs here: (delete browser cache)
https://patrickjohnston.org/bank/index.html
commits: 68 @ March 20 2023
45767ae
these reports come from the wrecked ship
@666455: Memory compare failed (mine != theirs, prev):
0x000FA8: 42 != AD (42)
0x00C321: 0000 != FF38 (0000)
0x00C323: 0000 != F757 (0000)
0x00C325: 0000 != 2942 (0000)
0x00C327: 0000 != A509 (0000)
0x00C32A: 0000 != 4F5A (0000)
0x00C32C: 0000 != 36B5 (0000)
0x00C32E: 0000 != 2610 (0000)
0x00C330: 0000 != 1DCE (0000)
0x00C332: 0000 != 01DF (0000)
0x00C334: 00 != 1F (00)
0x00C336: 00 != 18 (00)
0x00C338: 00 != 0A (00)
0x00C33A: 0000 != 06B9 (0000)
0x00C33C: 00 != EA (00)
0x00C33E: 00 != 45 (00)
total of 26 failed bytes
Verify failure!
@673434: Memory compare failed (mine != theirs, prev):
0x00C300: 7FFF != 0000 (0000)
0x00C304: 7FFF != 77BD (77BD)
0x00C306: 7FFF != 6B5A (6B5A)
0x00C308: 7FFF != 6318 (6318)
0x00C30C: 7FFF != 77BD (77BD)
0x00C30E: 7FFF != 6B5A (6B5A)
0x00C310: 7FFF != 6318 (6318)
0x00C314: 7FFF != 77BD (77BD)
0x00C316: 7FFF != 6B5A (6B5A)
0x00C318: 7FFF != 6318 (6318)
0x00C31C: 7FFF != 77BD (77BD)
0x00C31E: 7FFF != 6B5A (6B5A)
0x00C323: F757 != FF7F (F757)
0x00C325: 2942 != FF7F (2942)
0x00C327: A509 != FF7F (A509)
0x00C329: 5A00 != FF7F (5A00)
0x00C32B: B54F != FF7F (B54F)
0x00C32D: 1036 != FF7F (1036)
0x00C32F: CE26 != FF7F (CE26)
0x00C331: DF1D != FF7F (DF1D)
0x00C333: 1F01 != FF7F (1F01)
0x00C335: 1800 != FF7F (1800)
0x00C337: 0A00 != FF7F (0A00)
0x00C339: B900 != FF7F (B900)
0x00C33B: EA06 != FF7F (EA06)
0x00C33D: 4500 != FF7F (4500)
0x00C33F: 0000 != FF7F (0000)
0x00C341: 00 != 7F (00)
total of 55 failed bytes
Verify failure!
@673653: Memory compare failed (mine != theirs, prev):
0x000FA8: 42 != AD (42)
0x00C320: 7FFF != 3800 (7FFF)
0x00C323: FF7F != F757 (FF7F)
0x00C325: FF7F != 2942 (FF7F)
0x00C327: FF7F != A509 (FF7F)
0x00C329: FF7F != 5A00 (FF7F)
0x00C32B: FF7F != B54F (FF7F)
0x00C32D: FF7F != 1036 (FF7F)
0x00C32F: FF7F != CE26 (FF7F)
0x00C331: FF7F != DF1D (FF7F)
0x00C333: FF7F != 1F01 (FF7F)
0x00C335: FF7F != 1800 (FF7F)
0x00C337: FF7F != 0A00 (FF7F)
0x00C339: FF7F != B900 (FF7F)
0x00C33B: FF7F != EA06 (FF7F)
0x00C33D: FF7F != 4500 (FF7F)
0x00C33F: 7F != 00 (7F)
total of 32 failed bytes
Verify failure!
@673969: Memory compare failed (mine != theirs, prev):
0x00C300: 7FFF != 0000 (0000)
0x00C304: 7FFF != 77BD (77BD)
0x00C306: 7FFF != 6B5A (6B5A)
0x00C308: 7FFF != 6318 (6318)
0x00C30C: 7FFF != 77BD (77BD)
0x00C30E: 7FFF != 6B5A (6B5A)
0x00C310: 7FFF != 6318 (6318)
0x00C314: 7FFF != 77BD (77BD)
0x00C316: 7FFF != 6B5A (6B5A)
0x00C318: 7FFF != 6318 (6318)
0x00C31C: 7FFF != 77BD (77BD)
0x00C31E: 7FFF != 6B5A (6B5A)
0x00C323: F757 != FF7F (F757)
0x00C325: 2942 != FF7F (2942)
0x00C327: A509 != FF7F (A509)
0x00C329: 5A00 != FF7F (5A00)
0x00C32B: B54F != FF7F (B54F)
0x00C32D: 1036 != FF7F (1036)
0x00C32F: CE26 != FF7F (CE26)
0x00C331: DF1D != FF7F (DF1D)
0x00C333: 1F01 != FF7F (1F01)
0x00C335: 1800 != FF7F (1800)
0x00C337: 0A00 != FF7F (0A00)
0x00C339: B900 != FF7F (B900)
0x00C33B: EA06 != FF7F (EA06)
0x00C33D: 4500 != FF7F (4500)
0x00C33F: 00 != 7F (00)
total of 53 failed bytes
Verify failure!
and a big one:
@731546: Memory compare failed (mine != theirs, prev):
0x000370: FE85 != 5490 (5290)
0x000372: 7A7E != E800 (E800)
0x000374: EC71 != 54A0 (52A0)
0x000376: 2634 != E802 (E802)
0x000378: F007 != 81F7 (81F6)
0x00037A: 0200 != 632E (632E)
0x00037D: 00F0 != 2C81 (2C81)
0x00037F: 0702 != F763 (F663)
0x000381: 01F0 != 4997 (4997)
0x000383: 0702 != FF63 (FE63)
0x000385: 00F0 != 4897 (4897)
0x000387: 0702 != F763 (F663)
0x000389: 00F0 != 0C87 (0C87)
0x00038B: 0702 != FF63 (FE63)
0x00038D: C0F0 != 4B99 (4B99)
0x00038F: C7C2 != 0763 (0663)
0x000391: 00F0 != 4A99 (4A99)
0x000393: 0702 != FF63 (FE63)
0x000395: 00F0 != 0E89 (0E89)
0x000397: 0702 != F763 (F663)
0x000399: C0F0 != 2271 (2271)
0x00039B: C7C2 != 0763 (0663)
0x00039D: 00F0 != 2071 (2071)
0x00039F: 0702 != F763 (F663)
0x0003A1: 00F0 != 0261 (0261)
0x0003A3: 02 != 63 (63)
0x0003A5: 0EF0 != 0061 (0061)
0x0003A7: 1507 != EF63 (EF63)
0x0003AA: 0E05 != 6306 (6306)
0x0003AC: 0A != FF (FF)
0x0003AE: 060E != 6304 (6304)
0x0003B0: 16 != 99 (99)
0x0003B2: 0A03 != 2C3A (2C3A)
0x0003B4: 16 != A1 (A1)
0x0003B6: 0F0A != 2C3A (2C3A)
0x0003B8: 13 != 9E (9E)
0x0003BA: 0B0F != 2C3A (2C3A)
0x0003BC: 16 != A6 (A6)
0x0003BE: 0704 != 2C3A (2C3A)
0x0003C0: 7F != 9E (9E)
0x0003C2: 2A60 != 2C3A (2C3A)
0x0003C4: EF != A6 (A6)
0x0003C6: 3218 != 2C3A (2C3A)
0x0003C8: 0F != A8 (A8)
0x0003CA: 2AE8 != 2C3A (2C3A)
0x0003CC: E7 != A0 (A0)
0x0003CE: FA98 != 2C3A (2C3A)
0x0003D0: 9F != A8 (A8)
0x0003D2: DAF8 != 2C3A (2C3A)
0x0003D4: FF != 29 (29)
0x0003D6: FA58 != 234A (234A)
0x0003D8: 7F != 29 (29)
0x0003DA: 0301 != 230E (230E)
0x0003DC: 08 != 31 (31)
0x0003DE: 0200 != 2322 (2322)
0x0003E0: 07 != 21 (21)
0x0003E2: 0200 != 2320 (2320)
0x0003E4: 07 != 31 (31)
0x0003E7: 0A03 != 2123 (2123)
0x0003EA: 0203 != 2300 (2300)
0x0003EC: 07 != 40 (40)
0x0003EE: 0200 != 2306 (2306)
0x0003F0: 07 != 30 (30)
0x0003F2: 8200 != 2304 (2304)
0x0003F4: 07 != 52 (52)
0x0003F6: 0200 != 3798 (3798)
0x0003F8: 07 != 4C (4C)
0x0003FA: 0200 != 7794 (7794)
0x0003FC: 07 != 4C (4C)
0x0003FE: 0200 != 3791 (3791)
0x000400: 87 != 16 (16)
0x000402: 0280 != 2570 (2570)
0x000404: 07 != 1E (1E)
0x000406: 0200 != 2561 (2561)
0x000408: 07 != 16 (16)
0x00040A: 0200 != 2560 (2560)
0x00040C: 07 != 79 (79)
0x00040E: 1A != 9A (9A)
0x000410: 19 != 89 (89)
0x000412: 1A1C != 3799 (3799)
0x000414: 44 != 81 (81)
0x000416: 0F32 != 3795 (3795)
0x000418: 12 != 81 (81)
0x00041A: 0B1F != 3792 (3792)
0x00041C: 46 != 8A (8A)
0x00041E: 3F21 != 3799 (3799)
0x000420: 0A != 7E (7E)
0x000422: 333F != 3798 (3798)
0x000424: 46 != 88 (88)
0x000426: 8A48 != 3797 (3797)
0x000428: 73 != 84 (84)
0x00042A: 6ECC != 3793 (3793)
0x00042C: EB != 84 (84)
0x00042E: 866C != 3790 (3790)
0x000430: 83 != 84 (84)
0x000432: 7AE4 != 3791 (3791)
0x000434: FF != 16 (16)
0x000436: FE3C != 2567 (2567)
0x000438: 23 != 0E (0E)
0x00043A: 7EFC != 2566 (2566)
0x00043C: 03 != FC (FC)
0x00043E: FE1C != 256A (256A)
0x000440: 07 != F4 (F4)
0x000442: 0301 != 2569 (2569)
0x000444: 07 != FC (FC)
0x000446: 0200 != 2567 (2567)
0x000448: 07 != F4 (F4)
0x00044A: 0200 != 2566 (2566)
0x00044C: 07 != 83 (83)
0x00044E: 0300 != 3793 (3793)
0x000450: 07 != 83 (83)
0x000452: 0200 != 3790 (3790)
0x000454: 07 != AA (AA)
0x000456: 0200 != 3791 (3791)
0x000458: 07 != 2E (2E)
0x00045A: 8240 != 2570 (2570)
0x00045C: 87 != 36 (36)
0x00045E: 0200 != 2561 (2561)
0x000460: 07 != 2E (2E)
0x000462: 0200 != 2560 (2560)
0x000464: 07 != 2C (2C)
0x000466: C2C0 != 256D (256D)
0x000468: 87 != 24 (24)
0x00046A: 0280 != 256C (256C)
0x00046C: 07 != 2C (2C)
0x00046E: 0200 != 2564 (2564)
0x000470: 07 != 24 (24)
0x000472: 0B00 != 2563 (2563)
0x000474: 14 != 6C (6C)
0x000476: 0303 != 2562 (2562)
0x000478: 07 != 64 (64)
0x00047A: 0200 != 2560 (2560)
0x00047C: 07 != 80 (80)
0x00047E: 0200 != 6302 (6302)
0x000480: 10 != 1A (1A)
0x000482: 0306 != 2802 (2802)
0x000484: 0A != 21 (21)
0x000486: 0200 != 2808 (2808)
0x000488: 07 != 19 (19)
0x00048A: 0200 != 280A (280A)
0x00048C: 07 != 31 (31)
0x00048E: A2A0 != 280C (280C)
0x000490: C7 != 29 (29)
0x000492: 0200 != 280D (280D)
0x000494: 07 != 11 (11)
0x000496: 0200 != 280E (280E)
0x000498: 07 != 11 (11)
0x00049A: A290 != 280F (280F)
0x00049C: 67 != 42 (42)
0x00049F: 0702 != 3A28 (3A28)
0x0004A2: 0200 != 2804 (2804)
0x0004A4: 07 != 3A (3A)
0x0004A6: 0280 != 2802 (2802)
0x0004A8: 07 != 41 (41)
0x0004AA: 2280 != 2808 (2808)
0x0004AC: 67 != 39 (39)
0x0004AE: 665C != 280A (280A)
0x0004B0: AD != 51 (51)
0x0004B2: 02BC != 280C (280C)
0x0004B4: 87 != 49 (49)
0x0004B6: C200 != 280D (280D)
total of 433 failed bytes
none of them crash the game or prevent progress that i can tell
i finished the wrecked ship area without issues
Linux
I could only replicate this while using keyboard controls. Item select is bound to the default shift button.
For example if I press left arrow and shift at the same time, the left input will get stuck and Samus will keep moving left without pressing any buttons. This also works in menus.
Pressing the stuck input button again fixes the issue.
It would be great if the game had these options in the game settings
In the area where you get the second missile pack at the beginning of the game if you wall jump above the light/camera thing on the wall for some reason it will softlock the game and then you have to close out the program to fix it.
During my first run through this, the game crashed in Crocomire's room. Approximate sequence of events:
I was testing out glitches to see what works and what doesn't work. I did an r-mode blue suit. And then carried that to screw attack. Once I have screw attack the game started crashing randomly with:
sm: src/snes/cart.c:85: cart_readLorom: Assertion `0' failed.
I played around with it a bit trying different things. If you load up the F7 save, it seems like doing very small spin jumps along the bottom of the room in the save state will trigger it fairly reliably. It looks like the crash is somehow related to Samus changing pose. Something about exiting spin jump and going into a landing or standing animation. If you dash the blue suit will be gone and I can no longer reproduce it in that state. So just left or right + small jumps, to trigger it.
I'm not sure this should be a bug or a feature request. I don't know if you care about bug compatibility.
It's possible to climb out of bounds using xray beam. You just need to get stuck in a gate or a door then cancel xray as you turn around a bunch of times (each time moves samus up a handful of pixels). Many places you can do this leaves samus in bounds, but some places takes you out of bounds. The out of bounds places causes the game to segfault (without even hitting an assert).
I could send you a save state where you only need to xray climb a few more times before you hit the out of bounds, if that would help.
Going out of bounds has some pretty obscure uses. I want to say there is a glitched speedrun category that uses it to trigger the escape sequence on zebes without doing the normal objectives.
Anyway, if you want the save state where you still need to climb a little to trigger the out of bounds let me know.
Linux
I went to super missile phantoon and the game instantly segfaulted.
I obviously rebooted the game and loaded my last savestate (which was conveniently at the beginning of the phantoon fight) and at some point early on in the fight I paused, then unpaused and the game started freaking out visually (specifically whenever phantoon goes invisible).
I'm uncertain if these are caused by the same underlying logic considering they can occur independent of eachother, but both glitches can easily be replicated back-to-back so I'm including them in the same bug report.
here's my last savestate: https://cdn.discordapp.com/attachments/1082740193653690468/1084207399105220669/save0.sav
Linux
Like in Zelda3 there are some bugs inside sm.
Here a small video of a known bug which can fixed as optional feature.
Where does the result of all the printf
calls go, on Windows? Launching it from the command line still doesn't print anything, even when launched with --debug
.
I'm building with MSYS2 at the moment, but I don't mind switching to something else if that's relevant.
Is this outside the realm of possibility? This project is awesome! Playing SM on my PC as a native app is pretty badass. Arch Linux, cloned and built without any issues. Tried some romhacks of course because I had to and to nobodies surprise they crashed or froze. :)
On console when you enter a room there is a door close noise and a door close animation. On the PC port, the door is already closed behind you and there is no sound.
This happens on any doors on Zebes (ceres doors are different).
Linux
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.