主题 : 【新闻】MAME 0.142
级别: 论坛版主
UID: 6498
精华: 1
发帖: 9744
威望: 49 星
金钱: 403153 浮游币
贡献值: 9568 点
好评度: 53295 点
人气: 3105 点
在线时间: 4572(时)
注册时间: 2004-06-07
最后登录: 2024-11-27
楼主  发表于: 2011-04-03 21:09

【新闻】MAME 0.142

http://mamedev.org/

0.142
-----


MAMETesters Bugs Fixed
----------------------
- 04286: [Sound] deadang and clones: Missing ADPCM Audio (Aaron Giles)
- 04288: [Crash/Freeze] goodejan, goodejana, totmejan, sengokmi: Crash
         after OK (Aaron Giles)
- 04290: [Crash/Freeze] honeydol: Crash after OK (Aaron Giles)
- 04291: [Crash/Freeze] Many sets in 8080bw.c: [debug] Assert before OK
         (Aaron Giles)
- 04289: [Crash/Freeze] twinadv, twinadvk: Crash after OK (Aaron Giles)
- 04287: [Graphics] wintbob: Video missing (Aaron Giles)
- 04295: [Documentation] stdragon: The game description is "Saint
         Dragon". (Fujix)
- 04285: [Misc.] tenkaid: Missing NO_DUMP label for rom tydg002.u8 (hap)
- 04294: [Graphics] jrpacman, jrpacmbl: pac-man and the ghosts are not
         visable. (hap)



Source Changes
--------------
Converted Super Shanghai Dragon's Eye to use the common deco video
files functions, fixing a rowscroll bug in it [David Haywood]

Fix font loading in sdlmame. BDF files are just loaded as TTF by
TTF_OpenFont. Load is now protected by a magic check. Also fixed a bug
in SDL1.3 keyboard mapping and changed SDL1.3 code to be compatible
with recent 1.3 API changes. [Couriersud]

sdl-config flags are now separated into INCFLAGS and COMFLAGS in
sdl.mak. This fixes "make depend". [Couriersud]

softlist.c: split the <info> field (added some time ago to handle
compatibility requirements) into  <info> and <sharedfeat>. the former
stays tied to the whole software entry, the latter gets inherited by
each part. [Fabio Priuli]

Added device_t::memory() to fetch a reference to the memory interface,
or assert if not present. [Aaron Giles]

Split address_space::install_[legacy_]handler into
install_[legacy_]read_handler, install_[legacy_]write_handler, and
install_[legacy_]readwrite_handler. [Aaron Giles]

Added variants of address_space handler installers which don't take
mirror or mask parameters, since this is by far the most common case.
[Aaron Giles]

Deprecated API cleanup. [Aaron Giles]
   cpu_suspend                   ==> device_suspend
   cpu_resume                    ==> device_resume
   cpu_yield                     ==> device_yield
   cpu_spin                      ==> device_spin
   cpu_spinuntil_trigger         ==> device_spin_until_trigger
   cpu_spinuntil_time            ==> device_spin_until_time
   cpu_spinuntil_int             ==> device_spin_until_interrupt
   cpu_eat_cycles                ==> device_eat_cycles
   cpu_adjust_icount             ==> device_adjust_icount
   cpu_triggerint                ==> device_triggerint
   cpu_set_input_line            ==> device_set_input_line
   cpu_set_input_line_vector     ==> device_set_input_line_vector
   cpu_set_input_line_and_vector ==> device_set_input_line_and_vector
   cpu_set_irq_callback          ==> device_set_irq_callback

   device_memory(device)                ==> device->memory()
   device_get_space(device, spacenum)   ==> device->memory().space(spacenum)
   cpu_get_address_space(cpu, spacenum) ==> cpu->memory().space(spacenum)
   cputag_get_address_space(mach, tag, spacenum) ==> mach->device("tag")->memory().space(spacenum)
   cputag_get_clock(mach, tag)          ==> mach->device("tag")->unscaled_clock()
   cputag_set_clock(mach, tag, hz)      ==> mach->device("tag")->set_unscaled_clock(hz)

Created new enum type address_spacenum for specifying an address space
by index. Update functions and methods that accepted an address space
index to take an address_spacenum instead. Note that this means you
can't use a raw integer in ADDRESS_SPACE macros, so instead of 0 use
the enumerated AS_0. [Aaron Giles]

Standardized the project on the shortened constants AS_* over the
older ADDRESS_SPACE_*. Removed the latter to prevent confusion. Also
centralized the location of these definitions to memory.h. [Aaron Giles]

Converted DECO BAC06 tilemap (used by dec0.c) to be a device, reducing
code duplication [David Haywood]

