home *** CD-ROM | disk | FTP | other *** search
/ The Best of Mecomp Multimedia 2 / MECOMP-CD-II.iso / amiga / sound / myst / docs / myst.txt < prev    next >
Encoding:
Text File  |  1998-01-14  |  30.6 KB  |  649 lines

  1.  
  2.  
  3.             MYST, The YM2149 ST Emulator
  4.            © 1997-98 by Nicolas Pomarede (Mr.Styckx)
  5.             release 1.0 (15/01/1998)
  6.  
  7.                 -------------
  8.                   MAIN DOC
  9.                 -------------
  10.  
  11.  
  12.  
  13. ================================================================================
  14.  
  15.  
  16. Introduction
  17. Distribution
  18. Requirement
  19. Installation
  20. The Story Behind It
  21. Technical Words
  22. Bonus Screen
  23. History
  24. Acknowledgements
  25. Contact Address
  26.  
  27.  
  28. ================================================================================
  29.  
  30. Introduction
  31. ------------
  32.  
  33. MYST is an emulator able to play musics for the Yamaha YM-2149 soundchip, which
  34. was used on the Atari ST. It consists of two main programs : a player
  35. compatible with EaglePlayer and DeliTracker, and a binary file which just
  36. generate Amiga sounds depending on the state of the emulator registers. This
  37. means that although MYST is specialized in emulating ST songs, there's a
  38. standalone binary which could be incorporated in your own programs if you want,
  39. for example, to emulate Amstrad CPC or ZX Spectrum musics (these computers used
  40. the AY version of the chip, which had the same registers, but a different
  41. clock speed).
  42.  
  43. MYST currently supports all known effects used on Atari ST, that is any number
  44. of samples at the same time, handling of hardware enveloppes, as well as
  45. emulation of timer generated enveloppes (the famous 'SID env', named so because
  46. they emulate the C64 square env behaviour).
  47.  
  48. MYST also provides a general header interface, useful to store informations
  49. about the composer, the number of songs, the replay time, ... as well as a
  50. general mechanism to init and play absolute addressing replay or music with
  51. replay and data in different files. This header can be used on both Amiga and
  52. ST, so you should be able to play all the musics included on Atari ST also (see
  53. YMST.format for possible restrictions on musics using timer). Since the header
  54. allows for hardware abstraction, this could also be a good way of playing these
  55. tunes on PC (you would need a 68000, but you wouldn't have to care about
  56. hardware addressing specific to the ST).
  57.  
  58. The header allows 3 types of music files :
  59.     - internal replay : replay and data are stored in the same file.
  60.     - external replay : the file is only a replay, used to play specific
  61.         data file. Useful for musics sharing the same replay.
  62.     - music data : only the data. The file contains the name of the
  63.         required replay (should be in the same directory).
  64.  
  65. The goal of MYST is to provide a suitable interface to collect and play all
  66. available songs, thus creating the biggest ST musics collection ever. All
  67. musics are stored in their original format (that is exactly the same as what
  68. the author wrote) to ensure the maximum respect of the author's work ; all
  69. patching and relocating occur after. This means that if you don't like MYST at
  70. all, you can extract the original replay and music data from the MYST file, and
  71. you will obtain absolutly the same data that was in the game or demo the music
  72. comes from (so it should always be possible to play the music on ST in case the
  73. header doesn't work).
  74.  
  75.  
  76.  
  77. ================================================================================
  78.  
  79. Distribution
  80. ------------
  81.  
  82. MYST is FREEWARE. This means you can copy it and redistribute it as you like.
  83. However, you shouldn't make any profit with MYST, and all material used to
  84. distribute shouldn't be sold for more than the cost of reproduction and
  85. distribution. In other words, it's forbiden to make any profit with MYST (I
  86. release it as FREE, so I won't accept other people make money on my back).
  87.  
  88. You can of course put the MYST distribution on any Internet ftp or www site you
  89. like, but only if you respect one of these 2 conditions:
  90.  - you either put all the files of this distibution in their original archived
  91.    state.
  92.  - or you put only the files you like, BUT then you MUST give some pointers to
  93.    some ftp or www sites containing the whole distribution (the main
  94.    distribution site for MYST will be the Aminet archive, which has many
  95.    mirrors around the globe and provide quality archiving since many years).
  96.  
  97. Although MYST is freeware and don't require you to send me any money, I would
  98. welcome any gift ; I'm especially looking for any CD compilations of all the
  99. games that were released on ST, to be able to convert more and more musics. So
  100. if you have some CD with games or demos compilations and would like to
  101. participate to the development of the biggest ST music collection ever, don'
  102. hesitate to contact me. Also if you don't have anything to add to MYST but just
  103. like the concept, mail me your suggestions and/or remarks.
  104.  
  105.  
  106.  
  107. ================================================================================
  108.  
  109. Requirement
  110. -----------
  111.  
  112. Since MYST was developed on an A500 with OS1.3 and 2.1, there shouldn't be any
  113. severe hardware requirements. The YMPlayer was tested with both EaglePlayer
  114. 1.54 and DeliTracker II (I wasn' able to test it under Eagleplayer 2, since it
  115. requires a 68020). The only memory used is the one to load YMPlayer in chip
  116. memory (that is less than 50 Kb). Of course, you then need enough memory to
  117. load the desired YMST file (files are loaded in CHIP memory, in case some
  118. samples are used). All in all, even a simple A500 with only .5 Mb of CHIP
  119. should be able to play tunes.
  120. The YMPlayer was written with Eagleplayer support in mind (sorry for all
  121. DeliTracker lovers, but I think EP is really better, and v1.54 still support my
  122. good old OS 1.3, thus saving me 0.5 Mb of FAST ram needed to load the OS 2.1),
  123. this means that I've added sample info support, so you can have some nice
  124. quadrascopes floating on your screen showing the generated waveforms, as well
  125. as some info on the current music (composer, year, ...). Of course, subsongs
  126. are accessible from both EP and DT.
  127.  
  128.  
  129.  
  130. ================================================================================
  131.  
  132. Installation
  133. ------------
  134.  
  135. First, you need of course to have Eagleplayer and/or Delitracker installed
  136. before. There's only one file needed : YMPlayer. Copy it in your standard
  137. player directory (if you don't remember where is this dir, choose add player in
  138. EP/DT, this will open a file selector in your current player dir ; note the
  139. path and copy YMPLayer in it, and that's all).
  140.  
  141. If using EaglePlayer, don't forget to add a line looking like the following in
  142. envarc:eagleplayers/eagleplayers.batch :
  143.  
  144. YM.*    =    "path/of/your/player/dir/YMPlayer"
  145. This will increase recognition of YMST files when loading them.
  146.  
  147. You can then create a dir anywhere you like (e.g. at the same place you usually
  148. keep your other music files) and copy all the files from the YM2149 directory
  149. in it.
  150.  
  151. There isn't anything else to do, so I don't think installation requires a
  152. script or something like that.
  153.  
  154. If you want to save some disk space, I would also recommend you to pack all the
  155. YM.* file with xpk (which is automatically depacked by EP/DT). I've personally
  156. used xpkMASH, which is as fast as NUKE and has better compression ratio. You
  157. can expect an average gain of 50% or more.
  158.  
  159.  
  160.  
  161.  
  162. ================================================================================
  163.  
  164. The Story Behind It
  165. -------------------
  166.  
  167. Everything started in 1991 (yes, more than 6 years ago ! In fact, with this
  168. program, I think I beat the record of the most delayed production ever :).
  169.  
  170. At that time, I owned both an Atari ST and an Amiga, and was happily coding on
  171. both of them. You certainly never saw many of my works, because I wasn't very
  172. interested in coding and releasing whole demos, and was just interested in
  173. finding the most optimized code for the fun ; I wrote some routines I was quite
  174. proud of, such as my own ST hardware scroller in summer 1990 (and without
  175. ripping anybody's code :), or also my own 4-pixel hardware scroller, and other
  176. things like very fast packer/depacker. Only finished production I participated
  177. to was the 'No Cooper' demo from my friends 1984 released in late 1991.
  178.  
  179. Although the Amiga hardware superiority was getting clearer and clearer
  180. compared to the ST one, I thought that the ST really has very good 'synthetic'
  181. songs with very good musicians such as Jochen Hippel. Then Jochen Hippel
  182. started converting some tunes on Amiga (the first one I heard was 'Comic
  183. Bakery' in a Hurricane Intro), and I thought "if ST musics sound quite nice on
  184. Amiga, why not converting more of them ?". Since Jochen already converted his
  185. own tunes, I decided to convert some Count Zero tunes (this was only some
  186. months after the 'Decade Demo', and I thought Count Zero tunes were really
  187. original and would provide great sound on Amiga).
  188. I then dissassembled CZ replay, and reassembled it on Amiga, replacing each YM
  189. acces by an access to the Amiga sound registers (with a 2 bytes sample, you can
  190. play roughly the same sound as the ST by putting a per value of 14.3 * STper in
  191. Amiga regs). My first emulator played one ST voice on one Amiga voice and used
  192. the fourth Amiga voice to play white noise sample. Using a timer to emulate
  193. volume variation (for enveloppes), this gave some really good results.
  194. Unfortunately, converting other musics was quite tedious, since I had to
  195. dissassemble and reassemble every music I wanted to emulate.
  196. I then wrote a cleaner version, with a standalone YM2149 emulator. You just
  197. needed to copy the values sent by the ST replay to the YM2149 in an emulator
  198. buffer, and the emulator used these values to generate the correct sound. This
  199. method is still used : to emulate a replay, you need to patch a few bytes to
  200. copy registers values into the emulator buffer instead of accessing directly
  201. the YM2149. This is much easier, 'cause once you've adapted (ie patched) one
  202. tune, you can improve/debug the emulator without having to repatch the music.
  203.  
  204. After succesfully converting a few tunes, I decided to convert some more
  205. difficult tunes : the ones from the Digi Department of the B.I.G. demo. Most of
  206. these musics already existed for the Amiga Soundtracker, but I thought Mad Max
  207. versions were really great and deserved being spread also on Amiga. This was
  208. really hard work, because the ST used a base replay freq of approx. 10 kHz, but
  209. the emulated sample frequence could be up to 135 kHz !! As the Amiga max
  210. frequence is 'only' 28 kHz, I had to build several versions of the same sample
  211. with oversampling to simulate higher frequencies (skipping one, two, three or
  212. four bytes) and use heavy audio interrupts to smoothly chain the different
  213. parts of the same sample when the frequency changed from 20 kHz to 120 kHz. In
  214. fact, each sample is divided in small pieces, whose address is changed on every
  215. VBL. Really tricky if you see what I try to explain, but I think the result is
  216. really close to the original ST version (and with extra stereo effects!) ans
  217. you shouldn't be able to heard transition between the many pieces of each
  218. sample.
  219.  
  220. Since I then had a really similar Digital Department screen to the ST, I
  221. decided to convert the whole B.I.G. demo as an homage to The Exceptions. As the
  222. B.I.G. Demo wasn't very technical, it was quite easy to port it to the Amiga
  223. (using the copper and the blitter, it was really easy in fact), and in summer
  224. 1993 I came up with a conversion after a few days (by the way you can start to
  225. note that I dropped emulation coding for more than one year, this is just the
  226. beginning ;). Then I converted more musics from other ST composers, but not on
  227. a regular basis, just for fun from time to time. Then in summer 1995, I finally
  228. decided to code also the sub screens of the B.I.G. Demo (yes, it now makes
  229. three years that I started the conversion ...). I then put the final touch to
  230. it in summer 1997.
  231.  
  232. Between 1992 and 1996, I collected a few tunes and converted them, but it
  233. wasn't really significant. Then, in 1996, I had a few months of spare time
  234. after succesfully "shortening" my military service and before starting to work
  235. (I was then 23 years old). I then decided to completly recode the emulator to
  236. support noise+copro mixing on the same Amiga voice with independant volume
  237. enveloppe, without using a timer. The timers provide some quite precise
  238. enveloppe generation, but it is much risky under the Amiga OS, since timer
  239. could be used by the OS for keyboard, printer, ... So I coded some complete
  240. mixing routines for noise and enveloppe, and added an easy support for samples
  241. and SID env on any voice.
  242.  
  243. This new emulator was quite rapidly rewritten, and then I started collecting
  244. tunes from all the games and demos I had ; in fact this is really what took me
  245. many time, because of all the protections, packers and other routine I had to
  246. cope with. But anyway, I now have quite an impressive list of tunes I think
  247. (considering that I ripped nearly everything myself) and the result should be
  248. good enough to bring back memories of all those great demos and games that
  249. helped the ST in being one of the best computer of the 90'.
  250.  
  251. A final note about ripping music : believe it or not, but approximately 95 % of
  252. all the musics I converted where ripped directly on Amiga. I use my own disk
  253. routine (allows me to read any kind of ST disk format), and then decode/depack
  254. everything on Amiga. This means that all music are saved in their original
  255. state (I don't like the technique which consists in running the game, doing a
  256. reset and then hunting for music in memory). Working on Amiga is really faster,
  257. because I can store things on my HD and I have more RAM than my ST has (btw, my
  258. poor config is a good old A500 with an SCSI HD and 3 Mb RAM). Of course
  259. skipping demo protection was sometime really tough, but I've always managed in
  260. finding the coding and packer used to extract the exact music data (without
  261. extraneous garbage, such as pieces of font or gfx, as I've often seen in rip
  262. from other (famous) people). I think ripping the musics on the disk rather than
  263. in memory is the only way to obtain the cleanest data possible in exactly the
  264. same state as they were composed by their author.
  265.  
  266.  
  267.  
  268. ================================================================================
  269.  
  270. Technical Words
  271. ---------------
  272.  
  273. First, a few words on the YM2149 and its registers. This chip was build by
  274. Yamaha and has existed under many other names (but the behaviour was always
  275. slightly the same) ; apart from being used in the Atari ST, the same kind of
  276. chip was used in the Amstrad CPC and the ZX Spectrum. It was also used in many
  277. arcade machine in the 80's. For more infos on this, consult some specialized
  278. soundchip site on the WEB or the Multi Arcade Machine Emulator (the great
  279. M.A.M.E) pages to see the name of famous arcade machine using YM/AY chip.
  280.  
  281.  
  282. Now let's go for the description of the chip, as it is used on the ST :
  283. there're 14 registers (which are numbered from 0 to $D) for the sound and 2
  284. registers ($E and $F) for the parallel ports and other device control (side
  285. select on floppy drive, ...). So, you can forget reg $E and $F since they're
  286. never used in any music replay (except in those replays that turned the drive
  287. LEDs ON and OFF depending on the music being played ...).
  288.  
  289. Accessing the YM registers is a little different from accessing usual hardware
  290. registers. You don't have directly access to the 16 regs, instead you must
  291. select the register you want to access with a first write ("poke"), and then
  292. you can write/read the value with a second poke or peek.
  293.  
  294. So, on ST, you have two registers :
  295.  - a 8 bit control register at the address FFFF8800.
  296.  - a 8 bit data register at the address FFFF8802.
  297.  
  298. To write into a reg, you should do this :
  299.  - write the register index into FFFF8800
  300.  - write the value into FFFF8802
  301.  
  302. To read a reg, do this:
  303.  - write the register index into FFFF8800
  304.  - read the current value from FFFF8800 (WARNING! read from 8800, not 8802)
  305.  
  306. Address FFFF8801 and FFFF8803 are useless, so you will often see the following
  307. code to set a register value with one move.l :
  308.  
  309.     move.l    d0,$ff8800.w
  310.  
  311. with D0 bits 24-31 containing the register number and bits 8-15 containing the
  312. value to write. Using the movem.l instruction, you can push this even further
  313. and set all the registers with one instruction (see Hippel TFMX-COSO replay for
  314. example).
  315.  
  316.  
  317. Now, let's see the 14 registers (0 indicate unused bits):
  318.  
  319.     0    xxxxxxxx    PerA LO
  320.     1    0000xxxx    PerA HI
  321.     2    xxxxxxxx    PerB LO
  322.     3    0000xxxx    PerB HI
  323.     4    xxxxxxxx    PerC LO
  324.     5    0000xxxx    PerC HI
  325.     6    000xxxxx    PerNoise
  326.     7    xxxxxxxx    InUse
  327.     8    000Exxxx    VolA
  328.     9    000Exxxx    VolB
  329.     A    000Exxxx    VolC
  330.     B    xxxxxxxx    PerEnv LO
  331.     C    xxxxxxxx    PerEnv HI
  332.     D    0000xxxx    Env Wave
  333.  
  334.  
  335. The ST YM2149 used an internal clock at 150000 Hz.
  336.  
  337. Period is in big-endian order (that is LO then HI, instead of the Motorola
  338. 68xxx HI and LO order). So the sound frequency is CLOCK / Per, or also
  339. CLOCK / ( PerHI*256 + PerLO ).
  340.  
  341. Reg 6 fixes the noise Per, it varies between 0 and $1F.
  342.  
  343. Reg 7 determines which voices are ON or OFF (this reg is 0 active, that is 0
  344. means ON and 1 means OFF) :
  345.     bit 0 : sound A      bit 1 : sound B     bit 2 : sound C
  346.     bit 3 : noise A      bit 4 : noise B     bit 5 : noise C
  347.     bit 6 and 7 are used to select the behaviour of reg $E and $F (input
  348.         or output) ; you can ignore these bits and set them to 0.
  349.  
  350. For example, setting bit 0 and 3 to 0 will output sound+noise on voice A. Note
  351. that even if all bits of reg 7 are set to 1 (OFF), you can still output sound
  352. by setting the volume to 16 (Enveloppe ON). You will then obtain some kind of
  353. "pure" "soft" env sound on that voice.
  354.  
  355. Reg 8, 9 and A select the volume from 0 (no sound) to $F (max vol). Bit 4 of
  356. these regs is particular ; if you set if to 0, then the volume is constant and
  357. determined by the bit 0-3. If you set it to 1, the volume is modulated with an
  358. enveloppe, depending onthe Env Per (reg B and C) and the Env Wave (reg D). The
  359. volume of one voice is the same for the sound and the noise output.
  360.  
  361. Reg B and C give the enveloppe period ; they work the same as reg 0 to 5.
  362.  
  363. Reg D choose the type of modulation. Only 4 bits are used, giving 16 different
  364. waves, but in fact, only 8 different waves exist. The 4 bits specify the ADSR
  365. (Attack, Decay, Substain, Release) behaviour of the env :
  366.  
  367.     0    \_____        go down, down
  368.  
  369.     1    \_____        go down, down
  370.  
  371.     2    \_____        go down, down
  372.  
  373.     3    \_____        go down, down
  374.  
  375.     4    /_____        go up, down
  376.  
  377.     5    /_____        go up, down
  378.  
  379.     6    /_____        go up, down
  380.  
  381.     7    /_____        go up, down
  382.  
  383.     8    \\\\\\        go down, go down
  384.  
  385.     9    \_____        go down, down
  386.  
  387.     A    \/\/\/        go down, go up    (Hippel's fave one)
  388.          _____
  389.     B    \        go down, up
  390.  
  391.     C    //////        go up, go up
  392.          _____
  393.     D    /        go up, up
  394.  
  395.     E    /\/\/\        go up, go down
  396.  
  397.     F    /_____        go up, down
  398.  
  399. In fact, only waves 8, 10, 12 and 14 give interesting sounds. All other waves
  400. are rarely used (in some old replays). As you can see, only "saw tooth" like
  401. waves are possible (whereas the C64 SID chip had square env also). Anyway,
  402. square env can be emulated by software, using a timer to change the volume at
  403. fixed intervals (see Scavenger, TAO or Big Alec musics for examples).
  404.  
  405.  
  406. Concerning bits 6 and 7, you will often see replay which does this to set reg 7
  407. to the value in D0 :
  408.     move.b    #7,$ff8800.w
  409.     move.b    $ff8800.w,d1
  410.     and.b    #$C0,d1
  411.     and.b    #$3F,d0
  412.     or.b    d1,d0
  413.     move.b    d0,$ff8802.w
  414. This code is used to keep the value of bit 6 and 7. You can forget it under
  415. MYST and should replace it with the following code (in your music's MasterPatch
  416. section) :
  417.     move.b    #7,$ff8800.w
  418.     move.b    d0,$ff8802.w
  419.     
  420.  
  421.  
  422. The range of emulated frequencies is the following :
  423.  - for "pure" sound (without noise), the samples used have a len varying
  424.    between 2 and 256 bytes per VBL. Using many samples is better than using
  425.    only one, because it helps in keeping the Amiga audio Per in a reasonable
  426.    range (having a Per too high can cause problem when changing audio start
  427.    address, since you must wait for the next audio DMA to come (this is the
  428.    famous DMA pause problem on Amiga between switching audio OFF and ON)). The
  429.    freq can be as high as 25000 Hz, which correspond to ST Per=10 (higher
  430.    frequencies are hard to render with the Amiga).
  431.  - noise sound can have all the ST values ; the frequency calculation is rather
  432.    empirical, but it gives some good results.
  433.  - enveloppes alone (thas is turning sound output OFF in reg 7 and setting
  434.    volume to 16) are emulated in the range 10-4577 which corresponds to
  435.    frequency from 54 to 25000 Hz. Practically, you will hardly see any replay
  436.    with envper > 255 (so the 4577 max per is not really a limit in fact).
  437.  
  438.  
  439. For all other sounds, some mixing is required. To obtain the best quality
  440. possible, each voice uses a double buffer technique. Each buffer consists of
  441. 500 bytes per VBL, which is the maximum quality the OCS Amiga can produce.
  442. Samples are always computed to give a final Amiga period always in the range
  443. 140 to 290 (between 12500 and 25000 Hz). The highest necessary frequency is
  444. always choosen to get the best possible result. Note that the transition
  445. between the buffers at each VBL can cause some strange sound if the frequency
  446. has a big change ; this is due to the fact that I don't use audio inter under
  447. the OS to perfectly synchronize the sample start with the period change (as I
  448. used in the BIG demo Digi Dept) since using the OS audio inter with EP/DT
  449. remove the possibility to use fine replay tuning (with timer). So, this is
  450. unlikely to change, and if you notice this "beeps" (mainly with some SID env),
  451. you will have to live with them :(  (I really think that the start/stop
  452. mechanism of DMA Audio under Amiga is completly lame, but it's too late to
  453. change it, so we'll have to use it this way).
  454.  
  455. The emulation process is I think pretty fast and special cares have been taken
  456. to optimize the mixing routines (in the good old 'Try To Beat Dis' ST demo
  457. tradition :) )
  458.  
  459. Here are some values for the mixing (in cycles ; remember that one A500 VBL
  460. corresponds to 142000 cycles) :
  461.  
  462.  - misc calculation (in case no mixing are required) : less than 5000 cycles.
  463.  - mixing noise + copro : 13300 cycles per voice
  464.  - applying any YM enveloppe (register $D) : 32700 cycles per voice
  465.  - applying SID enveloppe (that's an env with only two values) : 22500 cycles
  466.    per voice
  467.  
  468. This means that even a music using three simultaneous env should run in one VBL
  469. on a simple A500 (if there're no other tasks, of course). Most of the time,
  470. musics only use one env and one noise+copro at a time, which means that most of
  471. the musics will take only max 20-25% of the CPU or even less.
  472.  
  473.  
  474. Note that sound+noise+env mixing is not supported at the moment (only used in
  475. Prophecy by Big Alec), as well as noise+env with reg $D = 0-7, 9, B, D and F
  476. (this kind of env are only used in very old replays (Bubble Bobble, Last
  477. Trooper, ...) to provide slow volume variations, with a constant final volume).
  478. These 2 mixings should be supported in the next release, since the code is 90%
  479. done (I don't want to delay the first release of MYST any longer).
  480.  
  481.  
  482.  
  483. ================================================================================
  484.  
  485. Bonus Screen
  486. ------------
  487.  
  488. As told at the beginning of this file, after coding my first soundchip
  489. emulator, I decided to convert the B.I.G. Demo Digital Department. After
  490. finishing it, I then thought "well, now that I'm having more and more files
  491. converted as well as the Digi Dpt, what about coding a kind of intro/demo to
  492. announce the YM2149 emulator ?". And, what best choice could there be to
  493. introduce MYST than recoding the whole B.I.G. demo, since it was the first
  494. really great musics collection on ST, with many of Rob Hubbard tunes converted.
  495. Certainly one of the demo that stunned the most the ST demo community (along
  496. with masterpieces like "The Union Demo" or "The Cuddly Demos", of course).
  497.  
  498. I'm sure I'm not the only one having spent hours listening to all the musics,
  499. watching the "psych-o-screens", and reading the scrolling until the end to
  500. discover explanations on "the border scrolling technique". Newcomers to the
  501. demo scene will certainly not understand what this demo means with its simple
  502. graphics and its kind of color cycling effects, but it really represents the
  503. first real demo achievement on the ST and made "The Exceptions (TEX)" one of
  504. the mythical group of the Atari ST.
  505.  
  506. It's now ten years ago, and what was first attempted as an homage is now
  507. released for the 10th birthday of the B.I.G. demo (which was originally
  508. released on 24 January 1988).
  509. To ensure maximum respect of the demo, I've tried to match it as closely as
  510. possible ; all colors, graphics, sounds and text are coming directly from the
  511. demo. In fact, the most difficult part was to rip the colors and the exact
  512. timings for all the rasters and color cycling. Really hard since the demo
  513. itself is not really well coded in fact and uses some OS vectors as well as
  514. some own interrupt ; quite messy in fact, but who really cares ?
  515. Of course all the screens have been completly recoded with better optimized
  516. code and also with Amiga hardware in mind, which means that everything knows
  517. take less than 20 % of CPU (while some of the screens took 90% or more on ST).
  518.  
  519. I tried to match all the timings, so for example the musics list scroll at
  520. exactly the same speed as on ST (the key repeat delay is the same as on ST).
  521. Also the screen should be centered at exactly the same position, etc. I've also
  522. emulated one of the B.I.G. demo famous bug which caused the screen 2 to have
  523. rasters allways blue or always red (but never green...) on a random basis
  524. (although the ST random function used the video beam position to create values,
  525. it sometimes failed and returned always the same number !).
  526.  
  527. To run this demo, you will need 1 Mb of mem (at least 500 Kb of CHIP), so this
  528. demo will work on an A500 with a 0.5 Mb memory extension.
  529. You can escape it by pressing the left mouse button. You can also press RETURN
  530. or SPACE to skip the loader screen. The demo is exactly the same (no different
  531. scroll text), but you can press HELP to toggle ON or OFF a small VU-meter which
  532. displays the state of the YM2149 emulator (I know this VU is not really nice.
  533. It was used to debug, but I decided to leave it to allow people to see the
  534. inner working of Mad Max (Jochen Hippel) very good conversions) ; also use your
  535. mouse to move it.
  536. There's no return to the OS possible, so after the reset part and the dark
  537. screen, you will have to reboot your computer (sorry for that, but I don't have
  538. time to track a small memory leak which sometimes completly crashes the
  539. computer when returning to the OS ; I prefer a clean reset than an unstable OS
  540. that could crash at any time).
  541.  
  542. Hope you will appreciate this homage as well as I enjoyed coding it.
  543. And once again, special greetings to The Exceptions for all the great, great
  544. job they made during these golden years of real demo spirit.
  545.  
  546.  
  547.  
  548. ================================================================================
  549.  
  550. History
  551. -------
  552.  
  553.  - Main v1.0 : first release on the NET. At least, after months of delays due
  554.    to too much 'real' work, I finally succeded in putting a final point to the
  555.    first release. The emulator can be considered as 95% complete (only missing
  556.    effects are the sound+noise+env mixing and the 'constant' env).
  557.  
  558.  - Data 1 to 5 : a total of 934 songs are included in these archives. See the
  559.    TuneHist.txt file for more details.
  560.  
  561.  
  562.  
  563. ================================================================================
  564.  
  565. Acknowledgements
  566. ----------------
  567.  
  568. First of all, special general greetings to all the people who made this
  569. collection possible : all the musicians, coders, graphists who worked hard on
  570. games and demos and surely helped the Atari ST being the machine of the 90's
  571. (with the Amiga of course). This was 68000 era, this was real fun coding and
  572. computing, this was a time where games had gameplay (and not only full motion
  573. video at 10 fps sequence), where coders did know how to code and used real
  574. optimisation tricks to speedup things (no fucking useless MMX things was needed
  575. to beat records), where graphists produced great images in 320x200 with only 16
  576. colors, and where musicians created great musics with limited soundchip and a
  577. few number of samples.
  578. When I see today's computer world, dominated by the WinTel standard, I really
  579. think that people who come to this market don't know what they've lost and what
  580. great time they missed. Hopefully, not everything is dead. Emulators are
  581. appearing around, coded by people who know what these computers represented and
  582. who want to show the world what computing was like in that golden age ; also
  583. some powerful game console like the Sony PSX are here, showing that PC's are
  584. really not suited for real games (after the decline of ST/Amiga, I think the
  585. PSX certainly was the first machine to make me say : "Woow, how cool it must be
  586. to code on it ; this could give awesome demos").
  587. So again, mega thanx to all the demo and games makers who made us dream during
  588. years, pushing limits and exploiting the machine to its maximum.
  589.  
  590. For the personal greeting, they go to all 1984's members, that I know for many
  591. years now ; we met around the ST, and now a long time after we still meet even
  592. if ST and computers are not really here anymore. So thanks a lot, and thanks
  593. for all the "positive" supports such as "an ST emulator on a dead computer such
  594. as the Amiga, you're completly mad" or "you must be completly insane to collect
  595. old automations CDs and rip MetroCross musics", etc.  Well ... thanks ;).
  596.  
  597. Also thanks to Grazey/PHF who send me many tunes from games. He contacted me
  598. for some Custom modules I released for the Amiga and as I talked to him about
  599. my ST project, he sent me a huge list of musics he already had collected. At
  600. that time, I really thought I had 70 or 80 % of game musics, but when I saw
  601. that his list was as big as mine, and that they share only few titles in
  602. common, I understood that merging our files would give great results. Grazey
  603. also beta tested many musics and versions of the player and also converted some
  604. tunes to the YMST format.
  605.  Hey Grazey, as you can see, this is finally released (after all those
  606. "insults" like "you're the lazyest person on ST" or "are you trying to beat ST
  607. Connexion and MCoder lazyness ?" ;-) , I would have liked to finish it sooner,
  608. but my work really takes me many time and I don't always feel like converting
  609. ST tunes after a full day of work ;)
  610.  
  611. With the release of the Pacifist emulator on the wrong machine (once a time,
  612. the wrong machine meant the Amiga, now try to guess what it is ...), many WEB
  613. sites are opening on the Net. I can't name them all, but I send a special HI!
  614. to all those ST addicts for the great memories they bring (Hi to Rich Davey
  615. 'Little Green Desktop', to Flix demo's page (with a screenshot from the
  616. NoCooper :) and to Knaus/Aura for his sound page (hey, what about dropping your
  617. SNDH format and switching to YMST ? Much modular I can assure you, and you
  618. wouldn't have to disassemble/reassemble every music)).
  619.  
  620.  
  621.  
  622. ================================================================================
  623.  
  624. Contact Address
  625. ---------------
  626.  
  627. Want to get in touch, have any remarks or bug to report, any music you would
  628. like to see included ? Only one way to contact me : send an e-mail to Nicolas
  629. Pomarede (that's me) at the following address (please no binary without warning
  630. me first) :
  631.  
  632.     pomarede@isty-info.uvsq.fr
  633.  
  634. I will answer all messages, but please be patient, as I don't have all the time
  635. I'd like for it.
  636.  
  637.  
  638.  
  639.  
  640.  
  641.  
  642.  
  643. Well, This is all for now. See you all in the next releases with more tunes
  644. to add to your collection.
  645.  
  646. Bye
  647.  
  648.                         Nicolas / Mr.Styckx
  649.