Tuesday, April 24, 2007

FreeSynd version 0.2 released

The never ending effort to recreate a game from 1993 continues. There's now nine developers in the project and none of us do much. Every now and then I get bored and fix something.. go to check it in and discover that, shock, someone else has checked something in too! Then I have to update and resolve conflicts. Take the good with the bad I guess.

Anyway, in release 0.2 you will be happy to discover that we have done some work to get sound faithfully reproduced. For a while, we were focusing on music and trying to get the SDL midi synthesiser to play back this ancient XMIDI format. Believe it or not, this was actually acheived. Slight problem though, Syndicate used custom instruments. This was not uncommon at the time. The result was that the music just didn't sound good.. but it was good enough to ignore for a while.

Having declared that I wasn't going to touch sound.. I got bored one day and changed my mind. I told myself that I really ment I wasn't going to touch music so fiddling with the sound effects was fine. Turns out the sound effects were stored in the data files in much the same way as the sprites are, so it wasn't difficult to get it going. Pretty soon I had the whooshy menu sounds going.. so then I moved onto the weapons and other in-game sounds.

After completing that I figured, what the hell, might as well look at music. Turns out that SDL_Mixer uses a library called timidity to convert MIDI to wav output.. I actually thought it used whatever real MIDI hardware you had.. but apparently not. Anyway, SDL_Mixer will read a file called timidity.cfg in the current directory, in which you can specify custom instruments. You can download packs of these instruments, along with a suitable config file, from various places on the web. At first I figured this was the solution to the custom instrument problem.

Unfortunately, Syndicate predates all this stuff. Sure, MIDI was around when Syndicate came out. Sure, XMIDI is a MIDI format. But your average home PC that Syndicate ran on didn't have MIDI hardware.. it had an adlib card, or a sound blaster.. so that's what Bullfrog made their music for. Some people owned Amigas, and I'm sure Syndicate for the Amiga used the Amiga MIDI hardware to play beautiful sound.. but on a PC of the day, the best you could hope for was that the user had a Gravis Ultra Sound card.. and that's was so rare that Bullfrog never bothered to release GUS support for Syndicate.

Which is a shame, cause it turns out that the instrument format used by timidity is none other than the GUS instrument patch format. So, if Bullfrog had supported the GUS when they released Syndicate, we'd have faithful XMIDI playback right now. But they didn't.

Of course, if anyone out there knows how to make GUS patches from a sample.opl file, please, send me an email.

Instead, what I did was take some advice that someone gave me a while ago: just press CTRL-F6 in dosbox and save a WAV of the original game music. I then edited the wav in Audacity, exported it as an mp3, dumped it in the FreeSynd directory and told SDL_Mixer to play it. I did this for the intro and the great mood music for actual gameplay.

Of course, that gave me the problem that the intro music (and sound effects) were not synchronized with the FLI playback. So I tried fiddling with the frames-per-second of the FLI.. that gave me about half a solution.. but the real problem was that there are actual pauses in the intro.. there's a big table of them. They mainly correspond with those captions you see down the bottom of the screen (eg "CITY NAME: NEW HESSEN EUROPE") which I also wasn't doing. Once I started displaying the captions and doing the pauses, the mp3 started to line up.

So there ya go.. another release of FreeSynd. Right on track to being feature complete by 2013.

