Rayman 1

For discussions about the Rayman series.
Forum rules
Please keep the forum rules and guidelines in mind when creating or replying to a topic.

Which version is your favourite?

Jaguar
10
4%
PC
56
23%
PlayStation
143
59%
Saturn
15
6%
Game Boy Colour
4
2%
Game Boy Advance
6
2%
DSi
9
4%
 
Total votes: 243

Chacanger
Golden Teensy
Posts: 172
Joined: Tue Aug 10, 2010 9:55 pm
Tings: 990

Re: Rayman 1

Post by Chacanger »

Once again I did some level/object edits to test things in Rayman 1; I can tell that the developers fixed quite a few game breaking glitches between Rayman 1 and the Rayman Education games.

The first glitch occurs if Rayman attempts to walk up to Betilla but fails and ends up walking into water. The death sound plays multiple times and stops with Rayman just standing there happily looking into the distance.

The second glitch occurs if you have Mr Darks non stop run curse placed on you. If you hit water with the curse your ears are in for a world of pain.

In both scenarios you have to force close the game as you won't be able to quit through the options menu.

PluMGMK
Annetta Fish
Posts: 40508
Joined: Fri Jul 31, 2009 9:00 pm
Location: https://www.youtube.com/watch?v=cErgMJSgpv0
Contact:
Tings: 136606

Re: Rayman 1

Post by PluMGMK »

The first one's with Betilla? I guess they didn't fix that in the Educational Games, they just removed the Rayman 1 version of Betilla altogether, right?
Chacanger
Golden Teensy
Posts: 172
Joined: Tue Aug 10, 2010 9:55 pm
Tings: 990

Re: Rayman 1

Post by Chacanger »

