Commit Graph

931 Commits

Author SHA1 Message Date
Aaron Giles
4c5cebc661 From: Atari Ace [mailto:atari_ace@verizon.net]
Subject: [patch] Fix some comments

Hi mamedev,

The following patch updates the initialization comments at the top of
mame.c and corrects/adds a few filename declarations at the top of a
handful of files.

~aa
2008-02-03 00:56:06 +00:00
Luca Elia
fbe8745472 - New game: Puzzlet (NOT_WORKING)
- Added some instructions to the H8/30xx CPU:
  or.l ERs, ERd
  rotl/shal.l ERd
  not.l/neg.l ERd
  exts.w Rd
  sub/or/xor.l #Imm:32, ERd
  bset/bnot/bclr.b Rn, @ERd
  bst/bist.b #Imm:3, @ERd
  bnot.b #Imm:3, @ERd

- Added H8/3007 & H8/3044 variants with their memory maps.
  Preliminary implementation of the H8/3007 timers.
  (a make clean is required)

P.S.
I've moved the docs we have in docs/cpu/H8-30xx and added a couple more.
Roms are in roms/current/p/puzzlet.zip
2008-02-02 22:36:24 +00:00
Aaron Giles
aa16ee779d Changed debugger-related code to be based off a new makefile define (DEBUGGER) which sets
a new compile-time define (ENABLE_DEBUGGER). This means that MAME_DEBUG no longer means
"enable debugger", it simply enables debugging features such as assertions and debug code
in drivers.

Also removed the various levels of opbase protection in memory.h and always just turned 
on full bounds checking.

Fixed build break due to missing ampoker.lay -> ampoker2.lay renaming.
2008-02-02 08:57:39 +00:00
Phil Bennett
6696fe197c * Improved Lock-On by a fair bit and added an alternate set.
* Added POLL input handling to the NEC V20/V30 core.
2008-02-02 02:19:24 +00:00
Zsolt Vasvari
f65f3077b0 - Fixes reset crashes in all Z180 games. Not sure if there is a bug ID for this
- Removed the various busy loop and non-exact optimzations from the Z180 core
2008-01-31 02:27:44 +00:00
Aaron Giles
dbf80b011c Removed distinction between *_gettotalcycles() and *_gettotalcycles64().
All functions now return 64-bit results.
Updated all call sites appropriately.
2008-01-29 19:35:27 +00:00
Couriersud
06cf28a0e6 build environment:
* added checks for CROSS_BUILD=1 to omit building m68kmake.exe, verinfo.exe, png2bdc.exe and file2str
* enables building mame using mingw on linux
2008-01-27 20:19:32 +00:00
Zsolt Vasvari
f3f249af3f Fixed compilation when X86_MIPS3_DRC is not defined 2008-01-25 23:55:28 +00:00
Jim Stolis
6c582352b6 Corrected previous timer fix to use more accurate IE SFRs. 2008-01-25 22:14:46 +00:00
Couriersud
b56271d5c9 ppc.c:
* Fixes DEBUG=1 build - adds include deprecat.h
2008-01-25 21:42:28 +00:00
Zsolt Vasvari
4930b2dbfd - Added deprecat.h that contains some deprecated/discouraged contructs (see below)
The idea is to create extra work if a driver wants to use these and hopefully
  gives an incentive to look for an alternate solution
- Added #include of deprecat.h that rely on these contructs
- Removed a bunch of unneccassary #include's from these files
2008-01-25 09:30:43 +00:00
Aaron Giles
2b0c136968 From: Wilbert Pol [mailto:w.pol@tiscali.nl]
Subject: z80gb cpu core patch

Changes:
- Small timing fixes when leaving HALT state.
- Fixed bug in retrieving Z80GB_SPEED pseudo register.

--

From: Wilbert Pol [mailto:wilbert@jdg.info] 
Subject: Re: timer_set_global_time patch

This patch for the z80gb cpu core also fixes my problems without the  
need to recode a lot of things:
- Split the execution of an instruction into separate fetch and  
execute phase.
2008-01-25 02:59:21 +00:00
Aaron Giles
444d77b838 From: Atari Ace [mailto:atari_ace@verizon.net]
Subject: [patch] Fix C4305 warnings, other MSVC tweaks

