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'.
- 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 ...
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Jangou Lady [David Haywood,Angelo Salese,Phil Bennett]
Sent: Saturday, December 13, 2008 5:07 PM
To: submit@mamedev.org
Cc: atariace@hotmail.com
Subject: [patch] Add machine to allocgfx
Hi mamedev,
This patch eliminates the #include "deprecat.h" from drawgfx.h. It
does so in a fashion similar to my recent tilemap patch, adding the
machine pointer to gfx_element, changing allocgfx to take a machine,
and then adjusting the internals to use the machine field as needed.
The changes outside of drawgfx.[ch] were done with the attached
script.
~aa
Sent: Saturday, December 13, 2008 1:34 PM
To: submit@mamedev.org
Cc: atariace@hotmail.com
Subject: [patch] Add machine parameter to tilemap_create()
Hi mamdev,
This set of patches eliminates the #include "deprecat.h" from
tilemap.c. The main change is to require callers of tilemap_create to
provide a machine pointer. This pointer is then attached to the
tilemap and used when needed inside tilemap.c.
The first patch simply adds running_machine *machine to some driver
functions that will soon need them. The second patch makes the needed
changes to tilemap.[ch]. The (large) third patch adds machine to all
the tilemap_create calls, and was generated entirely by the attached
script.
~aa
Sent: Saturday, December 13, 2008 6:58 AM
To: submit@mamedev.org
Cc: atariace@hotmail.com
Subject: [patch] additional sound core deprecat.h removal
Hi mamedev,
This patch removes most of the remaining deprecat.h includes in the
sound cores. deprecat.h -= 8.
~aa
--
From: Atari Ace [mailto:atari_ace@verizon.net]
Sent: Saturday, December 13, 2008 10:14 PM
To: submit@mamedev.org
Cc: atariace@hotmail.com
Subject: [patch] final sound core deprecat.h cleanup
Hi mamedev,
This patch removes the last three deprecat.h includes from the sound
cores.
~aa
Sent: Friday, December 12, 2008 9:28 AM
To: submit@mamedev.org
Cc: atariace@hotmail.com
Subject: [patch] yet another small Machine cleanup
Hi mamedev,
This patch modifies the tms34010.h, pc16552.h, and tms34061.h
interfaces to eliminate some more global Machine variables. Six more
deprecat.h includes eliminated.
FYI, 128u5 had 523 deprecat.h includes and ~1400 Machine variables,
now were down to 374 and ~420 respectively, so progress is being made.
~aa
Sent: Saturday, December 13, 2008 2:15 AM
To: Aaron Giles
Subject: Re: Another 8080/85 change from me
Hi Arron,
Here is the patch.
Problem was in EI handling and not clearing of interrupt enable flag, as I did in previous. So now EI is done as in Z80 since it is working same way. I have tried a invaders clone having problem, now they work, also MESS machine for which I initialy did this works.
Hope this will be in u6.
Micko
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Jangou [David Haywood,Angelo Salese,Phil Bennett]
Added hardware and tech notes.
New games marked as GAME_NOT_WORKING
------------------------------------
Four Roses (encrypted, 2 sets)[Roberto Fresca]
Sent: Thursday, December 11, 2008 6:52 PM
To: submit@mamedev.org
Cc: atariace@hotmail.com
Subject: [patch] deprecat.h cpu cleanup
Hi mamedev,
This patch purges the last few uses of deprecat.h from the cpu cores,
plus a handful of other Machine cases elsewhere that were found by
script inspection.
~aa
--
Hi mamedev,
This patch eliminates most uses of deprecat.h in the sound cores by
attaching the device to the state object and using it where
appropriate. Given that all the cpu objects use this convention, and
three sound cores already do this, this seemed an appropriate
approach.
~aa
Sent: Thursday, December 11, 2008 10:56 AM
To: submit@mamedev.org
Cc: atariace@hotmail.com
Subject: [patch] verboselog changes for future Machine removal
Hi mamedev,
Several mame files use an inline verboselog definition which saves
typing the cpuexec_describe_context repeatedly. While this is a nice
feature, each case introduces a then hard to remove deprecated Machine
variable. One way to fix this would be to add machine to the
parameter list for each verboselog call. Another way would be to
change them to include the context call explicitly inside a typical
logging macro (e.g. decocass.h). Not knowing which would be more
acceptable to mamedev, I've included patches for both.
~aa
(I chose to pass the machine to the verboselog function.)
> The roms were forwarded to the list ages ago. From Arzeno.
>
> GFX roms aren't dumped, using the original CPS2 ones causes the 'GIGA'
> part of the title to be missing. They should be different
> SOUND rom isn't dumped, it uses an AD-65 (OKI6295) instead of QSOUND,
> so I can't add the sound.
>
> Progarm appears to run as expected.
>
> it took a long time to figure out that this change was needed because
> MAME simply exits to the commandline without any kind of message, or
> possible backtrace if you attempt to call cpu_set_input_line with an
> invalid CPU.
>
> - cpu_set_input_line(space->machine->cpu[1], INPUT_LINE_RESET,
> (data & 0x0008) ? CLEAR_LINE : ASSERT_LINE);
> + if (space->machine->cpu[1])
> cpu_set_input_line(space->machine->cpu[1], INPUT_LINE_RESET, (data &
> 0x0008) ? CLEAR_LINE : ASSERT_LINE);
>
From: Smitdogg Jones [jcsmith23@yahoo.com]
Sent: Wednesday, December 10, 2008 4:51 PM
To: Dumping Project; submit@mamedev.org
Subject: Super High Impact (Prototype 6.0 9/23/91)
Most roms are labeled with LA1 stickers. U89 and 105 have small white square stickers stuck on top of what looks like LA1 stickers with "pro6" printed on them by a computer and are the only roms found to be different than ones in the LA1 revision. I added this as shimpap6 and changed the set name of the proto 5 version to shimpap5.
roms will be here temporarily when I can access it, it's currently down, I don't know what the issue is:
http://smitdogg.mameworld.info/random/shimpap6.zip
I'll e-mail the roms to Guru too. If anybody wants pics or anything else from it, let me know soon. I attached the diff.
Smitdogg
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Pesadelo [Mariusz Wojcieszek, hap]
Rom uploaded to current/p.
It would be good if somebody can check sound hookup - I have no speaker attached to PC in the work office.
Mariusz
Also:
From: hap [hap@samor.nl]
Sent: Wednesday, December 10, 2008 3:21 PM
To: submit@mamedev.org
Subject: forte2 driver
Hello,
Attached is a Forte II board driver for MAME.
u5_forte2_diff.zip is the diff to 0.128u5
forte2_csource.zip is the driver source, better viewing than the diff
pesadelo.zip is a game ROM for it
Greets, hap
Inviato: domenica 7 dicembre 2008 20.18
A: Angelo Salese
Oggetto: Status Trivai (From software this)
seems to be a vertical set of Triv Two. There were no question roms, so
I used the roms from our existing Triv Two set, they seem compatible
(not really surprising)
Triv Two (Vertical) [David Haywood]