The random ramblings of a French programmer living in Norway...
2023
← Efficient rasterizationEncounter and unfinished projects →
  Time Commando - The Saturn version
Tue 7th March 2023   
When Time Commando is mentioned, the PC and PlayStation versions are the first that comes to mind. These two were built internally at Adeline Software and where released around the same time.

But this is not the only version: There is a Saturn version of the game, published by Acclaim for the Japanese market.

The Sega Saturn

Often forgotten, the Saturn is a console from Sega released late 1994 between the Megadrive1 and the Dreamcast. Like the 3DO, the Jaguar and a few other contenders, it did not survive for long after the release of Sony's PlayStation.

A first revision Sega Saturn
A first revision Sega Saturn

The Megadrive has been quite successful, but unfortunately instead of preparing a proper successor, Sega decided to propose extensions to the machine, such as the Mega-CD and the 32x. While they definitely did result in a quite powerful system, it also fragmented the market.

Like the 32x add-on, the Saturn contains two Hitachi SH22 32bit RISC processors.

The Saturn was originally designed as a 2D power-house able to do 3D, while the PlayStation was designed to be very efficient at 3D while still allowing for 2D graphics.

Unfortunately that resulted in an architecture much more difficult to harness, compared to the PlayStation which used some quite traditional ways of doing things and was quite easy to learn.

Doing a component per component comparison of the two machines is a pointless exercise, so here is a screenshot of the wikipedia page that shows the problem.

Sega Saturn Technical Specifications (from Wikipedia)
Sega Saturn Technical Specifications (from Wikipedia)

I'm sure if you have a team of expert programmers with an unlimited amount of development time, they could achieve miracles by synchronizing all these CPUs (the two Hitachi and the 68000), DSPs and custom video processors.

Sega Saturn system diagram
Sega Saturn system diagram

On the PlayStation you just have the MIPS R3000A processor with the GTE3 to do all the 3D calculations, and then you send instructions to the GPU4 to draw triangles, lines, sprites, etc... using a simple but efficient system5 to sort objects in the scene.

Sony PlayStation system diagram
Sony PlayStation system diagram

And that's the same thing on the audio department where the Saturn can do more advanced effects than the PlayStation thanks to its fancy SCSP chip6 able to play 32 channels of either FM Synthesis or digital audio samples compared to the only 24 channels on the PlayStation SPU.

Unfortunately the Saturn does not support any form of hardware compression format, so as a result the PlayStation can store four times as much audio in its 512 KB of sample memory thanks to ADPCM compression.

To summarize, the PlayStation is like a cheap TIMEX LCD watch, while the Saturn is more like a complicated Swiss mechanism, but ultimately all you wanted was something that would give you the time of the day easily and reliably.

If you are interested by the way the machine works, here are a few interesting resources:
Enough with the hardware details, let see what this Saturn version of Time Commando looks like!

The Game Packaging

Since I did not already have this version of the game, I had to find one before the price became crazy high, and interestingly enough, the seller I used was already the one who sent me a Japanese version7 of Little Big Adventure PlayStation!

And as usual8, I received a beautifully packed game in perfect condition.

The Saturn box
The Saturn box

As you can see, it's nothing special, just a standard CD crystal case, with a 16 pages manual and the game disk itself.

Let's start with this short manual:

Front cover
Front cover

The small text at the bottom advises the player to read the instructions, and the green square is the recommended age.

Table of content
Table of content

Thank you very much for purchasing "Time Commando", please read these instructions carefuly.

Introduction
Introduction

Some explanations about the story, the spy who infects the Otega super secret computer, and then your mission objective: collect the blue chips and bring them to the combiner core terminal.

Menu
Menu

A brief explanation of what the various menu options are doing, as well as some information about the controls.

Operate
Operate

More information about the controls, specifically regarding the various combinations of buttons used to perform combos and use the weapons.

Explanation
Explanation

A description of the in-game user interface, how the lifes and virus level bar work, as well as information about weapons and ammunitions.

Bonus
Bonus

