summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu
Commit message (Collapse)AuthorAgeFilesLines
* This (mostly - see below) completes the structure, lower-casing functions ↵ Derrick Renaud2008-08-1191-1431/+1570
| | | | | | | | | | | | and re-inclusion updates of the src\sound\emu headers. I did not do much to the following files because I did not know the best way to name them. aicadsp.h sid.h sidenvel.h sidvoice.h ymdeltat.h I did not update structures only used in the src\emu\sound\*.c files. They are only used locally in the file so they were not worth the effort.
* More FM OPN fixes [Eke, R. Belmont] R. Belmont2008-08-101-98/+189
| | | | | | - Pass chip type around and restore Jarek's original behavior for YM2203/YM2610 - Always recalculate attack rate in set_ar_ksr, fixes Megadrive/Genesis "Batman & Robin"
* Updated src\emu\sound headers from K-S, so they use latest naming/structure ↵ Derrick Renaud2008-08-1062-512/+612
| | | | | | | and re-inclusion support. Also lowercased the handler names. What a PITA. :) I'll have to go back and do A-J to lower case the handlers to match the new structure names I already did. Sorry Mess and other port developers, but the code should match what is stated on the official WIKI. But don't worry, I don't plan on updating anything but the sound cores.
* more sound core structure/renaming updates. Derrick Renaud2008-08-0917-27/+34
| | | | | | | | | | | | | | | You may have to do a clean compile, or delete the affected driver object files. struct C140interface to c140_interface struct cem3394_interface to cem3394_interface struct ES5503interface to es5503_interface struct ES5505interface to es5505_interface struct ES5506interface to es5506_interface struct ssg_callbacks to ssg_callbacks struct gaelcosnd_interface to gaelcosnd_interface struct ics2115_interface to ics2115_interface I'll stop until my posted question about chip names and upper case is answered.
* Some more structure/naming updates of sound cores. Derrick Renaud2008-08-0920-41/+52
| | | | | | | | | | | | | | | | | FWIW, I first check for variables named name_interface and rename them as name_cofig, so they don't conflict with the new interface names. struct YMF262interface to ymf262_interface struct YM2151interface to ym2151_interface struct YM2203interface to ym2203_interface struct YM2608interface to ym2608_interface struct YM2610interface to ym2610_interface struct YM2612interface to ym2612_interface struct YM3812interface to ym3812_interface struct Y8950interface to y8950_interface struct YM3526interface to ym3526_interface struct TMS5110interface to tms5110_interface struct TMS5220interface to tms5220_interface struct AICAinterface to aica_interface
* lower cased sn76477_interface and ay8910_interface Derrick Renaud2008-08-087-18/+18
|
* Updated structure and naming conventions of the following sound interfaces. Derrick Renaud2008-08-0816-31/+38
| | | | | | struct CustomSound_interface to custom_sound_interface struct Samplesinterface to samples_interface struct SN76477interface to SN76477_interface struct AY8910interface to AY8910_interface
* Fix GCC warning. R. Belmont2008-08-071-1/+1
|
* Cleanups and version bump.mame0126u4 Aaron Giles2008-08-0715-134/+134
|
* Added expression validation callback to verify names for CPUs and Aaron Giles2008-08-077-55/+232
| | | | | | | | | | | | | | | | | | memory regions. Extended error codes to report incorrect memory spaces, memory names, or memory sizes. Added verification callback to the debugger to validate CPU and memory region names, as well as verifying that a requested address space exists for a given CPU. Added support for oneshot cheats (those with only an "on" script). They are activated via UI_SELECT in the cheat menu, and pop up a message when activated. Also added a "Reset All" item in the cheat menu to reset all cheats back to their default state, and added support for UI_SELECT on a non-oneshot cheat so that it resets that cheat to its default value. Restored previous behavior that allowed popmessage() messages to overlay menus and other UI.
* Added word alternates for operators in expressions: Aaron Giles2008-08-072-15/+61
| | | | | | | | | | | | | | | | | | | | | | | | | + plus - minus * times or mul / div % mod ! not ~ bnot && and & band || or | bor ^ bxor lt < le <= gt > ge >= eq == ne != Changed cheat escaping to automatically escape && & < and <= to and band lt and le.
* Added module profiling to discrete sound core Couriersud2008-08-062-1/+45
| | | | * added DISCRETE_PROFILING macro to discrete.h * Upon discrete_stop, the worst performing modules will be listed
* This also includes a fix for the bug reported at the bottom. Aaron Giles2008-08-062-1/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | From: Fabio Priuli [mailto:doge.fabio@gmail.com] Subject: to simplify cischeat inputs Hi, the enclosed diff has a twofold effect on cischeat.c: on one side: it adds diplocations to bigrun, scudhamm, cischeat & f1gpstar on the other side: it removes the current hacky handling of f1gpstar coinage dips (check video/cischeat.c to see what I mean with hacky!) to use conditional ports instead. BUT in order to do this, I had to add more possible values for the PORTCOND in iptport.c. The problem is that f1gpstar has a set of coinage settings when you set the region to JPN or USA and another one when you set the region to EUR or FRA. To implement this I added the following self-explanatory new PORTCOND: ISLARGER (>), ISNOTLARGER (<=), ISSMALLER (<), ISNOTSMALLER (<=). Only two were really needed to implement f1gpstar dips, but the other two seemed costless to me while offering even more flexibility to the PORT_CONDITION macro. Also notice that the handling of conditional ports in 'TAB>Dip Switches' menu doesn't work well (in the current source, not affected by my patch) with contracted expressions like PORT_DIPUNKNOWN_DIPLOC: the wrong items remain listed in the UI menu even when you change the condition! If you leave the DEF_STR( Unknown ) with ON/OFF cases, everything is displayed correctly in the menu. However, I was not able to track down what part of code is responsible for this bug. Regards, Fabio Priuli
* Added support for DEL as well as BS for backspacing in the Aaron Giles2008-08-061-2/+2
| | | | game select menu. Also limited input to ASCII characters.
* NOTE: with this change, I have also removed PORT_START and renamed Aaron Giles2008-08-063-13/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | PORT_START_TAG to PORT_START. From: Fabio Priuli [mailto:doge.fabio@gmail.com] Subject: let's say goodbye to untagged input ports ;) Hi, enclosed please find a few patches against 126u3 source * port01.diff -> port09.diff : these patches continues the cleanup of inputs in drivers starting with C (the remaining ones), D and E. No ambiguous situations this time, so I guess there should be no problem with the changes. Improvements include conditional dips added to dynduke and diplocations for chinagat, chqflag, circus, citycon, cloak, contra and dynduke * tag01.diff -> tag09.diff : these patches add tag to EVERY input port in drivers starting with F->Z. Notice that only tags are added, no AM_READ_PORT, nor PORT_INCLUDE (and I saw a lot of drivers would need it ;) ), nor other cleanups contained in the patches above. I'll keep cleaning input next week, probably, but at least we can definitely remove the untagged version of PORT_START :) Notice I was able to compile the source commenting out the definition of PORT_START, so I guess every occurrence is covered...
* Changes to the cheat.xml format: Aaron Giles2008-08-065-44/+571
| | | | | | | | | | | | | | | | | | | | | | | - new tag <comment> (within <cheat>) is read and preserved when saved - removed variable attribute from <parameter>; it is now assumed to be 'param' - added default attribute for <parameter> Added new variable 'frame' accessible from cheat scripts. This can be used in the conditional to prevent execution on every frame, or for other effects (like displaying temporary messages). Added new variable 'argindex' which is the index when processing an <argument> with a count attribute greater than 1. Can be used in expressions like: <argument count="3">main.pb@(1000+argindex)</argument> Reinstated the cheat menu. It now displays all loaded cheats and allows for them to be activated. All known cheat behaviors should be working now.
* Fixed I/O watchpoints. Aaron Giles2008-08-061-2/+2
|
* Changes to avoid collisions with system globals on OpenSolaris. (qmc2) R. Belmont2008-08-069-0/+28
|
* Fix GCC 4.3 "array bounds overflow" error. This is obviously a bug, ↵ R. Belmont2008-08-061-1/+1
| | | | Couriersud please take a look :)
* Forced synchronization (stream_update()) before the status is actually read. Jarek Burczynski2008-08-051-0/+3
|
* Discrete sound core optimizations Couriersud2008-08-053-110/+138
| | | | | | | | * moved a couple of exp(x) from _step into _reset where appropriate * use tabulated function values for the transfer function in DSS_INVERTER_OSC ==> 40% speed increase in dkong - from 520% to $ ./mame64 -noautosave -nothrottle -str 30 -video none dkong -nomt -nosleep Average speed: 722.48% (29 seconds)
* Removed obsolete makemeta tool. Replaced it with new ldverify Aaron Giles2008-08-052-66/+186
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | tool which walks through either an AVI or CHD capture from a laserdisc and ensures that there are no anomalies lurking in the VBI data. Added new option to chdman, where if you use -createav with a special filename (either 2:2 or 3:2) it will create a fake laserdisc files with the equivalent cadence. This can be used for testing until full captures are available. Most games used 2:2 apart from Dragon's Lair and Space Ace, which were 3:2. Note that even though these files are essentially blank, they are Huffman-compressed, meaning that the maximum compression ratio you will get is 8:1, so they still end up ~5GB. Moved error strings from chdman.c to chd.c, where they can be fetched from any caller via the new chd_error_string() function. Updated vbiparse to improve Manchester code decoding. It now assigns a confidence level per bit based on how solid the data is. Also added a new function vbi_parse_all which parses the white flag and all three lines of metadata from a laserdisc frame. It then compares line 17 and 18 against each other and selects the most likely candidate based on per-bit confidence and other factors. Added frame number display to laserdsc.c. It is off by default, though most players can be configured to turn it on (not sure if any actually do). It can be manually toggled via the backslash key during playback.
* Set the initial timer output to 2 to indicate that it is undetermined. Wilbert Pol2008-08-041-1/+1
|
* Fix compile errors. Wilbert Pol2008-08-042-2/+2
|
* Added proper laserdisc support for MACH 3, Us vs. Them, and Cobra Aaron Giles2008-08-043-219/+284
| | | | | | | | | | | | | | | | | | | Commander (MACH 3 hardware). Old laserdisc hacks are now removed. The code now talks to the standard Pioneer PR-8210 interface. Also removed hacky "target list" from the MACH 3 ROMs; this information is now decoded on the fly from the right channel laserdisc audio. Other Gottlieb cleanups: - moved sound inputs to audio/gottlieb and included them in all relevant drivers - ordered input ports and ROM definitions consistently Other laserdisc changes: - changed PR-8210 interface to work consistently for both Gottlieb and Stern games - added audio callback mechanism to allow drivers to peek at the raw audio streams - extended the VBI parser to be even more lenient
* Improved Dsp56k CPU interrupt handling. Polygonet Commanders now advances ↵ Andrew Gardner2008-08-044-25/+42
| | | | past its first dsp handshake.
* Revert accidentially commited changes. Sorry! Couriersud2008-08-031-16/+5
|
* 8257dma and z80dma devices now require device callback handlers instead of ↵ Couriersud2008-08-035-62/+79
| | | | | machine handlers. Updated affected drivers accordingly.
* Backported a bunch of FM OPN (YM2608/2612) fixes from Genesis Plus GX. All of R. Belmont2008-08-021-81/+165
| | | | | | | | | | | this was verified on real hardware. [Eke-Eke, Nemesis, Alone Coder, AamirM] - implemented PG overflow, aka "detune bug" (Ariel, Comix Zone, Shaq Fu, Spiderman...) - fixed SSG-EG support - modified EG rates and frequency - fixed EG attenuation level on KEY ON (Ecco 2 splash sound) - fixed LFO phase update for CH3 special mode (Warlock, Alladin)
* Disks opened by the romload module are no longer identified by index. Aaron Giles2008-08-0115-62/+101
| | | | | | | | | | | | | | | | | Instead, they are identified by the region they were loaded in. This generally means one disk per region. get_disk_handle() now takes a region name in place of an index. Updated all callers to do this. The SCSI modules in particular posed a challenge to make this work, so watch out for potential bugs there. Changed the IDE interfaces to default to choosing the region with the same tag as the device for its master disk (assuming no slave). Added support for specifying explicit master/slave disk regions as part of the configuration, though slave disks are still not supported yet. Change the laserdisc interface to no longer require a disk number or a custom sound device. Both are now assumed to be tagged the same as the laserdisc device. Updated all drivers accordingly.
* More gottlieb cleanup. Fixed rev 2 sound again, fleshed out memory Aaron Giles2008-08-012-0/+16
| | | | | | | | maps and behaviors according to the schematics. Hooked up coin counters. Added new functions cputag_set_input_line() to assert input lines via CPU tag instead of index.
* Minor MESS compilation fix Nathan Woods2008-08-011-2/+2
|
* Added cropping of the VBI data. Aaron Giles2008-08-011-1/+6
|
* Removed per-frame metadata support from chdman. Creating an A/V Aaron Giles2008-08-012-110/+106
| | | | | | | | | | | | | | | | | | | now simply requires an AVI file input. Relaxed VBI Manchester code clocking to allow for a little bit of wiggle when finding the clock. Changed laserdisc support to parse white flags and other data from the VBI data directly, rather than relying on the textual metadata. Expanded video frame cache to 3. Changed the way frames are assembled to decrease the likelihood of getting an interlaced weave. Fixed sound creation so that it is done at reset time instead of device start, when the sound devices aren't yet live. Fixed bug in winwork that caused the creation of single work items to return NULL, and thus lead to massive memory leaks when using A/V CHDs.
* Minor optimization to the DISCRETE_INPUT modules. The node output is now ↵ Derrick Renaud2008-08-013-48/+34
| | | | | | | | | | | | calculated when a discrete_sound_w() is called instead of each step in the simulation. Removed the Enable line from the DISCRETE_ADJUSTMENT modules. They should never be disabled. Some before/after speed tests: dkong - from 203% to 204% firetrk - from 418% to 429% phoenix - from 253% to 257% polaris - from 448% to 476%
* Cleanups/version bump.mame0126u3 Aaron Giles2008-07-3115-396/+396
|
* (From Atari Ace. Note that I only took the first patch, which applied Aaron Giles2008-07-313-6/+10
| | | | | | | | | | | | | | | | | | | | | | | | | to whole functions. The other one I'm not so sure about. Commented code is usually hilighted differently, making it very easy to spot.) Hi mamedev, This set of patches has one aim only, to identify chunks of code that have been disabled by the use of C/C++ comments, and to disable them instead by using the preprocessor. The C comment approach to disabling code isn't safe (embedded comments will trip it up), and the C++ comment approach isn't elegant (you shouldn't need to touch every line to disable a chunk of code). Using #if...#endif is preferable always, excepting perhaps if (0) { ... }. The patch has three parts. The first only handles cases where full functions were disabled. The second handles cases where parts of functions were disabled. The third then tries to restore the whitespace that the use of comments converted from tabs to spaces via srcclean.exe. It also cleans up the whitespace in a handful of the files in areas outside of the original two patches. ~aa
* From: Oliver Stoeneberg [mailto:oliverst@online.de] Aaron Giles2008-07-314-9/+6
| | | | | | | | | | | | | | | | | Subject: a few cleanups This patch contains: - removal of unprintable chars (newlines) in SH-2 disassembler (I submitted this in the past nd it wasn't included) - a few unnecessary checks after malloc_ort_die() calls - changes two romload.c warnings to use GAMENOUN instead - adds "deprecat.h" in a few src/mame/drivers files (would be necessary, if the debugger.h one would be removed) - cleans up the mame.mak by adding all missing defines and grouping them based on cpu.mak - renamed video_exit() to winvideo_exit() for consistency in function names
* Added new options 'cheatpath' to specify one or more paths for cheat Aaron Giles2008-07-318-13185/+783
| | | | | | | | | | | | | | 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.
* Fixed 64-bit GCC compile. R. Belmont2008-07-311-1/+1
|
* Changed symbol table reference parameters to void * from UINT32. Aaron Giles2008-07-315-88/+97
|
* Fixed menu handling so it doesn't swallow the tab key. Aaron Giles2008-07-301-1/+1
|
* Simplified shift/rotate instruction implementations. Aaron Giles2008-07-301-53/+18
| | | | | | The ROL/ROR/SHL/SHR opcodes provide the carry flags typically generated by almost all CPUs. The RORC/ROLC opcdes map directly to the rotate through carry of most CPUs as well.
* Fixed several regressions due to the region changes. Aaron Giles2008-07-302-2/+3
|
* Added region and regionbytes fields to the deviceconfig, which are Aaron Giles2008-07-303-19/+30
| | | | | | | | auto-filled by the device manager before starting the device. This simplifies the auto-binding process for devices. Added new selector for device-specific ROM regions. Not yet wired up in the ROM loader.
* i8051 cpu core timer updates: Wilbert Pol2008-07-291-141/+153
| | | | | - Added support for timer mode 0 (13 bit timer) - Cleaned up timer code a bit, fixing some off-by-one errors when timers overflow.
* (Modified to allow for overwrites of RAM ranges only.) Aaron Giles2008-07-293-25/+56
| | | | | | | | | | | | | | | | | | | | | | | | | | | | From: Atari Ace [mailto:atari_ace@verizon.net] Subject: [patch] Stricter ADDRESS_MAP checks Hi mamedev, The current implementation of address maps is lacking some useful checks of the initial tokens. In particular, it doesn't validate that a particular entry doesn't try to define the same handler multiple times. The attached patch adds this and some other validations as fatalerrors in address_map_detokenize, and fixes the affected maps. The errors generally fall into the following categories. 1. AM_RAM AM_WRITE(...). Should have been AM_RAM_WRITE(...) 2. AM_RAM AM_READWRITE(...). The AM_RAM is a NOP. 3. AM_RAM AM_RAMBANK(...). The AM_RAM is a NOP. 4. AM_ROM AM_ROMBANK(...). The AM_ROM is a NOP. 5. AM_ROM AM_READ(...). The AM_ROM is a NOP. One peculiar error was in equites.c, where there were two AM_BASE entries. ~aa
* Moved region post-processing back to the end. Fixes endian issue on Aaron Giles2008-07-292-4/+7
| | | | | | | | | | second SH2 for ST-V games. Fixed buffer overrun in latest SCSP code. Not sure how that ever worked. colmns97 still asserts in SCSPDSP, but this happened before the region change.
* Oops, should have been using SETc versus GETFLGS in this case. Aaron Giles2008-07-291-4/+4
|
* Implemented ADDV/SUBV with flags. Kept C versions behind a compile-time define Aaron Giles2008-07-291-22/+23
| | | | for comparison.