31 comments:

  1. Bit late, but congrats on the latest release -- this project's looking really good already.

    ReplyDelete
  2. Just come across this page. Reguarding the Amiga, there was no MIDI support in hardware. Also, in the Amiga version the music is stored as plain MOD files (compressed with RNC). There is plenty of open source MOD player code around and MOD 2 MIDI convertors.

    ReplyDelete
  3. Alternative to rewriting: get the source of DosBox, create a binder program that puts
    DosBox and an in-memory filing system into one executable, and preload the filing
    system with the executable and associated data files. (It doesn't need to be a real
    filing system, it only needs to be visible to the application under dosbox - so you could
    write it as part of the dosbox code). Then at the end of the day you have a winxp/linux
    executable with no mess to install or clean up afterwards, and a lot less work that reimplementing the complete program!

    ReplyDelete
  4. This comment has been removed by the author.

    ReplyDelete
  5. Hope to see more from FreeSynd, been following it for awhile and both games are excellent. :)

    ReplyDelete
  6. "Alternative to rewriting: get the source of DosBox, create a binder program that puts
    DosBox and an in-memory filing system into one executable, and preload the filing
    system with the executable and associated data files. (It doesn't need to be a real
    filing system, it only needs to be visible to the application under dosbox - so you could
    write it as part of the dosbox code). Then at the end of the day you have a winxp/linux
    executable with no mess to install or clean up afterwards, and a lot less work that reimplementing the complete program!"

    You also learn a lot less in the process, DosBox releases sometimes break compatibility from release to release and it would be more stable to have the game re-interpreted, plus the possibilities for modding...

    Also, which version came first... Amiga or DOS? Was just wondering because I always found it odd how people would call games, 'amiga' or 'dos' classics when they aren't exclusive to those systsems.

    ReplyDelete
  7. Hi just discovered this page while looking for music from the original game.

    How do I run this on mac osx? What do i need

    thanks

    ReplyDelete
  8. Hello guys,

    I just came to this page while searching things about XMIDI. Really great all the work you've been done. I remember playing a lot this game when it came out.

    Well, I'm doing also a reverse of the game Little Big Adventure (prequengine at sf.net) and I'm also with the xmidi problem. Can't someone help me get this to work?! I'll appreciate.

    Thanks in advance and luck for the project,

    ReplyDelete
  9. This comment has been removed by a blog administrator.

    ReplyDelete
  10. 素敵な出 会 いで愛を育む♪理想の人と楽しめる関係を築きませんか?mコミュでしか味わえない幸せを掴みましょう

    ReplyDelete
  11. スタービーチで会える!?理想の異性をGETしよう☆素敵な出会いばかりだから求めている関係も作りやすい!!貴方が求めているのはどういった恋ですか?

    ReplyDelete
  12. 他の人が言ってる名言や格言って良い事言ってるな~とか思ってる方、名言チェッカーで今日から自分に相応しい言葉を見つけませんか!!これでどんな人にも一目置かれる存在に為れますよ

    ReplyDelete
  13. mixiをも凌駕する出会い率!!出会いをするならここしかない♪mixiより出会えてしまうこのサイト。一度ハマれば辞めれません。スタービーチで素敵な出会いをしちゃいましょう

    ReplyDelete
  14. モバゲーで出会いをすれば楽しい事は間違いありません。暑いからこそ出会いを楽しむべきなのです。登録無料で簡単に利用可能!

    ReplyDelete
  15. モバゲータウンでは恋愛から出合いまでのキッカケをつかめる無料のコミュニティサイトです。常時サポートスタッフが掲示板をチェック、サクラや業者を排除しておりますので安心してご利用いただけます

    ReplyDelete
  16. グリーで提供しているのは他社にはできない出 会 い。質の悪い出 会 いよりも質の良いものを提供しております。体験してもらえれば違いは一目瞭然

    ReplyDelete
  17. スタビが今一番アツイのはご存じでしょうか?夏休みで出会いを探している娘とすぐに会えちゃうんです。登録無料でここまで出会える所は他には存在しません。今登録して良いパートナーに巡り合おう

    ReplyDelete
  18. 出会いのシーズン、夏到来!スタービーチでご近所さんと知り合っちゃおう!ひと夏の体験も女の子は求めている

    ReplyDelete
  19. モバゲーでついに出会いができる!?楽しめる出会い、求めていた出会いはココから始まる。素敵な出会いでまずは関係づくりwしていきましょう

    ReplyDelete
  20. greeで素敵な時間を過ごしたい・・・そんな願望を叶えてくれるサイト誕生!!今までにないドキドキ感と興奮をこのグリーで楽しみましょう

    ReplyDelete
  21. スタビで出会いができる!!いつでもどこでも出会いが可能なスタービーチで最高の出会いをしてみませんか

    ReplyDelete
  22. 簡単な出逢いはココでできる☆素敵な出逢いをmコミュで体験していきませんか?楽しめる出逢いを経験するならここしかない!!まずはお試しを

    ReplyDelete
  23. 新時代突入!ツイッターで始まる出逢い…ここでしかできない出逢いが新しい風を巻き起こす!!素敵な巡りあわせを体験していこう!

    ReplyDelete
  24. あなたの秘められたSM度がわかるSMチェッカー!簡単な質問に答えるだけで自分の隠された部分が分かります!みんなで試してみよう

    ReplyDelete
  25. 京都・大阪でWEB制作を中心に活動しています。

    ReplyDelete
  26. 女性向けのお洋服を販売してます

    ReplyDelete
  27. 全国のデリヘルを中心に店舗型ヘルスやソープ等の情報

    ReplyDelete
  28. もうすぐ年末、何かとお金が必要な時期に朗報!!楽して稼げる高額アルバイトを紹介します。女性とおしゃべりしたり、流れでSEXしたりと、普通に女性と接するだけで後腐れなく稼ぐ事ができますよ。女性が苦手な方にはしゃべる練習にもなるので、一石二鳥ですよ

    ReplyDelete
  29. もうすぐ年末、何かとお金が必要な時期に朗報!!楽して稼げる高額アルバイトを紹介します。家に居ながらにして驚きの高収入を得られます。年末年始をリッチに過ごしたい人必見!

    ReplyDelete
  30. Wonderful post shared here. Great article and thanks for sharing.

    ReplyDelete