A description of the various bonus elements found in the level, and at the bottom righ a note regarding the difficultly level that suggests the player to vary their attacks if they are using a more advanced difficulty level.

Interestingly, they kept the visuals of the PlayStation manual:

These bonus do not actually look like that in the Saturn version!

Stage
Stage

And finally, a list of all the stages in the game, and on the right side notes regarding how to take care of the disc and the usual epilepsy warnings.

Back cover
Back cover

I can't read Japanese but the general meaning of content was relatively obvious, and the rest I checked using modern translation tools9.

One thing is certain: Other than Acclaim and Adeline Software International, no other studio or developer name is mentioned.

How does it look

I don't own a Saturn myself. I could probably have found an emulator to try the game, but fortunately we have YouTube, including this "long play" of the Saturn version of the game.


If you have played the game on PC or PlayStation, you probably noticed some significant visual differences in some areas, but otherwise this is definitely the same game, with the same intro sequence, the same type of menus, even have the level and cheat selection using the code wheel.

So how does it compare to the PSX and PC version?

I wanted to make an extensive list of the differences were, but fortunately someone already made a video showing the differences between the two versions!


Here is a summary of the most noticeable differences between the three versions

VersionPCPlayStationSaturn
CountriesWorldwideJapan only
Display
Resolution
320x240
320x480
640x480
640x240320x224
Loading speedFastSlower
CharactersShaded TexturesFlat Textures
ShadowsSemi transparentDithering
Death effectTriangle explosionBlue coloring
Frame rateStableOccasional drops

It's quite obvious that the Saturn version does not look as good as either the PlayStation or PC version, and I wanted to know why, so the next step was to find out who made the game and ask them some questions!

Credits

So, back to the first video, and yes, it includes the credits10, which allowed me to find out who actually worked on this specific version of the game, here they are!

Programing Manager: Kris Van Lier
Programing Manager: Kris Van Lier
Lead Programer: Sébastien Atoch
Lead Programer: Sébastien Atoch

We now have the name of the two main protagonists, Kris Van Lier11, and Sébastien Atoch12.

A bit later, in the scrolling section, we get a few more names, but interestingly there are still no mention of the actual name of the studio who made the port of the game!

Acclaim Japan
Acclaim Japan

The only name I recognized here is David Chomard13 from previous interactions when I was still working in Lyon.

Special Thanks
Special Thanks

After a bit of digging in Moby Games and LinkedIn, I managed to find them and found out they were working for Virtual Studio at the time.

Virtual Studio

Virtual Studio logo
Virtual Studio logo
Virtual Studio is a French development studio active from 1994 to 1999.

They did some work on DOS, PlayStation, Jaguar, and you guessed it, Saturn.

The most interesting thing about Virtual Studio, is that it's actually the reincarnation of Loriciel14, this company who was originally created to develop games for the Oric15!

Loriciel logo
Loriciel logo

So, how did the development go?

I managed to contact both Kris and Sébastien who agreed to answer my questions... at least what they could remember, after all this game was released 25 years ago16.

I also got in touch with Philippe Seban who had joined Loriciels very early and was the CEO of Virtual Studio during at the time.

The rest of this article contains an aggregation of information coming directly from the developers, with additional information have been added as notes at the bottom of the page.

Origins of the project

The Saturn version was a commercial initiative from Delphine software to publish Time Commando on more platforms.

People often mix-up Adeline and Delphine Software: They were two separate entities, each named after one of Paul de Senneville17's daughters.

The 1977 hit music "Ballade Pour Adeline", played by Richard Clayderman was composed by Paul de Senneville and is actually a celebration of Adeline birth.


Technically, Delphine was the biggest company, and was pretty much in control of Adeline regarding important financial decisions, which is why it was Delphine who was involved in the contractual part of the project.

Philippe Seban and Paul de Senneville knew each other, and Virtual Studio being one of the few studios with some Saturn development experience18 in France it made sense to ask them to work on that project.

Originally Virtual Studio was contracted to port Fade to Black19 from PSX to Saturn but after several months of waiting for the confirmation and assets it was finally decided they would port Time Commando instead of Fade to Black.

Ultimately the game was only released in Japan because it was the only region where a Saturn game could be marketed and distributed successfully seeing the small installed Saturn user base outside of Japan, and this is also the reason why the game was published by Acclaim who had a presence in Japan.

Meet the developers

The entire port of the game was done by only two persons (Kris and Sébastien), with a in-house QA team20 in France, but there were no artist involved to work on the assets.

Kris is Belgian, and has been active in video game development since 1995 where he worked on a number of games on a large variety of platforms ranging from Game Boy and Nintendo DS to Jaguar, Saturn, PlayStation and PC.

He is today the CTO of companies involved with videogame development, computer vision, XR21, as well as expert consultant in a number of European sponsored research groups.

On the project, he worked on the conversion tools to adapt all the PlayStation assets into something that could be used on the Saturn

Sébastien is French, and has been active in video game development since 1995, where he did among other things the port of the very first Far Cry game from PC to Xbox22.

In 2007 he started working as a Freelancer and these days he is working on AR, VR and multiplayer mobile gaming. He also used to be a member of the demo scene23 in multiple groups, including Melon Dezign.

His part of the work was mostly on making the code actually run and was also in charge of handling the approval process24 with SEGA.

The development process

All the code and assets came from Adeline, but apparently there was some back and forth as can be seen on this FAX25 from September 27 1996 sent by Virtual Studio to Adeline:

Fax from Virtual Studio
Fax from Virtual Studio

Which translated to English gives us that:

SEP 27 '96 13:26 VIRTUAL STUDIO

From: VIRTUAL STUDIO
  • Bernard Auré (Director of Development)
  • Kris Van Lier (Senior Programmer)
  • Sébastien Atoch (Programmer)

To: ADELINE SOFTWARE INTERNATIONAL
  • Olivier Lhermite

TIME COMMANDO SATURN VERSION
After a detailed study of the sources coming from the Playstation version of TIME COMMANDO, we come to the following conclusions:
  • we spend a lot of time deciphering the features of the optimized R3000 routines (direct access to the GTE registers),
  • a number of C routines from the PlayStation version are poorly readable.

Indeed, the understanding of code takes us more time than writing the equivalent code for SATURN. We would therefore like to obtain the totality of the PC sources with the maximum of functions in C in order to speed up porting.

We are also missing some resources as well as their description (format).

REQUESTS CONCERNING THE FOLLOWING MODULES OF THE LIBRARY PlayStation:
  • FONT: Explanations of the functions and the .BIN file format.
  • GRAPHICS: Explanations of the C and R3000 functions (especially agraphics.s) and VRAM accesses.
  • GTE: Explanations of the functionality of the routines (how the GTE is being used).
  • OTLIST: Explanations of the functions and availability of PC sources.
  • MENU: Explanations of the functions.
  • MOUSE: What is the use of this module?
  • OBJECT: Explanations of the functions and availability of PC sources (request made on 09/19/96 to Olivier Lhermite).
  • PALETTE: Explanations of the functions.
  • SOUND: We are still waiting for the following:
    • MIDI files,
    • AIFF files,
    • description of the SNG format.
  • SYS: Explanations of the functions + explanations of the use global structures and variables. Why the size of the INTR files.C and WCD.Is it ZERO bytes?
  • MACRO: Description of the macros.
  • SINUS: Format of the values.

From this email, I can conclude a few things:
  • The code of the PlayStation version of Time Command was not particularly easy to read
  • Many things were not documented
  • They hopped that there were C versions of the code available in the PC version
  • Some PC code made it to the PSX version (who need a mouse!)

In practice, most of the MIPS R3000 assembler code was implemented in Intel 80386 Assembler on the PC side. The core libraries (polygon display, 3D manipulations, color palette changes, etc...) were written in pure assembler for performance.

Kris remembers that they had two development kits26 from Cross products.

