Page 472 of 505

Re: Rayman 1

Posted: Wed Dec 27, 2023 1:55 pm
by Hunchman801
Greengoop wrote: Sun Dec 24, 2023 3:13 pm Apparently every raytuber also believes it :lol:
Yeah, it's like those urban legends that propagate without any fact checking. They should have checked RayWiki beforehand!
metalflygon08 wrote: Mon Dec 25, 2023 5:03 am The first one appears like it would have been for the Sucking Trumpet, which is funny since IIRC the sucking trumpets in the actual game uses the regular blow animation.
That's a good point, I have updated the trumpet article with this information.
PluMGMK wrote: Wed Dec 27, 2023 3:22 am It's interesting that it's associated with royalty and nobility in Japan, since it also traditionally was here in Europe… Is there a connection or is it a coincidence?
I think this might be because purple pigments used to be extracted from certain species or shellfish and were very expensive to produce. We had Tyrian purple in the West, but a quick search shows that Kaimurasaki dye was also a thing in Japan.
Droolie wrote: Wed Dec 27, 2023 6:09 am Perhaps it might have something to do with the name in combination with the color? Considering he is known as Reiman over there, and rei means spirit/ghost... and while purple/death doesn't seem right, I do believe that the purple/ghost connection exists - heck, Pokémon's ghost type is represented with purple, isn't it? And the pokémon themselves are often purple as well. I'm fairly certain I've seen purple used for ghosts in other Japanese media as well, but I don't know where exactly it comes from either.
It's true that in the original Pokémon games, ghosts are found in Lavender Town, which is, as its name suggests, a shade of purple. I cannot, however, find any sources that connects spirits or ghosts in Japanese folklore with the color purple.

Re: Rayman 1

Posted: Thu Dec 28, 2023 2:36 pm
by metalflygon08
Hey wait a minute...
O.gif
O.gif (2.83 KiB) Viewed 2782 times
The O used in the large font is the same sprite used to make the Flying Rings, just polished to look shiny!

Re: Rayman 1

Posted: Thu Dec 28, 2023 2:51 pm
by ItzalDrake
Oh wow I have never noticed this before, nice find! :D

Re: Rayman 1

Posted: Thu Dec 28, 2023 3:32 pm
by SilverLum
metalflygon08 wrote: Thu Dec 28, 2023 2:36 pm Hey wait a minute...

O.gif

The O used in the large font is the same sprite used to make the Flying Rings, just polished to look shiny!
This blew my mind. I wonder what came first, the idea of the flying rings being shaped like donuts, or the "o" :lol:

Re: Rayman 1

Posted: Fri Dec 29, 2023 12:05 am
by PluMGMK
Oh wow! That is so mind-blowing, and yet so obvious in hindsight! :lol: I mean, the rings are O-shaped, so of course they'd use the letter O… :oops2:

Re: Rayman 1

Posted: Fri Dec 29, 2023 12:25 am
by metalflygon08
wrote:
This blew my mind. I wonder what came first, the idea of the flying rings being shaped like donuts, or the "o" :lol:
I bet the font came first s8nce the ring is just some eyes and wings tacked on.

Most likely they decided to use them for the grapple mechanic.

Re: Rayman 1

Posted: Fri Dec 29, 2023 1:24 pm
by Hunchman801
Very nice find, it makes a lot of sense and yet we never noticed!

Re: Rayman 1

Posted: Fri Dec 29, 2023 4:26 pm
by lumgum
SilverLum wrote: Thu Dec 28, 2023 3:32 pm
metalflygon08 wrote: Thu Dec 28, 2023 2:36 pm Hey wait a minute...

O.gif

The O used in the large font is the same sprite used to make the Flying Rings, just polished to look shiny!
This blew my mind. I wonder what came first, the idea of the flying rings being shaped like donuts, or the "o" :lol:
It's not uncommon for 2D games to reuse the same sprite to represent different things to save space, particularly in the early days of gaming - see the clouds and bushes in the first Mario game, for example. Maybe they came up with the idea of flying rings to hang from first, then made the font, then realised they could reuse the O instead of making a new sprite.

