and thief drivers.
Bunch of improvements to the Status system emulation. Correct
video timing, hooked up TMS9927, corrected colors, etc. Still
some work to do.
New games
=========
Status Blackjack
Status Fun Casino
The eepromdev.* files are the device impementation for the serial eeproms
The i2cmemdev.* files are the device impementation for the i2c memory
These aren't currently hooked up
I'm committing this so that the Naomi changes don't accidentally get applied. The idea seems good, but they conflict with the current driver and I'd rather not have them accidentally slipping in and breaking things just yet.
* Added source file konamipt.h to unify Konami inputs where possible (e.g. most 80s-90s games were using basically the same coinage settings and joystick inputs).
* While at it, verified all 0x00 coinage effects in drivers which now use konamipt.h (fixing a few mistakes: hexion, mikie, crimfgtj...).
* Added finalizb service coin. Removed roadf coin4 & asterix coin3 (neither used by the games nor present in service mode).
* Fixed gberetb coin inputs (they were switched).
* Added port_condition to hcrash so that brake appears only when present in the chosen cabinet.
* Cleaned up mystwarr.c & moo.c input handlers.
- derived clocks where possible
- complete memory maps from the schematics
- hooked up proper sound command latching
- reimplemented 6802-based ADPCM samples for the bootlegs
- merged memory maps
- extended NVRAM to the full RAM range (according to schematics)
- created common include file and modified drivers to use it instead of explicit externs
Done:
- AGA palette
- AGA bitplane data fetching
- support for up to 8 standard bitplanes
- HAM8 mode
To do (for devs):
- inputs (buttons/coins are connected as CD32 pad, current implementation (copied from WinUAE) doesn't work, help is welcome)
- sprites (current implementation is incomplete - see CD32 logo)
- incorrect hstart/hstop values in CD32 logo, lsrquiz & lsrquiz2
------------------------------------
Street Games II [Guru, Angelo Salese]
==========================================================
Basic driver, will add the other romsets soonish.
------------------------------------
California Chase [Angelo Salese]
==========================================================
Basic skelly, will improve it soonish.
* Fixes Royal Casino colors;
* Added flip screen support to the driver;
* Changed Casino Winner to be a clone of Royal Casino;
* Cleaned-up the driver;
OK, here we go so far. Layouts for all the games that have a simple one-input shifter. Except
Turbo, because I'll need to update the whole file, which will take a little more work.
And below is the rest of the games that have shifters, but use a separate input for each gear,
so something different will need to be done.
There are also six games that use a simple shifter, but the button isn't set to toggle. So to
play the game, you hold the button for low gear, then let go for high gear. Not sure if you
wanted to change these or not, so I just included the layout file for now.
Games to update for PORT_TOGGLE
buggychl - src/mame/drivers/buggychl.c
chasehq - src/mame/drivers/taito_z.c
contcirc - src/mame/drivers/taito_z.c
sci - src/mame/drivers/taito_z.c
roundup5 - src/mame/drivers/tatsumi.c
superchs - src/mame/drivers/superchs.c
------------------------------------
King Derby? [Stefan Lindberg, Andrew Gardner, Angelo Salese, Roberto Fresca]
======================================
aka the original "Cow Race", made by Tazmi in 1981 -> http://mamedev.emulab.it/kale/fast/files/0000(183371730).png
HW is pretty much hellish...
Some of these sets might not be available, they're based off operator manuals, so should be accurate. The sets which are not available will be disabled once it's been firmly established exactly which ones they are I'm not 100% sure.
No credit wanted / anonymous submission
Please note: regression testing is in progress, but the first round
of glaring regressions have already been taken care of. That said,
there is likely to be a host of regressions as a result of this
change.
Also note: There are still a few rough edges in the interfaces. I
will try to clean them up systematically once the basic system is
working.
All sound chips are now proper devices.
Merged the sound chip interface into the device interface,
removing any differences (such as the whole ALIASing concept).
Modified every sound chip in the following ways:
* updated to match the device interface
* reduced read/write handlers down to the minimal number
* added the use of get_safe_token() for ensuring correctness
* other minor cleanup
Removed the custom sound device. The additional work to just make
custom sound cases into full devices is minimal, so I just converted
them all over to be actual devices.
Vastly simplified the sound interfaces, removing the ghastly
sndti_* business and moving everyone over to using tags for
sound identity. sndintrf, like cpuintrf, is now just a header
file with no implementation.
Modified each and every driver that references a sound chip:
* all memory maps explicitly reference the targeted device via
AM_DEVREAD/AM_DEVWRITE/AM_DEVREADWRITE
* 16-bit and 32-bit accesses to 8-bit chips no longer use
trampoline functions but instead use the 8-bit AM_DEVREAD/WRITE
macros
* all references to sound chips are now done via tags
* note that these changes are brute force, not optimal; in many
cases drivers should grab pointers to devices in MACHINE_START
and stash them away
New games added or promoted from NOT_WORKING status
---------------------------------------------------
TomCat (prototype) [Mariusz Wojcieszek]
There are still some small issues (complete list in driver), if somebody with more experience with Atari and/or vector hardware wants to take a look, feel free.
Merging back in the PinMAME drivers is proposed every now and again, and since we've just added other non-video based things I figured that now might be a good time to look at it.
This is likely to be a HUGE undertaking as PinMAME is based on old code, and is Macro-hell, I see it as a several step plan.
1) Convert all the PinMAME drivers to compile their ROM Loading with current versions of MAME
2) Clean up the ROM loading, removing the excessive Macros which really don't help readability at all IMO
3) Hook up the Machine Drivers again for each system, so that the CPU core runs again
4) Look at ways in which the artwork system can be used to simulate the display parts etc. (there is a scary amount of code in PinMAME for handling this stuff)
5) See how feasible it is to allow MAME to communicate with another program, as it's unlikely we'll be able to simulate the full table physics in MAME.
I've updated the System11 rom loading to compile for now. The old PinMAME code which hasn't been updated is there #if 0'd out for reference for when a stab is made at hooking back up the actual CPUs to run etc.
Part of me wonders if just rewriting it from scratch would be easier, but it would be a shame to throw away the information that was figured out in PinMAME.
This was done by request, so I'm not especially bothered if it doesn't get included, PinMAME is rather hideous ;-)
If anybody wants to help they're more than welcome. The other Williams systems should be easy to hook up the rom loading for because they share most of the Macros that have already been updated to compile.
---------------------------------------------------
Monopoly [Phil Bennett]
Monopoly Classic [Phil Bennett]
Monopoly Deluxe [Phil Bennett]
6850acia: Only adjust the rx/tx bit timers on a control write if the divide ratios have changed.
- Merged GTI Poker (gtipoker.c) with this driver.
- Added new memory map and machine driver for gtipoker.
- Hooked 2x PPI 8255 to gtipoker.
- Hooked the video RAM access ports to gtipoker.
- Changed norautpn description from Noraut Poker (No Payout),
to Noraut Poker (bootleg), since the game has payout system.
- Some clean-ups.
read/write functions and various other types of functions. Introduced new
structures and macros to make this possible.
To take advantage of this, a device must change its interface to replace and
read/write callbacks with the new devcb_read/write structures. During device
start time, the device then uses this new devcb module to resolve the information
in the devcb_read/write structures into a more efficient form. When the device
needs to call one of the callbacks, it uses the inline devcb_call_read/write
functions.
Once a device has defined its callbacks as devcb_read/write structures, users
of the device must use the DEVCB_* macros to specify the type and information
about the handler to use:
DEVCB_NULL = no handler
DEVCB_HANDLER = a standard device read/write handler
DEVCB_MEMORY_HANDLER = a memory address space read/write handler
DEVCB_DEVICE_HANDLER = a device read/write handler for a different device
DEVCB_INPUT_PORT = an input port
Converted the 8255PPI device to use this new structure, and updated all users
to use the DEVCB macros, removing some unnecessary trampoline functions along
the way.