home *** CD-ROM | disk | FTP | other *** search
/ ftp.mayn.de / ftp.mayn.de-pub.zip / ftp.mayn.de-pub / apple / macintosh / emulator / mess037b6-mac.sit / MacMESS37b6 / Documentation / messold.txt < prev    next >
Text File  |  2000-08-27  |  12KB  |  309 lines

  1. 0.36
  2.  
  3. Note1: MESS is now developed and distributed as a MAME source 
  4. override, hence the MESS version number leap ;-) 
  5. Note2: .inp record/playback does still not work currently.  
  6.  
  7.  
  8. New System Drivers Supported (in no particular order):
  9. ------------------------------------------------------
  10. Vectrex  [Mathis Rosenhauer, Chris Salomon]
  11. Atari 800/5200  [Juergen Buchmueller]
  12. Apple II Family  [Mike Balfour, Brad Oliver]
  13. PDP/1  [Chris Salomon]
  14. Sega Master System  [Mathis Rosenhauer, Brad Oliver]
  15. Sega GameGear  [Mathis Rosenhauer, Brad Oliver]
  16. Kaypro CP/M  [Juergen Buchmueller, Benjamin C. W. Sittler]
  17. Bally Astrocade  [Frank Palazzolo]
  18. Amstrad CPC  [Kevin Thacker]
  19. Atari 7800  [Dan Boris]
  20. Commodore Amiga  [Ernesto Corvi]
  21. Dragon 32  [Mathis Rosenhauer]
  22. EACA Colour Genie 2000  [Mathis Rosenhauer]
  23. Enterprise 128K  [Kevin Thacker]
  24. KC Compact  [Kevin Thacker]
  25. PC-Engine / Turbo Graphics-16  [Charles Mac Donald]
  26. PC-compatible (MDA, CGA)  [Juergen Buchmueller]
  27. RA+A Spectrum I+  [Mathis Rosenhauer]
  28. TI-994a  [Raphael Nabet]
  29. ZX-Spectrum 48k  [Allard van der Bas]
  30. KIM 1  [Juergen Buchmueller]
  31. Tandy 1000TX (PC clone)  [Juergen Buchmueller]
  32. Coco 3  [Nate Woods] 
  33. ORIC 1  [Paul Cook]
  34. ORIC Atmos  [Paul Cook]
  35. Vic20 (NTSC)  [Peter Trauner]
  36. Vc20 (Vic20 Pal)  [Peter Trauner]
  37. Commodore 16  [Peter Trauner]
  38. Commodore Plus4 NTSC  [Peter Trauner]
  39. VZ 200  [Juergen Buchmueller]
  40. VZ 300  [Juergen Buchmueller]
  41. MSX  [Sean Young]
  42. GameBoy (preliminary)  [Carsten Sorensen, Marat Fayzullin,
  43.                        Pascal Felber, Hans de Goede, 
  44.                        Juergen Buchmueller]
  45. TI99_4 (not working)  [Raphael Nabet]
  46. CP400  [Nate Woods]
  47. AdventureVision  [Dan Boris]
  48. Commodore64(NTSC&pal), Max  [Peter Trauner]
  49. Apple1, Nascom1  [Paul Danials]
  50. MicroBee (32,56k)  [Juergen Buchmueller]
  51. zx80, zx81, ts1000, aszmic, pc8300, pow3000  
  52.   [Juergen Buchmueller]
  53. laser 110, 210, 200, 310, 350, 500, 700, tx8000
  54.   [Juergen Buchmueller]
  55. cpc464, cpc664  [Kev Thacker]
  56. kc85_4 (preliminary)  [Kev Thacker]
  57. a400, a400pal (16K RAM only)  [Juergen Buchmueller]
  58. spectrum plus3  [Kev Thacker]
  59. a800pal  [Juergen Buchmueller]
  60. sys80  [Juergen Buchmueller]
  61. c364, c64gs  [Peter Trauner]
  62. ti99_4e, ti99_4ae  [Raphael Nabet]
  63. Atari800xl (not working)  [Juergen Buchmueller]
  64. Philips P2000t/m  [Paul Daniels]
  65. Tandy MC-10  [Nate Woods]
  66. Uk101, SuperBoard (Note: have SHIFT pressed when typing)
  67.   [Paul Daniels]    
  68. MSX Japanese and Korean  [Sean Young]  
  69. Commodore 65  [Peter Trauner]
  70. Commodore 128  [Peter Trauner]
  71. Commodore PET2000/CBM2000  [Peter Trauner]
  72. Commodore CBM3000  [Peter Trauner]
  73. Commodore CBM4000  [Peter Trauner]
  74. Commodore CBM8000  [Peter Trauner]
  75. MacIntosh Plus  [Nate Woods, Ernesto Corvi]
  76. CPS Changer - Street Fighter Zero  [MAME team]
  77. Commodore B series  [Peter Trauner]
  78. MSX1 UK  [Sean Young]
  79. C16 (c1551)  [Peter Trauner]
  80. Plus4 (c1551)  [Peter Trauner]
  81.  
  82.  
  83. System Driver Changes:
  84. ----------------------
  85. - Apple2 driver keyboard fix      [Juergen Buchmueller]
  86.  
  87. - Apple2 driver changed to use 'normalized' character and graphics 
  88.   layout.  The scanlines are now done by the hosts video code.
  89.   [Juergen Buchmueller]
  90.  
  91. - ColecoVision Video refresh fixed. [Sean Young]
  92.  
  93. - Adjusted timing of NES clock to be accurate. [Brad Oliver]
  94.  
  95. - Preliminary Mockingboard support for the Apple II. [Brad Oliver]
  96.  
  97. - Genesis sound improvements. [Gareth Long]
  98.  
  99. - Several drivers have had compatibility improved (eg. NES, Genesis and Coleco)
  100.  
  101. - The Apple II drivers have been fleshed out a little more. The //e
  102.   family now works. The disk emulation is significantly faster as well.
  103.   There is still plenty of work to be done though. [Brad Oliver]
  104.  
  105. - Bug fixes to the TI9928a video code. This affects the ColecoVision and the
  106.   TI-994a drivers. [Raphael Nabet, Sean Young]
  107.  
  108. - NES psg frequency is now correct. [Brad Oliver]
  109.  
  110. - Genesis now features preliminary FM sound. [Gareth Long, Tatsuyuki Satoh]
  111.  
  112. - Increased Genesis compatibility. [Gareth Long]
  113.  
  114. - Memory allocation fix in the NES driver [Juergen Buchmueller]
  115.  
  116. - Commodore SID emulation!  [Peter Trauner]
  117.  
  118.  
  119. Other Changes:
  120. --------------
  121.  
  122. - [DOS] Images specified at the command line must now be accompanied by the device they 
  123.   are to be attached to, and will not be loaded unless the device is specified *and* 
  124.   supported by that system.  Eg, to attach a cartridge for the NES, you must specify: 
  125.   MESS nes -cart galaga.nes
  126.   This may affect the usage of frontends, however it brings the MESS command line 
  127.   into sync with the well accepted MAME convention for command line usage.  See mess.txt 
  128.   for options and usage.
  129.  
  130. - Added support to automagically append or replace extensions for files 
  131.   opened with image_fopen(), which means, if opening a given filename 
  132.   fails (also from the optional clone_of parent driver), the code replaces 
  133.   or appends the next available extension and tries again.   Therefore, there 
  134.   is no need to actually supply the file extension to the command line.
  135.   [Juergen Buchmueller]
  136.  
  137. - The core is based on MAME 0.36 final. This incorporates all 
  138.   features of the update to this core.  [MAME team] 
  139.  
  140. - New option -listdevices. Use this to obtain valid device names for use at the command 
  141.   line to attach images to the system.
  142.  
  143. - Extensive CRC updates.
  144.   [Sean Young, Chris Henry, Gerardo Jorrin, Peter Trauner, Cowering]
  145.   SysInfo.dat documentation update 
  146.   [Thierry Schimbi, Chris Henry, Kev Thacker, Raphael Nabet]
  147.   Please send all CRC/sysinfo file contributions to Chris Henry. 
  148.   (battlepriest@hotmail.com).
  149.  
  150. - Small bug in the 6522 emulator fixed. [Gordon Jefferyes]
  151.  
  152. - Important inclusions for this release:
  153.   *wave sound interface and IODevice handler
  154.   *speaker sound driver (replaces the buzzer code)
  155.   *preliminary file manager
  156.   *mess_printf() which checks for gui_host
  157.   Check the UI (TAB) for handling options for most of the above.
  158.  
  159. - Generic M6847 code  [Nate Woods]
  160.  
  161. - Wd179x disk access update.  The correct sector size is now 
  162.   calculated for the nec765 real FDD access.  Now it is calculated 
  163.   from sector size. Loading from real disc works on Enterprise 
  164.   emulator.  [Kev Thacker]
  165.  
  166. - void via_set_clock(int which,int clock); added to 6522via.c.  This 
  167.   can be called after via_config() to change the clock, otherwise the 
  168.   clock speed of CPU1 is used. [Mathis Rosenhauer] 
  169.  
  170. - mess/msdos.c & mess/msdos.h created for MESS DOS specific functions.
  171.   Note: Each port is now responsible for handling these functions.
  172.  
  173.  
  174. - GAME_ALIAS flag added.  Use this when specifying a clone system
  175.   which requires the same romset as another. [Juergen Buchmueller]
  176.  
  177. - System documentation is now contained in sysinfo.dat and 
  178.   sysinfo.htm.  Use dat2html to generate sysinfo.htm from sysinfo.dat
  179.   [Chris Henry, Juergen Buchmueller, Ben Bruscella]
  180.  
  181. - You can now specify switches on the commandline in which case every 
  182.   image name following them goes to that respective slot, regardless 
  183.   of it's extension.  See mess.txt for some examples
  184.   [Peter Trauner, Juergen Buchmueller]
  185.  
  186. - [DOS] New options for IMAGES to be opened, namely OSD_FOPEN_READ, 
  187.   OSD_FOPEN_WRITE, OSD_FOPEN_RW, and OSD_FOPEN_RW_CREATE.  Check 
  188.   mess.h for a description of what they are used for.  Be sure to use 
  189.   these semantics when handling read/write files.
  190.   [Juergen Buchmueller]
  191. - slight changes to the PDP1 driver.
  192.  
  193. - [DOS] TI99 keyboard fix! [Raphael Nabet]
  194.  
  195. - System ROM (Image) name matched from CRC database file on startup.  
  196.   (file stored in CRC directory)
  197.  
  198. - You can now specify in MESS.CFG the *exact* directory a rom is 
  199.   which you want to run.  no longer necessray to have a directory with 
  200.   the same name as the system [Juergen Buchmueller] 
  201.   
  202. - Zipped cart and image support added. To use, make sure that the zip has the
  203.   same name as the file in the zip. (eg) for a coleco CART called
  204.   "venture.rom", zip to "venture.zip".  When running MESS, type "mess coleco
  205.   venture.rom".  MESS will then load "venture.rom" from "venture.zip".  Any
  206.   system roms can also be zipped and placed anywhere in you ROMPATH. (eg)
  207.   coleco.rom in coleco.zip.
  208.   [Ben Bruscella]
  209.  
  210. - GAME_COMPUTER flag added.  Use this to specify that the system requires
  211.   full keyboard emulation.  Emulated Computer systems now use the 
  212.   scroll_lock key to toggle the keyboard emulation.  When on, MAME keys 
  213.   (such as "P" for pause) are disabled, until toggled with the scroll_lock.
  214.   [Juergen Buchmueller]
  215.  
  216.  
  217. - [DOS] MAKEFILE/compilation changes. To compile MESS, simply make sure you
  218.   can compile MAME. Then, apply the MESS source over-ride and:
  219.  
  220.    1. Rename MAKEFILE to MAKEFILE.mm
  221.    2. Rename MAKEFILE.MES MAKEFILE
  222.    3. Type MAKE
  223.  
  224.  
  225. - There have been major changes to the Driver structures and loading procedure.  
  226.  
  227. *Here is an overview:
  228.  
  229. * Every game driver's struct GameDriver (src/mess/systems/*.c) is now
  230. defined using one of four macros COMP/COMPX or CONS/CONSX.
  231. COMP is for computers and CONS is for consoles. The X versions allow
  232. specifying additional flags (GAME_NOT_WORKING ect.)
  233.  
  234. * Every game driver specifies it's peripherals in an array of
  235. "struct IODevice" elements.
  236.  
  237. * rom_load and rom_id fields were moved into that list, together with
  238. the number of devices and the known file extensions for images of that
  239. type.
  240.  
  241. * MAME's src/driver.h now only contains one pointer to this list of
  242. devices, all of MESS' extra fields are gone.
  243. Old:
  244. #ifdef MESS
  245.     int (*rom_load)(void);
  246.     int (*rom_id)(const char *name, const char *gamename);
  247.     const char **file_extension;
  248.     int num_of_rom_slots;
  249.     int num_of_floppy_drives;
  250.     int num_of_hard_drives;
  251.     int num_of_cassette_drives;
  252. #endif
  253.  
  254. New:
  255. #ifdef MESS
  256.     const struct IODevice *dev;
  257. #endif
  258.  
  259.  
  260. * The global rom_name[], floppy_name[], hard_name[] and cassette_name[]
  261. arrays are gone! Instead each machine driver (src/mess/systems/*.c)
  262. should specify an init function for every device it supports.
  263. This init function is called during the startup with an id (0 to max
  264. instances of the device - 1) and a filename.
  265.  
  266. * rom_load is called very early when a driver is started.
  267. It is the 'init' function for the device type IO_CARTSLOT, so the
  268. previous statement applies here too. 
  269.  
  270. * the rom_id function pointer moved into the struct IODevice too.
  271. Every device can have a id function, so if it is possible to identify
  272. eg. a floppy disk, harddisk, cassette ect., you should provide the
  273. identifying functions and put them in this field in your systems/driver code.
  274. The id function return value is sort of TRUE/FALSE, ie. non zero
  275. means image is ok for this device, zero is not recognized.
  276.  
  277. * The IODevice contains an "void (*exit)(int id);" entry, so each
  278. driver could (and probably should) handle shutting down the various
  279. device instances.
  280. The exit entries are called from src/mess/mess.c exit_devices(),
  281. which is called from src/mame.c shutdown_machine().
  282.  
  283. * Startup handling moved from src/mame.c to src/mess/mess.c
  284. In the first stage load_image() is called.
  285. The images specified on the command line are parsed in mess.c now, and
  286. a list of "struct ImageFile" entries in the GameOptions is set.
  287. This struct contains a "char *name" and an "int type", where type should
  288. be set to one of the IO_CARTSLOT, IO_FLOPPY ect. values.
  289. GUI ports could use this to store some file selection lists together with
  290. the type of files selected.
  291. The DOS port stores image names from the command line (*argv) in this
  292. array, and the type of image is determined this way:
  293. 1st: user specified a type using a switch before a (list of) name(s).
  294.      For DOS this looks like "mess system -flop test -cart rom1 -cart rom2"
  295. 2nd: the extension of the filename matches one of the MessDevice entries
  296.      of the driver which is started. So if a driver defines "cas" for
  297.      it's IO_CASSETTE device and "dsk" for it's IO_FLOPPY device, the
  298.      command line "mess driver a.dsk b.cas" will be sufficient.
  299.  
  300. * In the second stage during startup, the get_files() function is called
  301. and images are sorted into some (static) arrays of names in mess.c.
  302. This is to allow easier/faster access to them and maybe useful for
  303. swapping the names and calling init_<device> again.
  304.  
  305. * The third stage now walks through the list of devices of the driver
  306. which is to be started and calls it's init functions with the the
  307. names from the arrays. If the driver returns non zero, the startup
  308. process is terminated here.
  309.