Re: Rayman 1

Posted: Sat Dec 30, 2023 4:05 pm
by Eurotool
metalflygon08 wrote: Thu Dec 28, 2023 2:36 pm Hey wait a minute...

O.gif

The O used in the large font is the same sprite used to make the Flying Rings, just polished to look shiny!
Great find!

Random question, is there any reason these guys have blank eyes? An error perhaps, or a strange design choice?
Image

Re: Rayman 1

Posted: Sat Dec 30, 2023 9:57 pm
by PluMGMK
I don't think it's an error, since there have been so many different releases and spin-offs of the game that it would eventually have been fixed in at least one of them (like the mosquito colour fiasco…).

I always thought of those lianas as being one singular entity, so it wouldn't make sense to have four separate eyes (implying four different heads).

Another possibility that comes to mind, now that you bring it up, is that the sprite system was too limited to have four separate independently-moving pupils that would also move fluidly in sync with the swinging. In fact, even if they could have done that, it might have been distracting for players to have pupils moving around in eyes that are themselves swinging around – or at least it would look plain weird!
lumgum wrote: Fri Dec 29, 2023 4:26 pm It's not uncommon for 2D games to reuse the same sprite to represent different things to save space, particularly in the early days of gaming - see the clouds and bushes in the first Mario game, for example. Maybe they came up with the idea of flying rings to hang from first, then made the font, then realised they could reuse the O instead of making a new sprite.
I don't think that's the case here though, as the fonts are located in a completely different file from the ring sprites…

Re: Rayman 1

Posted: Sat Dec 30, 2023 10:48 pm
by lumgum
PluMGMK wrote: Sat Dec 30, 2023 9:57 pm I don't think that's the case here though, as the fonts are located in a completely different file from the ring sprites…
Hmm, how odd. I suppose it was just laziness then.

Re: Rayman 1

Posted: Sun Dec 31, 2023 1:19 am
by Hunchman801
PluMGMK wrote: Sat Dec 30, 2023 9:57 pm I always thought of those lianas as being one singular entity, so it wouldn't make sense to have four separate eyes (implying four different heads).

Another possibility that comes to mind, now that you bring it up, is that the sprite system was too limited to have four separate independently-moving pupils that would also move fluidly in sync with the swinging. In fact, even if they could have done that, it might have been distracting for players to have pupils moving around in eyes that are themselves swinging around – or at least it would look plain weird!
I think it might be both: not only does it make sense that the spiky balls in the chain are not individual entities like the regular ones, it might also have been easier to animate.

Re: Rayman 1

Posted: Sun Dec 31, 2023 2:46 am
by metalflygon08
I'm surprised they just didn't make a sprite without the blank eye.

Re: Rayman 1

Posted: Fri Feb 02, 2024 2:00 am
by Steo
I seen in the Rayman Archiving Discord server, that the Rayman Saturn prototype is getting dumped; hard4ganes posted it on their twitter page.

The context of the tweet:
We've been busy. #gamedevelopment #preservation
GFQa3_2WkAA3YSF.jpg

Re: Rayman 1

Posted: Sat Feb 03, 2024 1:12 pm
by Hunchman801
How do we know it's an early prototype? The case reads "Demo", but Rayman is handwritten so I suppose it could have been used for anything.

Regardless, I'm curious as to what we'll find in there!

Re: Rayman 1

Posted: Thu May 23, 2024 7:10 pm
by RayJuan
I have a question, if rayman 1 was the most hardest games, that means it's hard.
Also I have another question, I have a android port of the game by downloading the APK and OBB.

Re: Rayman 1

Posted: Thu May 23, 2024 8:11 pm
by Greengoop
Uhhhh… those aren’t questions??? :P

Anyway welcome to the forum Juan!

Re: Rayman 1

Posted: Mon Jul 29, 2024 11:45 am
by RayCarrot
I recently posted a Twitter thread about this, but thought I'd share it here too :) All code samples shown have been rewritten from decompiled code to make it more readable.

