home *** CD-ROM | disk | FTP | other *** search
/ Amiga MA Magazine 1998 #6 / amigamamagazinepolishissue1998.iso / www / martinc / emulators / binary / amame020.lzx / AMame_Release / whatsnew.txt < prev   
Text File  |  1979-09-14  |  39KB  |  949 lines

  1. 0.20
  2.  
  3. Program:
  4. - Yes!!  Finally I wrote a driver for Gyruss, one of my favourite games
  5.   and one of the reasons why I started emulation.  Big special thanks
  6.   to Michael Cuddy, without help and information this game would probably
  7.   never be done;  and to Nicola Salmoria that fixed some of the sprites
  8.   bugs that turned me mad and cleaned the code! ;)
  9.  
  10. - The following changes were done by Nicola Salmoria:
  11.   - 1942 has correct colours.  Also fixed rom paging, so now it has no more
  12.     slowdowns.  Fixed jerkiness.  Sound is better, too.  How about the
  13.     tempo?  How about the pitch?  Are they right?
  14.   - fixed missing sprites when exiting from doors in Elevator Action. There
  15.     are still some sprite priority bugs.  Also better colors.
  16.   - Thanks to Marc Lafontaine's invaluable help, Popeye is now fully playable
  17.     and has 100% accurate colors.  Supports high score saving, too.
  18.     Still very slow.
  19.  
  20. - Brad Oliver found a lot of bugs around the code.  Fixed 1942 background
  21.   scroll, Arabian video driver, and Phoenix sound init routine (all those
  22.   caused trashes on MAC).
  23.  
  24. - Paul Berberich fixed some colors of Donkey Kong that is now quite close
  25.   to original arcade.  Also Donkey Kong Jr. has better colors now.
  26.  
  27. - Fabrice Frences provided a driver for Krull.  Also fixed some bugs in
  28.   qbert, and returned audio to Mad Planets.
  29.  
  30. - Ron Fries created a new set of Donkey Kong samples, using Mike Cuddy's
  31.   8039 emulator.  The new samples no longer have static, they are aliased
  32.   and louder.  All names are now generic, so the same name can be used
  33.   across Nintendo line (DK, DKjr, DK3, Mario).
  34.  
  35. - Chris Hardly kindly provided a working driver for Warp Warp.
  36.  
  37. - Dave W. provided a new set of invaders samples.  Should be better, though.
  38.  
  39. - Frogger music tempo bring back to original value.  Fast but flawless!
  40.  
  41. Sources:
  42. - Changed 8910intf to support 5 PSGs (Gyruss have them!)
  43.  
  44. - Changes in MAME.C:  added -list option.  This is useful for mantaining
  45.   the readme file.  It lists currently supported games.  Thanks to Zanello
  46.   Maurizio for suggestion.
  47.  
  48. - Changes in MSDOS.C:  vesa and vesascan are now mutex.  Also fixed a bug
  49.   caused by calling joystick initialize before starting allegro.
  50.  
  51. - To UNIX users:  sorry for the mess I did in my previous distribuition.
  52.   All names and patches should be ok now.
  53.  
  54. - Nicola Salmoria provided the following changes:
  55.   - changed GENERIC.C to add sound_command_latch_r(): this always return the
  56.     last command, instead of 0, if there are no more pending commands. This
  57.     was required by 1942.
  58.  
  59.   - new flag for the cpu type: CPU_AUDIO_CPU. For example, you'll define a CPU
  60.     type as CPU_Z80 | CPU_AUDIO_CPU. This indicates that the CPU is a slave
  61.     used for audio only, and is therefore not needed if sound is disabled.
  62.     The CPU will not be emulated when sound is turned off, therefore speeding
  63.     up the emulation a lot.
  64.  
  65.   - also, 8910_sh_update() doesn't emulate the 8910 audio if sound is disabled
  66.     (the I/O ports of the chip are still emulated, since some games use them
  67.      for input).
  68.  
  69.  
  70.  
  71.  
  72.  
  73. [ Sorry to be late, I just taken my graduation in Computer Science and I
  74.   was a little busy.  Here we go! :> ][NdMix]
  75.  
  76. 0.19
  77.  
  78. Program:
  79. - Thanks to Marc LaFontaine that provided me bootleg version we have now
  80.   support for Popeye.  It's not yet playable (when the game starts the
  81.   machine resets) but it has music already.  It's also very slow, since
  82.   it uses a 512x480 screen.  I'm looking for decryption scheme for original
  83.   Popeye board using Lionel's idea [pain!  It looks all different!].
  84.  
  85. - Fabrice Frences fixed the Qbert driver and added support for Reactor.
  86.  
  87. - Jarek Burczynski provided a preliminar but playable driver for Arabian.
  88.   Colors are wrong, but it support sound already.
  89.  
  90. - Mike Coates fixed the Space Panic background colors.  Also added hiscore
  91.   support.
  92.  
  93. - Nicola Salmoria found how Elevator Action background works.  Also updated
  94.   all drivers that have a scrolling background.  Support for the bootleg
  95.   version of Elevator Action ("elevatob"). The original version doesn't
  96.   work because of copy protection.  The graphics are almost OK now,
  97.   albeit quite slow.
  98.  
  99. - Paul Leaman (author of the 1942 emulator) provided exhaustive information
  100.   on (guess what) 1942, which is now supported.
  101.  
  102. - Some changes to music tempo of Frogger
  103.  
  104. - Added partial sound support to RallyX (no explosions yet). Thankx to Ron
  105.   Fries.
  106.  
  107. - Added preliminar unplayable WarpWarp.  Graphic is ok, but the game hangs
  108.   during diagnostic.
  109.  
  110. - Changed noise_lenght and noise_rate values in Moon Cresta audio driver,
  111.   so now noise is much more noisier!
  112.  
  113. - Shaun Stephenson provided me original Phoenix sound samples, so I adjusted
  114.   sound driver to achieve correct sound modulation and frequency, and
  115.   substituted noise generator for shots and explosions with a couple of
  116.   samples.  Noise generator can be still used (just don't put the samples
  117.   in the directory) with Phoenix and it's used in Pleiads.  I changed
  118.   white noise waveshape and adjusted frequency, so now it sounds better.
  119.  
  120. Source:
  121. - Added input ports 5 and 6 in CPUINTRF module.
  122.  
  123. - Fixes to setdipswitches() and the fps counter in COMMON.C, to make them
  124.   work correctly with non 8x8 fonts.
  125.  
  126. - Substituted strcmp() with case insensitive stricmp() in MAME.C and MSDOS.C.
  127.   This solve the problem with upcase gamename (ex: Win95 and NDOS).
  128.  
  129. - Added copyscrollbitmap() to COMMON.C, that semplifies programming for
  130.   those games that use scroll.
  131.  
  132.  
  133.  
  134. 0.18
  135. ----
  136.  
  137. IMPORTANT NOTE: This will be the last version of MAME released by me (Nicola
  138. Salmoria). From now on, the project will be maintained by Mirko Buffoni
  139. (mix@lim.dsi.unimi.it). Contact him if you have material to submit for
  140. inclusion into MAME. Please don't send such material to me.
  141.  
  142.  
  143. Program:
  144. - Green Beret:
  145.   - The speed should now be VERY accurate. It also syncs correctly with the
  146.     music.
  147.   - Sound pitch should be correct as well (though it changes after you die
  148.     for the first time...)
  149.   - High score support.
  150.   - Fixed sprite clipping problem on the left of the screen.
  151.   - Fixed memory trashing bug in dirtybuffer handling
  152.  
  153. - I finally added some lousy, very inaccurate, noise to the 76496 emulator.
  154.   This affects Lady Bug and Green Beret.
  155.  
  156. - I also added the same lousy noise to Galaxian, Pisces, Moon Cresta, Moon
  157.   Quasar.
  158.  
  159. - Fixed bug in the 8910 emulation which caused noise to be played in Crazy
  160.   Kong when you jumped over a barrel.
  161.  
  162. - Zaxxon and Congo Bongo now save their high scores for real. The code had
  163.   disappeared from the drivers... I _did_ write it, since I had .hi files in
  164.   my directories ;-)
  165.  
  166. - High score support in Space Invaders (Invaders only - not clones)
  167.  
  168. - Bomb Jack is much faster on a 486. Now runs very well with -frameskip 1 on
  169.   my 486/100.
  170.  
  171. - Sprite placement in Pac Man, Ms Pac Man and Crush Roller should now be
  172.   arcade perfect. Thanks to Richard Davies who verified it on a real machine.
  173.  
  174. - Preliminary support for Jungle King / Jungle Hunt. Slow but playable. I
  175.   haven't the gfx bank selector, therefore you'll have to pick the correct
  176.   background graphics yourself. Use keys C and V to change it.
  177.  
  178. - VERY preliminary support for Elevator Action. Not playable.
  179.  
  180. - Preliminary support for Seicross, using the Crazy Kong driver. Not playable.
  181.  
  182. - Marc Lafontaine fixed some problems in the Venture driver, and provided
  183.   drivers for Mouse Trap and Pepper II, which run on similar hardware (Pepper
  184.   II is not complete yet).
  185.   Note that the required Venture ROM set has changed - the other one was
  186.   missing one ROM.
  187.   Collision detection doesn't work - in Mouse Trap, you can use keys 7 and 8
  188.   to simulate a sprite-to-character and a sprite-to-sprite collision.
  189.  
  190. - Rotated the controls for Q*Bert
  191.  
  192. - Some changes to music tempo in Amidar, Pooyan, Time Pilot.
  193.  
  194. - Added support for the original, Universal version of Mr. Do!. I renamed the
  195.   other, which has an additional Taito copyright notice, "mrdot".
  196.  
  197. - Support for a version of Crazy Kong running on Scramble hardware
  198.  
  199. - Mike Coates provided a Space Panic driver.
  200.  
  201. - Fixed bugs in Jump Bug and Bagman sound drivers which caused page faults
  202.   when run under DOS.
  203.  
  204. - Fabrice Frances submitted a much faster version of the 8086 emulation.
  205.   Q*Bert now runs at full speed with -frameskip 1 on my 486/100.
  206.  
  207. Source:
  208. - Samples are now loadaed by the main engine, not the single drivers. This is
  209.   done via the new field samplenames in the GameDriver structure. Samples can
  210.   then be retrieved by the drivers in Machine->samples.
  211.  
  212.  
  213. 0.17
  214. ----
  215.  
  216. Program:
  217. - Various fixes to Green Beret:
  218.   - Thanks to Paul Swan, it now has 100% accurate colors.
  219.   - Dip switches didn't work, fixed.
  220.   - Support for Rush'n Attack (the US version)
  221.   - I've been told that it actually was too fast, so now it runs slower.
  222.     Let me know how accurate it is.
  223.  
  224. - Fabrice Frances submitted a massive contribution: an 8086 CPU emulator, and
  225.   drivers for Q*Bert and Mad Planets. They run quite slowly on my 486/100
  226.   (~25 fps) but are playable. Q*Bert has sound too (with samples).
  227.  
  228.  
  229. 0.16
  230. ----
  231.  
  232. Program:
  233. - Support for Green Beret, with partial sound (probably inaccurate).
  234.   Colors are terrible. If you can see what you are doing, it's playable (but
  235.   should it be this fast? I find it very hard)
  236.  
  237. - Richard Davies and Brad Oliver provided drivers for the so-called "Sega"
  238.   version of Jump Bug (it's actually a bootleg with the protection checks
  239.   removed). The driver supports sound.
  240.  
  241. - Added joystick support to Vanguard.
  242.  
  243. - Support for Fantasy on the Nibbler driver. There are several problems, it's
  244.   not playable.
  245.  
  246. - Thanks to Mike Coates and Peter Clare, Carnival now has colors.
  247.  
  248. - Stefano Mozzi provided a much better palette for Mario Bros.
  249.  
  250. - Matthew Hillmer submitted a new palette for Donkey Kong 3. It is not
  251.   intended to be correct, but at least it gets rid of the annoying
  252.   checkerboard effect.
  253.  
  254. - Tormod Tjaberg provided updated Space Invaders (+clones) drivers which
  255.   support sound. They use samples, derived from Michael Strutts' emulator.
  256.  
  257. - Support for Fantazia (bootleg version of Moon Cresta)
  258.  
  259. - Fixed a couple of remaining graphic glitches in the Wizard of Wor driver.
  260.  
  261. - Various fixes to Burger Time:
  262.   - Fixed CPU clock speed to avoid slowdowns on fourth level.
  263.   - It's much faster on a 486.
  264.   - Sprites no longer "stick" on the screen on a level change.
  265.   - Fixed a bug in high score save.
  266.   DELETE BTIME\BTIME.HI, OTHERWISE THE HIGH SCORE TABLE WILL BE CORRUPTED
  267.  
  268. - Marc Lafontaine provided a Venture driver. It is partially playable,
  269.   sprites are wrong.
  270.   On startup, keep 1 or 2 pressed to proceed.
  271.  
  272. Source:
  273. - I wrote some general purpose routines to simplify interface with the AY8910.
  274.   They are in 8910intf.c. See the existing drivers for usage examples.
  275.  
  276. - To solve the problem with garbled text messages in Time Pilot, modified the
  277.   GameDriver structure replacing letters_start and numbers_start with the
  278.   array charset[36].
  279.  
  280. - I finally took the time to change Z80.h/M6502.h to make them work together.
  281.   This allowed me to remove some kludges in cpuintrf.c. I also added some new
  282.   functions, which can be used regardless of the CPU type: cpu_getpc(),
  283.   cpu_geticount(), cpu_seticount().
  284.  
  285. - Fixed a couple of bugs in M6502 BCD arithmetic. One of them was causing the
  286.   pepper counter in Burger Time to behave strangely.
  287.  
  288. - Brad Oliver modified pokey.c and pokey.h to make them more portable.
  289.  
  290.  
  291. 0.15
  292. ----
  293.  
  294. Program:
  295. - Jarek Burczynski submitted a sound driver for Bomb Jack.
  296.   The game is now a bit slow on my 486/100, -frameskip 1 is almost good but
  297.   not quite.
  298.  
  299. - Sound support in:
  300.   Scramble
  301.   Super Cobra (note that the "scobra" rom set is wrong - ROMs 5c, 5d and 5e
  302.                must be 2k, not 4k. You can take them from one of the other two
  303.                sets).
  304.   The End
  305.   Battle of Atlantis
  306.   Lost Tomb (very nice sound, pity the ROMs are corrupted)
  307.   Amidar
  308.   Turtles
  309.   Frogger
  310.   Pooyan
  311.   Time Pilot
  312.  
  313.   All these require -frameskip 1 on my 486/100.
  314.  
  315.   I have no idea how accurate the tempo and pitch is. If you can compare it
  316.   with a real machine, please let me know what's wrong.
  317.  
  318.   Note: I discovered that the garbled sound I experienced in Scramble was
  319.   caused by a bad ROM. Therefore, if sound doesn't work, check your ROM
  320.   set. Note that I also changed one ROM name from "2c" to "2d".
  321.  
  322. - Carnival is finally working! Many thanks to Richard Davies who understood
  323.   how to make it accept coins.
  324.  
  325. - Brad Oliver deserves a prize for being the person who, alone, has
  326.   discovered more bugs than everyone else put together. This time the bug
  327.   was illegal memory acesses in games using 224x288 and 288x224 modes (Pengo,
  328.   Pac Man, Rally X).
  329.  
  330. - Thanks to the invaluable help of Steve Scavone, I've been able to fix
  331.   many bugs in the Wizard of Wor driver.
  332.  
  333. - Added support for a version of Galaxian which is known to be original. It
  334.   has Namco copyright and the code is slightly different from the other
  335.   Galaxian (which has Midway copyright). I called this version "galaxian",
  336.   and renamed the other "galmidw".
  337.  
  338. - High score support in Pac Man, Ms. Pac Man, Crush Roller, Burger Time,
  339.   Zaxxon, Congo Bongo, Pooyan, Moon Cresta, Moon Quasar.
  340.  
  341. - Support for a different version of Frogger ("frogsega").
  342.  
  343. - Miscellaneous graphics fixes to Zaxxon and Congo Bongo. Also better colors
  344.   (especially in Congo Bongo), thanks to Marc Lafontaine.
  345.  
  346. - Fixed most of the graphics problems with Moon Patrol. The video driver is
  347.   a gigantic kludge right now, but it works and at a reasonable speed
  348.   (though I can't reach 60fps on my 486/100).
  349.  
  350. - Many people requested a way to syncronize with the video beam, to avoid
  351.   jerkiness. Here it is: -vsync. It should be used together with -noscanlines,
  352.   and possible -vgafreq to adjust the frame rate to be as close as possible
  353.   to 60fps (use F11 to check the actual frame rate). Note that this, unlike
  354.   the default timer based sync, will NOT downgrade nicely if your system is
  355.   not fast enough.
  356.  
  357. - Bernd Wiebelt provided new code for -vesascan, and implemented the new
  358.   "-vesaskip n" mode. It uses a 640x480 screen instead of the 800x600 used
  359.   by -vesascan, and allows you to scroll the visible area using the PGUP and
  360.   PGDOWN keys.
  361.  
  362. - Maintaining the endless list of ROM subdirectories was getting quite boring,
  363.   so I modified readroms() to make it automatically print the complete list of
  364.   required ROMs if one is missing. I think I should add a CRC check as well.
  365.   I also added a brief explanation of what ROMs are and why they are required -
  366.   hoping this will cut down the flow of e-mail asking "gee, I run your program
  367.   and it says 'unable to open file xxxx/xxxx', what should I do?"
  368.  
  369.  
  370. 0.14
  371. ----
  372.  
  373. Program:
  374. - Fixed bug in Mario Bros. high score loading: it was recovering the high
  375.   score table, but the high score at the top of the screen was not set
  376.   accordingly.
  377.  
  378. - Mario Bros. and Donkey Kong 3 now also preserve the score distributions
  379.   (use F1 to see them)
  380.  
  381. - High score support in Galaxian, Time Pilot, Centipede and Millipede.
  382.   However, high scores don't seem to work in Millipede (you are not asked
  383.   to enter your name).
  384.  
  385. - Fixed bug which sometimes caused 6502 games not to run (actually they did
  386.   run, but interrupts didn't happen).
  387.  
  388. - Since the US version is better, I renamed amidar to amidarjp, and
  389.   amidarus to amidar.
  390.  
  391. - Renamed pleiades to pleiads.
  392.  
  393. - The change in video modes suggested by ue303ey@sunmail.lrz-muenchen.de
  394.   didn't work on some systems, so I reverted to the previous one.
  395.  
  396. - Ron Fries provided a new version of his Pokey emulator which fixes problems
  397.   in the interface with the SEAL audio library (signed vs. unsigned samples).
  398.  
  399. - Ron Fries also added preliminary sound support to Donkey Kong! It uses some
  400.   very bad samples for now. The samples are distributed in a separate archive
  401.   - put them in the dkong subdirectory.
  402.  
  403. - Richard Davies updated the audio routines in Phoenix, sound is now closer
  404.   to the original and noise is emulated.
  405.  
  406. - Brad Oliver and Mirko Buffoni provided a driver for Vanguard, based on Brian
  407.   Levine's Vanguard emulator.
  408.  
  409. Source:
  410. - driver.c was getting much too large and confused. I moved the GameDriver
  411.   structures inside the single driver/xxxx.c files. This has the additional
  412.   benefit that people sending me drivers will not forget to include the ROM
  413.   loading addresses ;-)
  414.  
  415. - I also changed the GameDriver structure, moving there fields from the
  416.   MachineDrivers structure. The idea is that MachineDriver should describe
  417.   the hardware, while GameDriver the software. Therefore things like colors
  418.   (which are usually stored in a PROM) and dip switch settings go into
  419.   GameDriver; decode_color_prom, on the other hand, goes into MachineDriver
  420.   because it is an hardware function.
  421.   It could be argued that input_ports belong to the hardware; but sometimes
  422.   we have keys tied to dip switches (test switches and so on) whose function
  423.   is determined by the software. Moreover input_ports contains the default
  424.   values for all ports, including dip switches, and those are definitely
  425.   software related.
  426.  
  427.  
  428. 0.13
  429. ----
  430.  
  431. Program:
  432. - Added the most frequently asked feature: high score saving. Check the
  433.   table at the beginning of readme.txt to see which games already support
  434.   it.
  435.   High scores are also reset-proof: you can reset the game by pressing F3
  436.   without losing them. To reset the high scores to their default, just
  437.   delete xxx\xxx.hi where xxx is the game name.
  438.   Note that hi score saving will NOT work if the default hi scores have been
  439.   modified in the ROMs. Use the original ROMs.
  440.  
  441. - Fixed all of the problems in Burger Time related to ROM encryption. Slices
  442.   fall more than one level when an enemy is on them, no more crashes when a
  443.   bonus life is earned, the high screen table works, two players mode works,
  444.   and other things.
  445.  
  446. - Support for an alternate ROM set for Burger Time, which is likely an
  447.   earlier version.
  448.  
  449. - Millipede's dip switches now work.
  450.   DELETE MILLIPED\MILLIPED.DSW, OTHERWISE THE GAME WILL NOT WORK CORRECTLY.
  451.  
  452. - Marc Lafontaine submitted a new palette for Zaxxon.
  453.  
  454. - Richard Davies provided a new Phoenix/Pleiads driver with partial sound
  455.   support.
  456.  
  457. - Fixed "froggers" (I broke it while adding sound to Scramble).
  458.   It now also uses the correct palette. Yes, I know that it is completely
  459.   different from the real Frogger. This is a bootleg version, remember.
  460.  
  461. - As promised, I modified the 8910 emulator to set the clock frequency at run
  462.   time, so sound in Crazy Climber and Crazy Kong is now back as normal.
  463.  
  464. - ue303ey@sunmail.lrz-muenchen.de reports that changing the horizontal total
  465.   register of the custom video modes (0x3d4, 0x00) from 0x5f to 0x61 makes
  466.   them work on his monitor. I experimentally made the change.
  467.   IF THE CUSTOM MODES WORKED FOR YOU IN VERSION 0.12 AND THEY DON'T WORK ANY
  468.   MORE, PLEASE NOTIFY ME AND I WILL REVERT TO THE PREVIOUS SETTING.
  469.  
  470. - Keith Smethers suggested to add -vgafreq n command line parameters,
  471.   to select the VGA clock frequency. This may reduce flicker, especially in
  472.   the 224x288noscanlines mode.
  473.   WARNING: THE FREQUENCIES USED MIGHT BE WAY OUTSIDE OF YOUR MONITOR RANGE,
  474.   AND COULD EVEN DAMAGE IT. USE THESE OPTIONS AT YOUR OWN RISK.
  475.  
  476. - I began working on Moon Patrol's background. It's quite messed up now.
  477.  
  478. - Fixed a couple of minor bugs in Bomb Jack background colors.
  479.  
  480. Source:
  481. - Use latest version of Marat's 6502 engine.
  482.  
  483. - Changes to struct GameDriver to accomodate the high score saving functions.
  484.   I also moved the decryption pointers at the end, so it is not necessary to
  485.   explicitly define them as 0 when they are not needed.
  486.   Check driver.c to see how high score handlers should be written.
  487.   hiscore_load() is called every vblank until it returns nonzero; this allows
  488.   it to wait for the hi score table to be fully initialized before replacing
  489.   it. To avoid saving an incomplete table, hiscore_save() is called only
  490.   if hiscore_load() previously returned nonzero.
  491.  
  492.  
  493. 0.12
  494. ----
  495.  
  496. Program:
  497. - Sound support in Burger Time. This is the first multiple CPU game supported
  498.   by MAME (two 6502, one for code, one for sound).
  499.   It's not perfect, but we're getting there.
  500.   Also, as you can guess, this is slow. A 486/100 cannot handle it at 60 fps.
  501.   Runs reasonably with -frameskip 1, though.
  502.  
  503. - I also set up the second CPU to emulate sound in Scramble, but the sound
  504.   that comes out is completely wrong. I don't know what I'm missing, anyone
  505.   can help?
  506.  
  507. - Since the 8910 emulator doesn't allow to set the clock frequency at runtime,
  508.   I temporarily switched to using the default one. This affects sound in Crazy
  509.   Climber, Crazy Kong and Bagman. Let me know whether it's better or worse
  510.   than before.
  511.  
  512. - Sound in Centipede, through Ron Fries' POKEY emulator.
  513.  
  514. - Fixed speed in Burger Time (was running at about half the real speed).
  515.  
  516. - Valerio Verrando provided 288x224 video modes to be used with Rally X.
  517.   WARNING: these video modes might be unstable (the noscanlines one hangs my
  518.   system). Any help to make them better would be appreciated.
  519.   As usual, if the default mode doesn't work on your system, try -noscanlines.
  520.   If that doesn't work as well, use -vesa.
  521.  
  522. - I finally found out what was causing slowdowns in Rally X and Bagman. It was
  523.   an interrupt related issue (see later). I hope I didn't break a dozen of
  524.   other games to fix this ;-)
  525.  
  526. - Thanks to Mike Cuddy and Mirko Buffoni, Pooyan colors are now MUCH better ;-)
  527.   I also fixed a bug in the dip switches.
  528.   MAKE SURE TO DELETE POOYAN\POOYAN.DSW, OTHERWISE IT WILL NOT WORK CORRECTLY.
  529.  
  530. - I suddenly realized that Time Pilot runs on the same hardware as Pooyan, so
  531.   I made a driver for it. Colors come straight from Mike Cuddy's emulator.
  532.  
  533. - Gary Walton confirms that the colors in Moon Cresta and Moon Quasar are 100%
  534.   accurate. Very good!
  535.  
  536. - The background stars in Scramble / Super Cobra now blink. However I don't
  537.   know how close to the real thing it is.
  538.  
  539. - Ville Laitinen pointed out that The End runs on Scramble hardware, so it now
  540.   uses the same driver. He also fixed problems with the input controls and two
  541.   players modes.
  542.   IMPORTANT: MAKE SURE TO DELETE THE FILES SCRAMBLE\SCRAMBLE.DSW AND
  543.   THEEND\THEEND.DSW, OTHERWISE THE GAMES WILL NOT WORK CORRECTLY.
  544.  
  545. - Ville also fixed sprite priorities in Congo Bongo.
  546.  
  547. - Doug Jefferys provided the color PROMs for Crazy Kong, so colors are now 100%
  548.   accurate (with the possible exception of Kong itself, which uses a separate
  549.   palette).
  550.  
  551. - Support for Moon Ranger (bootleg version of Moon Patrol).
  552.  
  553. - Added support for Lost Tomb (Stern game running on Super Cobra hardware),
  554.   but it doesn't work well (crashes during the demo, and it's not playable) and
  555.   the graphics are garbled. I think some of the ROMs might be corrupted.
  556.  
  557. - Preliminary support for Jump Bug. It uses a modified Scramble driver, the
  558.   hardware seems to be similar. It's not playable (the input bits are not even
  559.   mapped), and resets after a few seconds.
  560.   I'm not particularly interested in this game, anyone volunteers to complete
  561.   the driver?
  562.  
  563. - Support for the version of Super Cobra with Stern copyright.
  564.   NOTE THAT I RENAMED THE OTHER ONE (Konami copyright) "scobrak".
  565.  
  566. - Ivan Mackintosh provided a Millipede driver (dip switches are not supported
  567.   yet). Sound doesn't work, I don't know why.
  568.  
  569. - Brad Oliver provided a preliminary version of the Mr. Do's Castle driver. Not
  570.   working yet!
  571.  
  572. - Mike Coates pointed out that Carnival uses a RAM for character generation
  573.   (like Nibbler) and provided a driver for it. It's still not playable, but
  574.   the graphics are now correct.
  575.  
  576. - Bernd Wiebelt suggested to add a new option: "-vesascan". It uses a VESA
  577.   800x600 screen to simulate scanlines. It is much slower than the other video
  578.   modes. Use this if you want scanlines and the default video mode doesn't
  579.   work.
  580.  
  581. Source:
  582. - Multiple CPU support. All you have to do to setup multiple CPUs is add
  583.   entries to the cpu[] array in the MachineDriver definition. Each CPU can
  584.   have different type (currently Z80 and M6503 are supported), clock, address
  585.   space, memory/IO port hook, interrupt handlers, number of interrupts per
  586.   video frame.
  587.  
  588. - Sometimes interrupt requests happen while interrupts are disabled. Until now
  589.   I just ignored them, but some games need them to be processed as soon as
  590.   interrupts are reenabled. Rally X is an example of such a game. The Z80
  591.   engine has provision to do that, but it would make writing a driver more
  592.   complex (need to find the interrupt acknowledge register) so I slightly
  593.   modified the engine to automatically cache an interrupt request and execute
  594.   it as soon as interrupts are enabled. I had already done a similar change to
  595.   the 6502 engine, it was needed by Burger Time which wouldn't accept coins
  596.   otherwise.
  597.  
  598. - Since the functions xxx_vh_start(), xxx_vh_stop(), xxx_videoram_w(),
  599.   xxx_colorram_w() are the same for most video drivers, I moved them,
  600.   alongside with some variables, to vidhrdw/generic.c. This doesn't reduce
  601.   much the size of the executable, but greatly reduces the amount of code that
  602.   has to be put in a video driver (in many cases, you just have to write
  603.   xxx_vh_screenrefresh())
  604.  
  605. - Fixed bug in msdos.c/osd_play_streamed_sampled() which prevented it from
  606.   handling more than one audio stream. This part of the code still needs a
  607.   major cleanup.
  608.  
  609. - Fixed bug in drawgfx() which sometimes allowed transparent non remapped
  610.   copies to be drawn outside of the clip region.
  611.  
  612.  
  613. 0.11
  614. ----
  615.  
  616. Program:
  617. - Moon Patrol support. There is no scrolling background because I don't know
  618.   where to place it... can anyone provide a screen snapshot?
  619.  
  620. - Burger Time and Donkey Kong 3 drivers provided by Mirko Buffoni.
  621.   The colors for Burger Time should be accurate, but I'm not quite sure -
  622.   can anyone confirm?
  623.  
  624. - Fixed joystick controls for Congo Bongo.
  625.  
  626. - Lionel Theunissen dumped the color PROM of his Uniwars board and... it's
  627.   different from the one provided by Gary Walton. Galaxian boards were widely
  628.   pirated so it's difficult to determine which one is the "correct" palette.
  629.   What I did was set the Uniwars driver to use one palette, and the "Japanese
  630.   Irem" to use the other. Play the one you prefer.
  631.  
  632. - Marc Vergoossen provided a much better palette for Zaxxon.
  633.  
  634. Source:
  635. - increased the maximum size of the graphic elements that can be handled by
  636.   decodegfx() from 32x32 to 64x64. Actually I would have needed 256x64 to do
  637.   Moon Patrol backgrounds, but that seemed slightly overkill ;-)
  638.  
  639.  
  640. 0.10
  641. ----
  642.  
  643. Program:
  644. - Centipede support. This is the first 6502 game supported by MAME. I'm
  645.   currently using Marat Fayzullin's engine.
  646.  
  647. - Nibbler support. This is the second 6502 game supported by MAME ;-)
  648.   Interesting hardware: no sprites, two playfields, and it uses RAM for
  649.   character generation (redefining the characters to animate the worm).
  650.  
  651. - I had also broken Pleiades, fixed. That's the drawback of emulating more
  652.   than 60 games, I can't check them all before releasing a new version ;-)
  653.  
  654. - Ville Laitinen provided a Congo Bongo driver! The colors are terrible ;-),
  655.   but it's playable.
  656.  
  657. - Thanks to Valerio Verrando, now -noscanlines works on Pac Man and the other
  658.   games using a 224x288 screen. If you have problems with the default video
  659.   mode try this one, it will hopefully solve them.
  660.  
  661. - I received no less than three different palettes for Donkey Kong Jr., from
  662.   Brad Oliver, Marc Vergoossen and Richard Davies. The one included is from
  663.   Marc.
  664.  
  665. - Thanks to Gary Walton and Simon Walls, we now have 100% accurate colors in
  666.   Crush Roller and Uniwars/Japirem. Moon Cresta and Moon Quasar might be
  667.   correct as well, but I'm not sure.
  668.  
  669. - Fixed a small graphics glitch in the background of Bomb Jack's third level.
  670.   Thanks to Philip Chapman for the report.
  671.  
  672. Source:
  673. - Support for 6502 CPU. From a driver writer point of view, it is used just
  674.   like the Z80, the only difference being that you have to specify CPU_M6502
  675.   instead of CPU_Z80 in the MachineDriver definition.
  676.   Multiple CPUs are still NOT supported.
  677.  
  678. - New function in common.c: decodechar(). It was originally part of
  679.   decodegfx(), and is used to convert one single char from the machine format
  680.   to the one used by the emulator. This function was needed by the Nibbler
  681.   driver to dynamically convert the graphics at runtime.
  682.  
  683.  
  684. 0.91
  685. ----
  686.  
  687. Program:
  688. - OK, even this time I managed to screw up one game (Phoenix). It works again.
  689.   I'm not updating the source, you can fix it yourself if you need to: the line
  690.      ROM_LOAD("phoenix.49", 0x2000, 0x0800)
  691.   in driver.c was missing the '2'.
  692.  
  693.  
  694. 0.9
  695. ---
  696.  
  697. Program:
  698. - Bomb Jack support.
  699.  
  700. - Background graphics in Zaxxon now work, albeit a bit slow (45-50 fps on my
  701.   486/100)
  702.  
  703. - Support for the original version of Super Cobra. Note that I renamed the
  704.   other one (which is a bootleg) "scobrab".
  705.  
  706. - Support for the original Moon Cresta (Nichibutsu copyright). These ROMs are
  707.   encrypted, and slightly different from the other version. This is very
  708.   likely the version Chuck Cochems remembers (with aliens teleporting right in
  709.   front of your ship). I renamed the other version (which looks like a mix of
  710.   the code from a bootleg version and the graphics from the Gremlin original
  711.   version) "mooncrsb".
  712.  
  713. - Space Invaders now seems to work correctly. Deluxe version still doesn't
  714.   work properly.
  715.  
  716. - F12 to take a snapshot of the gfx set (displayed using F4) now works.
  717.  
  718. - Better colors in Donkey Kong Jr. (thanks to Brad Oliver)
  719.  
  720. - Thanks to Gary Walton, Moon Quasar dip switches now are correctly described
  721.   in the dip switch menu.
  722.  
  723. - F11 is now a toggle, also added F10 to turn off speed throttling (toggle as
  724.   well)
  725.  
  726. Source:
  727. - The memory handling was no longer up to the task, so I had to make it more
  728.   flexible.
  729.   RAM is no longer a static array; it is dynamically allocated by readroms(),
  730.   split in memory regions (one for the CPU addressing space, one for graphics
  731.   ROMs, and so on) so data not needed at run time, like the graphics data, can
  732.   be unloaded from memory after conversion. The definition and usage of struct
  733.   RomModule and struct GfxDecodeInfo has changed. struct RunningMachine
  734.   contains an array of pointers to memory regions.
  735.   RomModules are now defined using macros, and readroms() does some error
  736.   checking as well. This greatly reduces the chance of making a silly mistake.
  737.  
  738.   And don't ask me why, but as a result of this change the emulation seems to
  739.   run much faster than before!
  740.  
  741. - New rom_decode function pointer in the GameDriver structure. It is used to
  742.   decrypt the whole ROMs after loading them (as opposed to opcode_decode,
  743.   which is used to decrypt only CPU opcodes).
  744.   Also, opcode_decode is now handled differently: instead of calling it at
  745.   runtime when the CPU reads an opcode, another 64k of memory are allocated
  746.   and the whole ROMs decrypted. opcodes are then fetched from this new array.
  747.   This approach is less flexible, for example it cannot handle code created
  748.   in RAM (Pengo does that). However, it is MUCH faster (finally I get 60fps
  749.   in Crazy Climber!), so I'll go with it for now. Should the need arise for
  750.   a more flexible decryption, we'll think about it.
  751.  
  752. - Some changes to the MachineDriver definition and mame.c needed to support
  753.   multiple CPUs (they are NOT supported yet - this is just the first step)
  754.  
  755.  
  756. 0.81
  757. ----
  758.  
  759. Program:
  760. - Sorry about screwing Donkey Kong Jr. colors... it's playable again. Colors
  761.   are still way off though: anyone volunteers to fix them? ;-)
  762.  
  763. - Zaxxon now works, but the background graphics are missing
  764.  
  765.  
  766. 0.8
  767. ---
  768.  
  769. Program:
  770. - Added some support for Carnival - it boots and runs the demo, but the
  771.   graphics are messed up.
  772.  
  773. - Fixed graphics in Moon Quasar (yes it does run, but you need the correct
  774.   ROMs)
  775.  
  776. - Better error checking in the sound initialization routines. It still sucks,
  777.   but at least will notify of problems instead of locking up the emulation.
  778.   The "0. Silence" driver also works.
  779.  
  780. - Removed the "-nosound" command line switch, replaced it with "-soundcard n"
  781.   which allows to bypass the audio driver selection menu. Use "-soundcard 0"
  782.   to turn off sound.
  783.  
  784. - Some support for Space Invaders (+ some clones) but it doesn't work well.
  785.  
  786. - Support for Battle of Atlantis (a Scramble hack)
  787.  
  788. - The ROM copyright notice is displayed in the main emulation screen.
  789.  
  790. - Maybe I understood how the character colors are selected in Donkey Kong, at
  791.   least in part, but I'm not sure. Anyway, I started fixing them. I based on
  792.   the Kong emulator by Gary Shepherdson.
  793.  
  794.  
  795.   Following changes provided by Mirko Buffoni:
  796.  
  797. - You can view the game graphics pressing F4. Use cursor keys to change
  798.   graphics set/color, F4 to return to the game.
  799.  
  800. - Support for Mario Bros. (wrong colors, no sound) and Zaxxon (doesn't work yet).
  801.  
  802. - Better colors in Amidar and Frogger.
  803.  
  804. Source:
  805. - Added visible_area to the MachineDriver definition. It was used in all video
  806.   drivers, so it's better to keep it centralized.
  807.  
  808. - Long-awaited function clearbitmap(), which correctly initializes a bitmap
  809.   using background_pen. Note for people porting MAME to other systems:
  810.   osd_create_bitmap() must call this function, the video drivers rely on that.
  811.  
  812. - I got rid of machine.c and put all into mame.c... when I have time, I'll try
  813.   to organize the source better.
  814.  
  815.  
  816. 0.7
  817. ---
  818.  
  819. Program:
  820. - Support for:
  821.   Super Cobra (version running on a modified Scramble board)
  822.   Amidar US version
  823.   Crazy Climber Japanese version
  824.   Pooyan (wrong colors, no sound)
  825.   Phoenix/Pleiades (no sound)
  826.  
  827. - Scramble has 100% correct colors. The same palette is used by Super Cobra,
  828.   but it doesn't look right.
  829.  
  830. - Gorf and Robby Roto boot but don't work.
  831.  
  832. - Added some support for Moon Quasar, but it doesn't work. Since the ROMs are
  833.   encrypted, I don't know if this is due to wrong decryption, bad ROM, or
  834.   wrong driver (I'm using the Moon Cresta one). I think that either MQ3 (which
  835.   maps at 1000-17ff) is bad, or it uses a different encryption.
  836.  
  837.  
  838. 0.6
  839. ---
  840.  
  841. Program:
  842. - Support for:
  843.   Scramble (wrong colors, no sound)
  844.   Uniwars (US version of Japanese Irem game)
  845.   Frogger (including bootleg version running on a Scramble board)
  846.     (wrong colors, no sound)
  847.   Amidar (wrong colors, no sound)
  848.   Turtles (wrong colors, no sound)
  849.   Rally X (wrong colors, no sound, slowdowns)
  850.  
  851. - I'm beginning to understand how the Wizard of Wor video hardware works,
  852.   gameplay hasn't changed but the graphics are more faithfully reproduced.
  853.  
  854. - Star background in Galaxians & co. The way I calculate it is probably not
  855.   correct, anyway it looks reasonable.
  856.  
  857. - Fixed staccato notes in Pacman and other games using the same hardware.
  858.   There are still some minor glitches (especially in Ms. Pac Man) but Pac Man
  859.   tunes are now very close to the original.
  860.  
  861. Source:
  862. - I reorganized the source directory tree, instead of one directory for every
  863.   game there are now four directories (drivers, machine, vidhrdw, sndhrdw)
  864.   which contain files named after the game.
  865.  
  866.  
  867. 0.5
  868. ---
  869.  
  870. Program:
  871. - Fixed some problems in the Wizard of Wor driver, but it is still far from
  872.   complete.
  873.  
  874. - Support for:
  875.   Donkey Kong Jr. (wrong colors, no sound)
  876.   Galaxians and the plethora of clones (correct colors, limited sound)
  877.   Pisces (correct colors, limited sound)
  878.   "Japanese Irem game". I believe the colors are correct, but since I've
  879.     never seen the original game I can't know for sure.
  880.   War of the Bugs (wrong colors, limited sound)
  881.   Moon Cresta (wrong colors, limited sound)
  882.   The End (wrong colors, no sound)
  883.  
  884. - By popular demand, reverted to the old AY-3-8910 emulation code.
  885.  
  886. Source:
  887. - Changed readroms() to allow scatter loading of a single ROM. This was needed
  888.   for Donkey Kong Jr. Now the end of the RomModule array is marked by a size==0,
  889.   while name==0 means "continue loading the previous ROM at this address".
  890.  
  891. - Some bug fixes and changes to reduce porting problems (thanks to Brad Oliver)
  892.  
  893. - New function copybitmap() in common.c. Limited for now, will change in the
  894.   future.
  895.  
  896.  
  897. 0.4
  898. ---
  899.  
  900. Program:
  901. - Bagman support (wrong colors)
  902.  
  903. - Early Wizard of Wor support (not playable).
  904.  
  905. - New experimental AY-3-8910 sound emulation code provided by Andy Milne
  906.   (andy@canetics.com). This sounds better in some places and worse in others.
  907.   It is used by Crazy Climber, Crazy Kong and Bagman. Let me know what you
  908.   think.
  909.  
  910. Source:
  911. - Optimizations in drawgfx(), Mr. Do!'s title screen and intermissions now
  912.   run faster, Crazy Climber and Crazy Kong benefit as well.
  913.  
  914. - Use version 1.1 of Z80Em by Marcel de Kogel. Faster!
  915.   (note that I had to make a couple of changes to Z80.c to make Crazy
  916.   Climber work).
  917.  
  918. - Handle IN and OUT instructions in the same way as memory accesses (table
  919.   of handler functions). The parameters of the functions are the same, so
  920.   the same function can be used both for memory and ports.
  921.   Had to change the driver structure, removed the pointers to _in and _out
  922.   functions and added port_read and port_write array pointers.
  923.   Also defined a generic interrupt_vector_w() function, this makes the Pac
  924.   Man driver tinier (look at pacman/machine.c, it's now there only to handle
  925.   the cheat).
  926.  
  927.  
  928. 0.3
  929. ---
  930.  
  931. Program:
  932. - Donkey Kong support (wrong colors, no sound)
  933.  
  934. - New definition of custom video modes, this will hopefully be compatible
  935.   with more systems.
  936.  
  937. - Lady Bug and Crazy Climber should run a little faster on slow machines
  938.   (Crazy Climber is still too slow, I know).
  939.  
  940. Source:
  941. - new general purpose readinputport() function used to handle reads of
  942.   input ports and dip switches. This saves some work when creating a
  943.   game driver. Required changes to struct MachineDriver.
  944.  
  945. - struct GfxLayout now contains a planeoffset array instead of
  946.   planeincrement, to better support more than 2 bitplanes. I also fixed
  947.   (I hope) all the code which assumed 2 bitplanes. struct GfxDecodeInfo
  948.   had to be changed as well.
  949.