Hi mamedev,

This patch is a bit of a potpourri.  It is the result of enabling most
of the suppressed warnings when using MSVC compilers and seeing what
issues arose with different compilers (I used 70,71,80,90).  Two of
the warnings were judged to be useful to enable and methodically fix.
Some issues spotted by the other warnings were also fixed.

1. Fixed issues flagged by MSVC warning C4305 (type truncation).
Almost all of these are harmless double->float narrowing in
initializers, but one warning spotlighted a bug in segasyse.c, where
code to use a higher sprite number had no effect due to the
insufficient range of UINT8.
2. Removed /wd4550 for VS7/VS71 compilers (expression evaluates to a
function which is missing an argument list).  There are no cases of
this warning currently, and if there were they would most certainly be
bugs.  This also allowed the warning suppression lists to be remerged
for VS7 and VS2005.
3. Decoupled intrinsic support decisions from PTR64 in eivc.h.
4. Fixed some VS7-specific issues (OPTIMIZE=0 at least compiles now).
That compiler doesn't support "long long" or "ll" (rsp.c/dkong.c).
5. Added a missing case statement in sm8500d.c.  Noticed while
reviewing dead code warnings.
6. Replaced a number of static constants with an enum in sidenvel.h.
This is unrelated to the rest of this patch, but it was overdue to be
done.
2008-01-24 14:24:59 +00:00
Zsolt Vasvari
3815ec44e1 - Changed cpunum_set_input_line* functions to take running_machine as an argument
- Added that fix the arm7dasm, otherwise I couldn't compile the code
2008-01-24 14:14:21 +00:00
Zsolt Vasvari
f7c5c67e2e First in a series of updates to remove the use of the global Machine from as many places as possible 2008-01-24 09:12:03 +00:00
Ryan Holtz
a67e5be6db Credit to SGINut.
Changes:
- ARM7: Added support for the BLX opcode in THUMB mode.
2008-01-24 04:10:40 +00:00
Ryan Holtz
0960ad9d7b Note: Removing the static qualifier on vi_width is necessary for PIN64 captures to work. I'm not submitting my changes for PIN64 yet, but leaving it as non-static means one less thing I need to manually merge to get PIN64 working in whenever I update my tree.
- Final pass on single-stepping behavior [SGINut]
- Corrected VRCP element lookup [SGINut]
- Corrected unaligned DMA behavior [Ville Linde] (Ville, do you mind that I submit this?)
2008-01-22 02:11:24 +00:00
Jim Stolis
b6a82f1762 Fixed timers from firing when not enabled. Checking TCON alone is not enough to invoke timers. Added IE SFR flags in conditional. 2008-01-21 22:27:44 +00:00
Nicola Salmoria
b0e569464a fixed VRCP instruction to match the real hardware results 2008-01-21 21:41:33 +00:00
Zsolt Vasvari
892153bd09 - Fixed saving callbacks across a reset
- Added 'pull' callback for the SID pin.  This is needed by the Red Alert voice board
2008-01-21 08:58:19 +00:00
Aaron Giles
eef3b17f7e (From Atari Ace)
> This one line fix addresses the crash reported in newui0118u4ora. I
> think most of the other issues reported in the bug are fixed by this
> as well, but I didn't test this thoroughly. Perhaps we should close
> the bug and have the testers file a new bug if remaining issues are
> found.
2008-01-19 04:34:16 +00:00
Aaron Giles
5baa045d9d Marked HD6309 as divide-by-4 internally.
Updated drivers accordingly.
Major cleanup to the ddragon driver:
 - improved video and interrupt timing
 - consolidated common memory maps and input ports
 - added save state support
 - correct clocks
2008-01-18 20:37:32 +00:00
Nathan Woods
cb29c57606 Sync with MESS 2008-01-18 12:39:13 +00:00
Ryan Holtz
b9fe1e4bcf On-the-DL credit: "SGINut"
Changes:
- Re-fixed RSP single-step activation behavior
- Reading the RSP PC returns only the least significant 12 bits
- Fixed flag behavior when read out via CFC2
2008-01-18 04:33:13 +00:00
Ryan Holtz
51939cee8d On-the-DL credit: "SGINut"
Oh God, why Nintendo, why?  Why make the RSP immediately stop when the main CPU sets single-stepping, but have the RSP execute one instruction before entering single-stepping mode when it sets it on itself?  "You manaics!  Damn you!  God damn you all to hell!"

