Commit Graph

121 Commits

Author SHA1 Message Date
Aaron Giles
7c527fd0a7 Missed file from last checkin. 2008-07-24 03:49:38 +00:00
R. Belmont
1f9a29d7fa UDRC-based SH-2 dynamic recompiler.
- All games on all drivers should work as before except "colmns97" and "stress" which crash due to sound system trouble.
- All idle skips are still included.  They are quite a bit less effective than they were on the interpreter, but they still give a boost.
- Fast RAM bypass is not included yet so this does not represent final performance.  That said, it's consistently faster than the interpreter even now.  Example: sfiii3 on 0.126 gets 609% on the interpreter and 961% on the DRC.

Major thanks to Aaron for his assistance with several sticky core bugs and other issues encountered writing this.
2008-07-13 23:40:54 +00:00
Nicola Salmoria
4b6e06f175 merged exctsccr.c into champbas.c 2008-07-13 14:09:09 +00:00
Aaron Giles
d8715ab4ac Note: I have done some testing, but there are probably more bugs
lurking. If you run into anything odd, please let me know.

Added new module uiinput.c which manages input for the user interface.
The OSD is responsible for pushing mouse events and character events
to this interface in order to support mouse movement and text-based
input (currently only used for the select game menu). Added support
for navigating through the menus using the mouse. 
[Nathan Woods, Aaron Giles]

Redesigned the UI menus so that they can maintain a richer state. Now
the menus can be generated once and reused, rather than requiring them
to be regenerated on each frame. All menus also share a comment eventing
system and navigation through them is managed centrally. Rewrote all the 
menus to use the new system, apart from the cheat menus, which are now 
disabled. Reorganized the video menu to make it easier to understand.
[Aaron Giles]
2008-07-12 20:18:25 +00:00
davidhay
5d5550c907 some naomi stuff. no credit wanted.
I don't want people bugging me about this, so don't bother even mentioning it.
2008-07-11 20:49:38 +00:00
Aaron Giles
d256dc7e88 Split out Philips code parsing into a separate utility module.
Rewrote Philips code parsing to be clock based.
Updated makemeta to call the new function.
2008-07-08 07:55:49 +00:00
Roberto Fresca
ea8dec56f4 New driver for Lucky 74 (Wing Co.Ltd, 1988)
- Set the proper screen size.
 - Decoded graphics.
 - Decoded the dual-state color circuitry.
 - Mapped the NVRAM, VRAM1-1, VRAM1-2, VRAM2-1 and VRAM2-2 properly.
 - Emulated 2x PPI 8255 devices.
 - Mapped the 4x DIP switches banks.
 - Added PORT_DIPLOCATION to all DIP switches.
 - Added DIP switches for 'Bet Max' and 'Limit'.
 - Added DIP switches for 'Jackpot' and 'Pay Table'.
 - Added the Memory Reset Switch.
 - Added the 2nd video & color RAM.
 - Added a 2nd tilemap for background graphics.
 - Simplified the graphics banks.
 - Fixed colors for foreground graphics.
 - Fixed visible area to show the top of background graphics.
 - Finally fixed colors for background graphics.
 - Added all coinage DIP switches.
 - Mapped all remaining inputs (service and player buttons).
 - Added pulse time limitation to coins A, B & C.
 - Switched to use 4x 8255 in replace of 2x 82c255 for I/O.
 - Created a handler to feed the z80 port0 requests.
 - Promoted lucky74s to 'working' state.
 - Added an alternate set, but the program ROM looks like incomplete,
   protected or just a bad dump.
 - Parent/clone relationship.
 - Added technical notes.

 From Dox:

 - Hooked interrupts.
 - Hooked the AY8910 and therefore the NMI trigger.
 - Changed the input "Key In" to active high.


New games added or promoted from NOT_WORKING status
---------------------------------------------------
Lucky 74 (small) [Roberto Fresca]


New clones added
----------------
Lucky 74 (big) [Roberto Fresca]
2008-07-06 08:23:50 +00:00
davidhay
03871ffff4 sksleton hikaru driver. 2008-07-04 08:12:41 +00:00
Aaron Giles
c26a5b3fd5 Galactic Storm
(c)1992 Taito

added by Hau
2008-07-03 15:41:07 +00:00
Tomasz Slanina
b00ee43b40 New games marked as GAME_NOT_WORKING
------------------------------------
King of Football [Tomasz Slanina]
2008-06-28 18:48:45 +00:00
Tomasz Slanina
793b257be7 Renamed wilytowr.c to m63.c. Added Irem M63 PCB layout (based on Atomic Boy).
[Tomasz Slanina, Stefan Lindberg]
2008-06-28 11:55:00 +00:00
R. Belmont
f6c3274df2 Refactor SH2 to separate out things that aren't part of the interpreter. 2008-06-27 05:33:54 +00:00
Aaron Giles
68f3a9ab9e Removed DEBUGGER flag from makefile and ENABLE_DEBUGGER
macro from the source code. All MAME builds now include
the debugger, and it is enabled/disabled exclusively by
the runtime command-line/ini settings. This is a minor 
speed hit for now, but will be further optimized going 
forward.

Changed the 'd' suffix in the makefile to apply to DEBUG
builds (versus DEBUGGER builds as it did before).

Changed machine->debug_mode to machine->debug_flags.
These flags now indicate several things, such as whether
debugging is enabled, whether CPU cores should call the
debugger on each instruction, and whether there are live
watchpoints on each address space.

Redesigned a significant portion of debugcpu.c around
the concept of maintaining these flags globally and a
similar, more complete set of flags internally for each
CPU. All previous functionality should work as designed
but should be more robust and faster to work with.

Added new debugger hooks for starting/stopping CPU
execution. This allows the debugger to decide whether
or not a given CPU needs to call the debugger on each
instruction during the coming timeslice.

Added new debugger hook for reporting exceptions.
Proper exception breakpoints are not yet implemented.

Added new module debugger.c which is where global
debugger functions live.
2008-06-26 14:51:23 +00:00
Tomasz Slanina
cecb9c22a9 Preliminary emulation of ST-0026 NiLe (sound).
Added audio (imperfect) to Super Real Mahjong P6.
(2nd attempt)
2008-06-22 20:14:14 +00:00
Couriersud
50b9d23c82 dkong.c: Merge driver init code for drakton and strtheat
* made decryption for drakton and strtheat more compact
* moved decryption and driver init code into dkong.c
* deleted drakton.c and strtheat.c
2008-06-22 14:59:35 +00:00
Wilbert Pol
01756b3bcb Renamed "Nintendo z80gb" cpu core to "Sharp LR35902". 2008-06-16 18:22:10 +00:00
Aaron Giles
5deab27d6d Created common virtual TLB managment module.
Updated MIPS and PowerPC code to make use of it.
2008-06-16 03:12:49 +00:00
Aaron Giles
e62e3229d3 Missed file from previous checkin. 2008-06-12 16:58:03 +00:00
Aaron Giles
f874100bc9 From: Atari Ace [mailto:atari_ace@verizon.net]
Subject: [patch] Static qualifiers, header file cleanups, and new
include files for MAME

Hi mamedev,

The following two patches improve the use of header files in MAME, and
reduce the number of exported symbols.

The second patch then adds ~30 header files for a number of drivers
that use multiple source files.  It consolidated the various cchip
related declarations in cchip.h, and added machine/seicop.h as well.

~aa
2008-06-12 16:27:56 +00:00
Roberto Fresca
f034b2b75f New driver for italian gambling games based on Mitsubishi/Renesas M16C MCU family.
Added dumper notes, hardware details and hooked the sound devices.
Moved Euro Jolly X5 to this new driver, and add support for Grand Prix.


New games marked as GAME_NOT_WORKING
------------------------------------
Grand Prix [Roberto Fresca]
2008-06-09 08:51:36 +00:00
Luca Elia
ab1c2761ae Preliminary driver for Subsino's gambling games.
(sets uploaded to roms/current)

New games added or promoted from NOT_WORKING status
---------------------------------------------------
Super Rider (Italy) [Luca Elia]

