summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/emu.mak
Commit message (Collapse)AuthorAgeFilesLines
* WARNING: There are likely to be regressions in both functionality and Aaron Giles2010-06-081-1/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | performance as a result of this change. Do not panic; report issues to the list in the short term and I will look into them. There are probably also some details I forgot to mention. Please ask questions if anything is not clear. NOTE: This is a major internal change to the way devices are handled in MAME. There is a small impact on drivers, but the bulk of the changes are to the devices themselves. Full documentation on the new device handling is in progress at http://mamedev.org/devwiki/index.php/MAME_Device_Basics Defined two new casting helpers: [Aaron Giles] downcast<type>(value) should be used for safe and efficient downcasting from a base class to a derived class. It wraps static_cast<> by adding an assert that a matching dynamic_cast<> returns the same result in debug builds. crosscast<type>(value) should be used for safe casting from one type to another in multiple inheritance scenarios. It compiles to a dynamic_cast<> plus an assert on the result. Since it does not optimize down to static_cast<>, you should prefer downcast<> over crosscast<> when you can. Redefined running_device to be a proper C++ class (now called device_t). Same for device_config (still called device_config). All devices and device_configs must now be derived from these base classes. This means each device type now has a pair of its own unique classes that describe the device. Drivers are encouraged to use the specific device types instead of the generic running_device or device_t classes. Drivers that have a state class defined in their header file are encouraged to use initializers off the constructor to locate devices. [Aaron Giles] Removed the following fields from the device and device configuration classes as they never were necessary or provided any use: device class, device family, source file, version, credits. [Aaron Giles] Added templatized variant of machine->device() which performs a downcast as part of the device fetch. Thus machine->device<timer_device>("timer") will locate a device named "timer", downcast it to a timer_device, and assert if the downcast fails. [Aaron Giles] Removed most publically accessible members of running_device/device_t in favor of inline accessor functions. The only remaining public member is machine. Thus all references to device->type are now device->type(), etc. [Aaron Giles] Created a number of device interface classes which are designed to be mix- ins for the device classes, providing specific extended functionality and information. There are standard interface classes for sound, execution, state, nvram, memory, and disassembly. Devices can opt into 0 or more of these classes. [Aaron Giles] Converted the classic CPU device to a standard device that uses the execution, state, memory, and disassembly interfaces. Used this new class (cpu_device) to implement the existing CPU device interface. In the future it will be possible to convert each CPU core to its own device type, but for now they are still all CPU devices with a cpu_type() that specifies exactly which kind of CPU. [Aaron Giles] Created a new header devlegcy.h which wraps the old device interface using some special template classes. To use these with an existing device, simply remove from the device header the DEVICE_GET_INFO() declaration and the #define mapping the ALL_CAPS name to the DEVICE_GET_INFO. In their place #include "devlegcy.h" and use the DECLARE_LEGACY_DEVICE() macro. In addition, there is a DECLARE_LEGACY_SOUND_DEVICE() macro for wrapping existing sound devices into new-style devices, and a DECLARE_LEGACY_NVRAM_DEVICE() for wrapping NVRAM devices. Also moved the token and inline_config members to the legacy device class, as these are not used in modern devices. [Aaron Giles] Converted the standard base devices (VIDEO_SCREEN, SPEAKER, and TIMER) from legacy devices to the new C++ style. Also renamed VIDEO_SCREEN to simply SCREEN. The various global functions that were previously used to access information or modify the state of these devices are now replaced by methods on the device classes. Specifically: video_screen_configure() == screen->configure() video_screen_set_visarea() == screen->set_visible_area() video_screen_update_partial() == screen->update_partial() video_screen_update_now() == screen->update_now() video_screen_get_vpos() == screen->vpos() video_screen_get_hpos() == screen->hpos() video_screen_get_vblank() == screen->vblank() video_screen_get_hblank() == screen->hblank() video_screen_get_width() == screen->width() video_screen_get_height() == screen->height() video_screen_get_visible_area() == screen->visible_area() video_screen_get_time_until_pos() == screen->time_until_pos() video_screen_get_time_until_vblank_start() == screen->time_until_vblank_start() video_screen_get_time_until_vblank_end() == screen->time_until_vblank_end() video_screen_get_time_until_update() == screen->time_until_update() video_screen_get_scan_period() == screen->scan_period() video_screen_get_frame_period() == screen->frame_period() video_screen_get_frame_number() == screen->frame_number() timer_device_adjust_oneshot() == timer->adjust() timer_device_adjust_periodic() == timer->adjust() timer_device_reset() == timer->reset() timer_device_enable() == timer->enable() timer_device_enabled() == timer->enabled() timer_device_get_param() == timer->param() timer_device_set_param() == timer->set_param() timer_device_get_ptr() == timer->get_ptr() timer_device_set_ptr() == timer->set_ptr() timer_device_timeelapsed() == timer->time_elapsed() timer_device_timeleft() == timer->time_left() timer_device_starttime() == timer->start_time() timer_device_firetime() == timer->fire_time() Updated all drivers that use the above functions to fetch the specific device type (timer_device or screen_device) and call the appropriate method. [Aaron Giles] Changed machine->primary_screen and the 'screen' parameter to VIDEO_UPDATE to specifically pass in a screen_device object. [Aaron Giles] Defined a new custom interface for the Z80 daisy chain. This interface behaves like the standard interfaces, and can be added to any device that implements the Z80 daisy chain behavior. Converted all existing Z80 daisy chain devices to new-style devices that inherit this interface. [Aaron Giles] Changed the way CPU state tables are built up. Previously, these were data structures defined by a CPU core which described all the registers and how to output them. This functionality is now part of the state interface and is implemented via the device_state_entry class. Updated all CPU cores which were using the old data structure to use the new form. The syntax is currently awkward, but will be cleaner for CPUs that are native new devices. [Aaron Giles] Converted the okim6295 and eeprom devices to the new model. These were necessary because they both require multiple interfaces to operate and it didn't make sense to create legacy device templates for these single cases. (okim6295 needs the sound interface and the memory interface, while eeprom requires both the nvram and memory interfaces). [Aaron Giles] Changed parameters in a few callback functions from pointers to references in situations where they are guaranteed to never be NULL. [Aaron Giles] Removed MDRV_CPU_FLAGS() which was only used for disabling a CPU. Changed it to MDRV_DEVICE_DISABLE() instead. Updated drivers. [Aaron Giles] Reorganized the token parsing for machine configurations. The core parsing code knows how to create/replace/remove devices, but all device token parsing is now handled in the device_config class, which in turn will make use of any interface classes or device-specific token handling for custom token processing. [Aaron Giles] Moved many validity checks out of validity.c and into the device interface classes. For example, address space validation is now part of the memory interface class. [Aaron Giles] Consolidated address space parameters (bus width, endianness, etc.) into a single address_space_config class. Updated all code that queried for address space parameters to use the new mechanism. [Aaron Giles]
* pcat_nit.c update [Mariusz Wojcieszek] mariuszw12010-06-051-0/+3
| | | | | | | - added VGA emulation from MESS - added INS8250 emulation from MESS - added format decimal support to Microtouch - added rom banking and inputs to pcat_nit games - streetg(2) now boot properly
* Moved tms6100 code into emu/machine/tms6100.[ch]. Added pinouts for TMS6100 ↵ Couriersud2010-05-311-0/+1
| | | | and M58819. [Couriersud]
* Added gprof support to the makefile. [Bryan Ischo] Aaron Giles2010-04-081-1/+3
| | | | | | | | | | | | | | | | Added a check for the OPTION_READCONFIG option before executing the code which would attempt to incorporate configuration file settings into the current configuration, because if OPTION_READCONFIG is set to false, then there is no reason to even try to do this as every single configuration file will be ignored (because config files have been turned off by OPTION_READCONFIG). [Bryan Ischo] Fixed small memory leak in mame.c. [Bryan Ischo] Fixed double-free error in render.c. [Bryan Ischo] Made core_strdup use osd_malloc instead of malloc. [Bryan Ischo]
* Imported Z80 DART and Z80 STI from MESS. (no whatsnew) Curt Coder2010-03-081-0/+2
|
* Moved ins8154 emulation from MESS to MAME, needed by future drivers Dirk Best2010-02-201-0/+1
|
* Internal debugger using the mame rendering infrastructure Couriersud2010-02-111-1/+3
| | | | | | | | | | | | | | | | | | | | | | | - added support for arbitrary number of containers for render_target - added command-line parameter -debug_internal (-di) to use the internal debugger when in debug mode - internal debugger supports all views except memory view - added "Debug" view to layout/vertical.lay to create more place for debug views in vertical games. The colors are ugly. Font rendering needs improvement. There are no shortcut keys right now. There is still a lot of room for more improvements. However, it works and does not depend on any ui toolkit. The interface has been designed to support displaying views programmatically e.g. from the ui. Currently, the ui render target is used. In order to support views being displayed in separate windows further changes are needed: - the osd layer must support creating and closing windows (render targets) on demand. - There must be a mode for render targets where their bounds follows the window size - Currently the render target size depends on the aspect of currently selected "artwork" view. - Render target needs a name property. Short HowTo: - Start MAME with "-debug -di" - Console, register and disasm views will be shown. Place them by dragging the view on the title bar. - Views can be resized by dragging the bottom-right yellow square. - The view having the focus has a green background title bar. - Hit "Tab" (IPT_UI_CONFIGURE) to show the menu. - Console and disasm views support a very simple facility to support entering commands and addresses. Just start typing. Hit "enter" when finished.
* Moved HD63484 ACRTC device from mame/video to emu/video. Roberto Fresca2010-01-261-0/+1
|
* NOTE: This change requires two new osd functions: osd_malloc() and Aaron Giles2010-01-081-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | osd_free(). They take the same parameters as malloc() and free(). Renamed mamecore.h -> emucore.h. New C++-aware memory manager, implemented in emualloc.*. This is a simple manager that allows you to add any type of object to a resource pool. Most commonly, allocated objects are added, and so a set of allocation macros is provided to allow you to manage objects in a particular pool: pool_alloc(p, t) = allocate object of type 't' and add to pool 'p' pool_alloc_clear(p, t) = same as above, but clear the memory first pool_alloc_array(p, t, c) = allocate an array of 'c' objects of type 't' and add to pool 'p' pool_alloc_array_clear(p, t, c) = same, but with clearing pool_free(p, v) = free object 'v' and remove it from the pool Note that pool_alloc[_clear] is roughly equivalent to "new t" and pool_alloc_array[_clear] is roughly equivalent to "new t[c]". Also note that pool_free works for single objects and arrays. There is a single global_resource_pool defined which should be used for any global allocations. It has equivalent macros to the pool_* macros above that automatically target the global pool. In addition, the memory module defines global new/delete overrides that access file and line number parameters so that allocations can be tracked. Currently this tracking is only done if MAME_DEBUG is enabled. In debug builds, any unfreed memory will be printed at the end of the session. emualloc.h also has #defines to disable malloc/free/realloc/calloc. Since emualloc.h is included by emucore.h, this means pretty much all code within the emulator is forced to use the new allocators. Although straight new/delete do work, their use is discouraged, as any allocations made with them will not be tracked. Changed the familar auto_alloc_* macros to map to the resource pool model described above. The running_machine is now a class and contains a resource pool which is automatically destructed upon deletion. If you are a driver writer, all your allocations should be done with auto_alloc_*. Changed all drivers and files in the core using malloc/realloc or the old alloc_*_or_die macros to use (preferably) the auto_alloc_* macros instead, or the global_alloc_* macros if necessary. Added simple C++ wrappers for astring and bitmap_t, as these need proper constructors/destructors to be used for auto_alloc_astring and auto_alloc_bitmap. Removed references to the winalloc prefix file. Most of its functionality has moved into the core, save for the guard page allocations, which are now implemented in osd_alloc and osd_free.
* Results of running the latest srcclean. Aaron Giles2009-12-281-13/+13
|
* Rename eepromdev.c/h back to eeprom.c/h Aaron Giles2009-12-271-1/+1
|
* Remove old eeprom implementation. Aaron Giles2009-12-271-1/+0
|
* Split ADC1038, Konami 033906 and Konami 056230 emulation from gticlub.c and ↵ Fabio Priuli2009-12-241-0/+3
| | | | | konppc.c. Also, converted them to be devices and updated PPC Konami games to use the new code Just out of curiosity: did sscope/sscope2 ever pass through the initial hw checks or did they regressed at some point?
* Made MB14241 Shifter IC a device and moved its source to emu/machine. ↵ Fabio Priuli2009-12-131-0/+1
| | | | Updated mw8080bw.c and 8080bw.c accordingly. Also converted fgoal.c to use this implementation in place of its own version.
* Imported SAA5050 emulation from MESS and made it a device. Updated malzak.c ↵ Fabio Priuli2009-12-121-0/+1
| | | | | to use it, removing the almost identical implementation in the driver. Out of whatsnew: Unfortunately, I was unable to make both malzak and p2000t (in MESS) to work without a small kludge, clearly documented in the source. I plan to further investigating the problem once I manage to merge the other 505x variants (later)
* Added infrastructure to compile universal standalone disassembler: Aaron Giles2009-08-221-1/+3
| | | | | | | | | | | - added unidasm to the tools build - split the disassemblers out of libcpu and into new libdasm - ensured the disassembly entry points for all disassemblers are in the source file for the disassembler (sometimes new generic versions were created) Still needs command line options and file loading, but the fundamentals are present, and it links.
* Intel 8255A PPI: Curt Coder2009-07-101-0/+1
| | | | | - Added a new implementation of the I8255A device. Rewritten from scratch to properly support handshaking in modes 1 and 2. - Refactored sg1000a.c to use the new implementation.
* Added basic TMS9927 implementation. Hooked it up to the statriv2 Aaron Giles2009-04-201-0/+1
| | | | | | | | | | | | | | and thief drivers. Bunch of improvements to the Status system emulation. Correct video timing, hooked up TMS9927, corrected colors, etc. Still some work to do. New games ========= Status Blackjack Status Fun Casino
* Hi, Aaron Giles2009-04-091-0/+1
| | | | | | | | | | I have another minor patch to MAME which does the following: * Put tables used for RGB utilities in a single object file rather than compiling them as statics in every object that uses them. Vas Crabb
* Eeprom and i2c implemeted as devices [Samuele Zannoli] davidhay2009-04-021-0/+2
| | | | | | | | The eepromdev.* files are the device impementation for the serial eeproms The i2cmemdev.* files are the device impementation for the i2c memory These aren't currently hooked up I'm committing this so that the Naomi changes don't accidentally get applied. The idea seems good, but they conflict with the current driver and I'd rather not have them accidentally slipping in and breaking things just yet.
* Renamed 6821new.* -> 6821pia.* Aaron Giles2009-03-031-1/+1
| | | | | | Renamed pia_* functions to pia6821_* Fixed a couple of compiler errors.
* Delete old PIA implementation. Aaron Giles2009-03-031-1/+0
|
* Cidelsa changes: Curt Coder2009-02-161-1/+0
| | | | | - Combined CDP1869 video and sound parts to one device - Refactored CDP1852 to use devcb
* Ok, this is The Big One. Aaron Giles2009-02-111-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Please note: regression testing is in progress, but the first round of glaring regressions have already been taken care of. That said, there is likely to be a host of regressions as a result of this change. Also note: There are still a few rough edges in the interfaces. I will try to clean them up systematically once the basic system is working. All sound chips are now proper devices. Merged the sound chip interface into the device interface, removing any differences (such as the whole ALIASing concept). Modified every sound chip in the following ways: * updated to match the device interface * reduced read/write handlers down to the minimal number * added the use of get_safe_token() for ensuring correctness * other minor cleanup Removed the custom sound device. The additional work to just make custom sound cases into full devices is minimal, so I just converted them all over to be actual devices. Vastly simplified the sound interfaces, removing the ghastly sndti_* business and moving everyone over to using tags for sound identity. sndintrf, like cpuintrf, is now just a header file with no implementation. Modified each and every driver that references a sound chip: * all memory maps explicitly reference the targeted device via AM_DEVREAD/AM_DEVWRITE/AM_DEVREADWRITE * 16-bit and 32-bit accesses to 8-bit chips no longer use trampoline functions but instead use the 8-bit AM_DEVREAD/WRITE macros * all references to sound chips are now done via tags * note that these changes are brute force, not optimal; in many cases drivers should grab pointers to devices in MACHINE_START and stash them away
* Added new module devcb, which can generically handle conversions between device Aaron Giles2009-01-261-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | read/write functions and various other types of functions. Introduced new structures and macros to make this possible. To take advantage of this, a device must change its interface to replace and read/write callbacks with the new devcb_read/write structures. During device start time, the device then uses this new devcb module to resolve the information in the devcb_read/write structures into a more efficient form. When the device needs to call one of the callbacks, it uses the inline devcb_call_read/write functions. Once a device has defined its callbacks as devcb_read/write structures, users of the device must use the DEVCB_* macros to specify the type and information about the handler to use: DEVCB_NULL = no handler DEVCB_HANDLER = a standard device read/write handler DEVCB_MEMORY_HANDLER = a memory address space read/write handler DEVCB_DEVICE_HANDLER = a device read/write handler for a different device DEVCB_INPUT_PORT = an input port Converted the 8255PPI device to use this new structure, and updated all users to use the DEVCB macros, removing some unnecessary trampoline functions along the way.
* 1. Introduced a parallel 6821 PIA implementation, as a MAME device (6821new.c) Nathan Woods2009-01-111-0/+1
| | | | | 2. Ported the Williams drivers over to use this new PIA implementation
* Removed bogus port 4-7 definitions from MCS-48. Added i8243 Aaron Giles2009-01-041-0/+1
| | | | | | implementation. Connected 8243 properly to monsterb and system 16a sound. Changed draw80pkr to connect the PROG line like videopkr.
* Added f3853 to src/emu/emu.mak Wilbert Pol2008-12-231-0/+1
|
* CPU interface organization shuffle. The file cpuintrf.h now merely Aaron Giles2008-12-221-1/+0
| | | | | | | | | | | | | | | | | | | 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).
* Massive API cleanup/change. The primary goal is that all CPU- Aaron Giles2008-11-131-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | related APIs now take a device pointer instead of an index. All functions that take a CPU device are prefixed with cpu_* All functions that are globally related to cpu execution are prefixed with cpuexec_*. Below is a list of some of the mappings: cpu_boost_interleave -> cpuexec_boost_interleave cpunum_suspend -> cpu_suspend cpunum_resume -> cpu_resume cpunum_is_suspended -> cpu_is_suspended cpunum_get_clock -> cpu_get_clock cpunum_set_clock -> cpu_set_clock cpunum_get_clockscale -> cpu_get_clockscale cpunum_set_clockscale -> cpu_set_clockscale cpunum_get_localtime -> cpu_get_local_time cpunum_gettotalcycles -> cpu_get_total_cycles activecpu_eat_cycles -> cpu_eat_cycles activecpu_adjust_icount -> cpu_adjust_icount cpu_trigger -> cpuexec_trigger cpu_triggertime -> cpuexec_triggertime cpunum_set_input_line -> cpu_set_input_line cpunum_set_irq_callback -> cpu_set_irq_callback In addition, a number of functions retain the same name but now require a specific CPU parameter to be passed in: cpu_yield cpu_spin cpu_spinuntil_time cpu_spinuntil_int cpu_spinuntil_trigger cpu_triggerint Merged cpuint.c into cpuexec.c. One side-effect of this change is that driver reset callbacks are called AFTER the CPUs and devices are reset. This means that if you make changes to the CPU state and expect the reset vectors to recognize the changes in your reset routine, you will need to manually reset the CPU after making the change (since it has already been reset). Added a number of inline helper functions to cpuintrf.h for managing addresses Removed cpu_gettotalcpu(). This information is rarely needed outside of the core and can be obtained by looking at the machine->cpu[] array. Changed CPU interrupt acknowledge callbacks to pass a CPU device instead of machine/cpunum pair. Changed VBLANK and periodic timer callbacks to pass a CPU device instead of machine/cpunum pair. Renamed all information getters from cpu_* to cpu_get_* and from cputype_* to cputype_get_*.
* Added 22VP931 emulation, which is mostly working. Communication works Aaron Giles2008-09-251-0/+1
| | | | | | | | | | | | | | | | | | fine and basic searching/playback/skipping is functional. Still a bit glitchy. Firefox improvements: - removed need for deprecat.h - memory map is complete from schematics - gutted laserdisc hacks in favor of actual laserdisc implementation - fixed all CPU and sound clocks Removed old laserdsc.c implementation. Added generic timer devices, which simply allocate a timer but don't prime it. This is the preferred method for allocating timers, and may eventually be the only mechanism for doing so in the future.
* preliminary firefox emulation. smf-2008-09-131-0/+1
|
* Split core laserdisc functionality into separate file ldcore.c. Aaron Giles2008-09-041-1/+3
| | | | | | | | | | Each player now gets its own source file, along with new hooks which enable more precise control over the behavior. Updated the PR-8210 and LD-V1000 implementations to the new spec. Other players will come online shortly. Changed scan behavior so that it requires a constant stream of signals to continue scanning. Updated ldplayer accordingly.
* Adds new generic latch device Couriersud2008-08-221-0/+1
| | | | | | | | | | | 8 bit latch interface and emulation Generic emulation of 74LS174/175, 74LS259 and other latches. Apart from providing synched latch operation, these latches can be configured to read their input bitwise from other devices as well and individual bits can be connected to discrete nodes. Please see audio/dkong.c for examples.
* Added new options 'cheatpath' to specify one or more paths for cheat Aaron Giles2008-07-311-0/+1
| | | | | | | | | | | | | | files. Removed old option 'cheat_file'. Updated xmlfile.c to specify the line number for each node, for more accurate error reporting. Removed old cheat.c/.h and replaced them with code that will read and write the new XML-based cheat format using the new cheatpath option (cheats still need to be enabled in order to load at all). Note that the cheats are not implemented yet, but they are fully parsed. To test saving, whenever a cheat file is successfully loaded, it is immediately written back out as 'output.xml' to the cheat directory for validation.
* Note: I have done some testing, but there are probably more bugs Aaron Giles2008-07-121-1/+1
| | | | | | | | | | | | | | | | | | | 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]
* Removed DEBUGGER flag from makefile and ENABLE_DEBUGGER Aaron Giles2008-06-261-14/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Added CDP1852 I/O buffer chip, and used it in Altair/Draco. Curt Coder2008-05-121-0/+1
|
* (from Mariusz Wojcieszek) Aaron Giles2008-04-211-0/+2
| | | | | | | | | | | | | | | | | 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]
* Moves crosshair code from video.c into its own module Zsolt Vasvari2008-03-111-0/+1
| | | | Simplifies crosshair logic and makes it screen device based
* Moves watchdog processing logic into its own module Zsolt Vasvari2008-03-021-0/+1
|
* New module: devintrf.c/.h. Implements a generic device interface similar Aaron Giles2008-02-191-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | to the sound and CPU interfaces. This is still a bit WIP, but works at a fundamental level. Currently the only example of usage is in qix.c for the MC6845 CRTC. New module: mconfig.c/.h. Moved all machine_config and MDRV_* macros here, out of driver.c/.h. Added MDRV macros for adding/removing/configuring devices. qix.c: Moved video part of machine driver to video/qix.c. Added MC6845 as a device in the machine driver. Removed explicit MC6845 initialization from VIDEO_START in favor of simply retrieving the token from the device interface code. mc6845.c: Updated all callbacks to pass the mc6845_t * object. Updated all drivers accordingly. Added a minimal device interface. Deprecated the following constants because global constants that pretend to document things but which are only guesses are dumb: - DEFAULT_60HZ_VBLANK_DURATION - DEFAULT_30HZ_VBLANK_DURATION - DEFAULT_REAL_60HZ_VBLANK_DURATION - DEFAULT_REAL_30HZ_VBLANK_DURATION - DEFAULT_60HZ_3S_VBLANK_WATCHDOG - DEFAULT_30HZ_3S_VBLANK_WATCHDOG Updated all drivers to explicitly specify the equivalent bogus times. Added comments for the "REAL" VBLANK durations to indicate that they are not accurate.
* Renames M6845 to MC6845 Zsolt Vasvari2008-02-121-1/+1
|
* Renames CRTC6845 to M6845 Zsolt Vasvari2008-02-121-1/+1
|
* Changed debugger-related code to be based off a new makefile define ↵ Aaron Giles2008-02-021-2/+2
| | | | | | | | | | | | | (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.
* It's the end of uitext.c as we know it (and I feel fine) Aaron Giles2008-01-121-1/+0
|
* Copyright cleanup: Aaron Giles2008-01-061-1/+1
| | | | | | - removed years from copyright notices - removed redundant (c) from copyright notices - updated "the MAME Team" to be "Nicola Salmoria and the MAME Team"
* dkong: Couriersud2008-01-041-0/+1
| | | | | - hooked up z80dma z80dma: - omitted modifications to emu.mak in r139
* Changes for MAME 0.121u3.mame0121u3 Aaron Giles2007-12-171-0/+1
|
* Initial checkin of MAME 0.121.mame0121 Aaron Giles2007-12-171-0/+237