Changes:
- Initialize RSP registers to 0 in lieu of mame_rand
- Re-fix RSP single-stepping mode when set by a CPU other than the RSP
2008-01-18 02:16:19 +00:00
Couriersud
0e8b1735bc i8085.c:
* 8085 has an internal clock divider by 2. Changed i8085.c to reflect this for I8085. I8080 still at 1.
Games using I8085:
* Changed clock to reflect internal clock divider now in i8085.c
* Added some FIXME: comments where clocks for I8085 are outside specs
2008-01-17 21:20:53 +00:00
Aaron Giles
8c4ccedaff Added internal divider on m680* series CPUs (except the original m6800).
Updated clocks on all games using them to remove the explicit divider.
2008-01-17 17:14:45 +00:00
Aaron Giles
2299164694 Pushed CUSTOM_INPUT macro to all users.
Changed TMS0285 -> TMC0285.
Spacing cleanups for 0.122u6.
Version bump to 0.122u6.
2008-01-17 16:06:09 +00:00
Ryan Holtz
41b5d4ffd5 On-the-DL credit: "SGINut"
Quite possibly the most useless RSP change I'll ever make, given that no game should ever be affected by these changes.  But, eh, accuracy.  Apparently only the accumulator registers are initialized to a non-random value on power-on, and apparently the RSP executes exactly one instruction before kicking over into single-step mode when it's set in the status register.

- Fixed accumulator state on powerup by testing against real hardware
- Fixed single-step behavior by testing against real hardware
2008-01-17 04:23:02 +00:00
smf-
819dd27efc Changed the clocks to reflect the actual frequency that is supplied to the chips, because the clock is divided in the CPU package.
I have changed the divide in the CPU core to 4, so apart from system 10 & 12 the speed should remain the same as before.
2008-01-16 08:16:32 +00:00
Couriersud
5f244fffa0 * fix regression on T1 counter mode as reported by Zsolt 2008-01-16 00:18:53 +00:00
davidhay
5cce8356e8 (from Ernesto Corvi / ElSemi)
fix do_ret() based on comparison of ElSemi's core and the MAME core
2008-01-15 21:41:54 +00:00
smf-
0b0153c45e First pass at fixing the cpu clock speeds on the playstation based hardware.
The system 10 & 12 clock speeds have been raised as they run on an upgraded chipset.
All clocks are currently set to divide by 2 externally, I don't know if this is correct.
The clock is also divided internally as we have no wait states, incorrect dma timing, no gpu timing, no dma bus stealing and no gte timing.
2008-01-15 13:19:39 +00:00
Aaron Giles
ddca20f72a Cleaned up leland clocks a little.
Fixed alleymas0119u3gre (with a pointer from RansAckeR)
Added missing multipliers to the h8 and i960 cores.
Made the i186 divide-by-2 clock internal.
2008-01-15 08:29:13 +00:00
Charles MacDonald
dc02f2fc33 Fixed HuC6280 low-speed mode so it uses 4 cycles instead of 3. 2008-01-14 18:27:50 +00:00
Aaron Giles
ea7fc1a5e9 (From Atari Ace)
Some more static qualifiers for MAME, mostly on recent new/changed
code, but also on some arrays declared in functions I noticed.
2008-01-14 17:39:44 +00:00
Aaron Giles
9931a8708e Minor clock cleanup in tickee.c. 2008-01-14 03:28:33 +00:00
Aaron Giles
fe41f9bd01 Added CPUINFO_INT_CLOCK_MULTIPLIER to support CPU clock multipliers.
Updated all CPU cores to return a CPUINFO_INT_CLOCK_MULTIPLIER of 1.

Changed the core to actually respect both CPUINFO_INT_CLOCK_MULTIPLIER and CPUINFO_INT_CLOCK_DIVIDER.

Updated a number of drivers to use cpunum_get_clock() instead of Machine->drv->cpu[x].clock.

***** Raw input clock speeds should now be specified for all CPUs in the MACHINE_DRIVER. *****

Removed explicit divisors from all drivers using the following CPU types, 
which were already specifying non-1 values for CPUINFO_INT_CLOCK_DIVIDER:
 * COP4x0
 * I8039/8048 families
 * M68(7)05, HD63705
 * M6809E
 * PIC16C5X
 * TMS32010
 * TMS340x0

In a few cases, it appears that the divisor was not being used, so I guessed in those cases whether or not
the specified clock speed was raw.
2008-01-14 00:42:14 +00:00
Couriersud
31b8c14a71 i8039.c:
* hooked up EA line for M58715
mario.c:
* fixed portA startup value
* documented hardware changes to use a I8039 on a mario board
2008-01-13 13:34:34 +00:00
Aaron Giles
f44732e5af Added XTAL clocks to zaxxon.c.
Cleaned up jaguar driver:
 * proper video timing, configured by the chipset
 * 32-bit rendering, removing 16bpp hacks
 * support for borders
 * proper object processor timing, including multiple passes per line
 * added R3041 as a clone of the R3000
 * fixed XTALs based on documentation
2008-01-13 01:15:32 +00:00
Couriersud
190e262fb3 i8039.c/mario.c:
* fixed movd instructions
* add MB8884 and M58715 cpu types
* moved timer hack to M58715
* added ram_mask for internal ram access
* added R.A11 as 'M' to dasm flags
* added EA "IO" port
* mario now uses M58715 as sound cpu
2008-01-12 22:10:02 +00:00
R. Belmont
292b44af10 And no logging :) 2008-01-12 06:04:20 +00:00
R. Belmont
61714cd5a7 64-bit GCC fixes 2008-01-12 06:03:09 +00:00
Aaron Giles
8240d56dd9 Added support for outputting 64-bit target addresses. 2008-01-10 18:14:50 +00:00
Aaron Giles
c09a3df1e9 System 2 driver cleanup.
Proper video timing.
Full memory maps.
Save state support.
Removed 720 sound CPU hack in favor of prepopulated EEPROM like the other games.
2008-01-10 17:57:26 +00:00
Zsolt Vasvari
4260f4f8ab Fixed disassembly of Flag Out bit
Fixed incorrect argument order in OUT instruction
Corrected spacing
2008-01-10 04:47:58 +00:00
Zsolt Vasvari
19205daeb0 Fixed the disassembly of the Sense bit 2008-01-10 03:07:17 +00:00
Aaron Giles
29f2a7862a Wow. I can't believe I got away for months without saving RBP.
Should fix linux crashes with 64-bit DRC.
2008-01-09 06:35:07 +00:00
Aaron Giles
8fc9bc85e4 Yet another attempt to fix the MIPS 64-bit Linux crash. 2008-01-08 07:48:36 +00:00
Aaron Giles
bce2fa84b4 Cleanups and version bump to 0.122u4. 2008-01-07 17:14:05 +00:00
Zsolt Vasvari
531aea4a38 This essentially rewrites the CVS system video code. This fixes wallst071gre. Also fixed the S2650 registry window display. 2008-01-07 10:43:55 +00:00
Aaron Giles
9d3cf20f84 Fixed bug that caused us to use a bogus address for the entry point. 2008-01-07 06:05:23 +00:00
Aaron Giles
2d844fe392 Turned down the aggression on the "don't reconfigure screen" kludge in the TMS34010 core.
Fixes stonebal0117u2gre.
Also fixed minor cosmetic bug in last Williams sound update.
2008-01-07 03:29:59 +00:00
Aaron Giles
0ce44c7911 ElSemi -> Miguel Angel Horna in copyright notices 2008-01-06 16:58:33 +00:00
Aaron Giles
dae5e71408 (Thanks to MooglyGuy for the pointer)
Removed hack in setting the timer in the MIPS core, which caused missed timers on the aleck64 games.
Fixed icount management in the RSP core which caused it to report negative cycle counts.
Fixes aleck64_0120red and mtetrisc0115u1red.
2008-01-06 07:10:12 +00:00
Aaron Giles
24bea94d01 (From Oliver Stoneberg)
This fixes the winwork.c and poly(new).c meory leaks in the viper.c 
driver. I didn't look at the x86drc.c, because Aaron said it will be 
changed soon and there is no need to investigate those leaks at all.

