-
-
Notifications
You must be signed in to change notification settings - Fork 882
Super Mario 63: problems when entering the castle #6906
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
The Newgrounds version also has this issue. I'm mentioning this because you can skip cutscenes in this version which is nice when testing. I tried to investigate the issue. When you enter the castle, the following function runs:
Removing the However... the same So I think the issue comes from It will be worth testing the game again when #5492 is no longer a draft (the game doesn't work at all currently). |
Is there a current workaround? @Toad06 how do you remove |
If you just want to play the game, you can download the SWF file and run it using the standalone Flash projector: https://web.archive.org/web/20220331041116/https://www.adobe.com/support/flashplayer/debug_downloads.html |
It does not take me 1-2 minutes. It never lets me enter the castle. It is still not working even though I already downloaded the Adobe Flash Projector. |
You need to download the SWF file and open it with the Flash projector. You can download the SWF file from Archive.org. |
Where do I download Adobe Flash Projector? |
And, of course, I use Google Chrome. |
@Luigi-Fan not sure if that's possible on ChromeOS, but I ended up using a Windows 11 on a virtual machine and downloaded the exe. It ran perfectly that way |
This is what happened in the older versions before Ruffle became a little more advanced. After, it just becomes a big mess. Did not see this post so thanks for showing me this. |
As noted by others already, Ruffle now times out the script so it doesn't have a chance to complete at all anymore. So when trying to enter the castle, Ruffle freezes for a bit and then cycles through the graphics without running any more ActionScript. |
So do we extend the time it takes before the script gets timed out or is there a better solution out there? |
@Adamillo if you want to play the game, you could also try setting up a virtual machine with Windows and run the game inside it. This worked for me at least |
Sure, but at that point why bother when I can can just run the standalone Flash version? Not trying to be mean of course but it's not a good solution when you need this amount of hoops you have to jump through just to play this game on Ruffle |
Does the standalone version work with the castle? I haven't played this game in the last time but afaik it didn't work for me |
You don't need Windows to run the standalone Flash Player. It is also available for Linux and MacOS.
Yes, I'm planning to test the game with the script execution limit increased when I get a chance. Right now the limit is only customizable in selfhosted web builds of Ruffle, which makes it a bit difficult. The option is called |
I tested disabling the script execution limit (by modifying the Ruffle code) and when entering the castle, the screen stays black, but RAM usage keeps increasing, which seems like a memory leak. |
I could be wrong, but I think this is the infinite loop (in while(_root.Course.Platforms.hitTest(_X * _root.coursescale / 100 + _root.Course._x,(_Y - 3) * _root.coursescale / 100 + _root.Course._y,true) && !(Squish == true && (_yscale < 70 || attack == true && attackFrame == "Squish")) && (!_root.Course.Platforms.invisground.hitTest(_X * _root.coursescale / 100 + _root.Course._x,(_Y - 3) * _root.coursescale / 100 + _root.Course._y,true) || _root.Invisible !== true) || _root.Course.BPlatforms.hitTest(_X * _root.coursescale / 100 + _root.Course._x,(_Y - 3) * _root.coursescale / 100 + _root.Course._y,true) && yspeed >= -3)
{
_Y--;
if(!(attack == true && attackFrame == "Dive"))
{
xspeed *= 0.98;
}
else
{
xspeed *= 0.997;
}
_root.FallSquish();
yspeed = Math.min(0,yspeed);
} |
This patch allows entering the castle with key input continuing to work. A zero matrix is appearing somewhere and I think that's breaking the collision check between the castle platforms and the player, causing the infinite loop. I'm not making this a PR though because I'm not sure why the matrix is zero. There may be a deeper issue? diff --git a/core/src/display_object.rs b/core/src/display_object.rs
index 47d67a3..8a9d618 100644
--- a/core/src/display_object.rs
+++ b/core/src/display_object.rs
@@ -771,7 +771,14 @@ pub trait TDisplayObject<'gc>:
if let Some(rect) = display_object.scroll_rect() {
matrix = Matrix::translate(-rect.x_min, -rect.y_min) * matrix;
}
- matrix = *display_object.base().matrix() * matrix;
+ let s = *display_object.base().matrix();
+ let s = if s.a == 0.0 && s.b == 0.0 && s.c == 0.0 && s.d == 0.0 {
+ Matrix::IDENTITY
+ } else {
+ s
+ };
+ matrix = s * matrix;
node = display_object.parent();
}
matrix |
Thank you for looking into this! I wish I could help - hopefully someone can! |
Haven't investigated yet, but it's possible that we simply need to handle a zeroed-matrix (which could otherwise be valid) in |
Yeah, Is anyone familiar with the game able to hack the SWF so that the game starts at the problematic section? Otherwise I can try some this week. |
Hi, I've fixed castle level manually (see attachment) changing C1-Platform' background with new .svg file. In original version background in Castle level is made from few open images, perhaps somewhere path is open and treated as a zero-scale object. So will You fix it in Ruffle or we have to change all levels backgrounds' that causing errors:)? |
Of course it'll get fixed eventually. Just have to be patient for now |
Hello, |
Describe the bug
To reproduce the bugs:
You should notice these problems:
It's still possible to reach the next door. But if you go through that door, there will be another extremely slow transition, and then Mario will end up floating in the sky and unable to move (see screenshot below)

Expected behavior
None of these problems should occur.
Affected platform
Browser's extension
Operating system
Windows 10
Browser
Firefox 100
Additional information
I've attached the log from my browser console (log level: info) below, but it may not be very helpful
sm63.log
The text was updated successfully, but these errors were encountered: