Hey guys, don't forget about the Mega Drive version of Sonic 3D Flickie's Island. That was just the same as the Saturn version apart from the lack in colours and 3D Bonus stage. Yakumo
Gaijin, yours was quick to me Alien, sorry for being pissy, hehe Yakumo, already mentioned MD version ages ago in post too not forgotten
Here's a REALLY late reply to the messages. The Genesis version of Sonic 3D Blast was developed first, and the Saturn version was a port because Sega didn't get good feedback about the 3D Sonic they were developing for the Saturn. The Saturn version was started at the beginning of July and was in stores for Thanksgiving. I wrote a program that took the 68000 assembly source code and converted it into C++, the artists re-rendered the sprites (they were done in Maya I think, and then converted to 16 colors for the Genesis and 256 colors for the Saturn). My brother worked on some interface code, that would allow the hardware sprites on the Genesis to be mapped to the Saturn equivalents, and to draw the map (which went from 256 16 color characters to 2048 characters 256 color characters). I think he did the environmental effects (foggy effect and rain drops in one of the levels) whilst I was writing the converter. The Genesis version was finished at the end of September, and so I ported that code with my 68k2c program and then I had to add memory management (the Saturn had 2MB of ram, but the graphics took twice as much memory as the Genesis version, which was on a 4MB rom). Background music was handled as red book audio files on the CD, and then I spent the last 2 weeks adding extra graphical features (such as trees that would drop snow as the player approached) that didn't affect the game play but enhanced the look and feel of the game. I think the in game maps were drawn as a screen, with embedded font due to the limited time we had to develop the game. The bonus level was delivered to us from Sega of Japan, and we had nothing to do with the implementation of that (I think it came from the aborted game). The same code was used in the PC version, although it used big endian coding, so every time a 32 bit value from memory was read it was swapped (this meant we could keep all the data structures identical). Since we didn't have the code for the Saturn bonus level, my brother wrote the bonus level for the PC based on the Genesis version of the game. Neil Harding
So was thos game developed in Liverpool UK or the US? I only ask because you say it was in stores for thanksgiving (whenever that is). Also, do you know why Sonic 3D didn't get a Japanese release until late 1998? I think it was almost one and a half years after the UK release. Yakumo
It was developed in Southport (about 12 miles from Liverpool) and Manchester. Thanksgiving is a US holiday at the end of November (the 4th Thursday of November), and it basically starts the Christmas season of shopping in America (in England, I think Christmas season starts after the August Bank Holiday ). The European versions were released in the Spring of the next year (I can't remember which languages we did) and the Japanese version was finished at the same time. I've got no idea why it was not released in Japan for such a long time though.
Very interesting stuff. Writing a program to convert 68k assembly code into C++ doesn't sound like a simple thing to do.
Mr. Harding, thank you very much for taking the time to visit the forums and enlightening us about Sonic 3D's development, it's a privilege. I'm a fan of both versions. About the big Japanese release gap, was there ever a Japanese Mega Drive version planned anyhow? I ask because by the time the game would have shipped in North America and Europe, the Mega Drive would already be a dead platform in Japan, and Sega of Japan would only focus on Saturn there too. So I would think a Japanese MD release would not have been feasible. Yet, we still saw some late MD software come out in Japan.
What a fantastic post by Neil Harding. From what I can gather, the bonus levels of the Saturn version were actually produced by Sonic Team. Peter Morawiec had originally pitched his "Sonic 3D Pool" concept for this position, and despite already being in a virtually complete form this was rejected altogether (supposedly because of its previous connections with the so-called Project Condor phase of Sonic Xtreme's development). Rather than go with a recycled idea from an abandoned title, a remake of the Sonic 2 special stages was favoured, which makes sense when you consider how popular that particular game was back in the day. Also, it probably helped that the end result was a far superior showcase of the Saturn's power at a time such examples were quite thin on the ground. Based on the leaked tech demo prototype, it's clear just how much effort went into this conversion, with the Megadrive code up and running by the point that build was produced. However, many of the improvements mentioned were yet to be implemented, especially in later zones. Hopefully this brilliant thread will continue... few pieces of software have this much technical information written about them so openly! One thing I've never been able to understand is why Sonic 3D's Japanese edition was significantly delayed to co-incide with the launch of Sonic Adventure on the Dreamcast and repackaged to incorporate the character's then-new redesign - did Sega of Japan not have enough faith in this as a standalone release much earlier, or were there other reasons for this decision being made?
Thank you for the information!! This is really fantastic. I totally LOVE this game and it's so interesting to know about it this way. The music is just beautiful. Your "extra graphical features" were gorgeous. And the 3D level is really really great. So smooth and fun. It's a great game! I don't know why, but looks like only Sonic fans really like it. People like to talk about it in a negative way, but the way it is, is just gorgeous. When you talk that something was done because the limited time, looks like it wasn't exactly the way you wanted. But the way it was released was perfect for me. Thank you.
Gary Vine and I started to convert the assembly language by hand, and it took around 1 day to convert 1 source file (there were around 40 files if I remember correctly), but the game was still in development so each time a file was changed we had to check it and see what was different and then redo that section. So it would take another hour or two each time a file was changed. So I wrote the 68K2C program, with the idea it would do most of the tedious part of the conversion and then we would hand code the sections it couldn't handle. Whilst I was doing that, Gary was working on the PC version (Direct X version 1 I think), it was designed to be able to run on a Pentium at 90 Mzh. The 68K2C program would keep track of instructions that modified the condition code flag, but it would care if there was a branch afterwards. I included the assembly language as comments in the C code, so we could check if there was a problem. I used a union so that I could refer to .b = (byte), .w = (word 16 bits), and .l = (long 32 bits). D0.W = 10; //move.w #10,D0 D1.W += D0.W; //add.w d1,d0 moveSprite(); //jsr moveSprite() D1.W += D0.W; //add.w d1,d0 if (D1.W > 0) goto finish; //bge finish The 68000 source code was optimized so it would do stuff like addq #4,A7 which skips the top value from the stack (that means don't return to where you came from, but go back to where that was called). So I built a list of routines where that could happen when it was converting the program, so that it could treat those as a special case. I made those routines return a bool value (true or false), and the code became if (moveSonic()) return; //jsr moveSonic There were a few instructions that were converted into macros because there is no C equivalent, such as rotate. Neil Harding
No, but I've done games on Atari ST, Commodore Amiga, C64, Sega Game Gear, Sega Master System, Gameboy Color, Gameboy Advance, PC and mobile phones.