MAME 0.138u2: Difference between revisions
From MAMEDEV Wiki
(New page: == Release Date == MAME 0.138u2 was released on 17 Jun 2010. == Contributors == The known contributors for this version are, in alphabetical order: * /SftiKDL0 * Aaron Giles * [...) |
mNo edit summary |
||
Line 160: | Line 160: | ||
*** Double-Up (Normal / Poker / Bingo / No D-Up). | *** Double-Up (Normal / Poker / Bingo / No D-Up). | ||
* [[Andrew Welburn | * [[Andrew Welburn]] and [[Lord Nightmare]] provided a massive Space Invaders related comment update, documenting various sets, and the various Taito PCBs used by Space Invaders/Tabletop SI/Tabletop SI Color/Tabletop SI II/etc. | ||
* [[Angelo Salese]] hooked up color prom in Kick Boy. | * [[Angelo Salese]] hooked up color prom in Kick Boy. | ||
Line 239: | Line 239: | ||
* [[David Haywood]] fixed palette / priority handling in Lucky Girl (Newer Z180 hardware). | * [[David Haywood]] fixed palette / priority handling in Lucky Girl (Newer Z180 hardware). | ||
* [[Andrew Welburn | * [[Andrew Welburn]] and [[Lord Nightmare]] updated/corrected Space Invaders Comments, particularly regarding Midway Boards. | ||
* [[Angelo Salese]] fixed priorities in Frog & Spiders. | * [[Angelo Salese]] fixed priorities in Frog & Spiders. |
Revision as of 04:26, 11 July 2016
Release Date
MAME 0.138u2 was released on 17 Jun 2010.
Contributors
The known contributors for this version are, in alphabetical order:
- /SftiKDL0
- Aaron Giles
- Alex's Blog
- Andrew Welburn
- Angelo Salese
- Antwon Barajas
- Atari Ace
- B Zeidler
- Barry Rodewald
- Brian Troha
- Charles MacDonald
- Corrado Tomaselli
- couriersud
- David Haywood
- Fabio Priuli
- Guru
- hap
- Lord Nightmare
- Luca Elia
- Mariusz Wojcieszek
- Miodrag Milanovic
- Oliver Stoneberg
- R. Belmont
- Roberto Fresca
- robiza
- smf
- Smitdogg
- Stefan Lindberg
- stephh
- Tafoid
- Team Japump
- The Dumping Union
- trap15
- Trevor Brown
- XingXing
Specific Contributions
The known contributions for this version are, in the order specified in the whatsnew:
- Barry Rodewald provided a small update for the YM2610 core, which resets the PCM and Delta-T memory regions when the chip is reset. This is needed for MESS, where being able to change the size and existence of the sample regions on the Neo Geo AES is necessary for the sound to work right, especially for games that don't have a specific Delta-T region.
- David Haywood increased number of coinslots to 12, and tilt inputs to 4, required by in-progress gambling driver.
- Angelo Salese fixed various hangs and NVRAM init in the Model 2 driver.
- Lord Nightmare and The Dumping Union added partial decrypt function for vortex (0x0000-0x1FFF is decrypted properly, 0x4000-0x5FFF is probably not), still much work to be done especially regarding memory maps (which are affected by the epoxy block address inverts as well).
- Oliver Stoneberg fixed a warning in Visual Studio 2010 that was introduced by a previous commit.
- Atari Ace added some missing static qualifiers to MAME. Also, renamed some generically named exports from segaic16.c.
- robiza updated batsugun: fixed layer-layer priorities; sprite-sprite priorities are wrong.
- robiza updated dogyuun: fixed layer-layer priorities; sprite priorities are wrong.
- /SftiKDL0 provided the following updates: hal21: cabinet DIPSW was reversed; btlfield: DIAL was used instead of rotary joystick.
- Guru, Smitdogg and The Dumping Union updated namconb1.c: Replaced sound data rom for the Point Blank sets that was incorrectly dumped. The new dump has been verified on 3 different PCBs.
- R. Belmont provided kongambl.c updates:
- Mapped ROMs correctly to processors.
- Started mapping out Konami customs.
- EEPROM hooked up.
- Luca Elia provided a lordgun.c update:
- Implemented RAM based priorities.
- Added multi-sprite, fixed sprite list end.
- Corrected tilemap 2 size (wrong backgrounds in the final stage).
- Fixed crosshair position.
- R. Belmont provided chdman/cdrom updates:
- CDRWIN .bin/.cue images now supported for both input and output.
- Pregap and postgap information is now preserved in the format.
- Output of CDRDAO images is significantly improved.
- Existing CHD-CDs will continue to work fine and for data-only discs no action needs to be taken. For mixed data/audio discs (e.g. analog 573/Bemani games) they should be re-converted for better preservation.
- R. Belmont updated the kongambl driver: Support unpaged 056832 VRAM access.
- Angelo Salese hooked up ad sticks to Rail Chase 2.
- Angelo Salese documented Drive I/O BD commands in Rail Chase 2.
- Couriersud added a new cycle exact VMS interface to TMS5110 emulating M0, M1 and ADD1 to ADD8 lines. Added TMS6100 memory controller device. Also added TMSPROM device emulating bagman and ad2083 prom controlled speech logic. Switched bagman, ad2083 (scramble.c) and radarscp1 to use the new interface and devices.
- hap updated the buggychl driver : Improved sky, the in-game foreground statusbar and speedometer don't clip it anymore, and it's a gradient of azure->turquoise now instead of azure->black.
- Couriersud moved tms6100 code into emu/machine/tms6100.[ch]. Added pinouts for TMS6100 and M58819.
- David Haywood added palette DAC handling, reel layers and removed NMI patch in Lucky Girl (Z180 HW).
- Couriersud added clock information and timing from schematics to bagman.c. Improved interrupt timing and handling to follow schematics.
- R. Belmont updated the SDL code: remove problematic live render type toggle and default OS X to OpenGL.
- Guru and Angelo Salese hooked up basic Drive i/o board CPU in Sega Rally.
- Tafoid adjusted default volumes to normalize audio and better present the original output for bagman.c.
- Luca Elia fixed dips in Dragon World.
- Angelo Salese fixed NVRAM handling in Diamond Derby.
- Couriersud converted 7474 handlers to (READ|WRITE)_LINE_DEVICE_HANDLERS.
- Couriersud added macros for inline device handler initialization to devcb.h.
- Couriersud changed 7474 to only use devcb callbacks and handlers. Updated game drivers.
- Couriersud made X2212 now use device template. Also changed all handlers to use devcb prototypes. Default nvram contents should be in region named same like device tag. Hooked up X2212 in starwars.
- David Haywood provided a basic M6502 hook-up in Royal Gum.
- David Haywood moved Miracle Derby inside homedata.c driver.
- Couriersud removed r5h01_config. Memory region now has to have same tag as r5h01 device. Update playch10 driver.
- Couriersud added documentation about tms5110 prom interface used by bagman and ad2083.
- Couriersud made SDLMAME now compile against SDL 1.3 up to HG rev 4464. Everything beyond that revision is completely broken since Sam ripped out multi-keyboard and multi-mice support. Further information in README_SDL13.txt.
- Angelo Salese splitted the ST-V protection handlings by per-game.
- Angelo Salese added proper RTC support to the ST-V driver.
- Mariusz Wojcieszek provided a pcat_nit.c update:
- Added VGA emulation from MESS.
- Added INS8250 emulation from MESS.
- Added format decimal support to Microtouch.
- Added rom banking and inputs to pcat_nit games.
- streetg(2) now boot properly.
- Mariusz Wojcieszek moved some common PC code to machine/pcshare.c.
- Fabio Priuli updated vsnes.c: Reworked VROM banking to avoid pointing beyond the last bank. Also, changed the use of memory_set_bankptr into memory_set_bank.
- Lord Nightmare and stephh added Bonus Life dipswitches to Moon War (prototype on frenzy hardware).
- Roberto Fresca provided improvements to Lucky Girl (newer Z80 based hardware):
- Improved the input system, added missing buttons.
- Figured out the full coinage DIP switches. (Coins A, B, C, Key In)
- Found and documented the output ports.
- Added full lamps support.
- Created a new button-lamps layout.
- Hooked the coin and key in counters.
- Added technical notes.
- Figured out the following DIP switches:
- Auto Hold (No / Yes)
- Game Type (Hold Game / Discard Game).
- Adult Content (No / Yes).
- Minimal Winning Hand (Jacks or Better / 2 Pairs).
- Minimum Bet (1 / 5).
- Double-Up (Normal / Poker / Bingo / No D-Up).
- Andrew Welburn and Lord Nightmare provided a massive Space Invaders related comment update, documenting various sets, and the various Taito PCBs used by Space Invaders/Tabletop SI/Tabletop SI Color/Tabletop SI II/etc.
- Angelo Salese hooked up color prom in Kick Boy.
- Aaron Giles defined two new casting helpers:
- downcast<type>(value) should be used for safe and efficient downcasting from a base class to a derived class. It wraps static_cast<> by adding an assert that a matching dynamic_cast<> returns the same result in debug builds.
- crosscast<type>(value) should be used for safe casting from one type to another in multiple inheritance scenarios. It compiles to a dynamic_cast<> plus an assert on the result. Since it does not optimize down to static_cast<>, you should prefer downcast<> over crosscast<> when you can.
- Aaron Giles redefined running_device to be a proper C++ class (now called device_t). Same for device_config (still called device_config). All devices and device_configs must now be derived from these base classes. This means each device type now has a pair of its own unique classes that describe the device. Drivers are encouraged to use the specific device types instead of the generic running_device or device_t classes. Drivers that have a state class defined in their header file are encouraged to use initializers off the constructor to locate devices.
- Aaron Giles removed the following fields from the device and device configuration classes as they never were necessary or provided any use: device class, device family, source file, version, credits.
- Aaron Giles added templatized variant of machine->device() which performs a downcast as part of the device fetch. Thus machine->device<timer_device>("timer") will locate a device named "timer", downcast it to a timer_device, and assert if the downcast fails.
- Aaron Giles removed most publically accessible members of running_device/device_t in favor of inline accessor functions. The only remaining public member is machine. Thus all references to device->type are now device->type(), etc.
- Aaron Giles created a number of device interface classes which are designed to be mix- ins for the device classes, providing specific extended functionality and information. There are standard interface classes for sound, execution, state, nvram, memory, and disassembly. Devices can opt into 0 or more of these classes.
- Aaron Giles converted the classic CPU device to a standard device that uses the execution, state, memory, and disassembly interfaces. Used this new class (cpu_device) to implement the existing CPU device interface. In the future it will be possible to convert each CPU core to its own device type, but for now they are still all CPU devices with a cpu_type() that specifies exactly which kind of CPU.
- Aaron Giles created a new header devlegcy.h which wraps the old device interface using some special template classes. To use these with an existing device, simply remove from the device header the DEVICE_GET_INFO() declaration and the #define mapping the ALL_CAPS name to the DEVICE_GET_INFO. In their place #include "devlegcy.h" and use the DECLARE_LEGACY_DEVICE() macro. In addition, there is a DECLARE_LEGACY_SOUND_DEVICE() macro for wrapping existing sound devices into new-style devices, and a DECLARE_LEGACY_NVRAM_DEVICE() for wrapping NVRAM devices. Also moved the token and inline_config members to the legacy device class, as these are not used in modern devices.
- Aaron Giles converted the standard base devices (VIDEO_SCREEN, SPEAKER, and TIMER) from legacy devices to the new C++ style. Also renamed VIDEO_SCREEN to simply SCREEN. The various global functions that were previously used to access information or modify the state of these devices are now replaced by methods on the device classes. Specifically:
- video_screen_configure() == screen->configure()
- video_screen_set_visarea() == screen->set_visible_area()
- video_screen_update_partial() == screen->update_partial()
- video_screen_update_now() == screen->update_now()
- video_screen_get_vpos() == screen->vpos()
- video_screen_get_hpos() == screen->hpos()
- video_screen_get_vblank() == screen->vblank()
- video_screen_get_hblank() == screen->hblank()
- video_screen_get_width() == screen->width()
- video_screen_get_height() == screen->height()
- video_screen_get_visible_area() == screen->visible_area()
- video_screen_get_time_until_pos() == screen->time_until_pos()
- video_screen_get_time_until_vblank_start() == screen->time_until_vblank_start()
- video_screen_get_time_until_vblank_end() == screen->time_until_vblank_end()
- video_screen_get_time_until_update() == screen->time_until_update()
- video_screen_get_scan_period() == screen->scan_period()
- video_screen_get_frame_period() == screen->frame_period()
- video_screen_get_frame_number() == screen->frame_number()
- timer_device_adjust_oneshot() == timer->adjust()
- timer_device_adjust_periodic() == timer->adjust()
- timer_device_reset() == timer->reset()
- timer_device_enable() == timer->enable()
- timer_device_enabled() == timer->enabled()
- timer_device_get_param() == timer->param()
- timer_device_set_param() == timer->set_param()
- timer_device_get_ptr() == timer->get_ptr()
- timer_device_set_ptr() == timer->set_ptr()
- timer_device_timeelapsed() == timer->time_elapsed()
- timer_device_timeleft() == timer->time_left()
- timer_device_starttime() == timer->start_time()
- timer_device_firetime() == timer->fire_time()
- Aaron Giles updated all drivers that use the above functions to fetch the specific device type (timer_device or screen_device) and call the appropriate method.
- Aaron Giles changed machine->primary_screen and the 'screen' parameter to VIDEO_UPDATE to specifically pass in a screen_device object.
- Aaron Giles defined a new custom interface for the Z80 daisy chain. This interface behaves like the standard interfaces, and can be added to any device that implements the Z80 daisy chain behavior. Converted all existing Z80 daisy chain devices to new-style devices that inherit this interface.
- Aaron Giles changed the way CPU state tables are built up. Previously, these were data structures defined by a CPU core which described all the registers and how to output them. This functionality is now part of the state interface and is implemented via the device_state_entry class. Updated all CPU cores which were using the old data structure to use the new form. The syntax is currently awkward, but will be cleaner for CPUs that are native new devices.
- Aaron Giles converted the okim6295 and eeprom devices to the new model. These were necessary because they both require multiple interfaces to operate and it didn't make sense to create legacy device templates for these single cases. (okim6295 needs the sound interface and the memory interface, while eeprom requires both the nvram and memory interfaces).
- Aaron Giles changed parameters in a few callback functions from pointers to references in situations where they are guaranteed to never be NULL.
- Aaron Giles removed MDRV_CPU_FLAGS() which was only used for disabling a CPU. Changed it to MDRV_DEVICE_DISABLE() instead. Updated drivers.
- Aaron Giles reorganized the token parsing for machine configurations. The core parsing code knows how to create/replace/remove devices, but all device token parsing is now handled in the device_config class, which in turn will make use of any interface classes or device-specific token handling for custom token processing.
- Aaron Giles moved many validity checks out of validity.c and into the device interface classes. For example, address space validation is now part of the memory interface class.
- Aaron Giles consolidated address space parameters (bus width, endianness, etc.) into a single address_space_config class. Updated all code that queried for address space parameters to use the new mechanism.
- David Haywood fixed palette / priority handling in Lucky Girl (Newer Z180 hardware).
- Andrew Welburn and Lord Nightmare updated/corrected Space Invaders Comments, particularly regarding Midway Boards.
- Angelo Salese fixed priorities in Frog & Spiders.
- Angelo Salese fixed crash regression with spangbl / pangba.
- Tafoid updated galivan.c with DIP LOCATIONS and verified setting via Service Mode. Added comments about missing text layer in Ninja Emaki and flagged those sets with missing protection emulation.
- trap15 and R. Belmont fixed audio cpu banking in Raiden 2 (add a missing mirror to banking register).
- R. Belmont corrected Raiden II audio banking - it's only at 401a.
- R.Belmont updated the Flash device: 4k sectors should erase in 1/8th the time of 64k. Extended core to support GBA chip types.
- Aaron Giles cleaned up profiling flags in the makefile. Removed GPROF flag, it is now just PROFILE. When enabled, automatically turn on basic symbols. Also added new SYMLEVEL option to control the symbols level (defaults to 2).
- Charles MacDonald dumped internal ROM for Pinkiri 8.
- Charles MacDonald dumped internal ROM for Janshi.
- Stefan Lindberg and The Dumping Union provided a documentation update:
- segas16b.c, taito_f2.c, taito_f3.c & taito_x.c: Corrected rom names and or added PCB locations to Ray Force, Arabian Magic, Liquid Kids, Twin Hawk. Added additional Sega game ID info for an Alien Syndrome set.
- Alex's Blog provided a model3.c update: Correct sound rom loading for the Scud & Scud Plus sets.
- Miodrag Milanovic updated devlegacy.c,clifront.c,info.c:
- Created legacy image device.
- Moved opresolv implementation from MESS.
- listmedia is option is available in MAME too.
- listxml output now contains image devices.
- smf made -romident now identify chd's.
- Angelo Salese emulated protection check in Ron Jan.
- David Haywood added default NVRAM to G-Stream.
- David Haywood dixed default EEPROM for 1 on 1 Government.
- David Haywood added default EEPROMs for each Brave Blade region.
- David Haywood, Angelo Salese provided improvements to the Pinkiri 8 video emulation.
- Miodrag Milanovic updated emuopts - added support for image devices parameters.
- David Haywood deviceized the VDP used by Pinkiri 8 HW.
- R. Belmont provided fixes for OS X PowerPC compile.
- Team Japump and The Dumping Union added color PROM of kickboy and corrected ROM filename.
Game Support
New games added or promoted from NOT_WORKING status
- Alien Challenge (2 sets)
- Lucky Girl (Z180-based HW)
- Vortex
- The Berenstain Bears in Big Paw's Cave
- Royal Queen
- Night Gal
- Night Bunny / Royal Night
New clones added
- Wai Wai Animal Land Jr.(Japan)
- Phantoms II (Space Invaders hardware)
- Toki (US, set 2)
- Ooedo Fight (Japan)
New games marked as GAME_NOT_WORKING