New games marked as GAME_NOT_WORKING
------------------------------------
Shark Party (Italy) [Luca Elia]
Victor 5 [Luca Elia]
Victor 21 [Luca Elia]
2008-06-08 14:38:04 +00:00
Aaron Giles
ee8162eff9 UML:
* Wrote new disassembler based on enhanced opcode info structure.
 * Moved disassembler into drcuml.c and removed old code.
 * Extended disassembler buffer sizes to at least 256 bytes.
2008-06-06 06:42:21 +00:00
Aaron Giles
95ae38db10 Missed files from Atari Ace's change. 2008-06-05 09:50:25 +00:00
Aaron Giles
ed6ad8b4f9 PowerPC dynamic recompiler: [Aaron Giles]
- rewrote PowerPC implementation as a dynamic recompiler on top
    of the universal recompiler engine
 - wrote a front-end to analyze PowerPC code paths and register usage
 - wrote a common shared module with C implementations of tricky
    CPU behaviors
 - added separate CPU types for the variants supported, instead of
    relying on a hidden model enum
 - rewrote the serial port emulation for the 4xx series to be more
    accurate and not rely on separate DMA handlers
 - rewrote the MMU handling to implement a software TLB that faults
    in pages and handles changed bits appropriately
 - implemented emulation of the PowerPC 603's software TLB, which
    allows the model 3 games to run without a hack to disable the MMU

Updated the PowerPC disassembler to share constants with the rest of
the core, and to more aggressively use simplified mnemonics, especially
for branches. [Aaron Giles]

Universal recompiler:
 - fixed frontend to handle opcode widths different from bus width
 - added several new opcodes:
    * (D)GETFLGS - copies the UML flags to a destination operand
    * FDRNDS - rounds a double precision value to single precision
 - renamed several opcodes:
    * SETC   -> CARRY
    * XTRACT -> ROLAND
    * INSERT -> ROLINS
 - consolidated the following opcodes:
    * LOAD?U -> LOAD
    * LOAD?S -> LOADS
    * STORE? -> STORE
    * READ?U -> READ
    * READ?M -> READM
    * WRITE? -> WRITE
    * WRITM? -> WRITEM
    * SEXT?  -> SEXT
    * FTOI?? -> FTOINT
    * FFRI?  -> FFRINT
    * FFRF?  -> FFRFLT
 - removed some opcodes:
    * FLAGS - can be done with GETFLGS/LOAD4/ROLINS
    * ZEXT - can be achieved with AND
    * READ?S - can be achieved with READ/SEXT
 - updated C, x86, and x64 back-ends to support these opcode changes
 - updated disassembler to support these opcode changes
 
MIPS3 dynamic recompiler:
 - updated to use new/changed opcode forms
 - changed context switch so that it only swaps a single pointer

Konami Hornet changes: [Aaron Giles]
 - updated to new PowerPC configurations
 - updated some memory handlers to be native 8-bit handlers
 - cleaned up JVS implementation to work with new serial code
 - added fast RAM for the work RAM to give a small speed boost

Konami GTI Club changes: [Aaron Giles]
 - updated to new PowerPC configurations
 - updated some memory handlers to be native 8-bit handlers

Konami Viper/ZR107 changes: [Aaron Giles]
 - updated to new PowerPC configurations

Sega Model 3 changes: [Aaron Giles]
 - updated to new PowerPC configurations
 - reimplemented/centralized interrupt handling
 - these games are broken for the moment

Fixed crasher due to some Konami games using 8 layers in
the K056832 implementation, even though it was only written
for 4. [Aaron Giles]

Added fisttp opcode to i386 disassembler. [Aaron Giles]
2008-06-05 08:34:13 +00:00
Roberto Fresca
23a5c04d66 New skeleton driver for italian gambling games based on H8/3337 MCU + NEC D7759GC (sound).
Added all games that fit in this hardware, plus dumper notes (when available) and hardware descriptions.