As I wanted to update my own personal TODO about that fix I 
recognised it only happens in viper.c as well, so I took a stab at 
it. It was just anothe rmissing cleanup function and I also cleaned 
up the *_exit() potions/usage of the cores supporting DRC a bit.
2008-01-06 01:24:16 +00:00
Aaron Giles
ee9f88963c Copyright cleanup:
- removed years from copyright notices
 - removed redundant (c) from copyright notices
 - updated "the MAME Team" to be "Nicola Salmoria and the MAME Team"
2008-01-06 00:47:40 +00:00
Aaron Giles
a814dc9ec5 Allowed 32-bit pixel sizes for 34020 core.
Fixed 34020-only RPIX instruction.
Fixed btoads0102u5gre and btoads0103u1gre.
2008-01-04 17:39:33 +00:00
Aaron Giles
422ccce762 (From Oliver Stoneberg)
This is an updated version of my earlier ATTR_PRINTF patch. It was 
reviewed by Atari Ace to use ATTR_PRINTF properly and fixes even more 
format errors. I also reviewed the whole source again and it is now 
used in all possible places.
2008-01-03 05:37:18 +00:00
Aaron Giles
25eee632f6 (inspired by Firewave)
Removed ui_popup(). Drivers should always be using popmessage() instead (has been this way for a while).
Augmented popmessage() so that you can pass NULL to immediately dismiss any messages.
2008-01-03 05:33:59 +00:00
Pierpaolo Prazzoli
32dcbe633e Fixed save states in i8051 cpu core
Fixed save states in powerbls (powerbls0112u4red is fixed)
2008-01-01 22:47:24 +00:00
Pierpaolo Prazzoli
7ad91eead6 Fixed typo for IO1 irq callback 2008-01-01 21:39:10 +00:00
Aaron Giles
0e20c80517 Bumped version to 0.122u2. Spacing cleanups. 2007-12-31 02:22:13 +00:00
Aaron Giles
460437f8d1 (From Atari Ace)
The attached patch adjusts most conditional logging in MAME to use the
idiom "do { if (VERBOSE) logerror x; } while (0)".   This has the
benefit that the compiler checks the syntax of the logging even in the
case it will be eliminated, and in fact a number of cases here needed
adjustments to compile because of this.
2007-12-31 02:04:39 +00:00
Aaron Giles
3f6e8e1abf (From Samuele Zannoli)
The attached patch is some more progress in the sh4 core, expecially in the fpu.
Now there should be all the minimum needed to run the naomi bios ...
2007-12-31 02:00:41 +00:00
Aaron Giles
625c8308b9 (From Barry Rodewald)
Here is a fix I've done to the Z80 CPU core that removes the increasing 
of the R register from each IX/IY related (FD xx or DD xx) instruction.

This corrects the amount the R register should increased to to 2, 
instead of 3.  Documentation I've read suggests that the R register is 
increased by 1 for each instruction with no prefix, and by 2 for each 
instruction with a prefix (DD, FD, ED, CB, DD CB and FD CB).  This fixes

some protected cassette loaders in the MESS Amstrad CPC driver, and 
maybe others, which require the R register to be correct for the next 
routine to be decoded correctly.  I'd doubt that there is much, if any, 
noticeable impact for MAME, as the R register is really only useful to a

program as a simple random number generator (or seed).

I've tested the fix with Pacman, in MAME, and when it comes across a LD 
IX,xxxx or ADD IX,xx it will increase R by 2, whereas previously, it 
increased R by 3.
2007-12-31 01:58:34 +00:00
Aaron Giles
b482fd8c82 Add register usage tracking to Zeus 2.
Added artifical Z offset of -2 to make the full screen show in crusnexo.
Really fixed TMS3203x interrupt handling.
Added hack to catch invalid SP values during 32031 execution (debug mode only).
2007-12-31 01:46:50 +00:00
Aaron Giles
d9da8bd1e7 Fixed whiny gcc errors. 2007-12-28 16:39:13 +00:00
Aaron Giles
2f8231e10a TMS3203x core updates:
* fixed interrupt handling
 * added support for edge-triggered interrupts on '32
 * expanded interrupt support for the '32
 * updated drivers using TMS3203x core to deassert interrupts
 * added externally accessible functions for converting '3x floating point format
 * updated gaelco3d driver to use new functions