Cross products SNASM2 development kit
Cross products SNASM2 development kit

One was used by Sébastien to develop and port all runtime code on Saturn while Kris used the other one for previewing the data when working on the asset conversion.

Cross products Mirage CD Emulator
Cross products Mirage CD Emulator

Sébastien wrote a plugin for 3D Studio to export and view the Time Commando models on the Saturn, it evolved into a complete conversion tool where you could visualize all Time Commando 3D models and configure the texture quality with a few sliders controls and then preview it on Saturn.

Unfortunately, the Saturn development kit was not particularly good, the documentation was sorely lacking, and the support was not particularly good either.

Quads vs triangles

Converting PlayStation models to the Saturn was far from trivial:
  • The Saturn can only draw quadrangles, it cannot do triangles
  • The Saturn does not use texture pages or texture coordinates
  • The Saturn can draw textured or shaded elements but not simultaneously
  • Doing transparency effects on the Saturn fits into the "it's complicated" category

The Saturn was originally designed as a powerful sprite27 machine able to display a large quantity of rotated, scaled or distorted 2D images.

Technically it means it's totally possible to display any 3D model correctly, you just need to compute the right parameters, and point to the right source image to use for the texture mapping.

It is also possible to emulate triangles by duplicating the last point of the quad, resulting in a degenerate quad looking like a triangle.

So, why is that actually a problem?

Well, if you look at the image below, you can see how the 3D models were made at Adeline Software.

Stanley texture page
Stanley texture page

What you see here, is a single texture page28 containing all the textures for the entire hero.

When rendering the character we can specify for each corner of each triangle a set of 2D coordinates called "UV" defining which part of the texture page should be mapped on the triangle: This is very memory efficient.

On the Saturn on the other hand, there are no UV, which means each textured polgyon needed to refer to an individual image, so a model with 150 textured triangles would required 150 small sprites.

With Stanley, the difference is not massive because we had a dedicated page for the hero, and it's mostly non symmetrical, but for the enemies we used symmetry quite a lot, and the same texture locations would be reused multiple times over different triangles to give some variety at no cost.

On the Saturn each of these would require a separate unique new small texture, thus eating a large part of the texture budget.

To generate these small textures they used a tool on PC which would extract the texture coordinates from the PSX models, then using a software rasterizer would generated small textures29 ready to be used on the machine.

The tool would also take care of the special cases like when using texture windows for repeating patterns like what was used on the fur of the sabertooth tiger on the first level.

As a side note, the time invested on developing these tools for Time Commando was not entirelly wasted: The tool was later reused to generate optimal quads meshes for Rushdown (PC, PSX), the Nintendo DS version of Burnout Legends, etc...

This second image shows another big issue for the Saturn.

Stanley closeup
Stanley closeup

On this beautiful close-up of Stanley, we can see that the polygons around the next are not textured, they are simply using a Gouraud shading rasterizer to interpolate between the colors. The rest of the body is fully textured, but also appears to be shaded.

This combination of texture mapping and shading was possible on both the PC and the PlayStation, but unfortunately the Saturn can only do one of these at the same time, resulting in some pretty dramatic visual differences!

Saturn (left) vs PlayStation (right)
Saturn (left) vs PlayStation (right)

And with this last image, we can smoothly introduce the last topic: Transparency.

If you look at the feet of the characters, you'll see that on the Saturn the shadow is drawn as a dithered pattern, while on the PlayStation all the pixels under the shadow are darkened.

After having watched a number of very technical videos on the topic, let's just say that it's complicated.

Basically both the VDP1 and VDP2 can do transparency, but only in a very specific contexts, following very specific rules, and out of these specific contexts you end up with many side effects, like for exemple objects disappearing between the transparent object and the background.

If you are interested on the topic, the most interesting resource I found was Low Score Boy's video, which is also summarized in this blog article.


Make sure to enable subtitles!

The video background