PluMGMK wrote: Sun Sep 25, 2022 11:07 pm The first one's with Betilla?
Yeah, it's not clear on the video, but that weird frozen Mr Dark object was the Betilla object, I was actually trying something else with it and that happened.
PluMGMK wrote: Sun Sep 25, 2022 11:07 pm I guess they didn't fix that in the Educational Games, they just removed the Rayman 1 version of Betilla altogether, right?
Come to think of it, you could be right, after all they used an alternative version of Betilla. Which may mean that glitch still exists in Designer too (The object behavior still exists but you'd have to try it with a different set of sprites).

The 2nd glitch was most likey fixed, or it certainly was by the time they got to Designer. I know that Educational games increased the object limit which carried over to Designer so some of the things like the curse cleaner got amended to kill bad Rayman, so they may have fixed a lot of bugs at that point.
dr_st
General
Posts: 3008
Joined: Sat Aug 25, 2012 5:52 pm
Tings: 82518

Re: Rayman 1

Post by dr_st »

Chacanger wrote: Sun Sep 25, 2022 10:24 pm The second glitch occurs if you have Mr Darks non stop run curse placed on you. If you hit water with the curse your ears are in for a world of pain.
I don't know if we should consider ourselves lucky that no one put water on the path of your run in Mr. Dark's Dare Part 3, or unlucky (as they would have probably noticed and fixed the bug in that case). :o
PluMGMK
Annetta Fish
Posts: 40508
Joined: Fri Jul 31, 2009 9:00 pm
Location: https://www.youtube.com/watch?v=cErgMJSgpv0
Contact:
Tings: 136606

Re: Rayman 1

Post by PluMGMK »

Chacanger wrote: Sun Sep 25, 2022 11:36 pm Come to think of it, you could be right, after all they used an alternative version of Betilla. Which may mean that glitch still exists in Designer too (The object behavior still exists but you'd have to try it with a different set of sprites).
I don't think it does… Are you talking about behaviour 153? It looks like the functions DO_FEE and DoFeeRaymanZDD have been removed from Designer.
DO_FEE and DoFeeRaymanZDD pointer setup in Rayman Classic
DO_FEE and DoFeeRaymanZDD pointer setup in Rayman Classic
The function table in Rayman Designer just uses the default functions instead (DO_ONE_CMD and DoRaymanInZDDDefault)
The function table in Rayman Designer just uses the default functions instead (DO_ONE_CMD and DoRaymanInZDDDefault)
EDIT: Actually, the EDU version of Betilla (behaviour 270) is still present in Designer!
Meerjel01
Incrediball
Posts: 77
Joined: Wed Oct 03, 2018 4:02 pm
Tings: 385

Re: Rayman 1

Post by Meerjel01 »

The thing with the "First Steps" track is that it reminds me of the zombie movie BRAINDEAD.
Chacanger
Golden Teensy
Posts: 172
Joined: Tue Aug 10, 2010 9:55 pm
Tings: 990

Re: Rayman 1

Post by Chacanger »

I can see why they didn't implement the slopey plat "TYPE_SLOPEY_PLAT" in the final game. Makes some weird text glitches occur when you interact with it. My guess would be that it needs to store some data somewhere to redner the rotated object and that memory location is used for something else.
Slopey.png
In fact after I went back into a level afterwards it crashed...
Slopey2.png
Hunchman801
Bad Rayman
Posts: 87621
Joined: Thu Aug 07, 2003 6:50 pm
Location: Paris, France
Contact:
Tings: 640217

Re: Rayman 1

Post by Hunchman801 »

A platform that enables Zalgo language support for the game? Now that's something. :lol:
PluMGMK
Annetta Fish
Posts: 40508
Joined: Fri Jul 31, 2009 9:00 pm
Location: https://www.youtube.com/watch?v=cErgMJSgpv0
Contact:
Tings: 136606

Re: Rayman 1

Post by PluMGMK »

Which version does this happen in? This sounds like a case of pointer aliasing, probably similar to what happens with lava in EDU. I'm thinking it could be related to the routine "draw_sprite_deform", which looks like it was hand-coded in assembly. It reads / writes data in a location right there next to it in the code section, instead of having a separate location in the data section. If (for certain versions of the EXE) the linker messed up the relocations for that, then some weird stuff could very easily result. The compiler screwed up at least one thing very badly in one of the versions, so it's easy to imagine that the linker could have screwed stuff up as well.

I'm currently looking at the disassembly of "RAYMAN (GERMAN) v1.20", which apparently was linked correctly, so I'll try putting a slopey platform in there to see what happens…

EDIT: OK, going back to the menu in my German version did indeed cause a crash. Gotta debug it! :bad:
Chacanger
Golden Teensy
Posts: 172
Joined: Tue Aug 10, 2010 9:55 pm
Tings: 990

Re: Rayman 1

Post by Chacanger »

Hunchman801 wrote: Sat Oct 15, 2022 3:37 pm A platform that enables Zalgo language support for the game? Now that's something. :lol:
Isn't that normal then? I thought everyone called that level üüüüΔllllzzzl, it's in the ≡ZZZ≡Ü≡ZZZ world?
PluMGMK wrote: Sat Oct 15, 2022 11:57 pm Which version does this happen in? This sounds like a case of pointer aliasing, probably similar to what happens with lava in EDU. I'm thinking it could be related to the routine "draw_sprite_deform", which looks like it was hand-coded in assembly. It reads / writes data in a location right there next to it in the code section, instead of having a separate location in the data section. If (for certain versions of the EXE) the linker messed up the relocations for that, then some weird stuff could very easily result. The compiler screwed up at least one thing very badly in one of the versions, so it's easy to imagine that the linker could have screwed stuff up as well.

I'm currently looking at the disassembly of "RAYMAN (GERMAN) v1.20", which apparently was linked correctly, so I'll try putting a slopey platform in there to see what happens…

EDIT: OK, going back to the menu in my German version did indeed cause a crash. Gotta debug it! :bad:
One thing to note is that it won't always crash, but it will make the game lag and cause level sprites to get messed up. I wonder what happens in the PS1 or Saturn versions, would the consoles just completely freeze up or restart?

My version is RAYMAN (US) v1.21
PluMGMK
Annetta Fish
Posts: 40508
Joined: Fri Jul 31, 2009 9:00 pm
Location: https://www.youtube.com/watch?v=cErgMJSgpv0
Contact:
Tings: 136606

Re: Rayman 1

Post by PluMGMK »

So it's a buffer overflow. Exactly 1200 bytes are allocated for the buffer "new_sprite_deform", and then immediately after that buffer we have the loaded language text. But the function "draw_sprite_deform" doesn't do any bounds checking and happily writes way more than 1200 bytes into the "new_sprite_deform" buffer, overwriting the language text! :boon: I'm not sure how many bytes exactly, I think it might be one dword per pixel for each sprite of the platform. So if you had a really small / simple sprite (< 300 pixels I guess), it probably wouldn't happen…

#RewriteItInRust :hap:

EDIT: They could have easily solved this by allocating more memory for "new_sprite_deform", but I guess they were concerned about the large memory requirements for the game…
Hunchman801
Bad Rayman
Posts: 87621
Joined: Thu Aug 07, 2003 6:50 pm
Location: Paris, France
Contact:
Tings: 640217

Re: Rayman 1

Post by Hunchman801 »

PluMGMK wrote: Sun Oct 16, 2022 1:59 pm #RewriteItInRust :hap:
Given the community's disappointment over the abandonment of Rayman ReDesigner and the author's decision not to release its source code for fans to build upon and improve, maybe a such a project is in order. :hap:
Chacanger wrote: Sun Oct 16, 2022 12:23 am Isn't that normal then? I thought everyone called that level üüüüΔllllzzzl, it's in the ≡ZZZ≡Ü≡ZZZ world?
H̴̢͓̳̪͍̙̹̥̻̖̳̳̠̺̆̅̽̚̕͘̕ę̷̧̖̟̦̤͚͇͙̠͓̝͓̏̊̓͊̓͘ͅ ̶̪̔̃̉̌͑́̓̉̓̀̽̏̔̕c̶̡̧̧͙͈̺̜̼̝͖̫͊̈̉̋̒̐̑͊̈̈̑̏͘̕͘ő̸̗͙̫͇̬̲̫̦̓̅̏͑̅̾̇̚͠m̸̢̯͍̯̠̲͚̟̖̟̳̞͌͛́̉̿̓͊̈́͘̚̕͜ͅe̷̖̽͆̃͘s̶̢̢̘̳̭͍̣̫͖̎͂͌͐̀͑́̓̂́̑͜ͅ.̵̢͓͉̭̫̗̦͍͎̻̋͑̃̉́
RayCarrot
Carmen
Posts: 2476
Joined: Sat Jan 11, 2014 5:46 pm
Tings: 40322

Re: Rayman 1

Post by RayCarrot »

PluMGMK wrote: Sun Oct 16, 2022 1:59 pm I'm not sure how many bytes exactly, I think it might be one dword per pixel for each sprite of the platform. So if you had a really small / simple sprite (< 300 pixels I guess), it probably wouldn't happen…
It's probably one byte per pixel since it's all paletted 8-bit image data. That's quite interesting though as it means they had a very specific sprite in mind to be used with this type. Makes me curious which one it was. It must have been quite small as even the plum is 40x36 which would be 1440 bytes.
PluMGMK
Annetta Fish
Posts: 40508
Joined: Fri Jul 31, 2009 9:00 pm
Location: https://www.youtube.com/watch?v=cErgMJSgpv0
Contact:
Tings: 136606

Re: Rayman 1

Post by PluMGMK »

Hunchman801 wrote: Sun Oct 16, 2022 3:42 pm
PluMGMK wrote: Sun Oct 16, 2022 1:59 pm #RewriteItInRust :hap:
Given the community's disappointment over the abandonment of Rayman ReDesigner and the author's decision not to release its source code for fans to build upon and improve, maybe a such a project is in order. :hap:
Now don't give me ideas! :bad: At one point I was thinking of porting relibc to DOS, and trying to rewrite a DOS game in Rust might just push me to do it! :confus:
RayCarrot wrote: Sun Oct 16, 2022 3:48 pm It's probably one byte per pixel since it's all paletted 8-bit image data. That's quite interesting though as it means they had a very specific sprite in mind to be used with this type. Makes me curious which one it was. It must have been quite small as even the plum is 40x36 which would be 1440 bytes.
Yes, it's one byte indeed! I had missed a "sar ebx, 2" in the code… :oops2: And yes, now that you mention it, of course that means they must have had a specific sprite in mind. Maybe those little brown platforms cut from the Cave world?
Chacanger
Golden Teensy
Posts: 172
Joined: Tue Aug 10, 2010 9:55 pm
Tings: 990

Re: Rayman 1

Post by Chacanger »

PluMGMK wrote: Sun Oct 16, 2022 7:04 pm
Hunchman801 wrote: Sun Oct 16, 2022 3:42 pm
PluMGMK wrote: Sun Oct 16, 2022 1:59 pm #RewriteItInRust :hap:
Given the community's disappointment over the abandonment of Rayman ReDesigner and the author's decision not to release its source code for fans to build upon and improve, maybe a such a project is in order. :hap:
Now don't give me ideas! :bad: At one point I was thinking of porting relibc to DOS, and trying to rewrite a DOS game in Rust might just push me to do it! :confus:
I'm a .NET guy myself as I have to use it in my 9-5 job and I've used it for many personal projects, but I hear that Rust has the performance of C++ but better with garbage collection.
PluMGMK wrote: Sun Oct 16, 2022 7:04 pm
RayCarrot wrote: Sun Oct 16, 2022 3:48 pm It's probably one byte per pixel since it's all paletted 8-bit image data. That's quite interesting though as it means they had a very specific sprite in mind to be used with this type. Makes me curious which one it was. It must have been quite small as even the plum is 40x36 which would be 1440 bytes.
Yes, it's one byte indeed! I had missed a "sar ebx, 2" in the code… :oops2: And yes, now that you mention it, of course that means they must have had a specific sprite in mind. Maybe those little brown platforms cut from the Cave world?
I was thinking that too, regarding the unused cave platforms, they are quite small.
PluMGMK
Annetta Fish
Posts: 40508
Joined: Fri Jul 31, 2009 9:00 pm
Location: https://www.youtube.com/watch?v=cErgMJSgpv0
Contact:
Tings: 136606

Re: Rayman 1

Post by PluMGMK »

The beauty of Rust is that it doesn't actually have garbage collection as such. The lifetime of every object is known at compile time, so destruction is statically compiled in instead of having to be carried out by a garbage collector. And attempting to use anything that goes out of scope results in a compile error, so there are no use-after-frees or anything like that…
Hunchman801
Bad Rayman
Posts: 87621
Joined: Thu Aug 07, 2003 6:50 pm
Location: Paris, France
Contact:
Tings: 640217

Re: Rayman 1

Post by Hunchman801 »

I love .NET too, I think it's great for so many use cases. As for Rust, the idea sound great too, and I'd love to learn, but I'd need a project to work on, reading lessons ain't gonna cut it. :oops2:
gamerz31w
Green Teensy
Posts: 862
Joined: Sun Nov 22, 2015 3:35 pm
Tings: 1395

Re: Rayman 1

Post by gamerz31w »

Had anyone at least tried(to play)played pirated copy of Rayman 1/Gold/Designer all 3-in-1 on Microsoft/UniSoft Windowss 11?
Image
Image
PluMGMK
Annetta Fish
Posts: 40508
Joined: Fri Jul 31, 2009 9:00 pm
Location: https://www.youtube.com/watch?v=cErgMJSgpv0
Contact:
Tings: 136606

Re: Rayman 1

Post by PluMGMK »

Where did you get that copy? The RAYMAN.EXE you have is a Windows application, that doesn't look legit…
Hunchman801 wrote: Mon Oct 17, 2022 7:28 pm I love .NET too, I think it's great for so many use cases. As for Rust, the idea sound great too, and I'd love to learn, but I'd need a project to work on, reading lessons ain't gonna cut it. :oops2:
I know what you mean! :oops2: But anyway, within hours of this conversation, the first ever Linux kernel RC with support for Rust modules was released! :teuf:

Also, I meant to mention it before:
Hunchman801 wrote: Sun Oct 16, 2022 3:42 pm
Chacanger wrote: Sun Oct 16, 2022 12:23 am Isn't that normal then? I thought everyone called that level üüüüΔllllzzzl, it's in the ≡ZZZ≡Ü≡ZZZ world?
H̴̢͓̳̪͍̙̹̥̻̖̳̳̠̺̆̅̽̚̕͘̕ę̷̧̖̟̦̤͚͇͙̠͓̝͓̏̊̓͊̓͘ͅ ̶̪̔̃̉̌͑́̓̉̓̀̽̏̔̕c̶̡̧̧͙͈̺̜̼̝͖̫͊̈̉̋̒̐̑͊̈̈̑̏͘̕͘ő̸̗͙̫͇̬̲̫̦̓̅̏͑̅̾̇̚͠m̸̢̯͍̯̠̲͚̟̖̟̳̞͌͛́̉̿̓͊̈́͘̚̕͜ͅe̷̖̽͆̃͘s̶̢̢̘̳̭͍̣̫͖̎͂͌͐̀͑́̓̂́̑͜ͅ.̵̢͓͉̭̫̗̦͍͎̻̋͑̃̉́
Better than NOMUS_GUI? :hap:
Chacanger
Golden Teensy
Posts: 172
Joined: Tue Aug 10, 2010 9:55 pm
Tings: 990

Re: Rayman 1

Post by Chacanger »

PluMGMK wrote: Mon Oct 17, 2022 11:13 pm Where did you get that copy? The RAYMAN.EXE you have is a Windows application, that doesn't look legit…
I've seen that windowed version, it was a bug fix version that I think Ubi-Soft released for XP compatibility back in the day. It dosen't work very well on new OS's though.

Not sure if this helps but to get my DosBox version running I used the folowing script in the DosBox options file (replace the {path to RAYMAN folder on drive} part)...

Code: Select all

cls
MOUNT E E:\ -t cdrom -usecd 0 -ioctl
MOUNT C "{path to RAYMAN folder on drive}"
C:
RAYMAN.EXE
Interestingy it'll play the game regadrless of what CD you insert, as long as you have any CD it should work.
Post Reply