Commit Graph

1673 Commits

Author SHA1 Message Date
Phil Bennett
804434aa15 Stop crash/assert when trying to decrease the debugger memory window bytes per line to 0. 2009-01-16 18:21:18 +00:00
Nathan Woods
254936ce1a Fixed compilation errors if HAS_SAMPLES is 0 2009-01-15 12:35:33 +00:00
Aaron Giles
7f2e4e19be Cleanups and version bump. 2009-01-15 08:33:24 +00:00
Andrew Gardner
6ea9ca0589 Virtual Combat driver improvements. [Jason Eckhardt, Andrew Gardner]
* 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).
2009-01-15 04:40:57 +00:00
Phil Bennett
2d62f3a07e Updated OKIM6295 volume table to reflect actual chip behaviour. 2009-01-14 23:09:31 +00:00
Aaron Giles
9b47e0401f 00976: vaportrx: Crashes during the results section immediately after the race. 2009-01-14 16:23:52 +00:00
Aaron Giles
a5594a0a5c 02824: deadlock when using -state with -mngwrite/-aviwrite 2009-01-14 15:35:54 +00:00
Aaron Giles
d29f820164 Fix inverted function name. 2009-01-14 14:13:19 +00:00
Aaron Giles
2a780fc07d From: Oliver Stoeneberg [mailto:oliverst@online.de]
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.
2009-01-14 06:10:30 +00:00
Aaron Giles
62bddb4fe6 Added digitalker support to scorpion driver. [Olivier Galibert] 2009-01-14 06:07:26 +00:00
Aaron Giles
81fce8af37 From: Duke [mailto:startaq@gmail.com]
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
2009-01-14 06:00:48 +00:00
Aaron Giles
40d9394d3d From: Atari Ace [mailto:atari_ace@verizon.net]
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
2009-01-14 05:59:32 +00:00
Aaron Giles
200b0a0159 From: Atari Ace [mailto:atari_ace@verizon.net]
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
2009-01-14 05:32:21 +00:00
Aaron Giles
f449ec6100 Added new function gfx_element_build_temporary() to safely build a temporary
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.
2009-01-14 05:16:23 +00:00
Aaron Giles
1b48649379 Fixed bug with Atari Ace's recent change that caused sound indexes to be incorrectly
computed.
2009-01-13 16:26:43 +00:00
Aaron Giles
0b6ec32822 Made direct (opcode) access more robust. Direct access now crawls the
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.
2009-01-13 15:32:36 +00:00
Aaron Giles
03af882d87 From: Atari Ace [mailto:atari_ace@verizon.net]
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
2009-01-13 03:08:03 +00:00
Phil Bennett
7ffb225922 Fixed MSM6376 distorted playback.
Added sample ROM to newmcard.
2009-01-12 17:10:29 +00:00
Curt Coder
bd0d0269ff CDP1802 cpu core:
- improved register layout
- randomized register contents on initialization
2009-01-12 14:26:56 +00:00
Curt Coder
de81d24aab COP400 cpu core refactoring:
- added state table for the debugger
- grouped all cpu types under a single makefile entry
- removed duplicate code
2009-01-12 13:18:32 +00:00
Aaron Giles
ac0abd1706 Major drawgfx cleanup, global removal, and feature enhancements:
- 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.
2009-01-12 11:05:15 +00:00
Mirko Buffoni
25abe62db4 Added OKIM6376 emulation ADPCM Speech Synthesizer [Mirko Buffoni]
* 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?)
2009-01-12 09:25:00 +00:00
Phil Bennett
b9d2549841 02805: turbosub, turbosba: Dropped lines in video output rendering
Added save state support.
2009-01-11 19:27:13 +00:00
Nathan Woods
4df40b369c 1. Introduced a parallel 6821 PIA implementation, as a MAME device (6821new.c)
2.  Ported the Williams drivers over to use this new PIA implementation
2009-01-11 01:16:21 +00:00
R. Belmont
3188238b14 k053260: fix LP64 portability. 2009-01-10 04:47:39 +00:00
Curt Coder
019b61e7af Converted the CDP1802 cpu core to use a state table. 2009-01-09 09:32:54 +00:00
Curt Coder
75ec4f2d1d Fixed sloppy rendering in CDP1869. 2009-01-08 08:16:50 +00:00
Couriersud
acae0b91f3 Fix gcc 64bit compile issue 2009-01-07 23:57:10 +00:00
Nathan Woods
45a3d96248 Added check to debug_cpu_set_dasm_override(), because callers do not know if we
are in debug mode or not
2009-01-07 11:42:24 +00:00
Nathan Woods
fd3f93f96d Comment fix 2009-01-07 11:41:56 +00:00
Nathan Woods
59dbaaa70a Added a validity check 2009-01-06 03:21:11 +00:00
Aaron Giles
835ace034d Cleanups and version bump. 2009-01-04 23:31:12 +00:00
Aaron Giles
ed893fe35c From: Robert [mailto:pac0446@bigpond.net.au]
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
2009-01-04 23:01:29 +00:00
Ryan Holtz
b723f83edc Added savestate support to the following devices: [MooglyGuy]
- TTL74148, TTL74153
Removed anonymous timers from gridlee and added savestate support [MooglyGuy]
Added savestate support to all games in 40love.c, 88games.c, 1943.c, carpolo.c, circus.c and exidy.c: [MooglyGuy]
- 40love, fieldday, undoukai, 88games, konami88, hypsptsp, 1943, 1943j, 1943kai, carpolo, circus, circusse, robotbwl, crash, ripcord, sidetrac, targ, targc, spectar, spectar1, rallys, phantoma, mtrap, mtrap3, mtrap4, venture, venture2, venture4, teetert, pepper2, hardhat, fax, fax2
2009-01-04 22:33:11 +00:00
Aaron Giles
41879d052a Removed bogus port 4-7 definitions from MCS-48. Added i8243
implementation. Connected 8243 properly to monsterb and 
system 16a sound. Changed draw80pkr to connect the PROG
line like videopkr.
2009-01-04 03:35:12 +00:00
Aaron Giles
84618c3f7a romload cleanups:
- 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.
2009-01-02 19:20:55 +00:00
Aaron Giles
b7c652b8dd Removed a couple of unnecessary typedefs from mamecore.h.
Updated romload to use an astring for accumulating errors (I always feared
busting that buffer with some huge romlist).
2009-01-02 17:26:37 +00:00
Aaron Giles
74d7495dbc 02104: metlhawk, metlhwkj: Crash while decoding with '-debug' trigger
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.
2009-01-02 16:55:07 +00:00
Aaron Giles
0b2c86bb02 Cleaned up the profiler. Reduced its runtime overhead significantly by
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.
2009-01-02 10:52:40 +00:00
Aaron Giles
ba92f06dd7 Minor tweaks to please valgrind. 2009-01-02 10:50:40 +00:00
Aaron Giles
967eb6ef16 Fixed minor glitch in UI display of screen information. 2009-01-02 08:23:53 +00:00
Aaron Giles
403fca8a23 Fixed rendering of slider controls so it doesn't overlap when menus get large. 2009-01-02 08:20:04 +00:00
Aaron Giles
150d84a552 Oops, undo an accidental change in 6850acia that broke the bfcobra games, among others. 2009-01-02 03:25:15 +00:00
Aaron Giles
9ce87edb3f Fixed crash in aica games due to initialization code blowing away the device pointer. 2009-01-02 00:43:05 +00:00
Aaron Giles
2407e06237 ldplayer works again. Added MDRV_LASERDISC_GET_DISC callback hook
which allows for dynamically finding the CHD, rather than relying 
on the DRIVER_INIT hackery that was there before.
2009-01-01 23:05:52 +00:00
smf-
ca91d3bbb0 fixed void function returning a value compile error 2009-01-01 16:11:54 +00:00
Aaron Giles
55afb292df Some minor MCS-48 cleanup. Added 8040/8050 variants. 2008-12-31 16:30:09 +00:00
Phil Bennett
2b9dc5ee31 Fix 02791: cafetime: Access Violation with -debug 2008-12-31 12:33:58 +00:00
Aaron Giles
379e2e1fdc PTR -> FCT naming for a few remaining items in CPU cores. [Duke, Aaron Giles] 2008-12-31 03:08:34 +00:00
Aaron Giles
a748f24dae Added the ability for a ROMset to specify a default BIOS. Use
ROM_DEFAULT_BIOS("biosname") in the ROM definition. This can be
used to ensure a correct default BIOS for ROM versions that care.
2008-12-31 02:58:30 +00:00
Aaron Giles
200345b6da 02714: 3stooges: Speech works for a while, then starts going in and out of horrible noise and static
Interim fix, waiting until 0.129 is done before trying to sort out IRQ
handling for real.
2008-12-31 02:36:09 +00:00
Aaron Giles
951bb250e5 Added polling hooks for SP0250 DRQ line. The callback is now optional.
If not provided, then the kick timer is not used.
2008-12-30 22:02:10 +00:00
Aaron Giles
3d7b496183 REP instructions with high interleave would never complete.
Also fixed cpu.mak dependencies for i286.
2008-12-30 22:00:54 +00:00
Aaron Giles
c96bd5b910 Added new frontend option -listbrothers. This will list all "brothers"
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.
2008-12-30 20:19:04 +00:00
Aaron Giles
9d08f4fa9e 02768: mk3, mk3r20, mk3r10, mk3p40, umk3, umk3r10, umk3r11 : Roms incorrectly named as umk3 instead of mk3 + two versions of U2 SOUND ROM
(Also spacing cleanup in ppccom.h)
2008-12-30 16:41:18 +00:00
Aaron Giles
a7071bb8cb Hooked up PPC602 IBR. 2008-12-30 07:02:01 +00:00
Aaron Giles
c303794661 Hooked up DSA/ESA instructions for PowerPC 602 (as no-ops for now).
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.
2008-12-30 06:54:17 +00:00
Aaron Giles
e6a05fd4f6 02776: mwalk, mwalkj, mwalku: Crash when starting game
Also fixed rendering so that System 16 sprites don't attempt to
shadow VDP pixels (causes crash downstream in debug builds).
2008-12-30 05:44:23 +00:00
Aaron Giles
7b93ab2d26 02783: SMS-Based megatech.c sets: [debug] Access Violation with -debug
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).
2008-12-30 01:18:26 +00:00
Aaron Giles
4c95c177a8 02785: a51site4: Interger Overflow with -debug 2008-12-30 00:42:19 +00:00
Aaron Giles
528d5b6528 Merged i8x41 (UPI-41) core into MCS-48 core:
* 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
2008-12-30 00:24:06 +00:00
Luca Elia
75cbcca312 Improved bishjan.c:
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]
2008-12-29 21:55:34 +00:00
Jonathan Gevaryahu
08d73411f0 case and whitespace consistency fix for last commit to xtal.h 2008-12-29 05:30:10 +00:00
smf-
e819aa7556 changed divide to throw out negative numerators. 2008-12-28 22:37:26 +00:00
Jonathan Gevaryahu
aac7116ca2 add 14.118MHz xtal for TS2068 in MESS 2008-12-28 20:09:36 +00:00
smf-
091c3814d8 A write isn't allowed to start if there is one in progress and a write isn't started if the data is already correct. This allows my dream horse to boot again. Further investigation is needed. 2008-12-28 15:33:50 +00:00
smf-
d0a5273861 Implemented GTE divider using reciprocal table derived by pSXAuthor, this should allow the results to be calculated as inaccurately as the real hardware. 2008-12-28 14:56:15 +00:00
Phil Bennett
9655d61dec Fixed crash when mouse-clicking without a valid mouse_target set (typically after startup when no mouse movement events have occurred). 2008-12-26 14:01:14 +00:00
Aaron Giles
ee9f02668c 02758: linking ldplayer fails
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.
2008-12-26 07:31:44 +00:00
Aaron Giles
2a4df134e0 02765: all naomi.c sets: Assertion 2008-12-26 07:16:09 +00:00
Aaron Giles
4ed7452ceb From: Atari Ace [mailto:atari_ace@verizon.net]
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
2008-12-26 06:40:58 +00:00
Aaron Giles
70f3194097 02770: aceattac: Interger Overflow
Cleaned up cycle handling in the 68k core.
2008-12-26 06:37:19 +00:00
Phil Bennett
d984fa551b Correctly setup the MC6845 device in the carrera driver. 2008-12-25 09:58:00 +00:00
Andrew Gardner
e7ec9c0df6 Adds extremely preliminary i860 disassembler and hooks it up to the vcombat driver. [Jason Eckhardt, Andrew Gardner]
(We're not even decoding args yet, but it's on its way).
2008-12-25 03:03:30 +00:00
Aaron Giles
7cb99192f0 02747: Compile error on openSUSE 11.1 / gcc 4.3.2 with OPTIMIZE=3
Appease the compiler. There is no actual bug here, but it is tricky for the
compiler to understand that.
2008-12-25 01:39:55 +00:00
Phil Bennett
6497510da6 Fix 02766: topgunnr: Hangs
Corrected cpu_attomtime_to_clocks() calculation.
2008-12-24 21:40:36 +00:00
Wilbert Pol
ebf81feae7 Update to a bit of MESS-only code. 2008-12-24 20:00:55 +00:00
Aaron Giles
aa161c426b Converted 68000 to state tables. 2008-12-24 09:11:03 +00:00
Wilbert Pol
b6f61fbd07 Cleaned up the sid interface. 2008-12-23 23:00:26 +00:00
Wilbert Pol
f4530bf179 Added f3853 to src/emu/emu.mak 2008-12-23 20:24:13 +00:00
Wilbert Pol
da128743fb Changed the F3853 implementation into a device. 2008-12-23 20:14:57 +00:00
Aaron Giles
a70fdf00a1 CPU interface organization shuffle. The file cpuintrf.h now merely
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).
2008-12-22 17:35:27 +00:00
Phil Bennett
9f76d751c0 New games added or promoted from NOT_WORKING status
---------------------------------------------------
Turbo Sub (prototype rev. TSCA) [Phil Bennett]
Turbo Sub (prototype rev. TSC6) [Phil Bennett]
2008-12-22 13:19:01 +00:00
Aaron Giles
bf20e586d1 Significantly optimized the inner execution loop. arknoid2 is ~2.5x
faster with maximum interleave now.
2008-12-22 10:28:20 +00:00
Aaron Giles
6c4013134f Fixed validity checks for MC6845. 2008-12-22 05:38:43 +00:00
Aaron Giles
c0ca96b075 Cleanups and version bump. 2008-12-22 04:01:51 +00:00
Aaron Giles
64c7591175 From: Oliver Stoeneberg [mailto:oliverst@online.de]
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
2008-12-22 03:34:54 +00:00
Aaron Giles
8213a7af4f Rewrote 8080/8085 interrupt handling so that it makes sense.
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.
2008-12-22 03:18:03 +00:00
Andrew Gardner
44a99ed738 Rewrite of the Motorola DSP56k CPU core. (Andrew Gardner)
* 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.
2008-12-21 19:07:44 +00:00
Andrew Gardner
c17377e8a9 Fixed update_handler for the dsp56k and polygonet. [Andrew Gardner]
(The driver more or less works again.  And holy moly is this thing fast with my crazy interleave values!)
2008-12-21 08:21:34 +00:00
Aaron Giles
dc63238265 From: Atari Ace [mailto:atari_ace@verizon.net]
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
2008-12-21 03:07:52 +00:00
Aaron Giles
d617d4369d Minor code simplification. 2008-12-21 00:41:10 +00:00
Aaron Giles
5279595eee Removed MDRV_INTERLEAVE(x), which specified the minimum scheduling
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).
2008-12-20 21:17:53 +00:00
Wilbert Pol
0b6b3886cc Added running_machine parameter to the callback in the sid interface. 2008-12-20 20:00:25 +00:00
Wilbert Pol
8850e49309 Added running_machine parameters to the f3853 callbacks. 2008-12-20 19:10:31 +00:00
Roberto Zandona
fd26606354 removed unused variable "result" 2008-12-20 13:18:09 +00:00
Aaron Giles
446f13607f Memory view fixes:
* 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
2008-12-20 07:25:39 +00:00
Aaron Giles
9be5d30f20 More cleanup. Added address-space-specific constants for the various
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.
2008-12-20 02:57:13 +00:00
Aaron Giles
165be1ee47 Z180 uses new cpu_state_table 2008-12-19 23:04:42 +00:00
Aaron Giles
63a6f364f8 Fixed registers view to only show those entries valid for the
CPU type.
2008-12-19 22:34:19 +00:00
Aaron Giles
d2d5def542 Oops, swapped import/export on the R register. 2008-12-19 22:29:14 +00:00
Aaron Giles
320097d9fe Renamed CPUINFO_PTR_* to CPUINFO_FCT_* for function get infos.
Changed Z80 over to the new cpu_state_table mechanism.
2008-12-19 22:26:25 +00:00
Aaron Giles
f36fc8641e This update is the below two patches, plus the remaining changes
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
2008-12-19 19:40:22 +00:00
Aaron Giles
42c9aeff39 Cleaned up device and sound interfaces to match the CPU
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.
2008-12-19 06:46:17 +00:00
Wilbert Pol
4830ff3e28 Some PIC8259 updates:
- Fixed operation of edge-triggered interrupts
- INT output line is now cleared when an IRQ is acknowledged
- Implemented basic OCW3 features
2008-12-18 20:23:45 +00:00
Aaron Giles
72b283a0d1 Removed index and clock parameters from CPU_INIT function. 2008-12-18 10:11:10 +00:00
Aaron Giles
aa7e2482e2 CPU header cleanups....
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
2008-12-18 09:38:12 +00:00
Aaron Giles
785b6a50c6 From: Atari Ace [mailto:atari_ace@verizon.net]
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
2008-12-18 08:32:50 +00:00
Aaron Giles
cf9fc58618 Made the concept of a "clock" native to devices. The clock is now
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).
2008-12-18 08:28:50 +00:00
Wilbert Pol
d9fbf0dba5 Removed unneeded segment base changes from the 80286 core. 2008-12-17 19:15:14 +00:00
Aaron Giles
2ed5fee4bb Fix compile error. 2008-12-17 15:15:21 +00:00
Aaron Giles
804860a75c Added the concept of device "owner", for devices owned by other devices.
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.
2008-12-17 06:12:58 +00:00
Aaron Giles
e2ae5c7fa3 From: Atari Ace [atari_ace@verizon.net]
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
2008-12-17 05:52:10 +00:00
R. Belmont
ab8b93e1d1 Improved 64-bit fix. 2008-12-17 05:42:57 +00:00
R. Belmont
84afc85712 Fix fatal pointer truncation on 64-bit builds. 2008-12-17 02:48:17 +00:00
Aaron Giles
4f266b6da4 Hi mamedev,
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
2008-12-16 16:32:05 +00:00
Aaron Giles
5630547540 More device normalization:
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.
2008-12-16 16:30:28 +00:00
Aaron Giles
98c40f06db Made CPUs into proper devices. CPUs are now added in the
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.
2008-12-16 15:02:15 +00:00
Aaron Giles
54db8f077b Cleanups and version bump. 2008-12-15 01:46:32 +00:00
Aaron Giles
68bca19400 Fix all obvious regressions based on screenshots. 2008-12-15 00:55:07 +00:00
Aaron Giles
60b43c1d69 Removed hack for setting mcs51 serial callbacks. Updated micro3d to use
new functions. Fixes regression.
2008-12-14 23:47:30 +00:00
Aaron Giles
04fbf4f825 Removed unnecessary masking in disassembly view.
Changed console subview computations to leave the registers portion
fixed.
2008-12-14 21:34:02 +00:00
Couriersud
4ffa2901ce Fix raster effects in nbbatman - as far as I can judge.
I was not able to dig out information about the V33 prefetch
timing and the prefetch cache size. Anybody has more 
information?
2008-12-14 18:47:33 +00:00
Roberto Zandona
046ef441d9 i960: fixed nor opcode and added notor opcode 2008-12-14 16:55:49 +00:00
Aaron Giles
a7db377c87 From: Atari Ace [mailto:atari_ace@verizon.net]
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
2008-12-14 08:45:12 +00:00
Aaron Giles
9830575ad0 From: Atari Ace [mailto:atari_ace@verizon.net]
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
2008-12-14 08:34:41 +00:00
Aaron Giles
98b3cf37e7 From: Atari Ace [mailto:atari_ace@verizon.net]
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
2008-12-14 08:20:09 +00:00
Aaron Giles
af1273c18d From: Atari Ace [atari_ace@verizon.net]
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
2008-12-14 08:15:01 +00:00
Aaron Giles
9acb30bcbe From: Micko [mailto:mmicko@gmail.com]
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
2008-12-14 08:11:42 +00:00
Nathan Woods
f2c32190ea Changed the 6522 VIA implementation to be a device 2008-12-14 01:08:14 +00:00
Aaron Giles
ed2768338f Changed attotime_to_ticks/ticks_to_attotime to use UINTs and the eminline
functions where possible.
2008-12-14 00:34:14 +00:00
Nathan Woods
8917ad4f41 6522 interface cleanups 2008-12-13 16:56:09 +00:00
Aaron Giles
e643a688b3 Fixed remaining crash regressions from recent changes. 2008-12-13 07:01:40 +00:00
Aaron Giles
59975ceb55 Expanded cpuexec cycles <-> attotime functions to handle UINT64s. 2008-12-13 06:41:29 +00:00
R. Belmont
8823bb9ba0 Re-order SCSP init to fix crash. 2008-12-13 04:20:19 +00:00
Andrew Gardner
e1f9347f0d Pointer-ified the dsp56k cpu core. [Andrew Gardner]
(There are still a couple of global memory arrays that i've gotta' move into the cpu struct.  Will do that soonish.)
2008-12-12 16:18:42 +00:00
Curt Coder
63a5cd896a I8085
- added INTE and state word callbacks

