- Proper 3x PPI 8255 connections.
- Created a new AY8910 interface due to different ports addressing.
- Hooked all the input banks (8).
- Improved DIP switches with main game and D-UP rates, keyin values, D-UP game type (reels/cards) and other options to both sets.
- Added PORT_DIPLOCATION to all DSW banks.
- Promoted both sets to working state.
The game has 2 sets of controls. Once coined, both players can switch control through their own 'BIG' key.
If the game boots with 'Coin Jam' error, press RESET to normalize. Please delete your old .nv and .cfg files before run this update.
New games added or promoted from NOT_WORKING status
---------------------------------------------------
New Lucky 8 Lines (set 1) [Roberto Fresca]
New Lucky 8 Lines (set 2) [Roberto Fresca]
- Completed the missing inputs.
- Mapped 4 of the 5 DIP switches banks. (can't find the 5th)
- Worked out the conditional DIPs.
- Documented all DIP switches bank.
- Added PORT_DIPLOCATION to all switches.
Cherry Bonus III (Version 1.40):
- Worked the remaining inputs.
- Mapped and documented all 5 DIP switches banks.
- Worked out the conditional DIPs.
- Added PORT_DIPLOCATION to all switches.
The game is working, but need a workaround for the status connection. Each time the player press 'Take' to get the credits, a "call attendant" msg appear and credits must be taken pressing 'Key Out'.
- Fixed memory map.
- Fixed NVRAM. (please delete the old .nv)
- Added sound through sn76496.
- Added 3x PPI 8255.
- Created basic inputs from the scratch to match the PPI connections.
- Defined the output port.
- Change description to "New Lucky 8 Lines"
- Change manufacturer to Wing Co.Ltd.
- Added an alternate set.
New clones added
----------------
New Lucky 8 Lines (set 2) [Roberto Fresca]
Added common device interface, merged witchcrd and sloco93 machine drivers, and added/corrected the 50/60 Hz. DIP switches to all games. The 50hz mode needs to be corrected. Some games as most bsuerte sets have the 50/60 Hz. DIP switch connection patched.
Cleaned up mcs48 to be dependent on a single makefile define, rather than
separate defines for each CPU which didn't really buy us anything in terms
of code size or performance.
Sent: Wednesday, December 24, 2008 2:49 PM
To: submit@mamedev.org
Cc: atariace@hotmail.com
Subject: [patch] Fix 02764: liberatb: [debug] Access Violation
Hi mamedev,
This fixes 02764. When all the CPUs got tags in 0126u2, this driver
ended up removing it's own cpu(!), causing this crash in debug and
similar unhappiness in non-debug.
~aa
Sent: Wednesday, December 24, 2008 11:09 AM
To: submit@mamedev.org
Subject: Gururin redump...
This diff replaces the bad (likely hacked) Gururin dump with one Guru did yesterday from my cart and I fixed some rom names in Double Axle according to the pcb. Here's the changed roms:
http://smitdogg.mameworld.info/random/g.zip
Smitdogg
- converted driver to be fully scanlines based using timers
- hooked up interrupts
- updated driver to new video screen raw parameters (based on ddragon.c driver)
Sent: Tuesday, December 23, 2008 7:49 AM
To: submit@mamedev.org
Subject: Submissions
* ddragon.diff:
- converted scanline timer to be a device
- corrected M6809 CPU frequencies, they are supposed to be internally divided by 4 but
there's no internal divider in the core
* gstream.diff:
- improved oki banking (educated guesswork, see notes in the driver)
- replaced CPU_EAT_CYCLES hack with CPU_SPINUNTIL_INT because the first cause the video
completely out of sync with audio. I think the game is really so slow on the PCB too
* vball.diff:
- converted driver to be fully scanlines based using timers
- hooked up interrupts
- updated driver to new video screen raw parameters (based on ddragon.c driver)
* xain.diff:
- converted driver to be fully scanlines based using timers
- fixed ID 02742
- updated driver to new video screen raw parameters (based on ddragon.c driver)
Sent: Monday, December 22, 2008 8:04 AM
To: submit@mamedev.org
Cc: atariace@hotmail.com
Subject: [patch] Update sound core header files
Hi mamedev,
This patch updates all the sound core header files to declare their
SND_GET_INFO functions, which will be needed once the sound cores
become proper devices. It also makes a handful of other header
declaration fixes in emu/sound, and makes one SND_RESET routine
static. Note: votrax.h is a new include file altogether.
~aa
Adds some clones.
Adds Cafe break as not-working (it needs the internal CPU rom dumped).
Also added the (commented out) rom loader for the new "Dai Dai Kakumei" dump,
that only differs in rom sizes.
New clones added
----------------
Show Hand (China) [Luca Elia]
Don Den Lover Vol. 1 (Korea) [Luca Elia]
New games marked as GAME_NOT_WORKING
------------------------------------
Mahjong Cafe Break [Guru]
New games marked as GAME_NOT_WORKING
------------------------------------
Night Bunny / Royal Night [David Haywood,Angelo Salese]
Night Gal [David Haywood,Angelo Salese]
Night Gal Summer [David Haywood,Angelo Salese]
Sexy Gal / Sweet Gal [David Haywood,Angelo Salese]
(You can see a mirrored test menu with a few ROM patches now)
(The i860 code has been found and has been deemed "dead simple" by the guy who wrote the unix binutils i860 disassembler, Jason Eckhardt. He also wrote an i860 cpu core in the past and has donated parts of it to MAME. If he weren't finishing up his phd thesis in 2 months, i'd say he'd have finished this driver by now himself :) )
describes the interface, but does not contain any implementation.
All remaining bits of implementation have been migrated either to
cpuexec.c or to debugcpu.c. Specifically, cpu_dasm() is now
debug_cpu_disassemble(), and cpu_set_dasm_override() is now
debug_cpu_set_dasm_override(). Also moved memory_address_physical()
to debug_cpu_translate(), since it was only ever used for
debugging.
Changed all CPU and sound cores to use memory_find_address_space()
instead of cpu_get_address_space(). The former is reliable even
during early initialization when the CPU cores generally need it.
Removed the dummy CPU core and cpuintrf.c.
Changed the core execution loop to directly call the execute
function instead of using the inline helper (which has been removed).
The program ROM has only 3 bytes of difference at offset 0x008b.
Spacecho: 0x008b: call $2929 ; cd 29 29
Spacech2: 0x008b: im 1 ; ed 56
0x008d: nop ; 00
So... spacech2 is avoiding to enter the sub at $2929.
New clones added
----------------
Space Echo (set 2) [Roberto Fresca]
- Hooked the 3x PPI 8255 devices to chryigld and ncb3.
- Reworked the chryigld and ncb3 inputs based on PPI 8255 connections.
- Added the unmapped PSG sound to chryigld and ncb3.
- Some works on their machine driver.
- Some cleanups.
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Cherry I Gold (bootleg of Golden Star) [Roberto Fresca]
New games marked as GAME_NOT_WORKING
------------------------------------
Cherry Master I (v1.01) [Roberto Fresca, David Haywood]
(It was doing a double-shift for CPUs with a address shift)
(The bpset command seems to occasionally behave oddly for cpus with address shifts as well. Didn't figure that problem out in the few minutes i looked at it.)
Sent: Sunday, December 21, 2008 3:28 AM
To: submit@mamedev.org
Subject: minor stuff
Hi,
just a small one:
- adds a ATTR_PRINTF in inptport.c
- removes an unnecessary memset in emu/sound/rf5c68.c
So long
Oliver
Changed 8080/8085 callbacks to be specified in a config structure.
Converted 8080/8085 core to cpu_state_table.
Changed to a single HAS_808X define for both cores.
Fixed several drivers that used interrupts in odd ways.
Converted warpwarp driver to raw video parameters.
- Complete reel support from the scratch.
- Full inputs, outputs & DIP switches from the scratch.
- Added new games.
- Updated technical and game notes.
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Sky Lancer (Bordun, ver.U450C) [Roberto Fresca, David Haywood]
Butterfly Video Game (ver.U350C) [Roberto Fresca, David Haywood]
Mad Zoo (ver.U450C) [Roberto Fresca, David Haywood]
New games marked as GAME_NOT_WORKING
------------------------------------
Leader [Roberto Fresca, David Haywood]
* Fixed flag calculation and sign extension for numerous ops.
* Added rnd, mpysuuu, and dmac ops.
* Fixed do loop behavior to skip empty loops.
* Added stack underflow exception handling.
Sent: Saturday, December 20, 2008 7:43 AM
To: submit@mamedev.org
Subject: Agress Fix
Here's a fix for Agress' title screen
Link if the attachment doesn't work. :)
* ddragon3.diff
- converted driver to be fully scanlines based using timers
- hooked up interrupts
- updated driver to new video screen raw parameters
* shadfrce.diff
- converted driver to be fully scanlines based using timers
- implemented raster interrupt timer in the main routine
- updated driver to new video screen raw parameters
* wwfsstar.diff
- converted driver to be fully scanlines based using timers
- updated driver to new video screen raw parameters
* wwfwfest.diff
- converted driver to be fully scanlines based using timers
- hooked up interrupts
- updated driver to new video screen raw parameters
Sent: Friday, December 19, 2008 8:50 PM
To: submit@mamedev.org
Cc: atariace@hotmail.com
Subject: [patch] Add machine/space to some callbacks
Hi mamedev,
This patch widens some machine callbacks to include an object (either
machine or space). I didn't convert these earlier since MAME didn't
explicitly need them, but some of these will be needed by MESS now
that Machine is gone and in general all callbacks need to pass an
object.
~aa
quantum in terms of "frames" (a dubious concept now with multiple
screens and changing refresh rates). Replaced it with a new
MDRV_QUANTUM_TIME(x) which specifies the minimum scheduling quantum
as a time value. Time can be specified as HZ(x), NSEC(x), USEC(x),
etc. Updated all drivers to use this, assuming 60 was the frame
rate (this is not perfect but should work for almost all cases).
Changed MDRV_WATCHDOG_INIT_TIME(x) to automatically prepend
UINT64_ATTOTIME_IN_ to the parameter, ensuring there is no
improper use of this macro and bringing it in line with the
MDRV_QUANTUM_TIME() macro. Updated all callers.
Added new MDRV_QUANTUM_PERFECT_CPU(x) to specify that the minimum
quantum should be enough to ensure that the specified CPU tag
only ever executes a single instruction at a time. This can be
used to explicitly require "perfect" synchronization for drivers
that have multiple CPUs with shared memory. Turned this on for
the arknoid2 driver for now as a test (the interleave on that
driver was already very close to perfect anyway).
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Three Ds - Three Dealers Casino House [David Haywood,Angelo Salese]
New games added or promoted from NOT_WORKING status
---------------------------------------------------
4nin-uchi Mahjong Jantotsu [David Haywood,Angelo Salese]
(and commented out a printf line in Jangou HW.)
- Fixed transparency pens in the Jangou driver (so removed the GAME_IMPERFECT_GRAPHICS flag); [Angelo Salese]
- Added a kludge for Jangou Lady RNG,will be worked on in the future; [Angelo Salese]
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Country Girl [David Haywood,Angelo Salese]
* Fixed bug that computed the wrong total size if the address
space was a full 32 bits
* Improved display to show unmapped memory with *s
* Disabled enumeration of disk and 0-length regions
bus width and shift CPU interface constants. Changed all the cores
to use them.
Minor spacing cleanup in Z80, Z180, TMS34010, ADSP21xx cores.
Changed ADSP21xx cores to accept a configuration struct instead of
using set_info to specify serial port callbacks. Simplified the
ADSP21xx get/set info significantly. Removed support for only
including certain variants of the chips; they are now either all
supported or all unsupported.
necessary to remove 12 of the final 14 references to the global
Machine. The remaining 2 are in fatalerror() and logerror(), which
are both local to mame.c, so Machine is now fully static.
--
From: Atari Ace [mailto:atari_ace@verizon.net]
Sent: Thursday, December 18, 2008 5:47 PM
To: submit@mamedev.org
Cc: atariace@hotmail.com
Subject: [patch] Make Machine static followup
Hi mamedev,
This incremental patch to my last patch undoes the change that caches
the ppu2c0x videorom. I changed the code back to how it behaved
originally, using an existing machine on the chip struct to eliminate
the one troublesome Machine reference.
~aa
--
From: Atari Ace [mailto:atari_ace@verizon.net]
Sent: Thursday, December 18, 2008 2:54 PM
To: submit@mamedev.org
Cc: atariace@hotmail.com
Subject: [patch] Make Machine static!
Hi mamedev,
This large patch completes the removal of the use of Machine
throughout MAME. It does so primarily by adding machine, device or
space to various apis and modifying the callers, but for some
remaining cases it adds a new api, mame_get_running_machine(), which
will be called instead. There are only 14 uses of this api currently,
and that number should drop over time.
There are a few changes of note:
1. 6821pia.c. I attached machine to the 'device' structure. I'm
working on converting this to a proper device, but that change isn't
ready.
2. fddebug.c. I added a proper header so that the apis won't get
accidentally converted to static again.
3. scsi.c. I added a machine to SCSIInstance.
4. system16.c. I modified sys16_patch_code to take an array of
patches.
4. custom.h. I added the owning sound device to the reset/stop
routines as well as the token. Note that passing only the device
would require exposing the internals of custom_sound, as the token
passed is not the device token, but the token returned from the
CUSTOM_START routine. Better ideas here are welcome.
4. ppc2c0x.c. To avoid changing more interfaces, the init routine
saves the videorom location rather than looks it up each time.
I tried to choose what I felt was the natural parameter for an api,
rather than always pass machine, but in some cases I used machine to
limit the number of additional changes. Some additional cleanup here
is probably warranted, I'll look into that later once I'm recovered
from this two-week project.
~aa
interfaces when handling strings. Namely, the generic
get_info functions allocate a temporary string and the
device in question copies its string to the target,
instead of assigning a const char *. Updated all device
and sound cores to operate this way.
Added the concept of a cpu_state_table, which is
supplied by the CPU cores and which describes all the
register state accessible to the debugger and other
subsystems. The format of the table is such that most
data can be simply fetched from memory without the
further involvement of the CPU core, including the
display of common formats. Extensibility points are
available for custom display and for importing/exporting
the data to intermediate variables for more complicated
scenarios. Updated the ADSP21xx, TMS340x0, and i86 cores
to use this.
Removed the old debugger register list, which was never
used. Replaced it with using ordering from the
cpu_state_table.
Renamed REG_PC -> REG_GENPC, REG_SP -> REG_GENSP, and
REG_PREVIOUSPC -> REG_GENPCBASE. Updated a few spots
that were using these directly. Moved these definitions
into the end of the register area rather than leaving
them outside which put them in a weird range.
i86/i286/i386/nec/v30mz:
* renamed i86.h -> i86priv.h
* renamed i86intrf.h -> i86.h
* consolidated i88intrf.h, i186intf.h, i188intf.h, etc into i86.h
m6805:
* moved memory read/write macros out of public header
m37710:
* moved memory read/write macros out of public header
spc700:
* moved many structs/functions/macros out of public header
tms32010:
* moved memory read/write macros out of public header
sm8500:
* pointer-ified the core (apparently never had get/set context!)
g65816:
* moved memory read/write macros out of public header
pic16c5x:
* moved memory read/write macros out of public header
t11:
* moved memory read/write macros out of public header
Sent: Wednesday, December 17, 2008 9:03 PM
To: submit@mamedev.org
Cc: atariace@hotmail.com
Subject: [patch] STREAM_UPDATE update
Hi mamedev,
This patch modifies the parameters of the stream_update_func callback.
The first two patches go through and changes all the callbacks to use
a consistent set of parameters (the larger patch was mechanically
generated, the smaller second patch are hand edits where review or
compilation showed issues with the automatic conversion). The third
patch then macroizes all the callbacks to STREAM_UPDATE, and was done
mechanically except for the change to streams.h. The fourth patch
then adds device to the callback, and eliminates Machine in a handful
of callbacks by referencing the device. deprecat.h -= 8.
~aa
specified when the device is added, and the clock is available in
the device_config directly via device->clock. Updated all devices
that have a clock to specify it when adding the device, rather than
as part of their configuration. As part of this work, also created
device-specific _ADD and _REMOVE macros to simplify configuration.
Dfined a generic device execute function callback, though it
is not used yet. The long term plan is that any device with an
execute callback will be scheduled along with the CPUs. Now that
CPUs are devices, their scheduling will be moved over to this
logic eventually.
Changed various NVRAM devices to fetch their default memory region
from the device->region rather than specifying it in the
configuration.
Moved a number of CPUINFO_PTR_* constants to CPUINFO_FCT_*.
Fixed several drivers that manually created their own gfx_elements
to fill in the machine object, so they no longer crash.
Fixed incorrect CPU display on info screen (recently broken).
Moved device startup to *before* the DRIVER_INIT is called. This
is to allow the DRIVER_INIT to configure devices that have been
properly allocated. So far I don't see any negative effects, but
be on the lookout if something weird shows up.
Rewrote the device iteration logic to make use of the typenext
field and the newly-introduced classnext field for iterating more
efficiently through devices of a given type or class.
Fixed behavior of MDRV_CPU_REPLACE so it does not delete and then
re-add a CPU (causing the order to change).
Modified laserdisc players to walk back to their global device state
via the owner, rather than brute-force searching for the first instance
and hoping that is the right one.
Sent: Tuesday, December 16, 2008 12:20 PM
To: submit@mamedev.org
Cc: atariace@hotmail.com
Subject: [patch] Migrate CPU defines to cpu header files
Hi mamedev,
This patch migrates all the CPU definitions into the cpu header files.
The #defines and CPU_GET_INFO declarations were added by hand to the
cpu cores in the first patch, plus a few partly related fixes to the
non-DRC cores. The second patch was produced by the attached script
which inserts all needed #includes, except for two that were added by
hand in the first patch. The first patch also removed an extra define
of N2A03_DEFAULTCLOCK that would have caused problems with the second
patch.
~aa
More deprecat.h cleanup in the core, notably changing the apis for
poly_alloc. I also made cpu_get_index_slow fatalerror on failure
since no one is checking the return value.
deprecat.h -= 14, Machine -= ~55
~aa
cpu_get_info_* -> device_get_info_*
cpu_set_info_* -> device_set_info_*
cpu_reset -> device_reset
Removed the cputype_get_* macros as they are not necessary.
Removed cpuintrf_init() which is no longer necessary.
machine configuration just as any other device, and the
standard CPU configuration is performed via the inline
configuration macros.
Change cpu_type from an enumeration into a pointer to the
CPU's get_info function, very similar to device behavior.
For now all CPUs are declared in cpuintrf.h, but
eventually they should be declared in the CPU's header
file, and the driver should #include that header.
Added function cpu_get_type() to return the CPU type.
Changed several cpu_* functions into macros that call
through to the equivalent device_* function.
The device system now maintains a parallel list of devices
based on type, for faster iteration through all devices
of a given type.
Cleaned up code that looped over CPUs via the machine->cpu
array to now loop using the type-based device list.
Removed start/stop/reset/nvram functions from the
device_config in favor of grabbing them as needed.
Cleaned up the generic interrupt_enable code to work with
CPU devices instead of numbers.
Mapped the devtag_* functions to device_* functions via
macros instead of parallel implementations.
- Added new set: Jolly Card (italian, encrypted bootleg).
No coins... Only remote credits. After nvram init, set the Payout DIP to 'manual'
to allow the remote credits mode to work.
- Created inputs from the scratch for jolycdib.
- Updated technical notes.
New clones added
----------------
Jolly Card (italian, encrypted bootleg) [Roberto Fresca]
-----Messaggio originale-----
Da: David Haywood [mailto:neohaze@nildram.co.uk]
Inviato: domenica 14 dicembre 2008 23.56
A: Angelo Salese
Oggetto: Gridiron update
Changed it from using a hack using the gfx rom to display the 'play
number' to using the LEDs in the artwork system.
New games marked as GAME_NOT_WORKING
------------------------------------
Jackie [David Haywood]
============================================================================
(Personally I'm not really interested in this one at the moment (I'm not
enough keen with Champion Skill HW and its fancy I/O stuff), however it
should be slightly different memory map + different protection)
roms/current/j/jackie.zip
-Converted the Reels video to Tilemaps [David Haywood]
New clones
----------
(New?) Cherry Bonus III [David Haywood]
Cherry Bonus III [David Haywood]
New non-working
---------------
Cherry Master (Corsica, v8.01) [David Haywood]
Cherry Master 91? [David Haywood]
-----Messaggio originale-----
Da: David Haywood [mailto:neohaze@nildram.co.uk]
Inviato: domenica 14 dicembre 2008 22.20
A: Angelo Salese
Oggetto: Gold Star update
I converted the Reels video to Tilemaps
merged cmaster.c with this, since it's basically the same thing, but
with some changes.. made a few improvements to that.
also added another cherry master set, might be "cherry master '91" but
it's probably running on an extended version of the hardware as it has
extra roms etc.
it's still rather messy.. seems this game / hardware was used for the
base of a lot of hacks, and it's really hard to know what the originals
were...
------------------------------------------------------------------------
the cherry bonus 3 sets seem to be the same game as goldstar ....
again these were just random messy sets on f205v's pcb with no proper info,
no proms etc. ... ncb3 boots, and does show a dyna logo . cb3 seems to be
encrypted.
This adds the "Queen" game into a driver (a.k.a. the 2002 PC-era game)
(roms are already on the ftp,I believe)
-----Messaggio originale-----
Da: David Haywood [mailto:neohaze@nildram.co.uk]
Inviato: venerdi 12 dicembre 2008 0.05
A: Angelo Salese
Oggetto: Queen Skeleton..
Didn't think the queen was dead yet, but here is her skeleton ...