New games marked as GAME_NOT_WORKING
------------------------------------
Carta Magica (Ver 1.8) [Roberto Fresca]
Laser 2001 (Ver 1.2) [Roberto Fresca]
Magic Drink (Ver 1.2) [Roberto Fresca]
Millennium Sun [Roberto Fresca]
NtCash [Roberto Fresca]
Super Space 2001 [Roberto Fresca]
Unknown italian gambling game [Roberto Fresca]
Wizard (Ver 1.0) [Roberto Fresca]
2008-06-04 07:20:51 +00:00
davidhay
43b1a48c89 added some extra tecmosys protection notes (nuapete), added skeleton driver for black touch 96 (me), will continue to work on it. 2008-06-03 21:23:58 +00:00
davidhay
dc19a5250c added a skeleton driver for some italian gambling games. we can't emulate them because the entire program code is in the MCUs. Not worth mentioning in whatsnew. 2008-06-01 14:35:35 +00:00
davidhay
948b4f6152 from nuapete - tecmosys protection simulation
(i'm currently working on the video, ignore that part for now)
2008-05-30 19:39:47 +00:00
Roberto Fresca
6736fbc2a5 Sandii' games improvements:
- Switched the color system to RESNET calculations.
 - Hooked the infamous bit7 of Input Port 0x3004 in parallel to DIP switch 1.
   This allow to use the PAYOUT button to trigger the Super Game instead of STOP 5.
 - Demultiplexed lamps matrix.
 - Added lamps support, but is still imperfect.
 - Updated technical notes.
2008-05-29 17:57:17 +00:00
Wilbert Pol
4e1afc32f5 Fixed memory access in the 80286 cpu core which made i286.h obsolete. Changed CPUINFO_INT_MAX_INSTRUCTION_BYTES to prevent crashes during disassembly. 2008-05-24 15:14:12 +00:00
Aaron Giles
d4c1d73b8f > -----Original Message-----
> From: deaconblue@worldofretro.net [mailto:deaconblue@worldofretro.net] 
> Subject: shuttle invader (shuttlei)
> 
> i remember that there was a three coloured pressure-sensitive decal on
> the screen, i mean the monitor itself.
> 
> maybe 75 percent was green (the aliens are in "green" status, green
> area), then 10 percent was orange (they come closer, two lines in total)
> and from that below was red, to show up, they as close as they never
> should be (red alert state)
> 
> i can't say, how much lines they spend for each color, but i surely
> know, that my memories is very close to that what it was....
> 
> 
> 
> maybe you can use this, thanks in advance for your answer...
> 
> Deacon
2008-05-22 03:44:26 +00:00
Aaron Giles
98a8e73947 From: Antoine Mine [mailto:Antoine.Mine@ens.fr]
Subject: saturn CPU patch

Dear MAMEDev,

The attached patch corrects several bugs in the emulation of the saturn 
CPU. These corrections are needed to make new HP48 drivers (to be 
submitted to MESS imminently) work.
AFAIK, MESS is the only place where this CPU is used, so, the patch
should 
not cause any regression in MAME.
The patch is against 0125u1.

Best regards,
-
Antoine Mine
2008-05-22 03:09:01 +00:00
Aaron Giles
bb9fec0f86 Moving old DRC out of the way. 2008-05-22 03:06:49 +00:00
Aaron Giles
096331c856 Restructured input port internals and cleaned up inptport.c:
* Input ports are now maintained hierarchically. At the top
level are input ports, which contain a list of fields. Each
field represents one or more bits of the port. Certain fields
such as DIP switches and configuration switches contain a
list of settings, which can be selected. DIP switch fields
can also contain a list of DIP switch locations.

* Normalized behavior of port overrides (via PORT_INCLUDE or
by defining multiple overlapping bits). All fields within a
port are kept in strict increasing bit order, so altered DIP
switches are now kept in the appropriate order. This addresses
MAMETesters bug 01671.

* Live port state is now fully separate from configured 
state. This is manifested in a similar way to devices, where
a const list of ports can be managed either offline or live.
Each port has a pointer to an opaque set of live state which
is NULL when offline or valid when live. Each port also has
a running_machine * which is also NULL when offline.

* Because of this new arrangement, the conversion from tokens
to a list of ports now requires reasonably complex memory
allocation, so these port lists must be explicitly allocated
and freed (they are not mantained by automatic resource
allocation).

* Custom and changed callbacks now take a pointer to a field
config instead of a running machine. This provides more
information about what field triggered the change notification.
The machine can be found by referenced field->port->machine.

* The inptport.c module has been cleaned up and many 
ambiguities resolved. Most of this is internal, though it did
result in osd_customize_inputport_list() being changed to
osd_customize_input_type_list(). The parameter to this function
is now a linked list instead of an array, and the structures
referenced have been reorganized somewhat.

* Updated config.c to pass machine parameters to its callbacks.

* Updated validity checks, XML output, and UI system to handle
the new structures.

* Moved large table of default input settings to a separate
include file inpttype.h.

* Removed gross hacks in trackfld and hyperspt NVRAM. These
may be broken as a result.
2008-05-15 16:25:03 +00:00
Curt Coder
2528b956f5 Added CDP1852 I/O buffer chip, and used it in Altair/Draco. 2008-05-12 16:10:28 +00:00
Manuel Abadia
90f263f8a3 DS5002FP core 2008-05-12 09:03:33 +00:00
Aaron Giles
b735b4be6c New universal dynamic recompiler system. The central module
is drcuml.c, which defines a universal machine language
syntax that can be generated by a frontend recompiler and
then retargeted via a generic backend interface to any of
a number of different architectures. A disassembler for the
UML is also included to allow examination of the generated
UML code.

Currently supported backend architectures include 32-bit x86,
64-bit x86, and a platform-neutral interpreted C backend that
can be used as a fallback for platforms without native 
support. The C backend also performs additional validation
to ensure assumptions are met.

Along with the new architecture is a new MIPS III/IV 
recompiler frontend. This frontend has been rewritten from 
the old x64-specific recompiler to generate UML opcodes
instead. This means that the single recompiler can be used
to target multiple backend architectures and should in
theory produce identical results across all of them.

The old 32-bit and 64-bit MIPS recompilers are now officially
retired. The new system provides similar performance (within
5% generally) to the old system and has similar compatibility.
The only currently known issues are some problems with the
two Gauntlet 3D games.
2008-05-11 22:15:13 +00:00
Roberto Fresca
9b3d9ea3cd New driver for old Game-A-Tron gambling games hardware.
- Properly decoded graphics.
 - Proper memory map.
 - Added NVRAM support.
 - Proper Inputs through 8255 PPI I/O chip.
 - Both games are working.
 - Added technical & game notes.


New games added or promoted from NOT_WORKING status
---------------------------------------------------
Card Games? [Roberto Fresca]
Slots Game? [Roberto Fresca]
2008-05-11 21:21:07 +00:00
Nicola Salmoria
384388cf6f Rewrote the Gaelco video ram encryption, which finally makes sense.
The key observation was that when decryptiong the second word, both encrypted and decrypted bits of the first word are used.
Many thanks to Javier Valero for the detailed information that made this possible.
2008-05-10 18:09:15 +00:00
Couriersud
85a5a3d827 AY-3-8910 rewrite:
* adds a model to calculate mixing of channels with different resistance loads.
* based on above, each channel may be assigned a different load in individual case
  i.e. channels not tied together
* rewrote ay8910.c to make emulation simpler
* changed the config structure to include a flag field and output resistor loads.
* Updated all drivers affected.
* Added some "Todos" related to stuff I discovered when reading datasheets.
* Fixed a bug in disc_flt.c (konami filters)

galaxian.c:
* Fixed discrete sound and konami filter addressing
* Changed addressing of AY-3-8910 to be in line with schematics

gyruss.c:
* Added discrete sound for filtering ("konami"-style) and mixing.
2008-04-22 21:58:36 +00:00
Aaron Giles
e26f80fde0 (from Mariusz Wojcieszek)
Attached is diff which makes Touchmaster games playable.

General changes:
- Added preliminary 68681 DUART (machine\68681.c)
- Moved Microtouch touch screen controller emulation to separate module (machine\microtch.c)

New games added or promoted from NOT_WORKING status
---------------------------------------------------
Touchmaster [Mariusz Wojcieszek]
Touchmaster 3000 [Mariusz Wojcieszek]
Touchmaster 4000 [Mariusz Wojcieszek]
Touchmaster 5000 [Mariusz Wojcieszek]
Touchmaster 7000 [Mariusz Wojcieszek]
2008-04-21 00:00:55 +00:00
Roberto Fresca
baad7a6f45 New driver for Sandii' hardware. Support for snookr10, apple10 and tenballs. Added technical/general notes.
Funworld updates:
- Removed the temporary hack to jolyc980.
- Updated technical notes regarding Magic Card II & Jolly Card Professional 2.0.
- Moved snookr10 to its own driver.
- Minor clean-up.


New games marked as GAME_NOT_WORKING
------------------------------------
Apple 10 (Ver 1.21) [Roberto Fresca]
Ten Balls (Ver 1.05) [Roberto Fresca]
2008-04-20 04:16:47 +00:00
davidhay
bd7c159b15 Seibu COP stuff - just moving things around renaming them, comparing Legionnaire with Raiden 2 etc. No functional improvements just yet. 2008-04-05 13:08:11 +00:00
Aaron Giles
ca3d7d01e6 From: Wilbert Pol
Subject: pit8253 device

I have converted the pit8253 implementation into a device. To make it  
easier to use I've also created a src/emu/devconv.h in the same style  
as src/emu/memconv.h.

I do not have all roms/disk images to test all drivers.  I have only  
been able to test pf2012, filetto, and topgunnr.
2008-04-03 05:26:47 +00:00
Curt Coder
1859e012d2 - converted CDP1869 to the new device system
- refactored to represent how the hardware actually works
- added PMA latching on OUT5
- separated Cidelsa video to its own file
2008-04-02 14:43:06 +00:00
Aaron Giles
d26f7f12da From: Mr. Do [mailto:mrdo_emu@hotmail.com]
Subject: Internal LAY File - Armor Attack

This is becoming kind of fun.  Here's an internal LAY file for Armor Attack.
 
Re-created the overlay using just rectangles.
 
And finally got to use flipx and flipy for the first time (main reason I did it).
2008-04-02 08:36:30 +00:00
Phil Bennett
ed397c466a 1. Added driver for JPM 'Give us a Break' hardware, supporting:
* Give us a Break [2 sets]
* Ten Up [2 sets]
Neither are playable; they don't register coins for some reason.

2. Fixed interrupt handling and 16-bit memory accessors in 6840ptm.c
Also cleaned up code for the sake of readability.

3. JPM games now have their own object archive file.
2008-03-29 01:35:02 +00:00
Aaron Giles
6979179c11 Galaxian rewrite. Ultimately will combine the existing drivers
for galaxian, scramble, frogger, scobra, amidar, and dambustr.
For the moment, only a subset of games are implemented in the
new system; the remainder are running on the old code.

Main features are accurate video timing, correct stars 
implementation, better organization, simplified input ports,
and many other smaller fixes. In addition, the following
MAMETesters bugs are addressed:

- 01598: [Graphics] 4in1, gmgalax, pacmanbl: Sprites are cut off on the top row
- 01563: [DIP/Input] gmgalax: Duplicated Inputs
- 00300: [Graphics] zigzag: in cocktail mode player 2 screen is shift over to the right
- 01454: [Graphics] mshuttle, mshuttlj, mshutlj2: The display of the screen is shifted
- 01473: [Graphics] orbitron: Orbitron graphics not correctly displayed
- 01600: [Graphics] pacmanbl, batman2: The background is shifted to the right and cut off on the right side
- 01602: [Misc.] luctoday: Messed up graphics. (Screen Offset)
- 01599: [Graphics] omega: Screen is vertically offset
- 01605: [Graphics] gteikokb, gteikob2: Wrong screen offset (aaron)
2008-03-28 08:34:31 +00:00
Aaron Giles
e670f5c51a Renamed galaxian.c -> galaxold.c. Updated all drivers accordingly. 2008-03-25 12:20:09 +00:00
Luca Elia
757d289163 Driver for Astro Corp. hardware.
New game:

- Show Hand (roms/current/s/showhand.zip)
2008-03-24 18:29:07 +00:00