On the PlayStation version of Time Commando, the rendering is relatively straightforward:
  • Each new video frame loaded from the CD contains a number of information:
    • The image itself is stored in video ram
    • The camera information position is used to setup the matrices in the GTE to transform the 3D coordinates of all dynamic elements
    • A list of rectangle coordinates and depth information is kept on the side
  • The image is used to draw a big rectangle covering the entire screen
  • The 3D objects (the hero, enemies, bonuses, ...) are inserted in the OT List based on their depth coordinate
  • The rectangles are also inserted in this OT List, using the video frame as a source texture
Then the frame is drawn, resulting of all the elements of the scene being drawn from back to front, each closer element overlapping the other, including all the parts of the pre-rendered scene which are supposed to be in front of the characters.

So for example, on this still frame from the Roman level, we have columns on each corner of the small basin, and also a large statue in the center.

Sorted object list and occlusion (playstation)
Sorted object list and occlusion (playstation)

When in movement, we can clearly see that all the bonuses pass properly behind the columns and the statue, and on this specific frame, one of the Roman soldiers is behind the statue.

It's all just done by redrawing 2D cutouts as sprites over the elements in the proper order.

The biggest issue was to optimize the list of elements so it was simultaneously accurate enough to follow the shapes, without requiring too many graphical elements for the PlayStation GPU.

On the Saturn they had to do things quite differently.
  • The same data is loaded from the disk and stored similarly
  • The video frame is stored in the VDP2 frame buffer
  • The 3D models are rendered into the VDP1 frame buffer
  • A software rasterizer goes through the list of rectangles and punches holes into the VDP1 frame buffer where objects are supposed to be obscured by elements of the video scene
  • The VDP1 frame buffer is composited on top of the VDP2 frame buffer resulting in something similar to what was done on the PlayStation

It's an interesting approach, and it obviously worked well!

Other differences

There are some other differences in the game, such as the "Press Start Button" message instead of "Demo", but these are most probably related to Sega's requirements on how the games should be designed on the platform.

From a technical point of view, the two major remaining differences are the screen resolution and the animated textures.

All three versions of the game use the same 320x200 pre-rendered background graphics for the scene, but that does not mean the actual animated 3D elements must be in the same resolution.

The PC version of the game allows the player to choose between 320x240 (VGA/MCGA), 320x480 (Double Height VGA/Mode X) and 640x480 resolution (SVGA) to accommodate the speed of their machine.

The PlayStation technically could run close to 640x480 resolution, but that would required the use of the interlaced mode - very uncomfortable for the eyes on many TV sets - and would have used a large part of the video memory which would have reduced the available texture memory. Instead we settled on a quite unusual 640x240 resolution where pixels are thinner than they are wide, which work quite well for a game like Time Commando which features many humanoid characters.

Unfortunately, the Saturn version is using a 320x224 screen resolution, resulting in a quite noticeably blocky appearance.

On this capture of the loading screen, you can see that the edges of the big triangle are much smoother on the PlayStation than they are on the Saturn version, and similarly on the PlayStation the yellow hand is much more detailed than the red one, and the sides of the circle are thinner than the top and bottom as well.

Loading screen on Saturn (left) and PlayStation (right)
Loading screen on Saturn (left) and PlayStation (right)

You can see how that helps on vertical 3D models on this next screenshots that show the sequence where the hero unloads the computer chips he collected in the level.

This also highlights the last big problem caused by the lack of UV mapping on the Saturn.

Unloading chips on Saturn (left) and PlayStation (right)
Unloading chips on Saturn (left) and PlayStation (right)

As you can see, on the PlayStation the objects are drawn using a funky plasma texture as well as textures containing holes.

On the PlayStation this effect can be achieved using three different methods:
  • Use a static texture and move the UVs of each triangle each frame
  • Don't touch the UV, and instead modify the texture
  • Don't touch the UV or the texture, and instead move the texture window
Each of these methods has different costs and gives slightly different results, but the bottom line is that they all work on the PlayStation, and none of these work on the Saturn.

Dynamically modifying the texture is definitely doable, but since every single polygon is using a dedicated texture, it would be very costly to change them all.