Deprecate the old memory_install_* macros. Dynamic installation is now
handled directly by calling methods on the address_space, which have
been expanded with aliases to cover all previous situations. In
addition, variants with no mirror or mask value are provided to cover
the common cases: [Aaron Giles]

   memory_install_read*_handler(space, begin, end, mirror, mask, handler)
     ==> space->install_legacy_read_handler(begin, end [, mirror, mask], FUNC(handler))

   memory_install_write*_handler(space, begin, end, mirror, mask, handler)
     ==> space->install_legacy_write_handler(begin, end [, mirror, mask], FUNC(handler))

   memory_install_readwrite*_handler(space, begin, end, mirror, mask, rhandler, whandler)
     ==> space->install_legacy_readwrite_handler(begin, end [, mirror, mask], FUNC(rhandler), FUNC(whandler))

   memory_install_read*_device_handler(space, device, begin, end, mirror, mask, handler)
     ==> space->install_legacy_read_handler(*device, begin, end [, mirror, mask], FUNC(handler))

   memory_install_write*_device_handler(space, device, begin, end, mirror, mask, handler)
     ==> space->install_legacy_write_handler(*device, begin, end [, mirror, mask], FUNC(handler))

   memory_install_readwrite*_device_handler(space, device, begin, end, mirror, mask, rhandler, whandler)
     ==> space->install_legacy_readwrite_handler(*device, begin, end [, mirror, mask], FUNC(rhandler), FUNC(whandler))

   memory_install_read_port(space, begin, end, mirror, mask, port)
     ==> space->install_read_port(begin, end [, mirror, mask], port)

   memory_install_read_bank(space, begin, end, mirror, mask, bank)
     ==> space->install_read_bank(begin, end [, mirror, mask], bank)

   memory_install_rom(space, begin, end, mirror, mask, ptr)
     ==> space->install_rom(begin, end [, mirror, mask], ptr)

   memory_install_ram(space, begin, end, mirror, mask, ptr)
     ==> space->install_ram(begin, end [, mirror, mask], ptr)

   memory_unmap_read(space, begin, end, mirror, mask)
     ==> space->unmap_read(begin, end [, mirror, mask])

   memory_nop_read(space, begin, end, mirror, mask)
     ==> space->nop_read(begin, end [, mirror, mask])

uiimage.c: Improved File Manager usage (in the internal UI) by
catching char inputs and searching for matching names among files and
directories [Fabio Priuli]

some work on the 3 games in dec8.c which use the bac06
tilemaps[David Haywood]

Converted Act Fancer, Trio the Punch and Mad Motor to use the common
deco video functions [David Haywood]

Converted Stadium Hero driver to use the common Deco video functions
[David Haywood]

Cleanup of machine.h. Shuffled some fields around, and moved several
to private member variables with accessors: [Aaron Giles]

   machine->m_respool     ==> machine->respool()
   machine->config        ==> machine->config()
   machine->gamedrv       ==> machine->system()
   machine->m_regionlist  ==> machine->first_region()
   machine->sample_rate   ==> machine->sample_rate()

Converted Pocket Gal to use the common deco video routines
[David Haywood]

Started moving common deco MXC06 sprite controller code to it's own
device files, reducing code duplication [David Haywood]

Converted Act Fancer to use common deco sprite code [David Haywood]

Converted Vapor Trail to use the common deco sprite functions
[David Haywood]

Converted Stadium Hero, Cobra-Command, Psycho-Nics Oscar to use the
common deco sprite functions [David Haywood]

Removed redundant machine items from address_space and device_t.
Neither machine nor m_machine are directly accessible anymore. Instead
a new getter machine() is available which returns a machine reference:
[Aaron Giles]

   space->machine->xxx   ==>  space->machine().xxx
   device->machine->yyy  ==>  device->machine().yyy

Globally changed all running_machine pointers to running_machine
references. Any function/method that takes a running_machine takes it
as a required parameter (1 or 2 exceptions). Being consistent here
gets rid of a lot of odd &machine or *machine, but it does mean a very
large bulk change across the project. [Aaron Giles]

Remove redundant item cpu from address_space, in favor of
space->device(). [Aaron Giles]

Two hash_collections can only match if they have at least one matching
hash. [Aaron Giles]

If we get an error parsing options, see if there was no command and
what looks like an invalid system name. In that case, provide
suggestions for the system name instead of reporting the options
error. [Aaron Giles]

Move overridable device->rom_region(),
device->machine_config_additions(), and device->input_ports() to
protected methods. Added non-virtual wrappers around them.
[Aaron Giles]

Implemented karnov style sprites in its own file, shared with karnov
and dec8 drivers [David Haywood]

Fixed multiwidth sprites in decmxc06.c, removed code which appeared to
serve no purpose other than to break the birdtry gfxdecode in
machine/dec0.c [David Haywood]

Added new macro MACHINE_CONFIG_DERIVED_CLASS() which works just like
MACHINE_CONFIG_DERIVED() except you can specify an alternate
driver_device class. Used this in the 8080bw.c games which require an
_8080bw_state, but derive from mw8080bw_root which has the base class
mw8080bw_state. [Aaron Giles]

lordgun.c: Corrected Dipswitch names and added dipswitch locations to
Lord of Gun & Alien Challenge [Brian Troha]

tumbleb.c: Corrected Dipswitch names and locations for Choky! Choky!
[Brian Troha]



New clones added
----------------
Fashion Gambler (Set 2)  [Team Europe]
AAcrobatic Dog-Fight (USA) [Tirino73]



New games marked as GAME_NOT_WORKING
------------------------------------
Jyunai - Manatsu no First Kiss [The Dumping Union, alien_mame]
BiKiNikko - Okinawa de Ippai Shityaimashita [The Dumping Union, alien_mame]
绿坝娘美...