As recently discovered it turns out Rayman 1 calculates the times for the Magician bonus rounds incorrectly under certain circumstances. Did you know that a time of 12:1 is actually greater/slower than a time of 12:14? :fou2:
Time 12-1.jpg
I'll try and explain why in detail here. First of all we need to look at what the time displayed actually means. Is 12:1 the same as 12:10 or 12:01? By looking at the code we can see that it's the latter. If it's a single-digit value then it pads it with whitespace on the right side, so it becomes "1 ".
do_perfect_bonus.png
The second thing to note is that there is no conversion from frames to milliseconds for the value after the colon. This means that the timer actually displays in frames. The range for each second then becomes XX:00 - XX:59. The time difference between say 1:59 and 2:00 would then actually be around 16 ms, rather than 410 as you might first have expected. Counterintuitive, but not an actual bug (yet!).

With that out of the way let's look at the actual bugs. The problem is that if the time is XX:0 or XX:1 then it seems to be showing a lower time than it should be. To figure out why we need to look at the math involved here.

Let's break it up and look at each value separately. First we have the value for the amount of seconds. It's calculated like this:

Code: Select all

allowed_time - (left_time / 60 + 1)
allowed_time is the time limit in seconds and left_time is the remaining time in frames. Also all values are integers since the PS1 doesn't support floating points.

Dividing by 60 seems reasonable since we want to get seconds from frames, and the game runs in 60 fps, but why the +1? Well because we want to round up if it's a fraction of a second. Why round up and not down? It's because the left_time value is how much is left, not your actual time, so it's reversed from what you might first expect.

However there's a bug here. What if the time is not a fraction of a second, but rather XX:0? Then the +1 actually offsets it by 1 second! Since we're subtracting the left_time, this means we end up with 1 second less than it should be.

So we've now established that if the time is showing for example 12:00 then it's displaying 1 second less than it should, and the time is actually 13:00. But like I said before there is also an issue if the time is XX:1. How come?

Let's look at the second value, the amount of frames within the displaying second. This is using the map_time variable, the amount of frames you've been in the map, and doing mod 60 on it. This is all well and good, but how does map_time relate to left_time?

In the main game loop we have two functions, horloges and calc_left_time, that run each frame. Exactly how they work isn't important, but horloges increments map_time by 1 each frame and then calc_left_time sets the left_time value based on map_time, thus keeping them in sync.
do_moteur.png
do_moteur.png (4.32 KiB) Viewed 624 times
But here comes the issue. When you finish a bonus level and get taken to the "PERFECT!" screen, then it exits the main game loop and enters another game loop called do_perfect_bonus - the same function that creates the timer text. Notice anything wrong here?
do_perfect_bonus.png
As you might have seen the do_perfect_bonus game loop calls horloges each frame, but does NOT call calc_left_time. This means map_time is going to be off by 1 frame from left_time! And this is exactly what causes a time of both XX:0 and XX:1 to be off by 1 second.

I wrote a small program to test this out, replicating the logic and adding 1 to map_time, and yep, same results!
sample-code.png
sample-results.png
sample-results.png (1.56 KiB) Viewed 624 times
So here it is - thanks to 2 bugs in the code it turns out that the time displayed is off by 1 second if it ends with a single digit of 0 or 1! This was quite confusing and had us stumped for a while until we figured it out! This is thanks to the speedrunners originally noticing the times sometimes not matching that we decided to dig into this. I should also mention all of this is for the PS1 version, but I had a quick look at the PC code and it seems the same, so I assume this bug exists in all versions (besides Jaguar probably since that is coded entirely differently).

Re: Rayman 1

Posted: Sun Aug 04, 2024 11:12 am
by Hunchman801
Amazing detective work! I had no idea this bug even existed, but it's really interesting to see how the game works under the hood. I wonder how many subtle bugs remain undiscovered. :hap:

Re: Rayman 1

Posted: Sun Aug 04, 2024 2:30 pm
by PluMGMK
Nice detective work indeed! :D Wouldn't be the first case of dodgy time accounting uncovered in a Rayman game :hap: