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

Hunchman801
Bad Rayman
Posts: 87627
Joined: Thu Aug 07, 2003 6:50 pm
Location: Paris, France
Contact:
Tings: 640247

Re: Rayman 1

Post by Hunchman801 »

Amazing discovery! It's impressive how you got it to work so well in the video, and it makes so much more sense than the only pair of cymbals found in the original game. This definitely had potential!
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 »

PluMGMK wrote: Fri Jul 03, 2020 8:35 pm OK, I wanna play that version now, if it's more challenging!
Well, I finally have, and it didn't disappoint!
PluMGMK wrote: Fri Jul 03, 2020 8:35 pm So wait, does the removal of that particular walking drum mean it doesn't appear in the PC version at all? I hadn't actually realized that…
First thing: this walking drum takes you towards a Magician level. When I attempted to play this particular Magician level, it seemed to be broken. The screen would not scroll horizontally, so it was impossible to complete it. Is that a known bug with v1.00 or was something screwed up on my end? (I did exit and re-enter the bonus level at least once)

Apart from that, there were a few more nasties that I don't think were mentioned before:
Hard Rocks 2 secret cage
Hard Rocks 2 secret cage
Towards the end of Hard Rocks 2, there's a little platform that you have to hang over the side of, to make some cloud(s) appear to take you to the left. In the PS1 version and PC v1.00, there is no indication that you have to do that, whereas in PC v1.12 there's a Ting to show you. Then one of the objects that appears is a little spiky ball oscillating rapidly left and right. On PS1 and PC v1.00 you have to jump over this on a moving cloud, both going left (where the spiky ball is in sync with you) and coming back to the right (where it's out of sync with you!). On PS1, it doesn't matter if you ignore/skip this, because all you get out of it is a power-up. But on both PC versions, you have to go left, and come back right, because it's the only way to make the cage appear! But on PC v1.12, they replaced the moving cloud with a pair of disappearing ones, so you don't have to worry as much about syncing up with the moving spiky ball, so it's fairer overall.

Another one:
Crystal Palace 1 spiky ball arrangements
Crystal Palace 1 spiky ball arrangements
PS1 and PC v1.00 both have a spiky ball directly in the swing paths of the bottom-left two Rings, which alone is disgusting! Then on PC v1.00, you have to jump left from the column of Rings, between two spiky balls, to get to a Ting that's really far to the left, to make a cage appear. But actually, you don't have to reach the Ting, but there's no way of knowing that until you try! Whereas on PC v1.12, the Ting is not so deceptively far left, and the top spiky ball has been moved up to make the jump a bit easier.

I think there was another Ting at the start of that level which I ended up using the "hold down when letting go of the Ring" trick to get. Again, it was further away than it needed to be, because the respective Gendoor was much more reachable.

Then there's another really weird thing in the Hard Rocks:
Hard Rocks 2 swapped cage / Gendoor placement
Hard Rocks 2 swapped cage / Gendoor placement
They swapped the Gendoor / cage placement at the bottom right of these images! I remember playing it, thinking, "was it always in this sequence? :?" I also included the bit at the top left to show that a cage in the PS1 version was replaced by a mere Power-Up in PC v1.00, but then changed to a more generous Life in PC v1.12!

And speaking of Lives:
Hunchman801 wrote: Fri Dec 06, 2019 5:41 pm
PluMGMK wrote: Sun Oct 20, 2019 1:57 pm Anyone ever notice that you can get a life statue by falling down behind the exit sign in the level where Betilla gives you the helicopter power?
I think I remember finding out about this during my first playthrough. Like, can you possibly die in a Betilla level? Didn't think so, so I gave it a try.
Yeah, that's not there! If you fall down behind the exit sign, you're not punished, of course, but there's no Life there to reward your exploration! :tssk:

And speaking of Betilla levels, from looking at the code (although I haven't actually tested this), v1.00 seems to be the only version that will render Betilla levels with a reduced viewport ("Zone of Play"). In the InitClipping function, the game checks if it's a Betilla level. If not, it crops all four sides of the screen as usual. If it is, it crops the top, left and right, but leaves the bottom uncropped, presumably to make sure the text doesn't get clipped awkwardly. I'm not sure how this is supposed to interact with the "letterboxing" effect used on all Betilla levels.

On all the newer versions though, InitClipping doesn't crop the screen at all on Betilla levels, and it additionally checks for the Breakout game and final boss fight to make sure they don't get cropped either. That said, v1.00 also doesn't crop the Breakout game (haven't checked the final boss fight), so it must be handled a different way in that case…

One other funny thing in the code is that v1.00 is missing the SetCompteurTrameAudio function, which resets the timer for menu and credits music. The result is that when you come onto the menu, or start the credits, it can take several seconds before the game starts playing any music!
Hunchman801
Bad Rayman
Posts: 87627
Joined: Thu Aug 07, 2003 6:50 pm
Location: Paris, France
Contact:
Tings: 640247

Re: Rayman 1

Post by Hunchman801 »

Some of those changes are actually quite notable! This actually makes me wonder why the PC and PlayStation versions are so different in the first place, when they're using the same engine and surely it would have been possible to coordinate adjustments across platforms.
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 »

That's an interesting question… I've been thinking about it, and clearly Jaguar was treated as its own thing due to technical limitations of the platform and using the old engine (probably because nobody wanted to expend the effort porting the new engine to the platform). So perhaps management also treated PC as its own thing due to the technical limitations of the MS-DOS (or technically, DOS/4G) platform. Now I can only think of two such limitations:
:arrow: Only 256 colours on the screen at any one time
:arrow: Playing cutscenes requires disabling the sound system (or at least, the implementation they ended up with does…)

Now, the first limitation was dealt with using palette swappers, and by cutting some detail (e.g. different-coloured mosquitos and fruits, and no rainbow in Picture City). The second was dealt with by using CD audio for the cutscenes. Both are fine solutions (though I'm not convinced that they needed to cut the multi-coloured fruit :mefiant:) but perhaps management wasn't convinced that this was enough. They may have just heard "technical limitations" and put a team on PC to deal with them.

Now, there is a documented case within this franchise of a team being assigned to a port, and getting really creative with it: Rayman Revolution. So I'd say the PC team started putting their own touches on the level design, and they were left to it because the platform had "technical limitations", like Jaguar. The fact that the level changes had nothing to do with overcoming technical challenges could have been lost on the decision-makers.

Then there's the decision to limit the music to two tracks per world. I still can't understand what thought process led to that. I know PS1 allows multiple tracks per level, which may have inspired the concept of medleys, but making every level use the same medley… It still just doesn't make any sense to me :? All I can think of is that maybe somebody got cold feet at the thought of putting 50 tracks on the CD, plus the cutscene audio, even though the CD standard can handle 100 tracks. (And so can the game, the my TSR proves that!)

Getting back to the level design, I'm thinking again about the v1.00 levels and how… unfinished they feel in places. By v1.10 the maps had all been updated to their more familiar designs, but that version never saw the light of day until a screwup in 2013. So now I'm wondering if there was in fact another screwup in 1995, and all those discs that got pressed with version 1.00 were supposed to get 1.10… But I don't know if the dates check out, since the files on the v1.00 disc are dated November 1995, and the v1.10 files are dated December 1995… :?


By the way, there were a few other things I forgot to mention about v1.00. Firstly, the default keyboard control scheme is different from all the others. It's more like Rayman 2's actually, except it uses Alt for jump. I decided to use that scheme while playing v1.00 just to see what it was like (even though I could of course change it if I wanted to).

The other thing is that for some reason it always insists on changing the graphics card setting to PCI2 when running natively on my PC, so I have to manually change it back to PCI1 each time I boot up the game in order to get Differential Scrolling working. This doesn't happen under Dosbox though, and it also doesn't happen with newer versions, so I'm not too sure what's happening there… :?
RayCarrot
Carmen
Posts: 2476
Joined: Sat Jan 11, 2014 5:46 pm
Tings: 40322

Re: Rayman 1

Post by RayCarrot »

This is something I've been wondering a lot as well. I don't think PC was treated as its own thing per say. The code was most likely written the same for all platforms, but with platform specific parts of it. I've decompiled most of the PS1 code for a modding project we've been working on (some examples here) and most of the game code is identical to the PC version. It however uses an older engine version. For example, on PC there's a table of object functions where each object type has a function which gets called for certain conditions, such as for checking collision, doing a u-turn etc. On PS1 this table doesn't contain as many functions and instead the places where they'd get called from instead have a big ugly switch statement for each object type. If you go even further back to the early PS1 demos it's even worse, the code is filled with hard-coded object and level checks everywhere!
And while on the topic of engine improvements, the Rayman 2 2D engine has a ton of improvements built upon the PC engine version! There are a lot of Rayman 1 leftovers while also improving a lot of how it handles things It also has new code for things like world maps, menus etc. which we sadly lack the data for, even though we know it existed in some form as the files are referenced for it. But while this version of the engine is clearly built upon the PC version it still handles PS1 data in the exact same way as the PS1 version of Rayman 1. In theory this means that the devs could have compiled an updated version of the PS1 version as the PC versions improvements would be part of the PS1 codebase as well then.

Now if we check L'Histoire de Rayman we can find some development info. Frédéric Houde wrote the original engine on Jaguar in assembly. Yann Le Tensorer was then the one who wrote the multi-platform engine, this time in C (with some minor parts in assembly). He describes how the engine was written for PC and made so it could be adapted for PS1 and Saturn. It seems PS1 was still seen as the target platform though. I can't find much more info than this though, but then again I've had to use Google Translate to read it :P

Then there are some interesting "leftovers" in some levels. For example Cake 2 on PC has some of the audio triggers from the PS1 version left in! They appear to be in the exact same positions too. Was the PS1 level copied to the PC version and then modified after that? That wouldn't make sense with the tiles (comparing the two you can clearly see the level was re-tiled), but maybe just the object placements were copied?
But then even stranger, the PS1 version of Mountain 6 (and a few other maps I can't remember) has a palette swapper! Its placement and state makes no sense there, so it's not a PC leftover. The PS1 code completely ignores this object type as well. Also worth mentioning it's there on Saturn as well. This I'm guessing is more of a leftover from something they were testing during development. Perhaps it was made to load the palette for that house that appears there? It uses quite unique tiles compared to the rest of the Mountain world!

Something which I've come to realize is just how much of their workflow was impacted by their choice to start with the Jaguar version. The Rayman Designer code is a goldmine when it comes to understanding how the developers created the game with a lot of leftover editor functions existing. I've been wanting to decompile that more some day, but I really don't like IDA :oops2: And sadly Ghidra doesn't support that exe format :( But some interesting things related to Jaguar I've seen over the years are:
- The game objects are defined in similar ways, at least in the editor. On Jaguar the game has a list of every object, known as a Multi-Sprite. These themselves work very differently from other versions. They have a verbe which define what they "do" each frame and how its params are used. The multi-platform engine uses an object type index instead. However, there are similarities. Every object on Jaguar is named like "MS_XXX". Their editor, and thus also Rayman Designer, does the same! It's first when the level gets "compiled" into an actual level file that the name stops being used. So their editor could have very easily matched these with the Jaguar Multi-Sprites and allowed levels to be saved as Jaguar levels!
Another piece of evidence here is that the level data is stored in almost the same way in the Rayman Designer editor as it is on Jaguar. That is, they don't have an absolute x and y position, but are stored as a sort of tile-map with relative offsets to each "tile".
- The multi-platform game's sprite graphics are actually converted native Jaguar Objects! The sprite struct always confused me. It had some unused flags, a type index which seemed to support additional image formats and other oddities. It all made sense when I found the function in Rayman Designer which allows loading raw DES data and that it actually loads native Jaguar Objects, changes them from big to little endian, and converts them to the game's sprite struct! So whatever graphics tool they used seemed to always save the graphics as Jaguar data, which then got converted.

All that is to say, they most definitely used the same tools to create levels for all versions, including on Jaguar. But then how they separated the levels between versions is more unclear. The objects could very easily be copied, so I'm guessing they did that, and then made unique tile-maps for each version. We also know the PC version uses a later build than on PS1, so a lot of changes are probably just the result of them continuously tweaking the levels. That of course doesn't explain everything though.

But finally, let's look at the first level:
PS1 (JP)
PS1 (JP)
Ubisoft map
Ubisoft map
Saturn
Saturn
PS1
PS1
PC
PC
Quite a lot of minor changes over time here. The Ubisoft map is odd too, being like a mix between the PS1, PS1 JP and Saturn versions! We also know the Ubisoft maps were generated from Rayman Designer. There's a leftover function in there for converting a level to a bitmap in the same way as is seen here. This all makes sense with their editor being able to edit levels for all versions, but why does the Ubisoft map have only one color for the pink leaves? That's not the case in any other version. And that raises more questions, like how did they handle PS1 palettes when editing the levels on PC? PC only supports 256 colors, while PS1 has no such limit.
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 »

RayCarrot wrote: Mon Apr 17, 2023 8:29 am This is something I've been wondering a lot as well. I don't think PC was treated as its own thing per say. The code was most likely written the same for all platforms, but with platform specific parts of it. I've decompiled most of the PS1 code for a modding project we've been working on (some examples here) and most of the game code is identical to the PC version. It however uses an older engine version. For example, on PC there's a table of object functions where each object type has a function which gets called for certain conditions, such as for checking collision, doing a u-turn etc. On PS1 this table doesn't contain as many functions and instead the places where they'd get called from instead have a big ugly switch statement for each object type. If you go even further back to the early PS1 demos it's even worse, the code is filled with hard-coded object and level checks everywhere!
Oh wow, I hadn't realized that the ObjetsFonctions table was such a "recent" innovation, that PS1 code sounds awful! I guess it just means PC was branched later then, there must have been a less strict deadline…
RayCarrot wrote: Mon Apr 17, 2023 8:29 am Now if we check L'Histoire de Rayman we can find some development info. Frédéric Houde wrote the original engine on Jaguar in assembly. Yann Le Tensorer was then the one who wrote the multi-platform engine, this time in C (with some minor parts in assembly). He describes how the engine was written for PC and made so it could be adapted for PS1 and Saturn. It seems PS1 was still seen as the target platform though. I can't find much more info than this though, but then again I've had to use Google Translate to read it :P
Ah yes, I'd forgotten this stuff. I should reread it… The mention of minor parts in assembly reminds me of that dodgy sprite deformation code that only ever existed (that we know of!) for x86, again presumably because of PC getting branched later!
RayCarrot wrote: Mon Apr 17, 2023 8:29 amThen there are some interesting "leftovers" in some levels. For example Cake 2 on PC has some of the audio triggers from the PS1 version left in! They appear to be in the exact same positions too. Was the PS1 level copied to the PC version and then modified after that? That wouldn't make sense with the tiles (comparing the two you can clearly see the level was re-tiled), but maybe just the object placements were copied?
Oh wow, cool! If only they'd left them in everywhere, that would make it a lot easier to readd those tracks to the PC version:bad:
RayCarrot wrote: Mon Apr 17, 2023 8:29 amBut then even stranger, the PS1 version of Mountain 6 (and a few other maps I can't remember) has a palette swapper! Its placement and state makes no sense there, so it's not a PC leftover. The PS1 code completely ignores this object type as well. Also worth mentioning it's there on Saturn as well. This I'm guessing is more of a leftover from something they were testing during development. Perhaps it was made to load the palette for that house that appears there? It uses quite unique tiles compared to the rest of the Mountain world!
That's strange indeed! I guess it is something to do with loading that house in the editor…
RayCarrot wrote: Mon Apr 17, 2023 8:29 amSomething which I've come to realize is just how much of their workflow was impacted by their choice to start with the Jaguar version. The Rayman Designer code is a goldmine when it comes to understanding how the developers created the game with a lot of leftover editor functions existing. I've been wanting to decompile that more some day, but I really don't like IDA :oops2:
It's been a long time since I've dived into my IDA database of RAYKIT.EXE, but I'm starting to feel like doing it again!
RayCarrot wrote: Mon Apr 17, 2023 8:29 amAnd sadly Ghidra doesn't support that exe format :(
I'm not familiar with Ghidra, but would it help if you could get a flat binary file with all the relocation fixups pre-applied? I have a tool that does something similar, which I could tweak a bit and release…
RayCarrot wrote: Mon Apr 17, 2023 8:29 amBut some interesting things related to Jaguar I've seen over the years are:
- The game objects are defined in similar ways, at least in the editor. On Jaguar the game has a list of every object, known as a Multi-Sprite. These themselves work very differently from other versions. They have a verbe which define what they "do" each frame and how its params are used. The multi-platform engine uses an object type index instead. However, there are similarities. Every object on Jaguar is named like "MS_XXX". Their editor, and thus also Rayman Designer, does the same! It's first when the level gets "compiled" into an actual level file that the name stops being used. So their editor could have very easily matched these with the Jaguar Multi-Sprites and allowed levels to be saved as Jaguar levels!
Another piece of evidence here is that the level data is stored in almost the same way in the Rayman Designer editor as it is on Jaguar. That is, they don't have an absolute x and y position, but are stored as a sort of tile-map with relative offsets to each "tile".
- The multi-platform game's sprite graphics are actually converted native Jaguar Objects! The sprite struct always confused me. It had some unused flags, a type index which seemed to support additional image formats and other oddities. It all made sense when I found the function in Rayman Designer which allows loading raw DES data and that it actually loads native Jaguar Objects, changes them from big to little endian, and converts them to the game's sprite struct! So whatever graphics tool they used seemed to always save the graphics as Jaguar data, which then got converted.
Ah yes, I remember you telling me about some of this when you first discovered it. I guess this sort of suggests they built the editor first in C, then bolted on the multi-platform engine, initially in the same codebase to make "RAYKIT". I wonder if the decision to use only two music tracks per world in the PC version is somehow linked to the fact that the editor was on PC. After all, the released Mapper only offers you "Piece 1" or "Piece 2", so it makes sense in that context. Maybe the development versions of the PC version were so similar to this that they never bothered to bring in the more extensive soundtrack which was standard on PS1 / Saturn. (Especially since they apparently were tweaking the maps and some of the code until the very last moment, somewhere between 24 November and 4 December 1995 :mefiant:)

Perhaps the most annoying thing is that the PC version contains all these functions for CD tracks that are heard in the PS1 version:
:arrow: change_audio_track_puit (evidently intended for the Tarayzan level, but not called at all in the PC code)
:arrow: change_audio_track_moskito_acc (called during the mosquito flight as one would expect)
:arrow: change_audio_track_moskito_dec (ditto)
:arrow: start_cd_gros_rayman (called during the intro with big Rayman)
:arrow: start_cd_gagne (intended to play the fanfare when Rayman reaches the exit sign)
:arrow: start_cd_perdu (intended to play Rayman's death sound from the CD)
:arrow: start_cd_suspence (called when showing the vignette where Betilla gets kidnapped)
:arrow: start_cd_replay (no idea what this one was for tbh, it's not called anywhere)
:arrow: start_cd_bbdead (called when a boss is defeated)
:arrow: start_cd_continue (called when you wake Rayman up on the game over / continue screen)
:arrow: start_cd_tempo (again, this isn't called anywhere, I don't know what it was for)
Anyway, all these functions exist in the PC version, but almost all of them were left empty (which means that in the original DOS releases, the Watcom compiler condensed them all down into the return points of adjacent non-empty ones). The only ones that weren't empty were start_cd_perdu, which redirects to PlayTchatchVignette so it plays Rayman's death sound as a normal effect instead of a CD track, and start_cd_bbdead, which just redirects to start_cd_rap (playing the menu music). Some of them would have been really easy to implement on PC (especially start_cd_continue, since that track was included on the flipping disc!) but they just left them blank, and even removed the calls to some of them. :?
RayCarrot wrote: Mon Apr 17, 2023 8:29 amAll that is to say, they most definitely used the same tools to create levels for all versions, including on Jaguar. But then how they separated the levels between versions is more unclear. The objects could very easily be copied, so I'm guessing they did that, and then made unique tile-maps for each version. We also know the PC version uses a later build than on PS1, so a lot of changes are probably just the result of them continuously tweaking the levels. That of course doesn't explain everything though.

But finally, let's look at the first level:
R1_PS1_JP - 1 01.png
MapJ1-1PS.jpg
R1_Saturn - 1 01.png
R1_PS1 - 1 01.png
R1_PC - 1 01.png

Quite a lot of minor changes over time here. The Ubisoft map is odd too, being like a mix between the PS1, PS1 JP and Saturn versions! We also know the Ubisoft maps were generated from Rayman Designer. There's a leftover function in there for converting a level to a bitmap in the same way as is seen here. This all makes sense with their editor being able to edit levels for all versions, but why does the Ubisoft map have only one color for the pink leaves? That's not the case in any other version.
I guess maybe the PCX / tilemaps used to render the Ubisoft maps were an older version?
RayCarrot wrote: Mon Apr 17, 2023 8:29 amAnd that raises more questions, like how did they handle PS1 palettes when editing the levels on PC? PC only supports 256 colors, while PS1 has no such limit.
Maybe they used some higher-colour graphics mode available on the graphics cards on certain PCs in the development studio, for example mode 6Fh of a "Cirrus CL-GD 5422/5426" (from the list at https://fd.lod.bz/rbil/interrup/video/1 ... able-00010)? They could have used that knowing that the development PCs in question had this mode available, but then for the actual PC release used only the standard mode 13h, to make sure customers wouldn't be tied to a particular graphics card.

That said, I also wonder why Bad Rayman's colours seem to be screwed up on every version other than PC. Perhaps the high-colour versions of his sprites were never tested properly, maybe because the Cake world was developed so late…
Sparkler53
Lum (UbiArt)
Posts: 7
Joined: Mon May 01, 2023 4:42 am
Tings: 35

Re: Rayman 1

Post by Sparkler53 »

Wow, I didn't know how underrated the DSi version was, it's my go-to way to play the game, It's Rayman, it's portable, and that's all I really need. Though my first exposure to Rayman 1 was on the iOS version. I know both are portable but I like pressing actual buttons and not tapping at a glass screen, ya know. Gotta have them tactile controls. And also the DSi version, from my knowledge, is based on the PS1 version and not the PC version with its slight differences. I've also heard online that people think the DSi version is a sloppy port, but it feels all fine to me. I've played the PS1 version and they both feel exactly the same, except for the camera of course.
Hunchman801
Bad Rayman
Posts: 87627
Joined: Thu Aug 07, 2003 6:50 pm
Location: Paris, France
Contact:
Tings: 640247

Re: Rayman 1

Post by Hunchman801 »

I've always found the visual alterations of the DSi version a bit funny and wondered what the rationale was. They're not bad, but why bother to make such changes for a simple port of the game?
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 »

Isn't the DSi version based on the GBA version, which is based on the PC version?
Sparkler53
Lum (UbiArt)
Posts: 7
Joined: Mon May 01, 2023 4:42 am
Tings: 35

Re: Rayman 1

Post by Sparkler53 »

Good question actually, maybe it is. Fun fact actually, I have the GBA game. I'm a retro collector and the GBA was the first retro thing I would get, and I got Rayman Advanced alongside it.
RayCarrot
Carmen
Posts: 2476
Joined: Sat Jan 11, 2014 5:46 pm
Tings: 40322

Re: Rayman 1

Post by RayCarrot »

PluMGMK wrote: Sun Apr 23, 2023 1:10 am
RayCarrot wrote: Mon Apr 17, 2023 8:29 amSomething which I've come to realize is just how much of their workflow was impacted by their choice to start with the Jaguar version. The Rayman Designer code is a goldmine when it comes to understanding how the developers created the game with a lot of leftover editor functions existing. I've been wanting to decompile that more some day, but I really don't like IDA :oops2:
It's been a long time since I've dived into my IDA database of RAYKIT.EXE, but I'm starting to feel like doing it again!
RayCarrot wrote: Mon Apr 17, 2023 8:29 amAnd sadly Ghidra doesn't support that exe format :(
I'm not familiar with Ghidra, but would it help if you could get a flat binary file with all the relocation fixups pre-applied? I have a tool that does something similar, which I could tweak a bit and release…
I'm not sure, but could be worth a try! On a related topic, would you know how to modify pointers in the exe? I'm not familiar at all with how the relocation works for this type of exe. Chacanger and I tried changing some pointer manually in the exe but it didn't change anything, so I guess it gets overwritten when loaded into memory.
PluMGMK wrote: Mon May 01, 2023 11:25 am Isn't the DSi version based on the GBA version, which is based on the PC version?
Sparkler53 wrote: Mon May 01, 2023 1:50 pm Good question actually, maybe it is. Fun fact actually, I have the GBA game. I'm a retro collector and the GBA was the first retro thing I would get, and I got Rayman Advanced alongside it.
Yep, the DSi version is based on the GBA version. That's why we got 7 cages in Bongo Hills as they forgot to remove the added GBA cage :P The one thing I know the DSi version takes from the PS1 version though is the worldmap. You can see it has the present on it which was removed in the PC (and thus also the GBA version). A rather odd change, but judging from a bunch of Rayman Advance interviews I've read it seems the studio responsible for porting the game had trouble working with the original Rayman 1 editor and its data and instead decided to extract the graphics, animations and maps from the PS1 and PC releases. So I guess it's all a bit of a mix of it. But the levels are all based on their PC counterparts, and so is the codebase.
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 »

RayCarrot wrote: Tue May 02, 2023 6:36 am I'm not sure, but could be worth a try!
All right, here's a tool:
flatten-pmw1.zip
(1.38 MiB) Downloaded 63 times
It's a polished-up version of one I've been using for a long time now, which spits everything out into one (sparse) file (instead of making two separate output files). You can just pass it the EXE name on the command line, or drag the EXE onto it. I'll publish the source on my GitHub when I feel like writing documentation :oops2:
RayCarrot wrote: Tue May 02, 2023 6:36 am On a related topic, would you know how to modify pointers in the exe? I'm not familiar at all with how the relocation works for this type of exe. Chacanger and I tried changing some pointer manually in the exe but it didn't change anything, so I guess it gets overwritten when loaded into memory.
In compressed PMW1 EXEs, it's pretty simple. There's a compressed relocation table somewhere in the EXE header, and each object in the EXE owns a certain number of entries in that table. Each entry has the type (always 7), the source address (where in the owning object the pointer is), the target object and the target address (where in the target object the pointer is supposed to point). Most relocations in Rayman's EXEs are owned by object 1 (TEXT) and target object 2 (DGROUP), though there are a few exceptions (e.g. for jump tables in the code).

For uncompressed Linear Executables, I think it might be more complicated, which is why all the tools I've written so far only deal with compressed PMW1 files :oops2: I can consult the PMODE/W source code to see how it handles them. I'm sure it only uses a tiny fraction of what's possible in the (poorly-documented!) LE format spec, so it should be tractable…
Sparkler53
Lum (UbiArt)
Posts: 7
Joined: Mon May 01, 2023 4:42 am
Tings: 35

Re: Rayman 1

Post by Sparkler53 »

RayCarrot wrote: Tue May 02, 2023 6:36 am
PluMGMK wrote: Mon May 01, 2023 11:25 am Isn't the DSi version based on the GBA version, which is based on the PC version?
Sparkler53 wrote: Mon May 01, 2023 1:50 pm Good question actually, maybe it is. Fun fact actually, I have the GBA game. I'm a retro collector and the GBA was the first retro thing I would get, and I got Rayman Advanced alongside it.
Yep, the DSi version is based on the GBA version. That's why we got 7 cages in Bongo Hills as they forgot to remove the added GBA cage :P The one thing I know the DSi version takes from the PS1 version though is the worldmap. You can see it has the present on it which was removed in the PC (and thus also the GBA version). A rather odd change, but judging from a bunch of Rayman Advance interviews I've read it seems the studio responsible for porting the game had trouble working with the original Rayman 1 editor and its data and instead decided to extract the graphics, animations and maps from the PS1 and PC releases. So I guess it's all a bit of a mix of it. But the levels are all based on their PC counterparts, and so is the codebase.
So I have been playing the PC version... To be 100% honest, I don't really know the changes between the PC and PS1 versions. I know they have some changes with cages and whatnot, but I don't know the details. But I actually just ordered a copy of the PS1 version today, so I'll finally be able to experience the original version. :mryellow:
Last edited by PluMGMK on Wed May 03, 2023 8:20 am, edited 1 time in total.
Reason: fixed quote
Chacanger
Golden Teensy
Posts: 172
Joined: Tue Aug 10, 2010 9:55 pm
Tings: 990

Re: Rayman 1

Post by Chacanger »

Sparkler53 wrote: Wed May 03, 2023 1:17 am so I'll finally be able to experience the original version. :mryellow:
The original version, you must be referring to the Atari Jaguar version right? :D

On that note, will you be getting the PAL, NTSC-J or NTSC version? the game vary's depending on what region you play too (So many different variations of the same game).
Sparkler53
Lum (UbiArt)
Posts: 7
Joined: Mon May 01, 2023 4:42 am
Tings: 35

Re: Rayman 1

Post by Sparkler53 »

I got the NTSC version (Btw didn't the PS1 version come out before the Jaguar version technically making it the first version of the game??)
Chacanger
Golden Teensy
Posts: 172
Joined: Tue Aug 10, 2010 9:55 pm
Tings: 990

Re: Rayman 1

Post by Chacanger »

Sparkler53 wrote: Sat May 06, 2023 6:24 pm I got the NTSC version (Btw didn't the PS1 version come out before the Jaguar version technically making it the first version of the game??)
Hmm now that you mention it... it's odd. On some websites the dates are completeley different to the other ones for each region, The wiki seems to be missing the original EU and JP (if that one exists) Jaguar release dates.

It looks like Wikipedia says the Atari Jaguar versions were released on the 1st in the EU and 19th for NA, whilst the PS1 version is later, but then again it's Wikipedia and we know that can be wrong.
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 »

Whatever the release dates, it's clear that development started on the Jaguar version quite some time before the others!

UPDATE:
PluMGMK wrote: Tue May 02, 2023 11:49 pm I'll publish the source on my GitHub when I feel like writing documentation :oops2:
OK, done! https://github.com/PluMGMK/flatten-pmw1 I also noticed a problem with object virtual sizes, which should be fixed in the new release.
Tribelle2026
Goth Teensy
Posts: 323
Joined: Fri Apr 09, 2021 2:32 am
Tings: 3110

Re: Rayman 1

Post by Tribelle2026 »

Does anyone know how much of Rayman 1's soundtrack was removed in the PC version?
dr_st
General
Posts: 3008
Joined: Sat Aug 25, 2012 5:52 pm
Tings: 82518

Re: Rayman 1

Post by dr_st »

If you go to https://raytunes.raymanpc.com/ and list the Rayman 1 (Main Series) tracks, you will find a bunch of tracks towards the end, with names starting with (PS1). These were removed in the PC version.
Tribelle2026
Goth Teensy
Posts: 323
Joined: Fri Apr 09, 2021 2:32 am
Tings: 3110

Re: Rayman 1

Post by Tribelle2026 »

Thanks!
Post Reply