N8080.c
- rewrote interrupt handling according to schematics
- added interrupt acknowledge
2008-12-12 10:37:25 +00:00
Aaron Giles
b400e7978b From: Atari Ace [mailto:atari_ace@verizon.net]
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
2008-12-12 06:11:15 +00:00
Aaron Giles
9dc4966109 From: Atari Ace [mailto:atari_ace@verizon.net]
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.)
2008-12-12 06:03:37 +00:00
R. Belmont
2c7aed307a Fix Altivec RGB primitives on newer GCCs. [budge, Vas Crabb] 2008-12-12 04:20:19 +00:00
Aaron Giles
70aabcb6de From: Atari Ace [mailto:atari_ace@verizon.net]
Sent: Thursday, December 11, 2008 7:13 AM
To: submit@mamedev.org
Cc: atariace@hotmail.com
Subject: [patch] Remove deprecat.h from rendlay.c

Hi mamedev,

This patch squashes another deprecated use of Machine from the mame
core by plumbing machine_config into rendlay.c

~aa
2008-12-11 17:59:22 +00:00
Aaron Giles
e26c70d35b Fixed crash bug in DCS games.
Updated the fcompress APIs to allow for specifying a compression level.

Removed the concept of state saving tags, which was a hack to get save states
to work with multiple CPU cores. Simplified the state saving system as a
result, performing the operation in a single pass and without allocating
a full blob of memory. Also enabled minimal compression.
2008-12-11 17:03:13 +00:00
Quench
4ee312ca39 Pointer-ified the TMS32025 core. 2008-12-11 16:55:11 +00:00
Wilbert Pol
4f0f80255a Writes to a pit8253 timer control word always restart the timer. 2008-12-11 11:41:37 +00:00
Aaron Giles
7eaa676d90 Fixed compile error, and fixed crash when handling an exception when the
debugger is disabled.
2008-12-11 11:03:11 +00:00
Aaron Giles
9ff9434146 Removed safe_cpu_get_pc() which doesn't really make sense anymore.
Moved cpu_execute() to be an inline function.
2008-12-11 10:49:25 +00:00
Aaron Giles
04ae2d8bc7 Removed get context/set context calls from the CPU interface entirely.
Pointer-ified the TMS99xx core (missed that one!)
2008-12-11 10:21:52 +00:00
Aaron Giles
d87ef8f79b Here's the big one....
Added new function cpuexec_describe_context(machine) which can be
used in logerror() and other printf-style functions to return a
description of the current CPU/PC given only the machine. Changed
several dozen sites to use this instead of directly interrogating
the activecpu.

Removed all other uses of activecpu throughout the system. Removed
activecpu from the machine structure to prevent future abuse.

Removed cpu_push_context() and cpu_pop_context(), and all call
sites.

Voodoo devices now require a CPU to be defined in the configuration
in order to know whom to steal cycles from or stall when FIFOs get
full. Updated all voodoo users to specify one.

CPD1869 devices now also require a CPU to be defined in the
configuration, in order to know which CPU's registers to fetch.
Updated all cdp1869 users to specify one.

Many other small changes to make this all work.
2008-12-11 09:40:22 +00:00
Nicola Salmoria
c8944548df relax oki 6295 command validity check 2008-12-11 08:47:15 +00:00
Quench
922ea8052f Pointer-ified the PIC16C5x core. 2008-12-11 06:52:59 +00:00