Zeus2 (+related) updates:
 * fixed save states for DCS games
 * cleaned up Zeus2 waveram handling
 * added Zeus2 save state support
 * added preliminary model and quad rendering support for Zeus2
 * added support to timekpr for the ZPRAM used on Zeus2
 * hooked up ZPRAM in Zeus2 games
 * hooked up controls in Zeus2 games
 * updated poly.c to ensure it is idle before saving state
2007-12-28 06:11:52 +00:00
Aaron Giles
28d23853ae (From AtariAce)
This patch should complete the addition of static qualifiers to all
MAME symbols that aren't explicitly exported.  It primarily handles
generated code (e.g. amspdwy.c), plus a handful of cases I'd
previously missed and some new cases introduced in the last update.
One interesting bit was the discovery that the 32-bit scanline
routines in drawgfx.c are unused.  I debated eliminating them but
decided instead to just export them.  Various internal drawgfx
functions were conditionally removed by examining a new RAW define,
although one routine (blockmove_8toN_alphaone) was determined to be
dead code.

While investigating constifying MESS, I came across a few core APIs
that were missing const qualifiers which this patch fixes.  I also
consted up tx1.c while I was at it.
2007-12-26 16:55:35 +00:00
Couriersud
f76a01ecc7 - Fixes mwalk0122red
The peplus games I tested (pexp0019, peps0716, pebe0014 and pepp0188) did not hang so this should be ok for peplus and mwalk
2007-12-26 00:47:40 +00:00
Nathan Woods
24edb7d555 Fixed M65C02 optimization [Peter Trauner] 2007-12-25 17:56:12 +00:00
Aaron Giles
b5087df8d2 (From Atari Ace)
This small patch makes some minor "code quality" improvements to MAME.
First off, some remaing static/const qualifier missed cases were
addressed.  Secondly, a few cases of missing #include "foo.h" were
added.  Thirdly, a few global names were modified to make them less
generic/more consistent (voodoo.c, vrender0.c, lethal.c, rungun.c,
zac2650.c).  Fourthly, some dead/useless code was removed
(i8051.c,model1.c,romcmp.c).
2007-12-24 03:41:16 +00:00
Aaron Giles
dbb50ed634 Zeus hardware:
* Cleaned up zeus wave RAM accessors.
 * Changed rendering code to allow for greater parallelism on multicore systems.
 * Removed some vestigial zeus 2 hacks.
 * Reduced visible area to remove artifacts.
 * Made right/bottom vertices inclusive to fix some gapping issues.
 * Fixed invasn lightgun offset.
 * Marked invasn as playable.

Zeus 2 hardware:
 * Fixed ROM loading, added banking support.
 * Separated zeus 2 video implementation from zeus implementation.
 * Implemented direct pixel accesses; enough to get startup screens to show.

ADSP-2100:
 * Properly documented ADSP-2104 internal memory map.
2007-12-21 16:12:20 +00:00
R. Belmont
047ec5ff5c One more fix for 64-bit GCC. 2007-12-21 00:43:47 +00:00
Aaron Giles
75265e5e23 Changes for MAME 0.122. 2007-12-18 08:09:03 +00:00
Aaron Giles
507ca2d275 Changes for MAME 0.121u4. 2007-12-17 16:41:39 +00:00
Aaron Giles
df34329a47 Changes for MAME 0.121u3. 2007-12-17 16:39:40 +00:00
Aaron Giles
c82a966b3b Changes for MAME 0.121u2. 2007-12-17 16:37:57 +00:00
Aaron Giles
8a8ccc5949 Changes for MAME 0.121u1. 2007-12-17 16:33:33 +00:00
Aaron Giles
7b77f12186 Initial checkin of MAME 0.121. 2007-12-17 15:19:59 +00:00