* Added complete reel emulation (thanks to Luca, Angelo and David drivers
studied to better understand hardware similarities).
* Press T to toggle amuse game, used to mask gambling activities.
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Jackie [Mirko Buffoni]
- Created custom module for run sounds. Running the discrete sound system at 480KHz was not really optimal.
- Reviewed parts list, schematics and pcb pictures
- Brought mario run sound in line with recordings from Smitdogg
- VCO voltage needs to be 0V for this to happen. Verification outstanding
- Capacitors needed some ageing applied as well. To be removed once the VCO issue is clarified.
Not working due to the sound CPU rom is half size and the 16Mbit flash roms are not dumped.
New clones added
----------------
Head Panic (15/06/1999) [Corrado Tomaselli] (not working)
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.
---
Pyschic 5 (set 2) [Dazzer]
I haven't checked the differences in any detail, but the player appears to survive for longer in attract mode so there are probably some subtle gameplay differences.
* Added because 3 Super 8 have SUPER POKER 115IT string inside.
3Super8 may be a hack, strings are the same, but code is different
though still partially encrypted
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Super Draw Poker [Angelo Salese]
==========================================
For "work-around for the rng" I mean that I've mame_rand'ed it, but obviously that isn't accurate.
* Fixed Transparency pens;
* Fixed color pens for the charset;
===========================
Actually, only the "layer clearance" is puzzling me out, when it's enabled the h/w values are 0.
Really weird...
* Fixed rom source reading for the blitter;
* Properly use height/width params for the blitter;
* Hooked up the backup ram;
* Added basic inputs;
* Removed deprecat.h dependancy;
- Seems a IGS poker hack to comply with 2000's Italian law
- Sound synthesys have been replaced by OKIM Adpcm samples
- Some patched out routines have been recovered to allow test mode dsw mapping
- Mapped Stelle e Cubi to this memory map, something shows but graphic is from a bad dump
Added new game PK Tetris (Mirko Buffoni)
- Strange game with an amusement part (sort of Tetris mixed with Poker)
- Amuse input not mapped, may be necessary for the amusement part which can be disabled via DSW
---------------------------------------------------
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.
changes to automatically call the read handler if the opcode base cannot be
found.
Changed logging for non-RAM opcode bases so that it does not output in the case
of debugger_access being set.
Fixed logic for deriving direct ranges so that it uses the non-watchpoint-
infected tables for its lookups.
Added minor additional information and OSC info. Also added two BPROMs not included before.
New clones added
----------------
Volfied (Japan, older) [Brian Troha]
Sent: Wednesday, January 28, 2009 9:08 AM
To: submit@mamedev.org
Subject: Fixed ID 1017 (nslasher)
Increasing interleave completely fixes the sound bug reported at MAMETesters.
Sent: Monday, January 26, 2009 12:37 PM
To: submit
Subject: Royal Panel addition to yumefuda, part 2
Hi again!
as Angelo Salese kindly pointed out, MAME already supports PORT_CONDITIONs for every kind of inputs. Hence, enclosed please find an improved submission with proper inputs for yumefuda
Regards,
Fabio Priuli
On Mon, Jan 26, 2009 at 4:00 PM, Fabio Priuli <doge.fabio@gmail.com> wrote:
Hi, enclosed please find a patch which adds the Royal Panel controls to yumefuda (as a consequence bug 2574 in MT can be considered fixed).
Please notice that the addition of the dual controls looks a bit ugly in the UI menu, but I can see no way to better implement these, in current MAME source. Ideally, it could be nice to add conditional ports to input bits as well as to dips (in this case MAME should show different controls depending on the DSW bit chosen), or to add the concept of port_categories currently used by MESS to show in the menu only the buttons of the chosen controller (you change controller from a different menu entry, like with DSW). I could look into add this feature, but I would prefer to know in advance in which way you would prefer this to be implemented.
Regards,
Fabio Priuli
Sent: Monday, January 26, 2009 7:20 AM
To: submit
Subject: two trivial bugs
Since nobody has fixed yet the two MT entries for dkongf, reported 2 weeks ago, here you find the needed patch. It changes the DSW setting corresponding to Free Play and it changes the year to 2004.
Regards,
Fabio Priuli
Sent: Friday, January 23, 2009 8:44 AM
To: submit
Subject: two more bugfixes
Hi,
enclosed please find fixes for the following bugs in MT
* 2697.diff : this fixes MT02697, i.e. the wrong input mappings of hkagerou. Basically, this game has a dip to choose between an hanafuda & a mahjong panel, but this switch only changes the onscreen indicators (1->6 vs. A->F). Actual input bits are the same in both configurations. Previous mapping was using mahjong inputs for P2 inputs and keys in the numpad for P1 inputs. With this patch, it will only use the default mahjong keys for both players (but in the UI menu, I put also the hanafuda label to help users)
* arka.diff : this fixes MT02719 (which I introduced with my changes in MAME 0.126u5), making a few bootlegs working again.
Regards,
Fabio Priuli
Sent: Thursday, January 22, 2009 10:31 AM
To: submit
Subject: fix for MT 2792
Enclosed please find a small patch which fix the neogeo COMM dips according to the manual scan present in the bug report (splitting sw 4,5,6 in two separate dips entry)
Regards,
Fabio
===================================
Explaination about this:
This gambling game provide a code that you should type it in a DOS program. This PC-DOS program
(that's nowhere to be found plus I guess it's read-protected) gives an input code that you should
press back on the game.
My solution is to give a default eeprom, because, really, I don't think that a popmessage is a
good solution for the end-user.
I don't even consider to patch the program rom, and anyway, I can't believe that somebody in 2000
really provided an Amiga-ish password system as "protection" ;P
- 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.
Formula was derived from figure 6 of LS624/628/629 & 625/626/627 datasheet.
"BUCK ROGERS" is now centered and big ship appears centered over br's ship.
Please Co-Credit Guru
On the long term, both LS629 and the XOR need to be converted into a custom module to properly model mixing if the two frequencies are close to each other.
Adjust C41 to 60% for skid sound.
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.
I didn't get around to documenting this one in full detail, but at a quick glance it appears the region works in the same way. ie, the first byte of one of the roms is 0x01 instead of 0x00.
I've also documented how the region works on Batrider based on these sets.
----
I can't get him to provide any further proof of ownership of this stuff, and I think pressuring him for it is more likely just to piss him off, and result in no further contributions (he already didn't respond to my last mail a few months ago, so I'm sending this now..)
===============================================================
I'm not quite sure about aerfboot,sound seems s****y but reasonable (i.e. plays different stuff than the original sets).
Can any okim6295 expert look if I did an error on the sound banking/soundlatch sides?
also reworked the code a bit to make it harder for somebody to break it in future. (removed the config table & moved keys to driver inits, define region sizes, allocate memory in init for CD based games.)
should be no functional changes, although it might be a fraction of a % faster due to there being less region lookups.
new clones added
----------------
Noboranka (Japan) (NOT WORKING, undumped 8751 MCU)
(old bootleg set is now a clone)
also fixed
"02873: Many sets in system1.c: Missing text layer"
using the method Kale posted
and renamed some functions in drivers/system1.c etc. so it's clear that they're used by the bootleg 'nobb' only, rather than system1 in general.
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Big 10 [Angelo Salese,Roberto Fresca,Tomasz Slanina]
> On Mon, Jan 19, 2009 at 05:37:35AM -0800, R. Belmont wrote:
> > My mistake. I thought you were suggesting that we should actually
> > somehow handle malloc failures. Given that aborting is an OK way to
> > express failure, I'd suggest the return values be changed to DEFER
> > and DONT_DEFER to eliminate the conceptual imbalance of OK/DEFER.
>
> That's where comes the fact that we have 130 OK/DONT_DEFER and 1
> DEFER. It makes me think that the exceptional DEFER case should be
> handled by an exceptional function call.
>
> I know, code talks, but I'm at work right now :-)
Here we go.
OG.
Sent: Tuesday, January 20, 2009 6:57 AM
To: submit@mamedev.org
Subject: Fixed ID 2800 (gstream.c)
Hi. Actually it was a my mistake removing the cpu_eat_cycles thing. I was convinced it caused some sync issues but after some intensive testing I can say for sure it's right. Re-implement it makes the game run at full speed and there are no other problems. Sounds are in perfect sync with video. I'm sorry for my first wrong submission happened in 0.129 where I replaced this speed-up with a wrong one.
Regards.
Sent: Monday, January 19, 2009 10:00 AM
To: submit@mamedev.org
Subject: Yunsung8 oki frequency
Changed oki xtal to 400khz, verified on pcb. Unfortunately I couldn't verify the main xtal which was missing on my pcb.
Sent: Friday, January 16, 2009 11:52 AM
To: submit@mamedev.org
Subject: hanaroku input
This was a simple job for fix mametester bug "02810" in hanaroku
Bye Sonikos
Sent: Thursday, January 15, 2009 12:16 PM
To: submit@mamedev.org
Subject: stepstag.c
-added custom 3-screen layout;
-added recently dumpped game "Stepping 3 Surperior"(incomplete ROM/CHD set);
The game name of "stepstag" romset is actually "Stepping Stage Special", not the original "Stepping Stage".
this clone fell through the cracks, I was checking my misc rom dir and there it was ;-)
New games marked as GAME_NOT_WORKING
------------------------------------
Raiden Fighters 2 (USA, SPI) [Arzeno Fabrice]
/current/s/sothello.zip
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Super Othello [Tomasz Slanina]
* Fixed framebuffer handling & screen parameters.
* Added sound.
* Corrected RAM sizes to match what is present on the PCBs.
* Hooked up NVRAM.
(Thanks Phil!)
- Renamed csk driver to igspoker. This includes Champion Poker, Champion Skill,
New Champion Skill
- Converted drivers to tilemap system and unified video section
- Unified memory maps and checked all input ports
- Removed obsolete palette handlers and made use of generic handlers
- Added layout for lamps handling
- Added hopper simulation
- Added New Champion Skill (different set, maybe original international release)
and renamed current igs_ncs to igs_ncs2 (2000 version for italian market)
- Promoted igs_ncs2 to working state, but set GAME_IMPERFECT_GRAPHICS (missing
initial notice screen)
- Moved Jackie to a separate driver (it's a slot machine game)
- Made some progress on Jackie which now boots (toggle mode to play, but work
still needs to be done)
Note: this includes 2 redumped roms and 1 currently marked as BAD_DUMP
New games marked as GAME_NOT_WORKING
------------------------------------
Sega Water Ski (Japan, Revision A) [Smitdogg Jones]
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Cannon Ball (Yun Sung) (vertical) [David Haywood]
or ENDIANNESS_BIG based on the LSB_FIRST definition. Unlink LSB_FIRST,
ENDIANNESS_NATIVE always exists and can be used in expressions without
invoking the preprocessor.
Added macro ENDIAN_VALUE_LE_BE() which selects one of two values based
on the endianness passed in. Also added NATIVE_ENDIAN_VALUE_LE_BE()
which calls ENDIAN_VALUE_LE_BE with ENDIANNESS_NATIVE.
Updated a number of drivers and call sites to use these macros in favor
of #ifdef LSB_FIRST.
* Merged Sengoku Mahjong & Good e Jong video HWs
* Added correct scrolling functions for Sengoku Mahjong
* Removed some positioning kludges in both drivers
Fixed Sengoku Mahjong hopper error after first winning match [Angelo Salese]
Removed deprecat dependancy from Good e Jong,one irq wasn't needed at all (points to a reti) [Angelo Salese]
Sent: Tuesday, January 13, 2009 2:20 PM
To: submit@mamedev.org
Subject: megasys1 Big input Clean
Hi Folk
I returned wit a tough work (for me!), i've maed a big input clean up
in the drive (they were a lot messy), now all looks more tidy ;-)
- Delete input port definition in "includes/megasys1.h"
- Added generic input in megasys1.c
- General input clean
Bye Sonikos
* Graphics decoded, video improved, inputs mapped.
Intel i860 CPU core added. [Jason Eckhardt]
(The CPU core doesn't have accurate cycle counts for each opcode yet, but it'll have them soon. I believe that is the main culprit behind the sync of the two i860s and the 68k being outta' whack. You can still see the i860s do their thing and rasterize a voxel? groundplane and some simple polygon bad guys).
-----------------
Hit the Ice (Japan) [Phil Bennett]
Added IC locations and PAL dumps to hitice. Flagged both sets with GAME_IMPERFECT_GRAPHICS as the bitmap layer implementation is incorrect.
* Fixed gfx banking in goodejan/totmejan;
* Fixed vertical scrolling in Sengoku Mahjong (check title screen);
* Made some clean-ups in either drivers;
==================================================
The (likely) custom Seibu CRTC is used at least in the following games:
Raiden (probably the first game to use it)
Sengoku Mahjong
Good e Jong
Tottemo de Jong
Blood Bros.
Sky Smasher
D-Con
SD Gundam Psycho Salamander no Kyoui
(all games in legionna.c)
(all games in raiden2.c)
All of these games have 4 layers with 2048 (0x800) bytes of ram each,a palette ram with xRRRRRGGGGGBBBBB format and (at least) 72 (0x48) video registers.
The idea here is to merge everything in a single file and to understand the issues with some of them,namely the "bitmap_fill" color (goodejan/totmejan
needs a black pen on the service mode and a white-to-black fade out effect at start-up?),some kludges with the tilemaps/sprites positioning (in both
sd gundams,sdgndmsp and sdgndmrb for example) plus obviously anything that isn't yet understood from these regs.
Sent: Sunday, January 11, 2009 5:52 AM
To: submit@mamedev.org
Subject: unreachable code cleanup
This patch cleans up the usage of unreachable code (mostly
unnecessary breaks after returns in switch - case). A few case of
really unused code were also discovered. I marked thos with FIXME
comments.
I based this cleanup on teh output of cppcheck. It does still missing
a few cases of unreachable code, so there might be future patches to
address more cases.
isn't complete?
-----Messaggio originale-----
Da: David Haywood [mailto:neohaze@nildram.co.uk]
Inviato: venerdi 9 gennaio 2009 9.42
A: Angelo Salese
Oggetto: tarzan
I don't think the decryption is complete.. the graphics are also
encrypted.. so don't decode properly.
i guess sar might need to take a 2nd look at it.
Sent: Friday, January 09, 2009 4:14 AM
To: submit@mamedev.org
Subject: Patch to remove useless INLINE defines
Hello,
this patch removes several occurrences of "#define INLINE" in CPU and
sound cores, which I assume are useless since the makefile already
defines this.
--Dirk
Sent: Tuesday, January 06, 2009 7:39 PM
To: submit@mamedev.org
Cc: atariace@hotmail.com
Subject: [patch] Remove sndindex from SND_START
Hi mamedev,
This is a baby step towards making the sound cores proper devices. It
removes the sndindex parameter from SND_START. Cores should use the
device pointer or tag as appropriate. I also removed a few
address_space hacks taking advantage of the existing fake sound
device.
~aa
After adding these, I also added DIP LOCATIONS for all sets in the driver.
There was an issue where a manual setting was different than what MAME
expected (Demo_Sound in the manual listed OFF, but MAME likes them ON).
Kale helped me a bit with some pointers about PORT_BIT reassignment which
helped clear up the duplicate Service Mode assignments. I'm sure I made
errors, but it's a start :)
This .DIFF is based on 0.128u7 sources and resolves MAMETesters Bug #02787.
Tafoid
tafoid@yahoo.com
Sent: Saturday, January 03, 2009 10:20 AM
To: submit@mamedev.org
Cc: atariace@hotmail.com
Subject: [patch] static/const/include fixes
Hi mamedev,
Here's my aperiodic code cleanup patch for MAME, adding static/const
and adjusting header files. In a few places I went a bit further.
1. arm7core.[ch],segas24.[ch]: Rewrote some abuses of the HANDLER
macros to use _func types instead.
2. m37710: Removed some long dead state save functions.
3. spc700: Removed the interface declarations and functions. Most of
it is handled by CPU_GET_INFO, some of it was no longer implemented,
and since pointerization it wasn't possible to call it externally
anyhow.
4. segac2: I removed the palette variables aliasing the megadrive ones
and just used the megadrive ones directly.
5. snes: All the obc1_, DSP1_, DSP2_ exports were made static. I'd
avoided doing this previously for fear it might break MESS, but after
auditing I'm fairly certain this shouldn't cause problems.
~aa
gfx_element. Updated the drivers that did this to use the new function, fixing
random crashes.
Fixed a couple of other minor regressions with recent drawgfx changes.
- Hooked all the PPI 8255 devices.
- Reworked the inputs based on them.
- Fixed the reels visible area.
- Reorganized and cleaned-up the driver.
(only remains to split in driver + video)
memory table to find its ranges, and caches them for fast access in
the future. It invalidates intersecting regions when new ones are
installed, and now properly handles mirrored ranges.
Also changed the disassembly view to call the decrypted read routines
for each opcode byte/word instead of fetching from a pointer, which
prevented opcodes that crossed range boundaries from working correctly,
even though they would execute correctly.
Sent: Monday, December 22, 2008 3:00 PM
To: submit@mamedev.org
Cc: atariace@hotmail.com
Subject: [patch] Make SOUND_xxx pointers to SND_GET_INFO functions
Hi mamedev,
This patch probably should wait till after 0.129 goes out, but may be
of interest regardless. It makes the treatment of SOUND_xxx the same
as that of CPU_xxx. That is, they are function pointers to the
SND_GET_INFO routine for the sound.
The first patch just adds some missing include files and modifies a
few cases where a sound_type was used as an integer. This could go in
now. The second patch then adds the needed #defines to all the sound
headers (it assumes the previous patch I sent to add the SND_GET_INFO
declarations was applied), and modifies the sound code accordingly. It
also moves the sound clock to the device object. Note that the dummy
sound core is removed entirely. I cheated a bit and made VERIFY_SNDTI
also declare and fill in the sndnum, making this an INLINE function
would probably be more appropriate, but all of this code's days are
numbered.
There may be some performance loss in drivers that expect sndti_xxx
routines to be fast, since sound_matrix has been removed. The
performance however should be similar to looking up items in a
devicelist, so those drivers will have to adjust eventually.
~aa
- Added built-in dirty tile tracking to the gfx_element. This removes
the need for all drivers that had dynamically populated graphics
to do their own dirty tracking. Tiles are marked dirty via the
new function gfx_element_mark_dirty(). Any driver that needs access
to the decoded data must call gfx_element_get_data() in order to
ensure that the referenced tile is clean before proceeding.
- In order to support dirty tracking, the gfx_element was enhanced to
keep track of the original source pointer, so that it can go back
and regenerate tiles on demand. For systems that set NULL for the
region in the gfxdecode, they must use gfx_element_set_source()
to specify a pointer to the raw data before drawing anything.
- Changed allocgfx() to gfx_element_alloc(), and added parameters to
specify the source data pointer, base color index, and total colors.
Many drivers had to whack these values in after the fact, so this
allowed for some minor additional cleanup.
- Added a dirtyseq member to the gfx_element struct. This is
incremented on each tile dirty, and can be used to sniff if
something has changed.
- Added logic in the tilemap engine to track which gfx_elements are
used for a given tilemap, and automatically detect changes to the
tiles so that drivers no longer have to explicitly invalidate the
tilemap when tiles change. In the future, this may grow smarter to
only invalidate the affected tiles, but for now it invalidates the
entire tilemap.
- Updated a number of drivers to remove their own dirty handling and
leverage the new internal dirty marking.
- Because the source data must always be present, updated the atarigen
zwackery and mystwarr graphics handing code to support this.
- Thanks to the dirty tracking, this actually allows all gfx decoding
to happen on the fly instead of all at once up front. Since there
was some concern that this would cause undesirable behavior due to
decoding lots of tiles on the fly, it is controlled with a compile-
time constant in mame.h (PREDECODE_GFX). Set this to 1 to get the
old behavior back.
- Moved decodechar() and decodegfx() to deprecat.h. All drivers in MAME
have been updated to simply mark tiles dirty and let the rendering
system decode them as needed, so these functions may go away in the
future.
- Rewrote entirely the rendering code in drawgfx. This code previously
used extensive recursive #includes and tricks to build, and was
very difficult to understand. The new code is based off of a set of
macros defined in drawgfxm.h. These new macros separate the core
rendering logic from the per-pixel operation, allowing the operation
to be easily "plugged" into any of the renderers. These macros are
also available to any driver that wants custom rendering behavior
that is similar to existing core behavior, without needing to
populate the core with esoteric one-off rendering behaviors.
- Added a set of new functions for [p]drawgfx[zoom], one for each
transparency type. The old [p]drawgfx[zoom] functions are still
present, but now switch off the transparency type and call through
to one of these new transparency-specific functions. The old
functions are also now reduced to only supporting TRANSPARENCY_NONE,
TRANSPARENCY_PEN, and TRANSPARENCY_PENS. All other rendering types
must use the new functions.
- All new rendering functions have extensive asserts to catch improper
clipping rectangles and other common errors.
- All new rendering functions automatically downgrade to optimized
versions where appropriate. For example, calling drawgfx_transpen
with an out-of-range pen automatically falls back to drawgfx_opaque.
And drawgfxzoom_* with xscale=yscale=1.0 automatically falls back
to drawgfx_*. And many other examples. In general, this relieves
drivers from needing to make these sorts of decisions.
- All new rendering functions have a consistent parameter order that
is a bit different from the existing functions. The cliprect
parameter is now specified immediately after the destination bitmap,
to match the convention used throughout the rest of the system.
The core parameters are followed by the scale parameters (for the
zoom functions), and then followed by the priority parameters (for
the pdrawgfx* functions), finally followed by any PIXEL_OP*-specific
parameters (such as transparent pen, alpha, drawing tables, etc.)
- Removed drawgfx_alpha_cache, alpha_set_level(), and the inline
functions alpha_blend16() and alpha_blend32(). To render graphics
with alpha, use the new [p]drawgfx[zoom]_alpha functions, which
take an explicit alpha value. To render tilemaps with alpha, the
TILEMAP_DRAW_ALPHA option now takes an explicit alpha parameter.
And to do you own alpha blending, use the alpha_blend_r16() and
alpha_blend_r32() functions, which take an explicit alpha.
- Updated a number of drivers as a result of removing the implicit
alpha in the drawgfx_alpha_cache.
- Removed drawgfx_pen_table and TRANSPARENCY_PEN_TABLE. To achieve
the same effect, build your own table and pass it to
[p]drawgfx[zoom]_transtable, along with a pointer to the
machine->shadow_table to use for shadows. Eventually
machine->shadow_table is likely to go away, and drivers will need
to fetch the shadow table from the palette directly.
- Updated a number of drivers to remove use of drawgfx_pen_table.
- Removed TRANSPARENCY_ALPHARANGE; it was only used by the psikyosh
driver, so it is now moved locally into that driver and built
using the macros in drawgfxm.h.
- Removed TRANSPARENCY_PEN_RAW; to achieve the same effect, call the
new [p]drawgfx[zoom]_transpen_raw() functions. Updated drivers to
make this change.
- Removed the unused mdrawgfx* functions entirely.
- Added new function gfx_element_set_source_clip() to specify a
source clipping rectangle for any element. This replaces the nasty
hacks that were being used in bnstars, ms32, namcos86, and namcos1
to achieve similar behaviors.
- Simplified the copyrozbitmap() functions to match the copybitmap()
functions in having separate opaque and transparent versions. Also
removed the 'priority' parameter which was only used by one driver,
and moved that logic into a custom renderer built using macros in
drawgfxm.h. Updated copyrozbitmap* to use the destbitmap, cliprect
parameter ordering convention as well.
- Simplified the draw_scanline*() functions to always render opaque.
Only one driver was doing otherwise, and it now does its work
internally (draw_scanline is dead-simple ever since we moved
rotation to the OSD code; I almost just removed it entirely).
Other changes:
- Added a cliprect to the bitmap_t type, which describes the full
bitmap.
- Removed tilemap_set_pen_data_offset; unfortunately, this adds a
random tile offset behind the scenes and goes against the dirty
tile detection and invalidation. Updated the mainsnk, snk, and
snk68 drivers to use old fashioned tile banking. (Sorry Nicola.)
- Changed zac2650 gfxdecode to use scale factors.
- Added function video_assert_out_of_range_pixels() to help find
the source of invalid pixels (generally out-of-range palette
entries due to invalid data or sloppy calculations). Place this
after each step in your rendering in a debug build to discover
which code is generating improper pixels.
* At the moment only the ADPCM part is implemented, while it's missing the BEEP
generator and the 2nd channel handling, used mainly for echoing or continuous
speech.
Added OKIM6376 sound emulation to High Video games [Mirko Buffoni]
* Removed GAME_NO_SOUND from newmcard, brasil and fashion
* Sound frequency may be incorrect
* Although the manual says OKIM6376 is straight ADPCM, generated sound is
distorted (over-clamped?)
- Added maximum intensity to the color decode.
- Switched pokeroul to use global memory map and eliminated the redundant one.
- Eliminated the GAME_WRONG_COLORS flag to all games.
- Some clean-ups.
* Added a second screen for some extra gfxs that are displayed on it;
* Fixed colors;
* Preliminary implementation of the transparency pens for the graphics,might not be correct;
* Added inputs;
* Cleaned-up the driver;
Game seems to work fine,but can't accept coins,might be related to the eeprom.
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Mahjong Tenkaigen (3 sets) [Wei Mingzhi, Luca Elia]
From David Haywood:
- Decoded the extra bitmap for Cherry Master I and V4 sets. Still need to figure out how is called.
From Roberto Fresca:
- Added notes about the Tetris/Cmaster game.
- fixed some default DIP switches.
- Splitted the cmaster gfxdecode to cover different sets.
- Created a new machine driver for sets without the extra bitmap.
- Renamed the old sets cm2v841 and cm2841a to cmasterb and cmasterc respectively, since they are in fact different sets of Cherry Master I (ver.1.01).
- Promoted cmasterb & cmasterc to working state. The last one was flagged as GAME_IMPERFECT_GRAPHICS, since reels graphics have a different decode, or simply are bad dumps.
- Reparented some sets.
- Added Magical Tonic.
- More fixes/cleanups.
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Cherry Master I (ver.1.01, set 2) [Roberto Fresca]
Cherry Master I (ver.1.01, set 3) [Roberto Fresca]
New games marked as GAME_NOT_WORKING
------------------------------------
Magical Tonic [Roberto Fresca]
- Added full inputs / DIP switches to the Cherry Master II sets.
- Started a tedious clean-up to all driver inputs.
- Added a new set based on Cherry Master V4. The game is supposed to boot as a Tetris game (there are Tetris graphics inside), and can be turned into Cherry Master (probably designed for countries where gambling games are/were illegal). The game is booting into Cherry Master and is working properly. Still flagged as GAME_NOT_WORKING till can figure out how to switch games.
- Some other minor corrections.
New games marked as GAME_NOT_WORKING
------------------------------------
Cherry Master (ver.4, set 2) [Roberto Fresca, Angelo Salese]
- Fixed memory map.
- Added proper PPI 8255 devices.
- Worked inputs / DIP switches from the scratch.
- Fixed reels tilemaps visible area.
- Fixed reels colors.
- Removed all the flags and promoted to working status.
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Cherry Master '91 (ver.1.30) [Roberto Fresca]
Fixed most graphic banking bugs & colors in the coinmaster driver [David Haywood]
New games marked as GAME_NOT_WORKING
------------------------------------
Poker Roulette [Chris Hardy,Angelo Salese,Roberto Fresca,David Haywood]
* Merged tetriunk.c and filetto.c,and renamed tetriunk set to tetriskr;
* Fixed inputs & gameplay quirks in tetriskr,so it's now playable;
* Added preliminary external graphics emulation hook-up for the backgrounds in tetriskr;
* Rearranged & cleaned up the palette initialization,now 0x000-0x1ff offsets are for the char modes and 0x200-0x2ff are for the bitmap modes;
* Fixed color attributes bits;
* Cleaned up and fixed colors in CGA bitmap mode for Filetto;
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Tetris (bootleg of Mirrorsoft PC-XT Tetris version) [Angelo Salese]
- Added wingboard (5-n-1 daughterboard) support
- Added E16/E17 jumper support
- Sound clock changed to global
- Removed graphics layout and replaced with generic gfx_8x8x4_planar
- Increased palette lengths
- Adjusted incorrect ROM_REGION sizes
- Correct color prom length definitions
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Player's Edge Plus (XMP00017) 5-in-1 Wingboard [Jim Stolis]
- Decrypted the program ROM.
- Bypassed the PIC protection.
- Hooked proper inputs & DIP switches.
- Promoted to working state.
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Cherry 10 (bootleg with PIC16F84) [Roberto Fresca, Andreas Naive, David Haywood]
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Kkoj Noli (Kill the Bees) [Roberto Fresca]
(forgot to add it in the previous submission...)
Added proper memory map, machine driver, PPI interfaces and inputs.
Added placeholder for the 4 undumped cmast91's PLD's (all 16L8-12/-15/-25 type).
Removed the imperfect colors flag from lucky8 sets (colors look a bit dark, but seems properly decoded).
New games marked as GAME_NOT_WORKING
------------------------------------
Lucky Girl [David Haywood]
=====
Added to the Jangou HW because gfx roms are clearly from the Jangou blitter,chanches are that is the same HW once it's decrypted.
Sent: Wednesday, December 31, 2008 6:39 PM
To: Mamedev submit
Subject: Fix for 1610 cpu
The cp1610 cpu crashes when it attempts to reset itself.
It gets the PULSE_LINE message.
A one-line fix to cp1610.h will fix the problem.
It has been tested on the intellivision mess driver.
Please change the line that says:
#define CP1610_RESET 2
to
#define CP1610_RESET INPUT_LINE_RESET
Thank you and Happy New Year.
- Robbbert
- Added gfxdecode & palette lenght to the machine driver, so tiles stuff can be viewed through F4 in case of someone wants to help.
- Defined SND_CLOCK for the ay8910.
The driver is quite complete, but need some work to get proper colors and reels support.
New games marked as GAME_NOT_WORKING
------------------------------------
Slot Carnival [David Haywood, Roberto Fresca]
New games marked as GAME_NOT_WORKING
------------------------------------
Magic Card [Roberto Fresca,David Haywood,Angelo Salese]
=============
This thing is pretty Amiga-ish...How much similar is this one to the Amiga HW?
the PROG line is to read/write/and/or to ports 4-7. Since the board doesn't
list an 8243 port expander, it is likely the "writes" to port 4 are really
just a mechanism to get the PROG line to toggle to clear the interrupt.
Added new sets, created new machine drivers, fixed colors, added PPI devices, created new 8255 and ay8910 interfaces, worked out inputs and DIP switches from the scratch, fixed memory maps, merged the cherrym2.c driver with goldstar.c and much more...
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Cherry Master (Corsica, ver.8.01) [Roberto Fresca]
Cherry Master (ver.4) [Roberto Fresca, David Haywood]
Cherry Master I (ver.1.01) [Roberto Fresca, David Haywood]
========
Actually fixed hackish things from the last update by "Mike Green",I'll finish this off tomorrow,it's playable if you hack the 8880-888f areas to ff just
before the "token error"...
(this works thanks to recent changes from Nathan; in fact, any input can
affect the state of an artwork element). Removed debug build hack to popmessage
the shifter state.
=============
Several Seibu games (i.e. D-Con,sdgndmps,Sengoku Mahjong,goodejan/totmejan and the raiden2.c/legionna.c games) all have a standard 0x48 (0x50?)
regs-wide C.R.T.C.
I wonder if it is a custom Seibu crap or a known video chip,would be good if somebody can do tests on it. For sure,it should be abstracted,this
commit was made by looking mostly at Sengoku Mahjong.
- added running_machine to internal structure, removed as explicit parameter
- added new function rom_file_size() to compute the size of a ROM
- removed rom_first_chunk() and rom_next_chunk() which are no longer needed
- changed progress display to be based on size of ROMs loaded, not number
- changed temporary load buffer to be dynamically allocated
- fixed reload logic to handle skipped BIOSes
Also changed rand_memory() to use a fixed seed for consistent behavior.
Fixed auto_malloc() along the way to randomize its memory when allocated in
the debug build. This used to be the standard, but it seems to have been removed
when the pool allocation was moved into the library.
inlining the check to see if it is running. Removed obsolete entries
and updated the text to more accurately describe each one. Added CPU
tags to the CPU names. Switched to using an astring for building the
final string.
Unfortunately, still a bit too much overhead to leave it on in all builds.
==============
irq 5 code is this one:
04425A: 007C 0500 ori #$500, SR
04425E: 0279 FFEF 0060 000C andi.w #$ffef, $60000c.l
044266: 0079 0010 0060 000C ori.w #$10, $60000c.l
04426E: 48E7 0080 movem.l A0, -(A7)
044272: 206D 1C18 movea.l ($1c18,A5), A0
044276: 30F9 0070 0002 move.w $700002.l, (A0)+
04427C: 2B48 1C18 move.l A0, ($1c18,A5)
044280: 4CDF 0100 movem.l (A7)+, A0
044284: 4E73 rte
60000c is an unknown port,but 700002 is for arm power sensor. So I'm guessing that's not related at all with the ym sound chip.
I'll check this again at some point...
New games marked as GAME_NOT_WORKING
------------------------------------
AV Hanafuda Hana no Christmas Eve [Angelo Salese]
AV Hanafuda Hana no Ageman [Angelo Salese]
Adds Jeff's Romhack Donkey Kong Foundry set. I spoke with him before the d2k thing and he gave his permission to use this set with MAME
No credit please ;-)
that shares the work ram with the main z80) [Angelo Salese]
New games marked as GAME_NOT_WORKING
------------------------------------
Mahjong Senka [Angelo Salese]
Mahjong Yarou [Angelo Salese]
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Cherry Bonus III (version 1.40, encrypted) [Andreas Naive, Roberto Fresca]
atarisy1.c:
* Support for new Atari System 1 TTL Motherboard dump (Previously MAME would crash when using it and now it just seems to hang.)
* PROMs dumped from Atari System 1 TTL Motherboard (One PLA needs dumping though.)
* Added notes on the Atari System 1 Motherboard and some of its supported games
balsente.c:
* Placeholders in the Bally Sente driver for the various PALs that need to be dumped
* Added notes on some of the type of Bally Sente cartridges
galaga.c:
* Placeholders in the Galaga driver for various PALs that need to be dumped
* Added notes on the two different Atari Dig Dug board revisions
galaxian.c:
* Added notes to the Galaxian driver on the single board Galaxian bootleg and the board labels for Lost Tomb and Turtles
ms32.c:
* Placeholder in the Jaleco MegaSystem 32 driver for the PAL on the motherboard
namcofl.c:
* Placeholder in the Namco FL driver for the PALs on Speed Racer
popeye.c:
* Corrected the rom names for Popeye
* Added save state support to Popeye
* Added the dip location to the encrypted Popeye and fixed the coin settings according to the manual (unencrypted Popeye not changed)
rocnrope.c:
* Placeholder in the Roc 'n Rope driver for a PAL
tutankhm.c:
* Added the dip locations to Tutankham
tx1.c:
* Placeholder in the Buggy Boy Jr. for the various PALs
of a given driver, meaning those drivers that come from the same source
file, along with their parent names if they are clones. If a wildcard
name is specified for the driver, then the first driver in a given
source file will trigger a list of his brothers, and any other drivers
in the same source file which match the wildcard will be flagged.
which control the font and size used in the debugger text Windows. These
default to "Lucida Console" and 9pt, which is the same face as previously
hard-coded but 1pt larger. Personally, I prefer "Consolas" 9pt, which is
one of the new "C" fonts included with Windows Vista and later (also
available for free download on older systems). Note that only fixed-width
fonts really work here, for obvious reasons.
polystar gets a little farther but crashes when the sub cpu attempts
to enable interrupts.
Removed HAS_PPC* in favor of a single HAS_POWERPC, and a single
definition in cpu.mak for all PowerPC variants.
If you're going to point to banks, they must be mapped. Increased all
"main" regions to 0x2000000 in order to accommodate all possible 16
banks the code might try to switch to.
Disassembled PCs are now forcibly aligned to the minimum opcode size
and explicitly masked.
Also normalized the CPU cores to always do while (icount > 0), in order
to remove the kludge in cpuexec.c that caused us to overeat by 1 cycle to
accommodate those cores that there looping while (icount >= 0).
* all code now lives in mcs48.c
* rewrote disassembler as unified MCS-48/UPI-41 disassembler
* changed UPI-41 interfaces to match MCS-48
* added new master read/write interfaces for external access
* unified interface to 8243 expander chip
* converted tnzs and decocass to the new interfaces
DECO Cassette fixes/cleanups:
* converted tape handling to a device
* changed tape handling to use a timer callback
* updated to work with new UPI-41 core
* corrected clock speeds for all chips (esp. the 8041)
* fixed very wrong CRC implementation (how did it ever work?)
* corrected sound IRQ rate
* corrected video timing
Burger Time hardware fixes:
* corrected sound IRQ rate and handling
* removed lnc audio reset hack
* full audio memory maps based on schematics
* corrected video timing
Converted the tilemaps chip to an 8-bit bus width, and added 16-bit handlers using the macros in memconv.h.
Improved bishjan memory map. Implemented line scroll emulation. [Luca Elia]
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Ying Hua Lian 2.0 [Luca Elia, Angelo Salese, David Haywood]
- Added another set of Cherry Bonus III.
- Reworked and cleaned ncb3, cb3a, lucky8 and lucky8a inputs.
- Added the 2nd set of controls to the above games.
- Removed the OKI references from machine driver and rom load for the above games.
- Promoted ncb3 and cb3a to working status.
- Reparented sets.
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Cherry Bonus III (Version 1.40, set 1) [Roberto Fresca]
Cherry Bonus III (Version 1.40, set 2) [Roberto Fresca]
- 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'.