So anyway, that was the last big visual difference between the two games, so now we can talk about the performance.

Performance

Sébastien thinks that having two CPUs was unbalanced in comparison to the GPU itself which was alread outdated by the time the machine was released.

The Saturn GPU is better than that PlayStation for pure 2D workload, but when doing 3D it was limited in both features and performance.

Globally, Time Commando on Saturn runs relatively well, but on some scenes containing many enemies30 the frame rate drops to about 15 frames per second, seriously impacting the playability.

If they had artists working on the optimizing models instead of relying on automated conversion, they could have achieved a better visual result and some better performance but it would still probably not been on par with the PlayStation version.

He finally concluded: "What I can tell you, is that after such a challenging project, there's not much that can actually scare you!"

Epilogue

The game was released quite a while after the PC and PlayStation version, and as seen with the date on the fax, at the end of September 1996 they were still trying to get all the material to start the proper work.

Olivier Lhermite and myself left Adeline Software in April 1997, which means that technically they had no access to any support from us for the final year of the development.

It seems that the project was then put on pause for a few months while the direction decided if the game should be released worldwide or not, before realizing that it would probably make sense to only release the game in Japan, they were apparently quite close from canceling the whole project.

Kris worked on the project until the game was about 99% complete, then he left Sébastien handle the approval process, which apparently was quite slow.

The game was finally released the 5 march 1998, and Virtual Studio would fill for bankrupcy about one year after.

Kris was the last employee out of around 70 and was working31 in an empty building to finish Rushdown32.

Sébastien never actually got a final version of the game.



1. Called Genesis in the US
2. See the SuperH article on Wikipedia
3. "Geometric Transformation Engine" a coprocessor that resides inside the main CPU processor, giving it additional vector math instructions used for 3D graphics, lighting, geometry, polygon and coordinate transformations.
4. "Graphics processing unit"
5. The scene is rendered as a linked list of graphical primitives sorted from back to front called 'OT Lists' (Ordering Table)
6. "Saturn Custom Sound Processor", controlled by a dedicated 68000 CPU
7. The version not made by Adeline
8. Sellers from the western world could take lessons from Japanese sellers
9. If there are errors, I blame Apple's translation application!
10. Unfortunate the names of the three Virtual Studio employees credited have replaced the names of the original PlayStation developers who have not been added later in the credits, so just for historical purpose, you should imagine that Emmanuel Oualid, Olivier Lhermite and Mickaël Pointier are somewhere in the 'Special Thanks' section
14. Loriciels dropped the final 's' around 1989
15. See my old Oriclopedia video about Loriciels
16. In 1998, two years after the PC and PlayStation versions of the game
18. S.T.O.R.M. for ASC/EA that was supposed to be released on PC/PSX and Saturn but the PSX platform was abandoned because there was limited interest for 2D games anymore and the Saturn market was too small to be viable, as well a Saturn prototype of Rushdown (Canal+/Infogrames/EA) done by Sébastien Atoch) which was also stopped because the Saturn market was too small to be commercially viable so Rushdown was only released on PSX and PC
19. The sequel to Flashback from a story point of view, but the change from 2D to 3D resulted in a very different type of gameplay.
20. Under the leadership of Vincent Noiret and David Juhens
21. XR covers both VR (Virtual Reality) and AR (Augmented Reality)
24. On console development, the games need to follow a strict set of rules regarding performance, loading time durations, respect of standards for menus and controls, etc...
25. It was common to use facsimile for bug reports, requests, contracts, etc... at the time, because not everybody had access to email
26. See this page about Sega Saturn development kits
27. See Sprite on Wikipedia
28. We used 256x256 pixels pages, in 256 colors mode
29. The texture was pre-distorted so it would appear correct when displayed on the Saturn
30. A good example is the start of the western level
31. One morning Kris SONY monitors were taken away by a bailiff and he had to call canal+ to finally get them back a couple hours later.
32. A downhill racing game released on PlayStation
comments powered by Disqus