Features, Supports and Changes in MAME ====================================== 0.110 - New Non-Working games: M075 Poker (Version 16.03B), Super Bowl (Version 16.03B) and Trivia (sms) - New clones: Trivia (Version 1.01C Alt questions 1) - New drivers: smstrv.c - M6502 + M6809 CPU: Fixed assertions in diassembler caused by stricter checking introduced in 0.109u5 - Alien Syndrome (Mega-Tech): Added missing cpu1 rom - APB - All Points Bulletin: Added new cpu2 roms (M6502 sound code) to clone (German) - Carnival: Reduced AY8910 and Samples master volume - I, Robot: Fixed joystick X/Y range (see JOYSTICK TEST 1 in Service Mode) - PSX games: Fixed crash when resetting PSX games - ROM Audit: Fixes auditting sets where all the roms in the clone are also in the parent 0.109u5 - New Non-Working games: Forgotten Worlds (Mega-Tech), Out Run (Mega-Tech), Super Real Basketball (Mega-Tech) and Tetris (Unknown Manufacturer) - New clones: Space Battle (bootleg set 1) and Trivia (Version 1.01C) - New drivers: tetriunk.c - COP4xx CPU: Added save state support - CHD: Updated CHD locating behavior to accept CHDs referenced by the parent of a clone if the hash matches, even if it has a different name. - CDROM: Improved behavior of SCSI CD implementation for audio playback and TOC reading commands. - Fujitsu Flash 29F016: Improved flash emulation and added support for Fujitsu flash chips. Switches Konami games over to new flash chips (drivers\ksys573.c). - eolith.c: Fixed subtle bug in subtable allocation in the memory system that caused the Eolith games to assert with the debugger. - Dark Horse Legend: Fixed rom names - Excite League: Added year info (1989) - Final Fight: Fixed priorities and the offset of layer 3 in clone Final Crash (World, bootleg) - Konami 80s AC Special: Changed description and added CD-ROM image from (US ver UAA) also to clone (Japan ver JAA) - Trivia (Version 1.02C) . Added clone Trivia (Version 1.01C) . Trivia (Version 1.02B) is now clone of Trivia (Version 1.02C) . Added 'facts_of_life' question rom and removed 'sports_2_#2' rom in clone Trivia (Version 1.02C Alt questions 1) . Added 'beatlemania_#1' question rom to clone Trivia (Version 1.02C Alt questions 2) . Added 'sports_2_#2' question rom and removed 'facts_of_life' rom in clone Trivia (Version 1.02C Alt questions 3) - MAME: Fixed UI crash (uicrash0108u5red) - Compiling: Fixed subtle bug in the UI menu handler that only manifested on mingw-based compiles (src\uimenu.c) - Debugger . Converted the following disassemblers to the new format, and added step in/out support where it was obvious: adsp21xx, alph8201, arm, arm7, asap, ccpu, cdp1802, cop4x0, dsp32c, e132xs, g65816, h6280, h83002, i8x41, i960, i8051, i8085, jaguar, m680x, m6805, m37710, mc68hc11, pic16c5x, rsp, s2650, se3208, sh2, sharc, t11, tms32010, tms32025, tms32031, tms34010, upd7810, v60, v810, z180 and z8000. . Changed the new disassembler and override callback prototypes to take const parameters and to remove the generally unused 'bytes' parameter. The disassemblers can now assume that the buffers contain enough bytes to hold the maximum instruction length as returned by the CPU core get_info callback. . Deprecated the old disassembler interfaces in favor of the new ones. . Fixed subtle bug in subtable allocation in the memory system that caused the Eolith games to assert with the debugger (src\memory.c). . Tweaked the disassembly view to detect if the disassembly for the current instruction has changed, and if so, recompute the entire view. This provides more dynamic updating when system states change under certain CPUs. . Added new symbol 'curpc' for all CPUs which represents the value of the current instruction pointer, to avoid naming conflicts with the 'pc' register in other contexts. Changed this to be the default value for the disassembly window in the Windows version of the debugger (OSD ports will need to do likewise). 0.109u4 - New games: Dark Horse Legend, 2x Konami 80s Gallery and Powerful Pro Baseball EX - New Non-Working games: Bowling 3D - New clones: Arian Mission and Trivia (Version 5.06) - New drivers: ksys573.c - Support for Konami System 573 games (PSX-based hardware, CD-ROM required) - COP4xx CPU (Microcontroller): Added COP410 core (Looping, Sky Bumper, Draco and some Laser games uses the COP420) - TMS99xx CPU . Cleaned up core debugging . Converted to new disassembler syntax . Aadding step over/out support - alpha68k.c: Improved video banking (vidhrdw\alpha68k.c) - deco156.c: Fixed VIDEO_UPDATE in Heavy Smash and World Cup Volley '95 - funworld.c: Fixed lamps - looping.c . Improvements to the driver . Fixed clock speeds . Proper video timing . Fixed protection (game would reset; should never have been marked 'working' in the first place!) . Various other driver cleanups . Cleaned up TMS9995 core . Fixed TMS9995 CPU1 clock speed and VSync, added COP420 CPU3 and sawpped gfx1 roms in Looping and Sky Bumper - pacman.c . Updated documentation in pacman driver to reflect actual sync chain . Fixed sound frequencies for 2650 conversions (Removed 2nd SN76496 sound and fixed SN76496 clock speed in 8bpm, drivfrcp and porky) - Aqua Jack: Added unused proms ($0, $100 - road A/B internal priority and road/sprite priority and palette select). - ASO - Armored Scrum Object: Fixed rom names - Card Line: Fixed lamps - Trivia (Version 1.03a): Added prog1_versiona rom from clone 'Trivia (Version 1.03a) (alt 1)' and new 'science' question rom to clone 'Trivia (Version 1.03a) (alt 4)'. - MNG (Movie recording): Fixed memory leak when writing MNG files (src\png.c) - MAME . Fixed several audit bugs introduced with the 0.109u1 rewrite . Removed obsolete CPUINFO_PTR_REGISTER_LAYOUT and CPUINFO_PTR_WINDOW_LAYOUT data items. . Normalized realtime clock accesses across drivers (machine\ds1302.c, intelfsh.c, midwayic.c, model3.c, neogeo.c, psx.c, timekpr.c...). Now ensure that realtime clocks are reset when recording/saving INP files (machine\timekpr.c). - Debugger . Added new debugger command 'history' which dumps the most recent instructions executed . Fixed bug in displaying disassembly of CPUs whose minimum instruction size was larger than their data bus size. . Cleaned up tms99xx core debugging and converted to new disassembler syntax, adding step over/out support. 0.109u3 - New Working games: Cuore 1 and Elephant Family - ADSP21062 CPU (SHARC) . Major rewrite of the SHARC core. This update will fix most (but not all) of the clipping problems in Gradius 4 and NBA Play by Play. . Bit-accurate reciprocals . More accurate pipeline emulation . Fixed the problems with operation latencies . Regression tested a few floating-point operations for bit-accurate results . Improved DMA emulation - cidelsa.c . Added COP420 core to Draco . Fixed VSync in Altair, Destroyer (Cidelsa) and Draco - funworld.c . Updated lamps and layout . Added external credit in counter (mapped as coin 1 counter) . Added external credit out counter (mapped as coin 8 counter) . Added button lamps hold1-5, cancel and start . Added simple button lamps artwork "funworld.lay" - Beam Invader: Fixed dipswitches and added second player controls - Card Line . Updated lamps and layout . Converted hardcoded fake lamps to new artwork system . Added button lamps card1-5, collect, bet and start . Added simple button lamps artwork "cardline.lay" . Re-ordered buttons and added "collect" button . Changed visible area - Cuore 1 and Elephant Family . Both sets are completely playable now . Corrected the screen size and visible area based on MC6845 registers . All inputs were hooked and managed to pass the initial check . The "Payout" button isn't working due to hopper and ticket stats are always 0 (empty) . Changed the cuoreuno full name to "Cuore 1" (as shown in the attract). . Added 'Test Mode' dipswitch . Colors are still wrong due to lack of color PROMs . If you can contribute providing some pictures of these games running, please contact Roberto Fresca (http://www.mameworld.net/robbie/home.htm) or through the mameworld.net forums. - Grand Champion: Some additional cleanups (collision, CPU 0/1 outputs...) - Xevious: Increased the interleave to 1000 to fix synchronization issues - Dipswitch fixes in Beam Invader, Cuore 1 and Elephant Family - MAME . Added new output control system. This system is designed to support multiple output streams, and should replace all instances of printf in the code. You can now call one of these functions: mame_printf_error, mame_printf_warning, mame_printf_info and mame_printf_debug to output data. By default, these go to the console, but they can be overridden by the OSD layer to route wherever is appropriate. . Fixed -frames_to_run / -ftr (benchmarking and automated testing) option - Debugger . Added missing InitCommonControls(), which caused the debugger UI to fail with recent updates. 0.109u2 - NOTE: IMPORTANT NOTE TO OSD DEVELOPERS: As of this release, you are now required to make use of options.c to set core options. At a minimum, this requires calling options_init(NULL) before calling run_game(). - New games: Rock Duck (prototype?) - New Non-Working games: Altair, Destroyer (Cidelsa) and Draco - New clones: DonPachi (Hong Kong) and Las Vegas - Nevada - New drivers: cidelsa.c - M4510 CPU: Added checking for register symbol names to ensure they aren't numeric (which prevents their identification by the expression parser). Changed the M4510 CPU symbols to avoid tripping this check. - Suppoert for CDP1802 CPU, CDP1869 sound (white noise generator) and CDP1869/70/76 Video Interface System (VIS) - 6526 CIA: Improved timer accuracy and added save state support - maxaflex.c: Added supervisor DAC support to the Max-a-Flex driver. Changed DAC sound to Speaker. - pmpoker.c . Some pmpoker driver improvements . Added service/settings mode to PlayMan Poker . Added PORT_IMPULSE to manage correct timings for most inputs in all games . Added year info to all games - yunsun16.c: Improved dipswitches in the yunsun16 driver and added more documentation. - Buck Rogers: Fixed Z80 CPU1/2 clock speeds and VSync - Capcom Bowling: Fixed colors/palette update (vidhrdw\capbowl.c) - Discs of Tron: Added lamp sequencer prom to clone (Environmental) - Major Havoc: Connected TMS5220 speech support to clone (Return to Vax) - Photo Y2K: Added ARM protection ASIC internal rom (not hooked up yet, simulation code used instead for now) - Turbo: Fixed Z80 CPU clock speed and VSync - Fixed rom names in Enduro Racer (YM2203, FD1089B 317-0013A), Hang-On and Space Harrier - Dipswitch fixes in Bomb Kick, Magic Bubble, Shocking and yunsun16.c - MAME . Dixed bug in the bilinear software scaler that would read out of bounds on a bitmap . Fixed bug in memory map dumping code that caused wrong addresses to be dumped . Fixed assertion when auditing systems with no samples or ROMs . Fixed bug that caused false positive ZIP filename matches . Fixed -romident with ZIP files . Improved documentation in osdepend.h to better describe some of the functions and provide a general overview of how things work. Removed unused osd_readkey_unicode function. . Added PATH_SEPARATOR define so that platforms with non forward-slash path separators can get preassembled paths in their native format . Some enhancements to the options manager . Added a simpler options_init for startup . Added support for internal options . Added support for multiple unadorned options . Moved core options definitions into the core options.c (note that the default INI path no longer includes $HOME/.mame since that is not cross-platform; *nix platforms will need to explicitly override that default in their OSD code) . Added accessor to set the default value of a given option . Changed error reporting so that errors are tracked internally and reported only once - Debugger . Fixed crash in the Win32 debugger code with small window sizes . Changed comment shortcut in disassembly windows to avoid clash with Ctrl+C for "Copy" . Fixed "run to cursor" functionality for CPUs that had an address bus shift 0.109u1 - NOTE: IMPORTANT NOTE TO OSD DEVELOPERS: The file I/O interface has changed significantly. It is now much simpler. Please read osdepend.h for full details on how the new OSD-defined functions work. In addition, you must now use the options.c to specify your search paths. If you are parsing standard command line options and INI files, this work is relatively straightforward. Otherwise, you can manually call options_set_string() for each of the search paths to configure them from whatever options store you are using. - New games: Doki Doki Penguin Land, Dynamic Shooting, Five a Side Soccer, Super Street Fighter II - The New Challengers (Arcade bootleg of Japanese MegaDrive version) - New Working games: Shooting Gallery - New clones: The Cliffhanger - Edward Randy (World), Double Dragon 3 - The Rosetta Stone (Japan) and Twin Brats - New drivers: megadriv.c, ssf2md.c and ultrsprt.c - 68000 CPU: Simplified the core generation logic to just produce one file. Hopefully this will cure some of the build issues with the core. - Q-Sound: Added bounds checking to the driver (sound\qsound.c) - 8080bw.c . Some fixes for the 8080bw driver . The correct samples are being used for lrescue, lrescuem, grescue and desterth . Dipswitch corrections for superinv, invadrmr, sinvemag, spceking and spacewr3 . Removed extraneous beeping noise from Indian Battle - findout.c + getrivia.c . More improvements . Added missing "Payout" button; payout hardware unknown . Added missing "Play / Raise" button and its lamp 9 . Re-added PORT_IMPULSE(2) to Poker games buttons because they do not like it if two or more buttons are held; trivia games still respond better without this. - lazercmd.c: Fixed rom loading (HIGH/LOW_NIBBLED) in Bigfoot Bonkers, Lazer Command and Meadows Lanes - mpu4.c: Fixed crash in the driver - toaplan2.c: Converted all the games to mono since the PCBs are JAMMA without external stereo connectors - Caveman Ninja: Fixed rom names - The Combatribes: Changed visible area - Double Dragon 3: Changed visible area - Gradius III: Fixed sprite layer (vidhrdw\gradius3.c) - Indian Battle: Removed extraneous beeping noise from Indian Battle. Added Speaker sound (extra audio channel). - Space Invaders: Added Speaker sound to clone Space War Part 3 - Knights of Valour: Hooked up ARM protection ASIC internal rom for clone 'Knights of Valour Superheroes'. Added ARM7 CPU3. - Lunar Rescue: Correct samples being used in Lunar Rescue and clones. Changed SN76477 to Speaker sound and added samples (alienexplosion, rescueshipexplosion, beamgun, thrust, bonus2, bonus3.wav, shootingstar, stepl and steph.wav). Download samples at http://www.mameworld.net/samples/wav/lrescue.zip - Selection: Added missing lamps 11 (coin slot 2), 12 and 13 (unknown) to Selection. Changed coin_lockout_global to coin_lockout_w(0) and coin_lockout_w(1) for 2 coin slots in Selection. Added "Button 12 ?" to Selection (function unknown). And found last unknown dipswitch. Added 'Maximum Bet' dipswitch. - Shooting Gallery: Added new redumped cpu1 roms and changed REGION cpu4 to sound1 - Silent Dragon: Fixed interrupt (in all scenes with linescrolling, the characters move in slow motion). - Spelunker II: Fixed background/foreground tilemap scrolling position (vidhrdw\m62.c) - Twin Action: Fixed tilemap dimension (vidhrdw\afega.c) - Dipswitch fixes in 8080bw.c, findout.c, getrivia.c and Shooting Gallery - MAME . Rewrote unzip.c to return richer errors and generally behave better . Rewrote audit.c to simplify the code and not rely on extraneous functions that were in the old file I/O system . Redesigned the OSD file I/O interfaces to be simpler and more straightforward. Also simplified the core's file I/O routines and included some functionality that was previously left to the OSD layer. . Fixed DirectDraw + Color Overlay in Gypsy Juggler, Gee Bee and Dead Eye . MAME now support roms with a filename of over 20 chars (src\audit.h) . Fixed CHD bad dump flag in CarnEvil and 'Mace: The Dark Age' (src\romload.c) . Fixed "mame -listroms" crash . Removed def NEW_DEBUGGER from the makefile ---------------------------------------------------------------------------------------------- 0.109 - New games: --- - New clones: Astro Combat (older, PZ) and Funky Bee (bootleg, harder) - ES5503 sound: Fixed ES5503 behavior for voice volumes > 127 (cures missing sounds/music notes in several Apple IIgs demos and games). Moonquake (Sente 1987) is the only MAME game which use ES5503 sound. - bfm_sc2.c + mpu4.c: Made MSC1937 operation more accurately match datasheet and wiring diagram. Added indexed getters to the output system to match the newly introduced setters. - cps1.c: Input port cleanup and additional comments in the driver - findout.c, getrivia.c and merit.c . More improvements . Added external coin counters and coin lockouts . Fixed lamps in upright and cocktail modes . Located ticket out bit in trivia games and commented it in findout.c and getrivia.c . Fixed merge collision from 0.108u5 - m62.c: Fixed priorities in the M62 driver, mainly affecting Lode Runner II/III - playch10.c: Changed palettesize from 320 to 768 colors (256+8*4*16) - vsnes.c: Changed palettesize from 64 to 512 colors (2*8*4*16) - Dark Planet: Changed palettesize to 98 colors (32 for characters, 64 (buffer) for stars and 2 for bullets) - GP Rider: Fixed rom names and documentation - Hydra and Pit Fighter: Removed coin slot 3 - Lode Runner III: Changed visible area - Moonwar: Changed palettesize to 99 colors (32 for characters, 64 for stars, 2 for bullets and 1 for bg) - Shrike Avenger: Changed palettesize - Selection: Fixed sound - Turbo Force: Fixed some sprite priorities problems (the problem is related with the final enemy in stage 3, which is moving along the level under the floor). - Input port: Changed input port calculations to go in two passes, to catch out-of-order conditionals properly. - Artwork: Changed artwork loading to be on-demand rather than all up-front. Also added a message during artwork resizing/loading so it's more clear what is going on. - Dipswitch fixes in cps1.c, Funky Bee and Sky Lancer - Description changes of Reel Fun - MAME . Normalized exit codes from mame.exe. The core-specific ones are defined in mame.h. The Windows build will also return code 100 on an unhandled exception now. . Fixed PNG code so that it doesn't NULL terminate tEXt chunks - Debugger . Changed disassembler override callbacks to match new disassembler syntax . Added new osd function osd_break_into_debugger() which can be hooked to cause a break into the OSD's debugger when an assertion or fatal error occurs. Hooked it up on Windows to do just that. 0.108u5 - New games: Killer Instinct (SNES bootleg), Pocket Racer (PKR1/VER.B) and Real Fun (Version 7.01) - New clones: 10-Yard Fight (World), Final Lap R (Japan Rev. C), Gryzor (Set 2), Jack Potten's Poker, Joker Poker, Power Drift (World), Strikers 1945 (Korea) and World Class Bowling (v1.5) - New drivers: kinstb.c - N2A03 CPU: Updated the TN2A03 CPU to match the proper cycle timings and unsupported opcodes revealed by Blargg's NES chip test (cpu\m6502\tn2a03.c) - N64/aleck64.c: Major updates to the Nintendo 64 based driver. Fixed visible area in Eleven Beat and Magical Tetris Challenge - findout.c, getrivia.c and merit.c . Some more cleanups to the drivers . Corrected order of buttons and lamps in the games . Removed impulse(2) from buttons -> buttons respond much better now . Used PORT_INCLUDE() and PORT_MODIFY() where possible . Connected outputs for use with artwork . Added coin 2 to Selection and Trivia . Poker and Sexual Trivia have no coin 2 -> unique inputs defined - galivan.c: Fixed priority in Galivan and Dangar (and clones). Added save state support to all games in the driver. Fixed portability issue in DAC audio save states. - maxaflex.c . Added new output utilities: output_set_led_value(), output_set_digit_value() and output_set_lamp_value(), which are used to set a generic indexed data type. . Changed the Max-A-Flex driver to use output_set_digit_value() for their digits. This fixed the digits in Boulder Dash (Max-A-Flex). - pmpoker.c . More improvements to the driver . Confirmed the GFX banks (a complete dump appeared!) . Improved technical notes and added a PCB layout based on PCB pics . Found and fixed the 3rd bitplane of BigBoy gfx . Added 'Joker Poker' (Golden Poker version without 'double-up') . Added 'Jack Potten's Poker' (same as Joker Poker, but with 'Aces or better' instead of jacks) . Simulated colors for all sets till color PROMs appear . Completed inputs in all sets (except DIP switches) - turbo.c . Fixed bug that caused sprites to be exceedingly large . Added new output utilities: output_set_led_value(), output_set_digit_value() and output_set_lamp_value(), which are used to set a generic indexed data type. . Changed the Turbo driver to use output_set_digit_value() for their digits - stv.c . scsp: Improved interrupt reset (diehard, dnmtdeka and vfkids) . vdp1: added mesh effect for the sprites and polylines . vdp2: optimized rbg rendering . Added sound to Columns '97 . Added speedups to Die Hard Arcade and clone Dynamite Deka - Atari vector games . Rewrote the Atari vector generators, using the schematics and actual state machine PROMs. The state machine is now emulated so timing should be much more realistic. . Clipping hardware in bzone and others is emulated instead of hardcoded . Improved accuracy of clocks and various other bits of cleanup (astdelux, asteroid, bradley, bwidow, bzone, esb, gravitar, llander, mhavoc, omegrace, quantum, redbaron, spacduel, starwars, tempest and tomcatsw) - Ghostmuncher Galaxian: Implemented some port conditions, so you only see the relevant DIP switches for the active game. - Grand Champion: Began driver rewrite. Still work to do on collision detection, radar and some glitches. Fixed Z80 CPU1/2 clock speeds, VSync and gfx rom loading. - PlayMan Poker: Added missing gfx2 roms. - Shanghai III: Undid previous (incorrect) 'fix' of sound clock - Shooting Master: Fixed plds rom loading in clone (EVG) - Cheat engine: Numerous fixes to the cheat engine - Dipswitch fixes in Grand Champion - Description changes of Danchi de Hanafuda, Golden Poker Double Up (Big Boy before), Suikoenbu / Outlaws of the Lost Dynasty - MAME . Fixed crash in Windows code if we are unable to create sound buffers (windows\sound.c) . Fixed bug in software renderer that prevented lower-resolution targets from being properly supported . Rewrote the PNG reading/saving code, improving error reporting and simplifying the code significantly 0.108u4 - New games: --- - New Working games: Quizmaster (German) and Shooting Master - New clones: Arkanoid (bootleg with MCU, harder), Arkanoid (Game Corporation bootleg, set 2), Arkanoid (Tayto bootleg), Gals Panic II (German), Locked 'n Loaded (World), Mad Ball V2.0 (hack? With Nudity), Pocket Gal 2 (Japanese) and Shooting Master (EVG) - uPD7759, YM3526, YM3812 and Y8950: Added save state support - TC0100SCN (vidhrdw\taitoic.c): Fixed flipscreen mode (see cadash, chasehq, contcirc, darius, darius2, eto, groundfx, liquidk, ninjaw, othunder, sci, solfigtr, undrfire, warriorb...) - bfm_sc2.c: Added support for reverse-order entry in the BFM code - coinmstr.c and merit.c: Cleaned up dipswitches and documentation - mpu4.c: Updated the layout and added more documentation - neogeo.c: Fixed neocrypt.c to work on big-endian machines - shangha3.c: Fixed 68000 clock speed in Blocken, Hebereke no Popoon and Shanghai III and AY8910 clock speed in Shanghai III. - turbo.c . More Turbo work . Cleaned up the sound code . Added support for proper speaker placement in all games . A few other minor fixes . Sprite scaling is still not 100%, but I need some real hardware to verify. Apart from that, no further work is planned. . Changed sound channels in Subroc-3D and Turbo - Arkanoid: Added many more notes/info to the driver - Grand Champion: Did some cleanup and de-Achoization of the palette code. Removed some features used only by Grand Champion, which only complicated things for all the other drivers. Marked Grand Champion as imperfect graphics until it gets rewritten. - Shooting Master: Fixed gfx2 rom loading, visible area and dipswitches - Space Invaders: Fixed sound and improved dipswitches in clone Space War (Sanritsu). Added Speaker sound (sound\speaker.c). - Liquid Kids: Fixed flipscreen mode for Liquid Kids and other games using the same Taito graphics chips - Prehistoric Isle in 1930: Fixed gfx priority and added save state support - The Hand: Fixed video/screen update - Cheat engine: Fixed UI for cheat system watchpoints, making them usable again. - Dipswitch fixes in coinmstr.c, merit.c, Shooting Master, Space Invaders Part II, Space War (Sanritsu) and Tetris (D.R. Korea) - Fixed rom names in Pocket Gal and Twin Falcons - MAME . Did a bit of object-orienting the core. All core init functions now take a running_machine parameter. All exit, reset, and pause callbacks now require a running_machine parameter to register, and pass in the running_machine when called. . Added a running_machine parameter to the following driver callbacks: DRIVER_INIT, MACHINE_START/MACHINE_RESET, SOUND_START/SOUND_RESET, VIDEO_START/VIDEO_RESET/VIDEO_EOF/VIDEO_UPDATE and NVRAM_HANDLER/MEMCARD_HANDLER. For the most part, this didn't affect the code thanks to the macros, apart from cases where direct calls were made. . Altered most of the mame.c and palette.c interfaces to take a running_machine parameter. Hung private data for these modules off of the running_machine structure instead of using global variables. . Did some cleanup and de-Achoization of the palette code. Removed some features used only by Grand Champion, which only complicated things for all the other drivers. Marked Grand Champion as imperfect graphics until it gets rewritten. . Since I had to visit all call sites of palette_set_color to add the running_machine parameter, I also updated quite a lot of them to use the nice palnbit() inlines in palette.h, which cleaned up the code in many cases. Since this was a manual process, I probably messed up one or two cases, so if you notice odd colors, please report them to the http://mametesters.org site. 0.108u3 - New Non-Working games: Big Boy, Connect 4 and PlayMan Poker (Germany) - New clones: Beam Invader (set 2), Commando (bootleg) and Solomon's Key (US) - New drivers: pmpoker.c - 6840 PTM: Fixed counter behavior in continuous mode - Samples sound: Added some minimal validation on the sample rate configuration parameters (windows\config.c) - Audio streams: Added workaround for crash in the sound code under some edge cases (src\streams.c) - arkanoid.c . Big update to the driver which improves emulation of some bootlegs . Interverted 'arkblock' and 'arkbloc2' sets for better comparaison . Renamed sets . Changed some games descriptions . Removed flags from the following sets: arkbloc2, arkgcbl and paddle2 - findout.c: Overhauled and corrected dipswitches in Quiz (Revision 2), Quiz (Revision 2.1), Trivia (Version 1.03a), Trivia (Version 5) and Trivia (UK Version 5.07) - mpu4.c: . Big update to the driver . Added support for reverse clocking in the VFD code . Changed the 6840 to not run the counter clock if no frequency is specified . Reworked the MPU4 drastically to be more in sync with AGEMAME . MPU4 video should now be working a little better . Deprecated machine\6850acia.c, replacing it with a specialized driver (machine\mpu4.c) - segas16a.c: Fixed sound1 rom loading in clones Ace Attacker (Japan, System 16A, FD1094 317-0060) and Sukeban Jansi Ryuko (set 1, System 16A, FD1089B 317-5021) - solomon.c . Added new ROM loading option ROM_IGNORE() for the rom 8.3jk. This is a 32k rom and only 4k are needed. . Updated the memory maps - ssv.c: Improved offsets of the "normal spites" in the games Twin Eagle II, Ultra X Weapons and Dyna Gear - turbo.c . More driver cleanup . Doubled the horizontal resolution to better draw analog sprites . Updated the driver to use the new features MDRV_DRIVER_DATA and AM_BASE_MEMBER as an experiment . Improved Buck Rogers and Subroc video . Changed visible area and palettesize in Buck Rogers, Subroc 3D and Turbo . Added video timing prom to Turbo - Konek-Gorbunok . TIA-MC1 driver improvements . Fixed documentation . Hooked game counter and coin lockout . Added save state support - Lethal Enforcers: Added missing video change (vidhrdw\lethal.c) - Street Fighter III 3rd Strike: Added new user1 rom (this one is from a usa version) - Wonder Boy in Monster Land: Fixed gfx1 rom loading in clone (Galaxy Electronics English bootleg). - Input port: Added PORT_DIPLOCATION to Air Buster and Wonder Stick - Dipswitch fixes in Air Buster, Professor PacMan, Quiz (Revision 2), Quiz (Revision 2.1), Robby Roto, Trivia (Version 1.03a), Trivia (Version 5), Trivia (UK Version 5.07) and Wonder Stick - MAME . Added driver_data member to the Machine structure, where drivers can hang data instead of using global variables. Added MDRV_DRIVER_DATA macro so the core can allocate this structure at startup. Added AM_BASE_MEMBER and AM_SIZE_MEMBER which are similar to AM_BASE and AM_SIZE but let you specify a member of a struct hanging off of driver_data. Updated the Turbo driver to use these new features as an experiment. . Added new ROM loading option, ROM_IGNORE() which works just like ROM_CONTINUE() except that you don't need to load the data anywhere. It can be used when larger ROMs are present and only a portion of the data is used. See solomon.c for an example. . Fixed a multithreading race condition at startup - Compiling: Updated core.mak to ensure the make clean will remove file2str.exe - Debugger . Removed support for the old debugger . Added ability to tab between views in the disassembly windows. Added a 'cursor' to the dasm view and hooked up navigation keys. Added F4 'run to here' key when the disasm view has focus. Added F9 'toggle breakpoint' key when the disasm view has focus. Enhanced memory view keyboard navigation. 0.108u2 - New games: Carrera (Version 6.7) - New Working games: Swinging Singles - New clones: 4x Lethal Enforcers and Muroge Monaco - New drivers: carrera.c - 6840 PTM: Tidied up the emulator a bit (machine\6840ptm.c) - bfm_sc2.c . Cleaned up the vacfdisp module to display 14 and 16 segment displays (machine\vacfdisp.c) . Added a separate character set for the OKI MSC1937 . Changes Scorpion 2 to the new system . Tidied up the 6840 emulator a bit - dooyong.c: Removed the VIDEO_BUFFERS_SPRITERAM flag from the Dooyong driver, which crashed some games. - turbo.c . Further turbo driver cleanup. Still in WIP. . Derived sprite scaling from PROMs and R/C values (still not 100%) . Rewrote most of the video/sprite handling . Identified all PROMs and used them where appropriate . Added a more complete 8279 implementation . Changed the behavior of the led7seg primitive. It now no longer takes a state value but accepts states from 0-255, allowing independent control over all 7 segments and the decimal. Ordered the segments according to standard order. . Updated the Turbo driver to do its own BCD decoding via an LS48 decoder to control the segments directly. . Converted 7-segment LEDs to the new behavior described above. - New video rendering system . Added new option -multithreading (-mt) which enables the previous multithreaded rendering code. This code has had problems on some systems, especially pre-XP systems, so consider it experimental. If you want to help debug issues, enable LOG_THREADS in windows/window.c and post them to MAMETesters.org with a description of your problem and your system. If you don't have hyperthreading, dual core, or a multi-CPU system, don't bother turning this flag on. . Fixed several issues with pausing and the multithreading code - Botanic: Fixed INPUT_PORT - Buck Rogers: Added proms and changed palettesize - Dead Angle: Removed VIDEO_BUFFERS_SPRITERAM flag from Dead Angle - Muroge Monaco: Changed visible area and added 74s288 prom - Pang! 3: Fixed marker for the last sprite to draw, this fixed the ending story text (vidhrdw\cps1.c). - Space Odyssey: Attempted to fix the bad Space Odyssey ROM by using data from the previous dump. It is still marked BAD_DUMP (we would like to get an actual dump), but the new Space Odyssey is now playable. - Swinging Singles: Changed visible area and added 2x AY8910 sound - Subroc-3D: Fixed Z80 clock speed and VSync - Turbo: Fixed rom loading and rom names - Wonder Boy in Monster Land: Swapped gfx1 roms in clone (Galaxy Electronics English bootleg) - Input port: Added PORT_DIPLOCATION to 1943, 1945kiii, 4 En Raya, '88 Games, Act-Fancer, Formation Z, Forty-Love and Trio The Punch - Dipswitch fixes in '88 Games, Act-Fancer, Botanic, Formation Z, Poker (Version 50.xx), Selection, Swinging Singles, Trio The Punch and Trivia (Version 1.03) - MAME . Fixed options_output_ini_file() and options_output_ini_mame_file() to properly handle string options containing spaces (src\options.c) . Removed recently-introduced case dependency in the ROM naming 0.108u1 - New games: Reaktor (Track & Field Conversion) - New Working games: Space Bugger - New clones: Ninja Ryukenden (Japan, set 2), Silent Dragon (US) and Space Bugger (set 2) - 68000 CPU: Added a callback to the 68000 emulator for the TAS instruction, which allows different implementations based on external hardware. - Nintendo 2C0X PPU: Major cleanup/rewrite of the NES PPU rendering code (vidhrdw\ppu2c0x.c). This should improve the accuracy of the NES-based games (playch10.c and vsnes.c). Report anything odd or broken at MAMETesters. - asteroid.c, champbwl.c and tempest.c: Improved documentation - asuka.c: Removed the VIDEO_BUFFERS_SPRITERAM flag from the Asuka driver, which crashed all games. - namcos22.c: Fixed ROM loading problems reported by Guru. Added M37702 sound MCU rom to Ridge Racer 2 and removed it in Cyber Commando. - segag80v.c: Fixed inputs which were broken in 0.108 - turbo.c . Began cleanup/rewrite of the driver (some things are still broken, this is a WIP) . Proper video timings . Full memory map . Cleanup/simplification of the video code with better documentation . Added flags dispose to REGION_GFX2 (foreground data) . Changed visible area and VSync - New video rendering system . Added new flag: VIDEO_ALWAYS_UPDATE, which causes the VIDEO_UPDATE callback to be called even on skipped frames. This should be used for games where the process of rendering has side effects such as collision detection that need to always be present. . Fixed the new scanline timing functions to compute things correctly and without using unnecessary timers (see Missile Command, Crystal Castles or Cloud 9) - Crush Roller: Fixed gameplay in clone Magic Brush. The game use now the DRIVER_INIT( maketrax ). - Halley's Comet: Fixed collision detection in clone Halley's Comet '87 - Konek-Gorbunok . TIA-MC1 improvements (drivers\tiamc1.c) . More documentation . Fixed inputs . Fixed video framerate and VSYNC delay . Adjusted CPU freq according to documentation . Removed hack with off-board video RAM . Implemented Custom sound (sndhrdw\tiamc1.c) . Added NO_DUMP PROMs - Millipede: Added prom (??? - not used) - Prop Cycle: Hooked up fan and lamp to the new output system - Space Bugger: Added 2-way Joystick (vertical) input and 2x SN76496 sound - Space Invaders DX: Added new cpu1 rom - Tank Battalion: Added new color prom - Virtua Bowling: Fixed protection in the World version. This version reboots at the end of the game. Is this a bad dump?? Don't think it's a protection check. - Dipswitch fixes in Big Run, Championship Bowling, F-1 Grand Prix Star II, Grand Prix Star, Hangman, Space Bugger, Virtua Bowling and Wild Pilot - Fixed rom names in Bells & Whistles, Centipede, Millipede, Shadow Warriors, Silent Dragon, Tank Battalion and Tempest - Description changes of 'Tranquillizer Gun' ---------------------------------------------------------------------------------------------- 0.108 - New games: Konek-Gorbunok - New clones: Halley's Comet '87, Teenage Mutant Hero Turtles, Teenage Mutant Hero Turtles - Turtles in Time (2 Players ver EBA) and Wonder Boy (set 4) - New drivers: tiamc1.c - Samples sound: Added sample_get_base_freq() to allow for querying to the base frequency of samples (sound\samples.c) - nss.c: Fixed VBLANK timing - segag80r.c: Finished video and sound cleanup - segaorun.c and segaybd.c: Added more extensive documentation to the Sega 16-bit drivers - 005: Hooked up 005 melody generator, but missing sound PROM. Added CUSTOM sound and samples (lexplode, sexplode, dropbomb, shoot, missile, heilcopt and whistle.wav). - Astro Blaster: Added crude support for attack rate - Cheeky Mouse: Fixed color decoding and rom loading (sndhrdw\segag80r.c) - Darius II: Bumped interleave, which fixed graphics that don't disappear correctly - Space Odyssey: Fixed controls - MNG: Fixed bug that prevented in-game MNG recording from working - Dipswitch fixes in Green Beret, Head On (Irem, M-15 Hardware) and Space Beam - Fixed rom names in Bells & Whistles, Sunset Riders and Teenage Mutant Hero Turtles 2 - Debugger . Adding a comment no longer redefines the disasm range . Comments properly save and load special characters (&,", etc) . Changed debugger to default to 'on' in debug builds 0.107u4 - New games: SunA Quiz 6000 Academy - New Working games: Trivia Quest - New clones: Asteroids Deluxe (rev 1) and F-15 Strike Eagle and Zero (set 2) - S2650 CPU: Fixed overflow calculation - New video rendering system . Added built-in layouts for Turbo, Subroc 3D, Buck Rogers, Atari Football, Atari Baseball and Super Speed Racer using the new primitives. . Changed render_target_alloc() to take a bitmask of flags. In addition to loading a single file, targets can also be marked "hidden" and only non-artwork views can be made visible. . Added new render target layer config flag to disable screen overlays . Added new functions that do accurate per-screen timing based on video parameters: video_screen_get_hpos, video_screen_get_vpos, video_screen_get_hblank, video_screen_get_vblank and video_screen_get_time_until_pos . Split render.c into rendutil.c, rendlay.c and render.c to keep the code more organized . Normalized the naming of several functions in video.c, most importantly: force_partial_update -> video_screen_update_partial, configure_screen -> video_screen_configure and set_visible_area -> video_screen_set_visarea - UI/OSD . Abstracted the notion of outputs. A new module, output.c, now controls all outputs. Each output is tagged with a name; some standardization eventually needs to happen on these names, but at the moment it's fully open. The OSD layer can register with output.c to be notified when outputs change. From there, it is free to do what it wants. LEDs have now been converted to outputs with the name "led0", "led1", etc. . Added support for notifying external clients of changes in output states in the Windows OSD system. See windows/output.h for a list of messages that external clients can register to receive. . Removed the built-in hacky LED support in the Windows OSD layer . Created a sample application ledutil.exe which subscribes to the external events and routes the "led0", "led1" and "led2" outputs to the keyboard LEDs just like before. If you want to continue to have LED support, simply copy ledutil.exe into your startup folder and let it run in the background. . Added new layout element component type "text", which lets you draw text in the built-in MAME font onto an element in a layout. This can be used for basic lamps and built-in layouts. See maxaflex.c for an example. - bfm_sc2.c: Converted the VFD display in the BFM games to use a second screen rather than hacking onto the main screen - gottlieb.c: Modified the Q*Bert driver to signal a "knocker0" output when the knocker is triggered - maxaflex.c and sspeedr.c: Added new layout element component type "led7seg", which constructs a 7-segment LED in an element in a layout. This is commonly used for external score and timer displays. See maxaflex.c for an example. - segag80r.c . More Sega G-80 raster cleanup . Consolidated the video hardware implementations . Fixed cocktail mode video and controls in all games - Amazing Maze: Added built-in overlays - Atari Baseball and Atari Football: Fixed visible area - Catacomb: Fixed rom loading and added Moon Cresta color prom (the game is unplayable with a Galaxian PROM) - Clowns: Added built-in overlays - Galaga: Added new cpu2 rom to clone Galaga (Midway set 1 with fast shoot hack) - Monster Bash: Fixed video in clone Monster Bash (2 board version) - Pig Newton: Added the gfx1 roms from Pig Newton (version C) to clone (version A) - Power Drift: Added new sound1 rom - Quiz Mekurumeku Story: Added '4 Players' mode - Sindbad Mystery . Revived game . Fixed sound chip frequencies . Fixed Z80 CPU1 clock speed . Fixed VSync and ROMREGION's . Added second player - Taisen Idol-Mahjong Final Romance 2: Added dualscreen support - TouchDown Fever: Fixed number of players and game mode - Trivia Quest: Fixed input - Wonder Boy in Monster Land: Swapped gfx1 roms in clone 'Wonder Boy in Monster Land (Galaxy Electronics English bootleg)' - Input port: Fixed detection of left/right modifier keys when paused. Also added support for recently added keys so they are detected by MAME when paused. - Screenshot saving: Changed snapshot taking code to render the particular screen to a temporary render target. This allows vector games to have snapshots again. - MNG: Fixed recording, which doen't work since 0.107u1 - Dipswitch fixes in Apache 3, The Lost Castle In Darkmist and Trivia Quest - Description changes of Ace Attacker - Fixed rom names in Enduro Racer and Hang-On - Debugger: Fixed bug that caused the VIDEO_EOF to be called repeatedly while in the debugger 0.107u3 - New games: Catacomb and Trivia ? Whiz - New Working games: Dambusters, Legend of Heroes and Super Bubble 2003 - New Non-Working games: Ace Attacker and Casino 5 - New clones: Arm Champs II, Galaga, Space Odyssey and 3x Versus Net Soccer - G65C816 CPU: Made block transfer instructions interruptable (previously a single opcode could eat >400,000 cycles with obvious consequences for interrupt timing) - M37702/M37710 CPUs . Made block transfer instructions interruptable (previously a single opcode could eat >400,000 cycles with obvious consequences for interrupt timing) . Fixed block transfers (move one less byte than the G65C816) - NAMCO CUS60/CUS63/CUS64 MCU: Properly documented and connected the MCU code in Baraduke, Dragon Buster, Metro-Cross, namcos1.c, namcos86.c, Pacland, skykid.c and Thunder Ceptor - TMS32051 CPU: Added some more opcodes to the core - Samples sound: Fixed bug that caused the sound sampling code to not track changes in the refresh rate (windows\sound.c) - YM2612 sound: Adjusted the DAC sound level to something more reasonable (sound\fm.c) - 6840 PTM . More improvements to the 6840 timer module . Updated the MPU4 driver to the most recent implementation . Convert Cosmic Chasm over to using the new system - New video rendering system . Added several common generic graphics layouts to vidhrdw/generic.c, for use by multiple drivers . Fixed remaining crashes in GDI/ddraw mode when drawing vector games . Renamed "Native" views to "Pixel Aspect" views to avoid the confusion that they are anything but artificial aspect ratios . Added new option -video none which can be used for CPU benchmarking without the overhead of the video system . Added options -screen, -aspect, -resolution and -view which apply to all windows. These values can be individually overridden for each specific window by using the existing -screen, -aspect, -resolution and -view options. - Artwork: Removed the -artwork option to avoid confusion. If you want to run without any artwork, use -view standard instead. - Vector games . Added beam width control to the UI sliders . Fixed remaining crashes in GDI/DDraw mode when drawing vector games - blueprnt.c: Fixed GFX layout/decode in Blue Print and Saturn. This fixed GFX show (F4) in debug builds and MAME32. - konamigx.c: Minor cleanup and speed hack removal in the driver - konamim2.c: Improved the driver so that the M2 kernel starts to boot, but it hangs quite soon due to some multiprocessor issues. Added second PPC602 CPU to all games. - magicfly.c: Improved driver - all graphics are properly decoded/banked now - mpu4.c . Updated the MPU4 driver to the most recent 6840 PTM implementation . Fixed M6809 clock speed - segag80r.c (This is still very much a WIP, so don't report any bugs) . Changed driver segar.c to segag80r.c . Began cleanup/rewrite of the Sega G-80 raster games . Cleaned up input port handling similar to the G-80 vectors . Proper clock and video speeds . Reimplemented Space Odyssey background including collision detect . Fully implemented Pig Newton background . Connected 2-board Monster Bash more correctly - segag80v.c . Changed driver sega.c to segag80v.c . Complete memory maps derived from schematics - taitojc.c: Some general improvements to the driver and added some more opcodes to the TMS320C51 core. - zaxxon.c: . More driver cleanups/fixes . Fixed sound problems in Razmataz . Corrected background and sprite positioning . Fixed bugs introduced in sample handling . Bootlegs and alternate versions work again . Added state saving support to the Sega universal sound board - Ace Attacker: Added FD1094 317-0060 CPU from a System 16B PCB (?!) to the clone (attract mode worked, inputs not mapped yet) - PLD support: Added PLDs to clone Flash Point (Japan, bootleg) - 005: Fixed Z80 clock speed, VSync and palettesize - Astro Blaster: Fixed Z80 clock speed, VSync, palettesize and rom loading - Bubble Bobble: Added support for real Bubble Bobble MCU. Added M6801 (1MHz) CPU4 and TAITO JPH1011P MCU rom (a78-01.17). - Cosmic Chasm: Converted game to use the 6840 programmable timer module - Dambusters: Use reverse engineering techniques to make game playable. Fixed Z80 clock speed, VSync and changed AY8910 to Samples sound. - Funny Strip: Added new Z80 cpu2 rom to clone Puck People (previous dump was all 0xff) - Legend of Heroes: Fixed rom loading and visible area - Monster Bash: Connected 2-board version more correctly. Correct Z80 clock speed, VSync, palettesize and rom loading. - Pig Newton: Fully implemented background (this fixed background drawing in cocktail mode). Correct Z80 clock speed, VSync, palettesize and rom loading. - Razzmatazz: Fixed sound problems - Sindbad Mystery: Fixed number of players - Space Odyssey: Reimplemented background including collision detect. Fixed Z80 clock speed, VSync, palettesize and rom loading. - Super Bubble 2003: Fixed visible area and swapped romset (sb2003) with (sb2003a) - Virtua Racing: Fixed track lookup implementation, bringing the game much closer to playable (coprocessor TGP - machine\model1.c). - Input port . Updated Chewing Gum, Killer Instinct/2, Lucky Today, Revolution X, midzeus.c and Tank 8 input ports to use IPT_BILL1 for bill acceptors . Added new macro PORT_SERVICE_DIPLOC for specifying a PORT_SERVICE and a DIPLOCATION - Fixed rom loading in Astro Blaster, Legend of Heroes, Pig Newton, Space Fury, Space Odyssey, Star Trek and Zektor - Dipswitch fixes in Aqua Jack, Ben Bero Beh, Congo Bongo, Dambusters, Legend of Heroes, mpu4.c, Ozon I, Rock Climber and Super Bubble 2003 - Fixed rom names in 005, Astro Blaster, Congo Bongo, Eliminator, Monster Bash, Pig Newton, Sky Kid, Space Fury, Space Odyssey, Star Trek, Super Zaxxon, Tac/Scan, Zaxxon and Zektor 0.107u2 - New games: --- - New clones: Gals Panic II (Asia), Wonder Boy in Monster Land (Galaxy Electronics English bootleg) and Viper Phase 1 (World, New Version) - I8039 CPU: Fixed handling of A11 latch - M6809 CPU: Connected undocumented opcode $01 - CIA 6526 (Amiga hardware): Implemented CNT pin and some serial features of the 6526 CIA chip (machine\6526cia.c) - New video rendering system . Added MDRV_SCREEN_RAW_PARAMS() which lets you specify a pixel clock, horizontal, and vertical video timing values in place of the usual screen size, visible area, refresh rate, and VBLANK timing values. . Changed mode selection logic so that refresh is weighted more strongly when picking a mode. This allows you to specify -resolution 0x0@60 to force MAME to pick a 60Hz screen refresh while allowing it to choose the best resolution. - UI/OSD . Some cleanups in the new UI/video code to make MESS happy . Fixed bug that prevented save/restore from working in the UI - Massive cleanup/fixing of 16-bit Sega drivers (segahang.c, segaorun.c, segas16a/b.c and segaxbd/ybd.c) . Many corrections to descriptive set names, adding revision letters, cabinet types, etc. . Fixed many DIP switches and added PORT_DIPLOCATION support . Adjusted min/max values for analog controls to improve response . Cleaned up a number of ROM names and fixed some incorrect guesses . Actually disabling 8751 in games that have a fake replacement . Hooked up 8255 PPI correctly now that it has mode 2 support . Fixed behavior of NMI line in later sega sound boards . Fixed addressing in the SegaPCM sound system . Some hardware/documentation cleanup . segahang.c: Fixed visible area in Hang-On hardware . segas16a/b.c: Fixed button ordering between System 16A/B - turbo.c: Some cleanup in the driver - zaxxon.c . Rewrote Zaxxon driver from the schematics. This is still a WIP (not finished yet) . Correct clock speeds and video timing . Complete memory maps . Simplified video code and merged common cases together . Palette derived from resistor weights . Background positioning still a little off - Congo Bongo: Changed Z80 CPU2 clock speed to 4MHz, palettesize to 512 colors, VSync to 59.999409 and input to 8-way Joystick. Removed ROMREGION_DISPOSE from gfx4 and changed gfx4 rom address to $2000. - Cue Brick: Fixed coin input in clone (World version D) - Future Spy: Removed ROMREGION_DISPOSE from gfx4 and fixed and VSync - Ixion: Connected universal sound board to Ixion. Added I8035 CPU2 and Custom sound, removed ROMREGION_DISPOSE from gfx4 and fixed VSync - Joust: Fixed P1/2 START input again - Laser Battle: Fixed S2650 and TMS3615 clock speeds and VSync - Razzmatazz: Connected universal sound board to Razzmatazz. Added I8035 CPU2 and Custom soundremoved ROMREGION_DISPOSE from gfx4 and fixed VSync - Rip Off: Fixed background sample playing (sndhrdw\cinemat.c) - Slam Masters: Mapped service button - Super Zaxxon: Removed ROMREGION_DISPOSE from gfx4 and fixed and VSync - Zaxxon: Removed ROMREGION_DISPOSE from gfx4 and fixed VSync - Input port: Added service_coin_lockout_w() to lockout service coins - Dipswitch fixes in Buck Rogers, Colony 7, Congo Bongo, Pig Newton, Subroc-3D and Turbo - Compiling: Added macros to prevent use of strcasecmp and strncasecmp for better cross-platform compatibility 0.107u1 - New games: Poke Champ and TomCat - New clones: 4x Crystal Castles and 'Dungeons & Dragons: Shadow over Mystara' - New drivers: pokechmp.c - 68000 CPU: Fixed memory write ordering bug in the core - PPC602 CPU: Added some specific opcodes and registers - S2650 CPU: Fixed a register overflow bug (originally reported to the MESS Team) - Samples sound: Removed hard core dependency on samples (now you can make a tiny build without enabling the sample support) - New video rendering system . Removed NEW_RENDER definition and all support for the old rendering system from the core . Cleaned up a bunch of useless and deprecated code as a result . Added new function configure_screen() which can control the width, height, visible area and refresh rate of each screen. This function allows for widths and heights larger than what were specified in the game driver, so you no longer have to specify the maximum width and height in the driver, but can instead specify a typical width and height. This function supercedes the old set_visible_area() and set_refresh_rate() functions. The former has been rewritten to call configure_screen(), while the latter has been removed entirely. . Changed the behavior for supporting overscan and other effects. The width and height of a screen control the overall bitmap size. The visible area of a screen specify its non-blanked boundaries (and default visible area, as before). . Moved line-to-quad conversion routine into the core render.c as another utility function . Consolidated live screen parameters into a screen_state structure. Machine->visible_area[num] is now Machine->screen[num].visarea. Machine->refresh_rate[num] is now Machine->screen[num].refresh. - UI/OSD . Massively rewrote the user interface to rely on the new rendering systems. Broke the UI into multiple pieces (ui.c, uimenu.c, uigfx.c). The code is now verging on readable. . Added a red background to serious warning messages in the vain hope that people might take better notice. . Renamed ui_popup to popmessage across the code, and implemented popmessage in mame.c. This breaks the dependency between the core driver code and the user interface in almost all cases. - Vector games: Fixed vector game crashes with DirectDraw rendering - magicfly.c . Figured out the MC6845 (mapped at $0800-$0801) . Fixed the screen size based on MC6845 registers . Fixed the visible area based on MC6845 registers . Corrected the gfx rom region . Solved the NMI/vblank issue. Now attract works. . Changed CPU clock to 625khz . Added new findings to the technical notes . Marked magicfly PAL as NO_DUMP (read protected) - omegaf.c: Fixed slowdowns in the video hardware driver (used some older functions) - tsamurai.c: Fixed 'Service Mode' access - zaxxon.c: Fixed crashed in the video driver (see Congo Bongo) - Battle Zone: Fixed number of buttons - Championship Bowling: Added what seems to be a proper fix for the background transparency flag that was needed by the game to show the green background. - Crystal Castles: Swapped gfx1 roms and fixed rom names - Joust: Fixed input (P1/2 START were mapped twice) - Judge Dredd (rev LA1, prototype): Removed P4 START (not unsed) - Laser Ghost: Added player 2 port (map was unknown) - Last Duel: Fixed P1/P2 coin input - New York New York: Fixed input (COIN1 and SERVICE1 were mapped twice) - Parallel Turn: Fixed 'Lives' dipswitch - Taisen Quiz HYHOO: Fixed input (P3 START was mapped twice) - Time Crisis: Added 'Service Mode' dipswitch - Hiscore system: Removed Hiscore support from the core (games with NVRAM will still save as they always have) - MAME . Fixed single-frame-step (SHIFT+P) . Fixed mame.ini (Now you can put a #Comment on the same line again) ---------------------------------------------------------------------------------------------- 0.107 - NOTE: This is the first full release of MAME with the new rendering system. Before freaking out that things don't work the way you expected, please read the docs/newvideo.txt file that gives some suggestions for how to set up your base configuration. If you still encounter issues, then run your system with the -v option and post about your problem at http://mametesters.org - New Non-Working games: Chicken Farm, Crazzy Clownz, Hidden Catch 3, Legend of Heroes, Midnight Landing, Pro Golf, Ripper Ribbit and Super Bubble 2003 - New clones: 4x Agent X, Borderline (Sidam bootleg), Head On (Sidam bootleg), Lunar Rescue (Model Racing bootleg) and Super Crash (bootleg of Head On) - New drivers: limenko.c, mlanding.c and progolf.c - New video rendering system . Fixed assertion when the MAME window was minimized . Fixed bug that prevented resizing of secondary windows . Fixed vector rendering default flicker value to 0 (windows\config.c) . Fixed gamma and brightness ranges in the UI to match the limits from the command line . Fixed scrolling in the palette view - eolith.c: Correct E1-32N CPU1 clock speed in Fortress 2 Blue Arcade and Hidden Catch 2 - magicfly.c . Additional updates to the magicfly driver . Improved documentation and input port mapping . Fixed M6502 CPU1 clock speed in 7 e Mezzo and Magic Fly - pgm.c: Fixed drawsprites crash (vidhrdw\pgm.c) - taitowlf.c: Fixed keyboard inputs - yunsun16.c: Added tile flipx to tilemaps (Bomb Kick needs it) and changed the DIP switches used for protection to real DIP switches. - Bomb Kick: Added tile flipx to tilemaps in yunsun16.c (Bomb Kick needs it) and changed the dipswitches used for protection to real DIP switches. - Hidden Catch 3: Missing touch screen / pen inputs - The King of Fighters 2002: Fixed kof10th description - Missile Command . Rewrote driver from schematics . CPU speed now correct (slows down for lower 32 scanlines) . Proper frame rate and IRQ signal timing . Service mode works on some sets, fails on others due to 6502 bug . Accurate bitmap mapping and cycle counts for 3-bit accesses . Using bitmap access PROM for bit mode writes . Changed M6502 CPU1 clock speed and VSync . Added 'Service Mode' dipswitch - Ninja-Kid II . Properly emulated the sprite overdraw effect . Now you can see the "opening" effect and the previously 2 bugged levels are fixed . Converted the driver to use tilemaps as well - Space Laser: Changed description of Laser to Astro Laser (Leisure Time Electronics Inc. 1980) - XX Mission: Fixed graphics - Artwork: High Quality Artworks for MAME 0.107 at http://aarongiles.com/mameart - Cheat engine: Fixed watchpoints (src\usrintrf.c) - Dipswitch fixes in Bomb Kick, Missile Command and Pig Newton (version A) - Fixed rom names in Egg Venture and Lethal Justice 0.106u13 - New games: Digger Man and Firebeast - New video rendering system . Improved multisession support with the new renderer . Fixed bug that caused -prescale in Direct3D mode to fail in the last release . Fixed 1400x1050 video resolution (resolutionrating0106u12yel) - Vector games: Removed the background brightness in vector games by default. If you want to see the overlays faintly on vector games, increase the brightness a bit. - Cloud 9 . Rewrote driver to mimic the Crystal Castles driver since it is obviously an early version of the same hardware. . Implemented video RAM banking correctly based on tracing out a Firebeast PCB, which appears to be identical. . Traced out color mapping and implemented correctly . Reduced EAROM down to 4 bits . Fixed DIP switch definitions . Fixed M6502 and POKEY clock speeds, visible area and VSync - Crystal Castles . More tweaks . Connected EAROM correctly (passes POST now) . Added a guess for what the "POTATO" chip does. If you're a Crystal Castles fan report to MAMETesters how MAME looks compared to the arcade when the screen scrolls up inbetween level 4 and 5. - Space Chaser: Hooked up color PROM and fixed dipswitches. Changed visible area in clone Space Chaser (CV version). - Tempest: Reimplemented the sparkle circuit to bring back stars (vidhrdw\avgdvg.c) - XX Mission: Some minor modernization to the driver - PLD support . Added PLDs to Ah Eikou no Koshien, Golden Tee Golf II (Trackball/Joystick), High Impact Football, Hot Shots Tennis, Land Sea Air Squad, Midnight Resistance, P.O.W., Puzzle Bobble 2X, Quartet, Quiz Chikyu Bouei Gun, Radical Radial, Sly Spy, Solitary Fighter, Tokio, Tri-Sports, Vapor Trail, Vigilante and Zero Target - Input port: Fixed bug that led to black crosshairs in lightgun games. - LISTXML: Some more fixes for the DTD in the -listxml output - Debugger: Fixed uninitialized variable in the debugger commenting code. Cleaned up allocations. 0.106u12 - New games: --- - 6840 PTM: Fixed interrupt clearing function - magicfly.c: Some graphics improvements to the driver (see 7 e Mezzo and Magic Fly) - New video rendering system . Removed 1 pixel border now that the Direct3D code is properly setting texture clamping. This should get rid of the gaps in the Darius layout, which were caused by bilinear filtering the last pixel on the screen with the black pixel border. . Removed the VIDEO_PIXEL_ASPECT_RATIO_* flags for drivers. These flags were used inconsistently, and can be effectively computed if necessary from the screen width/height and orientation. - Vector games: Fixed bug that prevented the contrast from pushing vector games to their maximum brightness. - Layouts . Added gapless variants to the dual and triple screen layouts . Fixed -effect none to longer produce an error message - UI/OSD . Fixed bug that caused the UI to be impacted by command-line brightness, contrast and gamma controls. . Changed the on screen display so that pressing ENTER resets a value to its default. - PLD support (Programmable Logic Devices) . Fixed bug in JED parsing code (jedutil) that would checksum fuses beyond the number explicitly specified. Some programs write extra fuse data beyond the end and this should not be part of the checksum. Also made the checksum parsing more flexible to handle JED files with extra 0 digits in the file checksum. . Added PLDs to Air Combat, Air Inferno, Airwolf, Arabian Magic, Arch Rivals, Arkanoid Returns, ASO, Bad Lands, Birdie King 2, Bobble Bobble, Bubble Symphony, Cachat, Cadash, Chase H.Q., Choplifter, Chopper I, Combat School, Cosmic Chasm, Crazy Rally, Cyberball, Dragon Saber, Elevator Action Returns, Escape from the Planet of Robot Monsters, Express Raider, Fighting Golf, Final Blow, Gaplus, Ghosts'n Goblins, Heavyweight Champ, Herbie at the Olympics, Ikari, King of Boxer, Legend, The Legend of Kage, Mania Challenge, Mega Blast, Metal Hawk, Nastar, Operation Thunderbolt, Pipe Dream, Pop'n Pop, Power Spikes, Puchi Carat, Puzzle Bobble 4, Redline Racer, Seicross, Space Gun, Space Invaders '95, Space Invaders DX, Thunder Zone, Top Landing, Twin Qix and Youjyuden. - Crystal Castles . Rewrote driver from the schematics . Corrected clock speeds and frame rates . Reimplemented video system to use mixer PROM . Now using sync PROM to generate interrupts at correct times . sync PROM is also used to determine proper visible area and VBLANK timings . Implemented the VRAM write protection by using the WP PROM . Hooked up second player trackball properly . Fixed coin counters . Now computing palette based on resistor weights . Watchdog is now set for 8 VBLANKs to match the schematics . Added save state support . Mapped complete memory space according to schematics . Fixed prom names, changed VSync to 61.035156 Hz and added 2x 'Unknown' dipswitches. - Lethal Enforcers: Fixed the fire button INPUT_PORT of player2 - Traverse USA: Fixed rom names - Input port: Changed the coordinates where for offscreen lightgun reloading, moving it from the upper-left to the upper-right for better compatibility. - LISTXML/INFO . Removed xml2info utility. The -listinfo format was retired over 2 years ago. It is time to move on. . Added multiple input controls in -listxml output for games with more than one type . Added pedal control type. . Added more info on analog controls as defined in the driver: minimum, maximum, sensitivity, keydelta, and reverse. This required the 'control' attribute in the XML to be moved into an element. There can now be more than one 'control' element in the input secction. . Improved the description of screens in -listxml. Multiple screens are now listed, each with their own attributes. Rotation is now fully specified (rather than just vertical/horizontal). The width and height now describe the raw game screen before any rotation. - MAME . Changed the core makefile to put back specific rules for building EXEs to promote more commonality with platforms that don't put an extension on executable files. . Moved all options to a single central location in windows/config.c. Cleaned up and reordered the options more logically. . Rewrote windows.txt to reflect all of the new options and to update the behavior of existing options to match the current implementation. 0.106u11 - New Non-Working games: 7 e Mezzo and Magic Fly - New clones: Emeraldia and Indiana Jones and the Temple of Doom - New drivers: magicfly.c - New video rendering system . Changed DirectDraw behavior so that it will render to an offscreen system memory buffer if any blending is required, thus providing access to all the effects with a bit of slowdown in those cases. . Changed logic so that no rendering apart from the UI happens before MAME is in a running state. Until that time, a single pixel border will be displayed around the edges of each screen. . Changed behavior of secondary windows so that they are not created as children of the primary window. Please re-verify that multiple screens still work with this change on your setup. . Moved texture clipping into the core, rather than relying on the OSD layer to do the work (src\render.c) . Removed the RENDER_PRIMITIVE_CLIP_PUSH and RENDER_PRIMITIVE_CLIP_POP primitives (src\render.c) as they are no longer necessary. Added U/V texture coordinates to the primitives. - UI/OSD . Added X and Y offset/scale controls for each screen. This allows you to control the actual position of the screen within its container. In order to see beyond the game-configured visible area, the game must have set up the screen size to be larger than the core visible area. The Williams drivers have been updated as an example. Eugene Jarvis mentioned that if you adjust your monitor, you can see the stack in Robotron off to the right, and now you can in MAME as well. The values configured in the OSD are saved in the config file for each game. . Added brightness, contrast and gamma controls per-screen in the on-screen display section of the UI. This requires a change to the OSD rendering code to use lookup tables when copying RGB data to textures. Default values can be specified via the -brightness, -contrast, and -gamma command line/configuration options. Note that these options only affect screen areas of the final output and have no effect on artwork or the UI. The values configured in the OSD are saved in the config file for each game. . Added full screen equivalents of the brightness, contrast and gamma controls. Unlike the screens-specific options, these only work in full screen mode using DirectX, and apply globally, affecting artwork and user interface as well. They are controlled via the -full_screen_brightness, -full_screen_contrast and -full_screen_gamma options. . Added new video option to move the user interface to secondary screens. The selected screen is saved in the video configuration. - magicfly.c: TODO: Map inputs & DIP switches, correct the GFX banks, hook properly the MC6845 and cleanup the driver. - model2.c: Fixed rom names - mpu4.c: Improved memory map and 6840 PTM clock speeds - Double Dribble: Added PLD ($0 - pal10l8-007553.bin) - Kick Start Wheelie King: Fixed input - Violence Fight: Added PLDs ($0, 200 - pal16l8b-c16-08.ic34 and pal16l8b-c16-09.ic35) - Vector games: Removed vector intensity controls as they are redundant with the new contrast controls - Screenshot saving: Fixed a couple of bugs in the new screenshot taking code - Artwork . Fixed the rendering order so that overlays mixed with backdrops work as expected. Note that over-rendering backdrop pieces (like gollygho does) may not be supported in the future. . Added a new command line option: -effect , which specifies a PNG file that is loaded and used as an RGB multiply overlay. This allows for scanline and RGB aperture mask effects. These overlays rotate with the game screens and only affect the game screens, not any of the other artwork. They also only run at the raw resolution of the render_target. This means in Direct3D or GDI modes, they map 1:1 to the pixels on your screen. In DirectDraw mode, they map 1:1 to the source pixels of the image (for DirectDraw, you can use -prescale n if you want an n:1 mapping; for example, you would probably want -prescale 2 if using a 2-pixel-tall scanlines overlay). . Download new overlays at http://aarongiles.com/overlays.zip and place them unzipped in the artwork directory. . Use -effect aperture4x6 if you run at really high resolutions (2000x1500). Recommend is -effect aperture2x4rb if you run at medium resolutions (1280x1024 or so). The other PNG files can be selected by just specifying their name after the -effect parameter. If anyone manages to create nice masks, feel free to post links to them at http://aarongiles.com/?p=175#comments - LISTXML/INFO: Changed XML output so that BIOS sets, ROM sets and disks are output in the defined order. - MAME . Added options_get_int_range() and options_get_float_range() functions (src\options.c) which do added range checking on parameters, rather than requiring the callers to do the work. Also changed the behavior on options parsing failure to set to the default value rather than defaulting to 0. . Added generic pen changing notification callbacks to the palette system (src\palette.c) 0.106u10 - New games: --- - New clones: Cruis'n World and Dungeons & Dragons: Shadow over Mystara - Motorola 6840 PTM: Some more 6840 module improvements (machine\6840ptm.c) - New video rendering system . Added support for +/- keys in the palette view . Made the UI keys for navigating the graphics/palette viewer configurable . Added "tick marks" when a large number of palette or gfx entires are displayed to indicate which row/column the header refers to. . The renderer no longer displays non-UI elements prior to initialization - Layouts . Converted all the internal layouts into .lay files and updated all remaining drivers to use the new layouts . Made all solid single-color overlays standard pieces that can be easily reused . Fixed inheriting of artwork files from parent . Updated Atari Football, Discs of Tron, Golly! Ghost!, Gorf, Sky Diver, Space Wars, Spy Hunter and Super Speed Race to support the new artwork system . Download new layouts at http://aarongiles.com/layouts.zip . Use now "mame -window -numscreens 2" to render individual screens in a window (see subs, jantouki and bijokkog) - UI/OSD . Added support for remembering the selected view, rotation and artwork enabled states in the game's cfg file. . Added rudimentary progress displays during ROM loading and graphics decoding so you have something to look at instead of a black screen (see Space Bomber). - centiped.c: Added save state support in Bulls Eye Darts, Centipede, Millipede and Warlords - maxaflex.c: Fixed 6821 PIA addressing regression in the Atari machine driver (machine\atari.c) - nbmj8688.c: Added dual screen support for the Mahjong games bijokkog, bijokkoy, housemn2, housemnq and livegal. - taitojc.c: Some misc bugfixes - tx1.c: Added dual screen support for TX-1, TX-1 (Atari) and clone Buggy Boy - zaxxon.c: Enabled save states in Congo Bongo, Future Spy, Ixion, Razzmatazz, Super Zaxxon and Zaxxon - Championship Bowling: Changed background color to green to match real PCB - Jong Tou Ki: Added dual screen support - Minivader: Enabled save states - Pairs Love: Completed dipswitches - Rock'n MegaSession: Added dual screen support - Subs: Added dual screen support - Screenshot saving: Cleaned up screenshot taking code - LISTXML/INFO: Updated -listxml output to display information for multiple screens - Added multiscreen support to bijokkog, bijokkoy, buggyboy, housemn2, housemnq, jantouki, livegal, rocknms, subs, tx1 and tx1a - MAME: . Fixed keyboard LEDs so they work again (windows\input.c) . Added back support for full screen brightness correction (src\video.c) . Fixed coin inputs in test mode of games - Debugger: Re-connected the debugger 'Saved snapshot' command 0.106u9 - New games: --- - New video rendering system . Fixed bug when clipping quads in Direct3D mode . Fixed edge case where the extra pixel on non-wrapping textures would sometimes lead to exceeding the maximum texture size. . Added concept of maximum texture size to the core renderer to prevent giant textures from being requested if the OSD layer can't handle them. - Layouts . Multiple screens support in Tecmo Bowl, gaelco2.c, megatech.c and X-Men clones (6 Players ver ECB / UCB) . Added "left half" and "right half" to the Darius / II layout so you can stretch three screens over two, though you need to explicitly set them either in the UI or using the -view0 and -view1 parameters on the command line. . Cleaned up handling of layout dependencies in the makefile - ADSP21062 CPU: Improvements and bugfixes - I960 CPU: Some bugfixes - MSM5205 sound: Changed the MSM5205 ADPCM decoder to no longer perform bounds checking to prevent the signal from overflowing. The MSM5205 data sheet clearly states that this isn't the case, and there is no overflow protection in the chip. Also, the chip's internal DA converter is just 10-bit, even if the processed signal is 12-bit. - punchout.c and PlayChoice-10: Flipped drivers so that screen 0 is the "main" screen. - model2.c . i960 bugfixes . SHARC improvements and bugfixes . Added HLE of the geometry DSP for now . Moved video hardware emulation to vidhrdw/model2.c . Added preliminary 3D graphics emulation . Removed 2nd ADSP21062 CPU and changed cpu3 to user5 roms in some games - taitojc.c . Improved M68040 FPU emulation . Improved the TMS320C51 core . Added 2D graphics emulation . Added inputs to all games . Properly hooked up sounds in all games . Fixed visible area and palettesize - Grand Cross: Fixed address error by disabling the IRQ (it's caused by the sound IRQ..but the music player was ripped out by Aaron ages ago, related?). - Pairs Love: Fixed address error (simulated 'buffered ram' protection?) - Side By Side: Fixed cpu2 and gfx1 rom loading - Side By Side 2: Fixed cpu2 rom loading - Artwork . Added get/set calls to control layers on a per-target basis. This allows for dynamic control of visibility of artwork layers and the option to crop to the screen. Added menu items to control these options. . Removed options.use_artwork from the global options. This is now directly configured by the OSD layer. - MAME . Added "fast forward" function (defaults to the INSERT key). While holding this key down, the frameskip is temporarily maxed out and throttling is turned off. This is useful for skipping over parts of the emulation. . Added support for pausing/unpausing while showing graphics and tilemaps . Fixed some glitchiness in font displaying where they would switch in and out of scaled modes due to rounding errors. . Changed the initial UI screens to only compute their text a single time. This reduces the CPU usage greatly when displaying some of the "game doesn't work" warnings. . Changed VIDEO_UPDATE to return a set of flags. Only one flag is currently defined, indicating that video has not changed at all since the previous update. Most drivers should just return 0. - Debugger: Fixed crash in debug builds running the Deco MLC games 0.106u8 - New games: --- - New video rendering system . Added 16-bit color support for the DirectDraw renderer (only used if switchres is off or in a window). . Fixed 16-bit line rendering in the software rasterizer . Fixed ddraw bug where switching views sometimes didn't clear out the edges of the screen . Improved scaling calculations when running with -video ddraw and no hardware stretch to better approximate the real aspect ratio. . Added more internal texture reference tracking to ensure that stale data is not being referenced if the OSD layer holds onto a render list. . Removed screen aspect ratio specification from the machine driver. This information is now provided by the render/view system. Games with odd aspect ratios should include a game-specific layout to position the screens. . Changed logic so that trying to run more screens than you physically have in full screen mode will just display as many as will fit rather than fighting to put multiple full screen displays on a single monitor. . Added optimizations to figure out the minimal set of screen areas to clear, even with complicated views and multiple screens. . Fixed palette for games which were using palette_set_brightness - Layouts . Changed the way built-in layouts are handled. There is now a new layout directory in the source which contains actual .lay files. These are converted at compile time into .lh files which are #included by various drivers and then referenced. The built-in set of horizontal, vertical, and dual screen layouts are also handled this way now instead of being dynamically generated. In order to support things like "native" aspect ratios, a limited form of variable substitution is now done on most of the XML attributes when they are read. . Improved default layout selection. For multiscreen games on a single monitor, the default layout will show all screens at the same time. For multiscreen games on multiple monitors, the default layouts will select one screen per game. . Multiple screens support in Backfire!, Darius, Darius II, Ninja Warriors, PlayChoice-10, psikyo4.c, Punch-Out!!, Super Punch-Out!!, vsnes.c and Warrior Blade . Added MDRV_DEFAULT_LAYOUT to specify a default layout at the machine driver level . The UI is now limited to a single screen - ES5505 sound . Moved some common code into sndhrdw\taito_en.c (taito ensoniq sound system) . Fixed ES5505 clock speed in Ground Effects and Under Fire - Motorola 6840 PTM: More generic 6840 module improvements (machine\6840ptm.c) - Gunbuster: Fixed sound1 rom address - Screenshot saving: Screenshots are now properly rotated again. MAME now saves one screenshot per visible screen for multi-screen games (i.e., cyberbal will write two PNGs per snapshot taken if both screens are visible). - Tilemap viewer . Reimplemented the palette/graphics/tilemap viewer. It is still connected to F4, but works differently. . Both graphics and tilemap modes only display data at an integral scale factor so you are limited based on the resolution of your render target. . For -video ddraw, you can get more pixels by using -prescale to scale the screen . For -video d3d, the render target is at your screen's native resolution already . To switch between modes, press the ENTER key. Here are the new keys in each mode: * Palette/colortable mode: [ ] - Switch between palette and colortable modes up/down - Scroll up/down one line at a time pgup/pgdn - Scroll up/down one page at a time home/end - Move to top/bottom of list enter - Switch to graphics viewer * Graphics mode: [ ] - Switch between different graphics sets up/down - Scroll up/down one line at a time pgup/pgdn - Scroll up/down one page at a time home/end - Move to top/bottom of list left/right - Change color displayed r - Rotate tiles 90 degrees clockwise - + - Increase/decrease the number of tiles displayed per row enter - Switch to tilemap viewer * Tilemap mode: [ ] - Switch between different tilemaps up/down/left/right - Scroll 8 pixels at a time shift+up/down/left/right - Scroll 1 pixel at a time control+up/down/left/right - Scroll 64 pixels at a time r - Rotate tilemap view 90 degrees clockwise - + - Increase/decrease the zoom factor enter - Switch to palette/colortable mode - LISTXML/INFO: Changed -listxml to accept a wildcard gamename like most other frontend options to limit which games are output. - Compiling: Moved cygwin-specific compiler options to windows.mak - MESS: Moved MESS-specific Atari FDC code into a MESS specific file, in addition to fixing bugs. 0.106u7 - New games: --- - New video rendering system: Added a compile-time option to rendersw.c to prevent reads from the destination. This removes the ability to do a number of blends and effects, but allows you to point the software renderer at a video memory target and not kill performance. It also improves performance of software rendering in general by avoiding expensive alpha blending operations. - HD6309 CPU: Fixed some instruction forms in the 6309 diassembler to consume the correct number of bytes. - namcond1.c: Fixed a heavily flicker in ncv1 and ncv2 (vidhrdw\ygv608.c) - sangho.c: Improvements to the driver, making them somewhat playable. - Pasha Pasha 2: Fixed off-by-one drawing error in the driver - Puzzle Star (Sang Ho Soft): Added YM2413 sound, changed visible area and palettesize. - Sexy Boom: Added YM2413 sound, changed visible area and palettesize. - Description changes of Puzzle Star (Sang Ho Soft) - Dipswitch fixes in Puzzle Star (Sang Ho Soft) and Sexy Boom - MAME . Added back support for DirectDraw (windows\drawdd.c). Unlike the old support, this requires DirectX 7 or later. There is now a new option to control what video system is being used for rendering. Use -video d3d to use Direct3D. Use -video ddraw to use DirectDraw. And use -video gdi to force the use of GDI for rendering. Some interesting things to try out: * If you have multiple monitors, run with -numscreens 2 on the command line to get multiple screens. This should work with all video modes. * Try toggling between full screen and window mode while running (Alt+Enter) * Try out DirectDraw both with and without -hwstretch enabled * Play with the new options in the Video Options menu within MAME * Run cyberbal or the Sega multi-32 games (orunners, harddunk, scross, titlef) to test out multi-screen support (also try -numscreens 2 with these games if you have multiple monitors) * Run starcas, bzone, astdelux to test out vector games with overlays * Run invaders or turbo with the new .lay files (http://aarongiles.com/?p=165) * Try out the -prescale option in both Direct3D and DirectDraw modes and make sure it has the intended effect * Try out various .BDF fonts to see which ones work well (make sure you use low-res ones for DirectDraw without any -prescale) . Added back the -hwstretch option to control whether or not DirectDraw does stretching. . Added support for the -prescale option when using DirectDraw as well. It should also work ok with multiple screens. . Improved font logic so that small fonts are scaled more appropriately at low resolutions. It's not perfect, but works well for most games when running with the new DirectDraw option, which always renders games at minimum resolution. . Fixed bug that messed up partial updating. Hopefully it all should be back to normal again. 0.106u6 - New games: Janputer '96, Mahjong X-Tal 7 and Rock Tris - New Working games: Pasha Pasha 2 and Watashiha Suzumechan - New Non-Working games: Bombs Away, High Seas Havoc, Red Corsair, Puzzle Star?, Sexy Boom, Super Free Kick + clone Spinkick - New clones: Double Point (Min Corp. 1995) and Space Fury (revision B) - New drivers: hshavoc.c, rcorsair.c, sangho.c and sfkick.c - V60 CPU: Added workaround to make the core work properly on GCC 4.x (tested on 4.1.1) - dynax.c: Fixed AY8910 and YM2413 clock speed in 7jigen, hnoridur, mcnpshnt, mjangels, mjelctrn, neruton, quiztvqq and yarunara - maxaflex.c: Cleanups to the Atari/Max-A-Flex driver and attempting to modernize it - mcr68.c: Fixed inputs in the driver - segas32.c: Updated Sega multi-32 driver to support multiple screens - New video rendering system . Fixed the drc blitters better (windows\blit.c) . Backed off of the multithreading for the moment in order to focus on getting the rest of the kinks out of the new renderer. All the infrastructure is still in place and can be re-enabled by flipping the ENABLE_THREADS flag in window.c. . Added support for "stretch to fit" when configuring a render target . Added back the "-keepaspect" option as a result . Added clamping to the prescale effect so that it doesn't try to create excessively large textures. Explicitly reset render states so that the prescale step is not filtered. . Fixed StretchRect usage so that it doesn't filter on some video cards . Fixed behavior of pixel aspect ratio when configuring render targets (was correcting in the wrong direction). . Moved thread priority logic out of ticker.c and into winmain.c where it really belongs. . Updated Asteroids Deluxe and Omega Race built-in overlays for the new render system - Pasha Pasha 2: Changed visible area to 384x240 - Polygonet Commanders . Fixed Z80 IRQ/NMIs to go to the right CPU again . Modernized memory map . Added network status bit, so the initial test passes well enough to make the DSP56k crash on unimplemented opcodes. - Progressive Music Trivia: Fixed rom names and added PLDs ($0, 200 - pal16l8a-ep-0.u10, pal16l8a-ep-0.u9) to clone (Question set 3). - Quiz (Revision 2.1): Added pld (pal10l8cn.bin) - Rong Rong: Added pld (gal16v8b.1e) - Royal Card: Added pld ($400 - 2-peel18cv8.bin) - Survival Arts: Added pld (gal16v8b.u5) - Wonder Boy: Fixed input and dipswitches in clone Wonder Boy (system 2) - Dipswitch fixes in Best Bout Boxing, Pasha Pasha 2, Watashiha Suzumechan and Wonder Boy - Compiling: Added workaround to make the V60 core work properly on GCC 4.x (tested on 4.1.1) - Debugger: Fixed new debugger support for custom register lists - MSVC compiler/MAME 64-bit: Minor fix for x64 compilation support with MSVC 0.106u5 - WARNING: Starting with this version, the MAME windows run on a separate thread. There may be issues relating to this, especially when running unthrottled. If you see any crashes or odd behavior under normal operation, be sure to report it to http://mametesters.org - New games: Hard Times - New video rendering system . Added new render_view_item_get_state() function to return the state of a given item. . Changed render_target_get_primitives to return a new structure render_primitive_list, which contains the list of primitives along with an osd_lock which must be held while the list is being traversed. . Added "Rotate View" option to the video menu for dynamic in-game rotation. . Moved window creation and management to a separate thread; this means all software rendering and all Direct3D calls are done on a separate thread from the main game, and will take advantage of multiple CPUs/dual cores. . Changed throttling behavior to skip rendering if we are already pending; this makes for a better "fast forward" effect. . Added -prescale option to pre-scale the game bitmaps before rendering to the screen; this helps get rid of the "fuzzy" look when running with -filter enabled, at the expense of some speed. Note that only integral values are currently supported (no "auto"). - bfm_sc2.c + mpu4.c: More generic 6840 improvements (machine\6840ptm.c) - decocass.c: All hardcoded tables are gone now - Explorer (Cassette): Added new dongle data to Explorer (Cassette). The dongle data is reverse engineered by table analysis. Game doesn't work, because the roms from the overlay PCB are missing. - Grand Striker: Added plds (pal16l8.s201a.u52, pal16l8.s202a.u74, pal16l8.s203a.u75, pal16l8.s204a.u89 and pal16l8.s205a.u109) - Hard Times: With Hard Times every known Playmark game are now emulated. Game is missing sound, because the PIC16C57 isn't dumped. - Hot Mind: Fixed gfx1 roms loading - Pasha Pasha 2: Some improvements to the driver. Added new user2 roms and fixed palettesize. - Cheat engine: Fixed cheat system display and 'cheat_file' option problems - MAME: . Fixed ESC key not cancelling out of initial UI screens . Fixed bug where the gamename was reallocated out from under us by the new config system . Added experimental OSD locks (If the OSD layer is not using multiple threads, these can just be stubbed out (return TRUE for osd_lock_acquire and fake the rest). . osd_lock_alloc() allocates a lock . osd_lock_acquire() acquires a lock, blocking until success . osd_lock_try() tries to acquire a lock and returns whether or not it succeeded . osd_lock_release() releases a lock . osd_lock_free() frees memory used by a lock - MAME 64-bit: Fixed windows.mak to support 64-bit builds - MESS: Added the ability to specify a callback when a given option is parsed. This is used on the MESS side to add system-specific command line options. 0.106u4 - New games: --- - New Working games: Card Line - New video rendering system . Fixed feature detection bug that led to false-positive warnings when starting up . Removed extra vertex padding since some graphics cards could not cope with it . Added shims to support both Direct3D 9 and Direct3D 8; D3D9 is the default, with an automatic fallback to d3d8 if not available . New option -d3dversion can be used to specify preferred version for testing . Added 1 pixel black border around all textures to ensure filtering on some cards doesn't result in garbage at the edge of the screen . Enabled "do not wait" feature when unthrottled and using D3D9; this greatly speeds up unthrottled games, but seems to only work in full screen mode . Switched from triangle fans to triangle strips . Ensured that render states are only being set minimally . Added code to reset the device if lost, allowing application switching out of full screen mode and fixing multi-monitor mode with resolution switching - atarigt.c: Fixed games from hanging - midyunit.c: Fixed games from hanging - Card Line: Added OKI6295 (8000 Hz) stereo sound and changed visible area to 512x280. - MAME . Fixed crash when passing an invalid driver name on the command line. Centralized the approximate matching logic into driver.c so other ports can use it as well. . Now properly extracting path from driver name and adding it to the rompath so that drag & drop of ZIP files works once again. . Added new function verbose_printf() which is used instead of checking the verbose global to print information to the screen. Changed all locations that were checking the global to use this new function. - Debugger: Added new function mame_debug_is_active() which can be used by core code to identify when we are paused in the debugger. 0.106u3 - WARNING: As of this build, the new rendering system is enabled by default. The primary focus at this point is compatibility, not performance. Compared to the old -ddraw system, it will appear slower when fully unthrottled because there is not a good mechanism to skip the render if the graphics hardware is still busy like we used to do. If you have any trouble getting a correct display or if you get warning messages printed out when starting MAME, please post about them on http://mametesters.org - SECONDARY WARNING: The command line and INI parsing code was rewritten. If you notice any problems with handling of parameters in either case, please report the bugs on http://mametesters.org - New games: Daikaiju no Gyakushu - New Working games: Critter Crusher and Highway Chase (Cassette) - New Non-Working games: Mario Lemieux Hockey (Mega-Tech) - New clones: Turtle Ship (North America) - New video rendering system . Enabled new renderer by default . Rewrote the options parsing code to be more flexible and generic. A new core source file options.c provides the ability to add and maintain a database of key/value pairs, which can be queried at runtime. Reconnected all existing frontend options through this code. Bounds checking on options for the old renderer is pretty loose, and several more complicated options have been disconnected as a result. If you are still running with the old renderer, be careful. . New options to control multiple screens in the new renderer: -numscreens (specifies how many windows to create), -screen0/screen1/... (specifies the name of the screen for each window), -resolution0/resolution1/... (specifies resolution for each window), -aspect0/aspect1/... (specifies aspect ratio for each screen), -view0/view1/... (specifies starting view for each screen). . Deprecated osd_skip_this_frame() with the new renderer. osd_update() now returns TRUE if it wants to skip the following frame. . At higher resolutions, the standard MAME font is kind of fuzzy and chunky. You can use pretty much any .BDF font for the main font now, renaming it to ui.bdf and placing it in the same directory as the MAME executable. MAME will scale it to whatever resolution you're running at. Use this BDF font (http://aarongiles.com/ui.zip) for testing, which is a 40pt rendering of one of the sans-serif Free UCS Outline Fonts (http://www.nongnu.org/freefont/). . Fixed crash at startup due to uninitialized memory . Fixed crash at shutdown due to incorrect shutdown order . Fixed rendering of 15-bit direct RGB games . Fixed weird frameskipping issues . Fixed off-by-one error on visible area . Added proper clipping of quad primitives . Optimized the clearing step to avoid redundant drawing . Brought software-only case up to support all major blending types . Added support for -filter option . Reconnected snapshots, though they are unrotated and screen 0 only . Fixed several UI problems with new video options menu . More strongly defined the blending modes to produce correct effects . Added a flag to indicate textures that are of screen bitmaps . Download updated layout files for Space Invaders (http://aarongiles.com/invaders.zip) and Turbo (http://aarongiles.com/turbo.zip) - dgpix.c: Fixed flash rom writes in the 'dgPIX' games - jalmah.c . Added 'Flip Screen' dipswitch to Mahjong Kakumei. . Added 'Flip Screen' dipswitch, fixed test/service dipswitch and complete coinage to Mahjong Daireikai, Urashima Mahjong and Mahjong Channel Zoom In. - 1942: Added save state support - 1945kiii: Added save state support - Arkanoid: Fixed rom names in clone (Tayto bootleg, Japanese) - Burnin' Rubber: Added PLDS to clone Car Action - Columns '97: Fixed controls, which was broken since 0.105 - Highway Chase (Cassette): Added dongle data (TYPE1 DONGLE (DE-0061) with alternate PROM). The dongle data is reverse engineered from manual decryption. - Mad Planets: Fixed rom names - Star Castle: Fixed rom names in clone Space Fortress (Zaccaria) - Dipswitch fixes in actfancr, aliens, angelkds, argus, asuka, bwing, compgolf, cop01, dblewing, dec8, dogfgt, dooyong, fuukifg2, homedata, jcross, kaneko16, m92, mainevt, megasys1, metro, ms32, nmk16, paradise, seta, seta2, shisen, snk, ssv, system1, taito_b, taito_f2, taito_l, tecmo, thedeep, thepit and ultraman. - MAME . Refactored resource tracking code, auto_malloc(), auto_strdup() etc into a separate module restrack.c. . Moved large stack buffers into heap buffers to work better on systems with small stacks . Fixed blitters to work with 15-bit direct RGB modes. . Fixed a subtle auditing issue when both parents and clones had NO_DUMP ROMs in their manifests. . Reorganized fronthlp.c to be one step closer to universal. One more layer of abstraction and hopefully it will be able to move up into the core. - Compiling . Added a size parameter to osd_free_executable() . Removed remaining chunks of x86 assembly code, as well as references to NASM in the makefiles. - MSVC compiler . Removed _MSC_VER specific #pragmas in nec.c . Removed _MSC_VER specific #include in winprefix.h . Changed makefile to bootstrap vconv.exe with cl instead of gcc . Changed calls to lib to use link /lib instead . Updated vconv to only use /arch:SSE2 for VC71 and later . Cleaned up the profiler code in winmain.c . Removed the direct dependency of MAME on shell32 has been . Tweaked a couple of preprocessor definitions so we compile as far back as MSVC 5.0 - Debugger: Added code in the debug build to put random data in allocated memory. 0.106u2 - NOTE: The video system in this version has been completely upended and redesigned. The old video system is still the default; however, some features may be broken. These are not bug-worthy reports, as the old system will soon be deprecated. The new system can be compiled by setting the NEW_RENDER flag on in the makefile. THE NEW SYSTEM IS STILL WORK-IN-PROGRESS! Apart from video card- related issues (like it doesn't work on particular hardware or has an incorrect display), bugs are not being tracked at this time. There is already a laundry list of things that are broken at the top of render.c, and there are many other things that still need to be looked at. In order to run the new video system with hardware acceleration, your machine will require DirectX 8 or later. - New Non-Working games: Pasha Pasha 2 and Trivia Madness - New clones: Heavy Smash, Mad Alien and 'WWF: Wrestlemania' - New drivers: pasha2.c and trvmadns.c - ADSP21062 CPU: Added support for circular buffering in the SHARC core and fixed several minor bugs. - Discrete sound . Typedef'ed external discrete sound structures to follow current structure use. Statically defined their use in most drivers to stop name pollution. . Created new DISCRETE_555_VCO1 module. This is the 555&Op-amp oscillator circuit used by Borderline. - Borderline: Added 555&Op-amp oscillator circuit (sndhrdw\vicdual.c) - Cyberball: Added dual screen support - Gaplus: Fixed rom names in clone Gaplus (alternate hardware) - Sheriff: Added color prom 82s137.3l to Sheriff and Bandido - Trivia Madness (not working): Fix question banks (sometimes the game hangs), palette, tilemap colors, remove hack for irq0 firing and add nvram. - Dipswitch fixes in Idol Janshi Su-Chi-Pie Special and Mahjong Kakumei 2 - New video rendering system . To enable it, you need to enable the NEW_RENDER makefile flag and recompile the entire project. . If you previously configured MAME to use DirectDraw (which was the previous default), then you will get software-only rendering by default. You need to explicitly enable Direct3D rendering (-d3d) in order to get hardware acceleration. Software rendering is not very fast, especially at high resolutions. . A new file render.c contains the bulk of the logic . The OSD layer is now responsible for allocating one or more render_targets at osd_init time. The old osd_create_display and osd_close_display calls are not used with the new system, so initialization must take place at osd_init time. . The old osd_update_video_and_audio call has now been replaced with a simple osd_update call. This update call passes a mame_time to the OSD layer, which is the current emulated time. Throttling and speed calculations should use this time instead of the framerate. . osd_update is responsible for calling the render system to request a list of primitives to be drawn on each render_target for the current frame. The primitives are simple and include clipping rectangles, lines, and rectilinear quads only. . If it wishes, the OSD layer can call back to a software rasterizer in MAME. The rasterizer code is provided as an include module so it can be tuned and optimized for platform-specific video modes. See windows/rendsoft.c for a usage example. . There is a new layout file format .lay, which is XML-based and which replaces the old .art files. The .lay files describe how to render to a render_target. Each layout file can contain multiple "views", which describe one of many ways the various elements can be drawn. These views can be selected at runtime via the new "Video Options" menu. . The built-in UI font can be overridden with any .BDF font. Simply name the .BDF file "ui.bdf" and place it in the MAME directory. If you run at decent resolutions, you should choose a large point size for this font so that the scaled results look nice. . The windows implementation uses Direct3D 8 as the preferred mechanism for rendering. By default, it will render at the current resolution, rather than switching resolutions as before. This can be changed by adding -switchres to the command line. . There are still a number of imperfect/incomplete features with the new renderer, which is why it is not on by default. An incomplete list is given in render.c. . Read 'Layouts and Rendering' for more informations at http://aarongiles.com/?p=161#more-161 0.106u1 - NOTE: Major video-related changes are beginning in the system. Attempts will be made to keep the existing video code working to a large degree, but some features may be broken or working improperly until the video changes are complete. Most notably, in this release, RGB effects are broken for non-Direct3D blitting. For the moment, do not report anomalies or problems in the video system. If you like a nice, stable MAME, please stick with the 0.106 release. You have been warned. - New games: --- - bfm_sc2.c + mpu4.c: Fixed MSB accesses and latch reading in the 6840 emulator (machine\6840ptm.c) - CD-ROM emulation . Additional RAW CD sector conversion support, so a game can request e.g. 2048-byte data sectors from a RAW CHD-CD and still get the right data. . Reversed CHDMAN error message - now non-RAW CHD-CDs are deprecated. - aleck64.c . Improved N64 audio output . Rewrote Audio Interface as a stereo DMADAC (which it actually is), greatly simplifying the code along the way. . Fixed AI interrupt semantics . Replaced Custom sound with 2x DMA-driven DAC in Eleven Beat and Magical Tetris Challenge - decocass.c: Fixed background color in the games (see Pro Soccer, Treasure Island and Ice Cream Factory) - micro3d.c: Fixed potential crash in the driver - taito_x.c . Fixed sound problems in Twin Hawk . Fixed a couple of dipswitch mistakes introduced recently . Added PORT_DIPLOCATIONs to Superman and Twin Hawk - Gladiator (US): Fixed input (P1 and P2 Start are mapped twice) - Polygonet Commanders . Adds change_PC() calls to the dsp56k core . Removed hacky dsp56k initialization, enabling and disabling . Added preliminary implementation of banking hardware tied to the dsp56k - Susume! Taisen Puzzle-Dama: Game uses now a RAW CHD-CD read directly from an original pressed Konami disc. - Input port . Corrected the ordering of the DIP_PORTLOCATION() macros to be consistent. Multi-bit DIP switches should be specified in LSB-first order. Added a comment to this effect in inptport.h. . Changed a number of games that were incorrectly using IPT_LIGHTGUN to use IPT_AD_STICK instead (Great Guns, Jurassic Park, Mazer Blazer, Revolution X, Triple Hunt and Turkey Shoot). - Dipswitch fixes in taito_x.c (ballbros, gigandes, kyustrkr, superman and twinhawk) - MAME . Some preparations for proper multiple screen support. The visible_area and refresh_rate values in the Machine structure are now defined as arrays (1 per screen). The machine_config structure has been altered as well, removing the following fields: frames_per_second, aspect_x, aspect_y, screen_width, screen_height, default_visible_area and vblank_duration. These are all stored per-screen in a new screen_config structure. . Reorganized the user interface code to better support the new render system . Converted the Windows blitters to use the DRC engine for generation. RGB effects are officially broken with this change. - Compiling: Modified vconv for Visual C++ to support multiple versions of MSVC based on version info, added support for more parameter translations and makefile now displays compiling and linking messages when building vconv. - Debugger: Fixed a bug that caused a crash when the -debugscript command line option was used with an invalid filename. ---------------------------------------------------------------------------------------------- 0.106 - New games: --- - model3.c: Fixed crash in the model3 games introduced by cleaning up empty ROM regions. - Compiling: Fixed vconv.exe for Visual C++ so it doesn't use options that have been deprecated in MSVC 2005. 0.105u5 - New games: Fishing Maniac 3, Hidden Catch 2 and 2x Poker (Version 50.02 ICB) - New Working games: Marine Date, Yu-Jan and Yu-Ka - New Non-Working games: Intersecti, 2x Master Boy and Poker (Version 50.08 IAM) - New clones: Selection (Version 40.02TMB) set 2 - Removed games: DoDonpachi Dai-Ou-Jou - Amiga emulation (arcadia/mquake/upscope.c): Added some Amiga enhancements needed for MESS Amiga and CDTV drivers - bfm_sc2.c + mpu4.c: More improvements to the BFM driver and the 6840 timer emulation - freekick.c . Cleaned up driver . Added 2nd button in Gigas and clone Oigas, Gigas Mark II and Free Kick . Fixed Z80 clock speed in Counter Run, Free Kick and Perfect Billiard - macs.c: . Improved the MACS driver . Fixed a couple of gfx bugs in st0016 video emulation . Added hacks to allow MACS games to boot . Changed user2/3 roms to user3/2 in Cult Name - Dead Connection: Removed non-existant 3rd & 4th player controls - Demons and Dragons, hornet.c, segaorun.c, segas16b.c, segas18.c and system24.c: Fixed a memory_set_bankptr called NULL base - Joshi Volleyball: Fixed input and numbers of players - Marine Date: Applied fixes which were mentioned in 0.105u3. Changed visible area. - Maya: Changed user1 roms to gfx1 - Monsters World: Changed user1 rom to cpu1 - Selection: Fixed rom names - Super Eagle Shot: Removed flags dispose from rom region user1 in clone (set 2) (no more crashes) - Super Real Mahjong P5: Removed flags dispose from rom region user1 (no more crashes) - Taiwan Chess Legend: Changed user1 rom to cpu1 - Dipswitch fixes in Dragoon Might (ver JAA), Joshi Volleyball and Power Balls - MAME . Extended the gfxlayout structure to support "extended" arrays of x and y offsets. These are used for layouts that are larger than 32x32. This enables the standard structure to be smaller for the vast majority of games that don't require huge graphics decodes. The end result is that the MAME .exe is ~3MB smaller. . Improvements to the x86 drc engine and the Windows blitters: Blitter CPUID features now accessed by drc_x86_get_features() call. Added win_blit_init(), to initialize the blitter. Changes to DRC to support usage for things other than CPU cores. Fixed drc_dasm() so it works once again. Added macros for a number of MMX/SSE instructions. Added a number of MMX/SSE instructions to the i386 disassembler. - Compiling . Added preliminary support for 64-bit targets. A new makefile define PTR64 should be set if you are compiling for a 64-bit target. This propogates a PTR64 define into the C files as well. Made the makefile smart enough to auto-disable the drc cores for 64-bit, and removed most of the roadblocks to a 64-bit build, apart from the assembly blitters, which are currently undergoing a rewrite. . Added experimental support for building using Visual C++ 2003/2005. To do this, you still need the mingw environment (ironically) because we rely on the mingw make system to call out to the MSVC compilers. Set the variable MSVC_BUILD=1 on the command line or by modifying windows.mak, and it will build using the Microsoft compilers. This works through the use of a stub program vconv.exe which translates gcc options into MSVC options. As a bootstrapping measure, vconv.exe is compiled at the start of a clean build by mingw. Most of the standard build options just work (SYMBOLS, MAP, DEBUG, etc). If you have a beefy computer, you can also set MAXOPT=1 and use link-time code generation for maximum optimization effect. 0.105u4 - New games: Knuckle Bash 2, Metal Slug 5 (JAMMA PCB) and Tetris (D.R. Korea) - New Non-Working games: DoDonpachi Dai-Ou-Jou - New clones: Double Dragon, Metal Slug 6, Night Slashers and SVC Chaos - SNK vs CAPCOM (JAMMA PCB) - PLD support (Programmable Logic Devices) . Added a new tool jedutil, which will convert .JED files to binary form and back again . Added new ROM region REGION_PLDS, which is designed to hold binary dumps of PLD fusemaps (produced from .JED files by jedutil) . Added logic to -romident to automatically parse .JED files to identify them against these binary dumps . Added PLD dumps to the Batman, Relief Pitcher, Pit Fighter, ThunderJaws and Vindicators (more to come shortly) . Converted PLDs for Cat and Mouse and Lazarian (Laser Battle clone) to the new binary format - ARM7 CPU: Big pile of updates/improvements to the core thumb mode and disassembler thumb mode - RSP CPU: Fixed a major bug in the core - aleck64.c + vidhrdw\n64.c . Nintendo 64 system improvements . Rewrote the PIF handling . Slightly improved triangle rendering - bfm_sc2.c + mpu4.c . Cleaned up 6840 implementation (machine\6840ptm.c) . Revised the driver's handling of unmapped regions . Updated the MPU4 memory map - liberate.c: Cleaned up driver - pgm.c: Big pile of updates/improvements to the driver - taitosj.c: Fixed another graphics corruption bug - toaplan2.c . Consolidated the read/write memory maps . Fixed coin counters on a few games . Raised the volumes on a few games . Adding input inheritance and DIPSW locations . Added conditional dependance to DIPSWs where required . Fixing a few incorrect inputs here and there - Arkanoid: Fixed rom names - Batman: Added PLD dumps and updated address map (verified from schematics and GALs) - Blasteroids: Updated address map (verified from schematics) - Cross Shooter: Improved Cross Shooter/Air Raid, but not playable due to missing gfx roms. Fixed rom loading. - Crowns Golf: Fixed rom names in clone (bootleg Set 1). - Double Dragon: Fixed rom names in all sets - Espial: Changed Espial (Europe) to parent set - FixEight: Fixed input - Gauntlet/Gauntlet II: Added proms (timing, flip control and position/size) and full address map verified from schematics - Knights of Valour 2: Fixed sound1 rom address an added missing ARM7 CPU to the clones - Martial Masters: Added ARM7 CPU - Michael Jackson's Moonwalker: Fixed mcu rom length - Net Wars: Fixed prom names - Oriental Legend Super / Special: Started simulation protection - Perfect Billiard: Fixed colors, music tempo and gfx2 roms loading - Power Balls: Fixed OKI frequency in clone (Super Slam conversion) - Rack 'em Up: Changed game to parent set - Super Slam: Fixed OKI frequency - Vindicators Part II: Added proms (timing, flip control and position/size) - Wardner: Fixed ram/rom bankswitching - Xybots: Updated the address map (verified from schematics) - Artwork: Fixed UI positioning when artwork is enabled. This fixes Space Invaders OK screen & FPS counter, which doesn't fit on the screen. - Description changes of aof3k, olds, olds100, olds100a and rbff2k - Dipswitch fixes in afega.c, bfm_sc2.c, Boomer Rang'r, Bullfight, Choky! Choky!, ddragon.c, FixEight (bootleg), Horizon, m72.c, Magic Bubble, Mystic Riders, Ninja Baseball Batman, Thunder Strike, toaplan2.c and Twin Action - MAME: Added a NULL check on memory_set_bankptr(), memory_configure_bank() and memory_configure_bank_decrypted() - Debugger . Added function to change the number of bytes displayed per row in the debugger memory window . Fixed bug in the debugger that would prevent you from typing a command line longer than what was visible 0.105u3 - New games: Poker (Version 50.02) and Up Scope - New Working games: Puzzle Star and Speed Up - New Non-Working games: The Gladiator - New clones: Amidar, Eco Fighters, Moon Cresta, The Pit and Xexex - New drivers: upscope.c - ES5503: Support for ES5503 sound (Moonquake) - Amiga emulation (arcadia/mquake/upscope.c) . Fixed dual playfield mode . Rewrote blitter code (fixes glitches in ar_bowl and others) . Changed Arcadia boot loading to use ROMtags instead of autoconfig . Swapped Kickstart 1.2 in for Arcadia BIOS . Refactored the 8530 CIA code from the Amiga into a separate module and made it support both the 6526 and 8530 variants - cps2.c: Uncommented/added missing undumped ROMs/XORs - decocass/taitosj/vicdual.c: Fixed graphics corruption - model3.c: Changed user3/4 roms to 'flags dispose' - namcona1.c: Uncommented/added missing undumped ROMs to the driver. Added M37702 BIOS (labeled as Namco custom C70) fake rom to Knuckle Heads, Numan Athletics, Nettou! Gekitou! Quiztou!! and X-Day 2. - pgm.c . More improvements to the PGM video code . Added hooks for halting the sound CPU which allows ddp2 to boot . Fixed sound1 rom loading - Bonze Adventure: Fixed levels 2 and 9 - Burnin' Rubber: Added missing proms to clone Car Action - Chequered Flag: Fixed bank switching - Exed Exes: Removed second AY8910 sound - Lost Castle In Darkmist: Added controls for 2nd player in cocktail mode - Moonquake: Added ES5503 sound and fixed input - Mysterious Stones: Fixed bad tiles (vidhrdw\mystston.c) - Puzzle Star: Simulated protection - Radikal Bikers and Surf Planet: Changed user4/5 roms to gfx1/2. - Sidewinder (Arcadia): Fixed game by swapping the Kickstart 1.2 in for Arcadia BIOS - Speed Up: Added new user1/2 and gfx1 roms, fixed gfx2 rom loading and input. - World Darts (Arcadia): Added new user3 rom dart_1l.bin - Terminator 2: Changed control from lightgun to stick - Xexex: Fixed rom names in version (ver EAA) and (ver JAA) - Input port: Fixed incorrect lightgun names - Dipswitch fixes in The Astyanax, Avenging Spirit, Bad Dudes, Birdie Try, Boulder Dash, Cybattler, dec0.c, Diet Go Go, Hippodrome, Heavy Barrel, Lost Castle In Darkmist, megasys1.c, Midnight Resistance, Moonquake, Mysterious Stones, Peek-a-Boo!, Robocop and yunsun16.c - MAME . Fixed some remaining errors and inconsistencies in the content and usage of MAME header files by comparing declarations against actual definitions. Removed many orphaned/duplicate declarations. Added #includes where appropriate, and moved a few declarations to another file when they were in the wrong location. . Removed a number of unused ROM regions. Most (but not all) of the empty ROM region warnings are now taken care of. - Windows rendering code . Fixed blit_vectors so it used the dirty pixel array in D3D mode . Fixed blit_vectors rotation issue for dirty pixels as well . Changed -full_screen_brightness to -full_screen_gamma (which is a more correct description) . Changed -d3dfilter to be a boolean, since the other filtering modes are either obsolete or not applicable to MAME . Removed limitations on windowing position so you no longer need to be aligned on an 8-pixel boundary . Cleaned up a number of unused global variables . Improved multi-monitor support to work in GDI mode as well as in non-full-screen modes . Added missing documentation for the -screen parameter 0.105u2 - New games: Mang-Chi and New Hidden Catch - New Non-Working games: Over Rev, Sega Ski Super G, Sliver and Total Vice - New clones: Abscam, Billiard Academy Real Break, Carrier Air Wing, DJ Boy, Ms. Pac-Man, Plasma Sword and Puck People - New drivers: sliver.c - PowerPC CPUs: Fixed floating point rounding error in the PowerPC FPU - MC6821 PIA . Some function cleanups . Converting to new MAME struct conventions . Enforcing that configuration/initialization happens only at init time - arcadia / mquake.c: . Rewrote autoconfig system to be more generically useful . Cleaned up/rewrote the CIA emulation to be more complete . Added dual playfield and sprite priority support . Added collision detection support . Tweaked COPPER timing . Shuffled the BIOSes so that the newer version is the defaul - dgpix.c: Fixed E1-32XT CPU1 clock speed in King of Dynast Gear and X-Files - eolith.c: Added missing AdMOS wavetable rom and fixed E1-32N CPU clock speed in all games - model3.c: Swapped sound1 roms in Emergency Call Ambulance, Fighting Vipers 2 and Spikeout +/ Final Edition - pgm.c . Reorganized and cleaned up the sprite drawing code . Added zooming support . More work on the protection in Killing Blade - PS-based games (konamigq.c, konamigv.c, namcos10.c, namcos11.c, namcos12.c and zn.c): Fixed the 'Fatal error: Invalid data type' crash - toaplan2.c: Fixed crashes in Armed Police Batrider and Battle Bakraid /- Unlimited version - yunsun16.c: Fixed OKI6295 clock speed in Bomb Kick and Shocking - Magic Johnson's Fast Break: Tweaked Amiga COPPER timing to fix scores - Evil Night: Added timekeeper EEPROM - Croupier (Playmark Roulette) . Some improvements (still doesn't quite work properly) . Added new cpu1 roms and fixed input - Flying Shark: Changed all user1 roms to cpu3 and fixed rom loading - Heat of Eleven '98: Added timekeeper EEPROM - Mahjong Electron Base: Added missing gfx blitter data rom - Moonquake: Fixed number of players + buttons, input and VSync - Showdown: Fixed start button ('Action') - Tobe! Polystars: Added serial EEPROM - Top Roller . Fixed colors and gfx bugs (there's still minor problem with fg text layer colors) . Added better audio with samples rom . Added proms (big sprites, sprites+fg, sprites, 2x bg and unknown) . Fixed visible area and palettesize - Wardner: Changed all user1 roms to cpu3 and fixed rom loading - Save States: Added PAIR and PAIR64 as valid save state types - Dipswitch fixes in Dangar - Ufo Robo, Galivan - Cosmo Police and Monsters World - Description changes of Croupier (Playmark Roulette) - MAME . Made "This game doesn't work" text more explicit - ui_text.c (UI_brokengame) = "THIS " CAPGAMENOUN " DOESN'T WORK. You won't be able to make it work correctly. Don't bother." 0.105u1 - New games: Pang Pang, Puzzle King (Dance & Puzzle) and Sex Triv - New Working games: Crazy Fight and Fighter's History - New clones: Battle Bubble, Bonze Adventure, Fantasia II and The Killing Blade - 68040 CPU: Added many FPU opcodes to the core - H8/3002 CPU: Added several missing H8 opcodes to the core - TMS320C51: Support for TMS320C51 cpu - Z80 CPU: Fixed Z80 PIO code to prevent an interrupt to occur between the PIO_OP_MODE byte and mask which follows. According to the datasheet, this is not permitted in hardware. - 6821 PIA: Added accessors for the CA2, CB2 and IRQ signals - aleck64.c: Split out some of the Nintendo 64 core pieces into MESS-shareable modules - arcadia.c . Rewroted a large chunk of the Amiga emulation to support Custom stereo sound . Added additional video modes/effects including extra half-bright mode . Added manual sprites and mid-scanline changes . Modified driver which uses empty RAM regions for RAM or had extraneous memory regions . Changed visible area and VSync . This is still work-in-progress - cave.c: Fixed watchdog/reset in Metamoqester and Mazinger Z (games doesn't start) - cps1/2.c: Updated drivers to more accurately draw tilemaps, based on evidence from a board with mixed ROMs. - namcos22.c: Added BIOS MCU rom c74.bin (cpu4 - nodump) - nss.c: . Modified driver which uses empty RAM regions for RAM or had extraneous memory regions . Changed user3 to user3 flags dispose roms - pgm.c: Corrected mask on sprite width parameter in sprite list - stv.c: Modified driver which uses empty RAM regions for RAM or had extraneous memory regions - taito_f3.c: Added version numbers to the games descriptions - taitojc.c . Affected games are Densya De Go / 2, Landing Gear and Side By Side / 2 . Added TMS32051 CPU4 . Fixed gfx/user3 rom loading, year and palettesize - All American Football: Added new cpu1 rom to clone (rev B) - Bonze Adventure: Accurated C-Chip emulation to fix protection problems (no more missing or made up data, all data extracted from working pcb) - Crazy Fight: Added YM3812 sound, fixed gfx rom loading and changed visible area - Enduro Racer: Added new cpu2 roms to parent version (YM2151, FD1089B 317-0013A) - The Killing Blade: Corrected decryption function, fixed gfx rom loading and added some WIP protection simulation for clone (Taiwan?), game boots but at least one stage is broken. - Last Fighting: Added color DAC to the driver - Pang Pang: Added simulated PIC16C57/OKI6295 sound - Sea Hunter Penguin: Added proms (prom 1.17g is from Dragon Punch) - Tumble Pop: Added simulated PIC16C57/OKI6295 sound for clone (bootleg set 2) and fixed OKI6295 clock speed in clones (bootleg set 1/2) - Save States . Changed memory save state registration so it doesn't register for saving memory areas that overlap memory regions. This means that drivers which rely on extra memory regions for RAM will need to fix that before supporting save . Added stricter type checking for save state registrations (only works in gcc) - Dipswitch fixes in Bang Bang Ball, Crazy Fight, Gun Master and Pig Newton - Description changes of Sea Hunter Penguin - MAME . Changed automatic ROM assignment logic in the memory system so that it doesn't auto-assign out-of-bounds ROM regions . Cleaned up the usage of includes/*.h files across the project, by ensuring that: 1. All includes/foo.h files are annotated with comments describing the source of the declarations. 2. Each source file so annotated also explicitly does an #include "includes/foo.h" to ensure consistent definitions. Along the way a number of inconsistent, irrelevant and incomplete declarations were removed/cleaned up. . Moved region and address space names out of the Windows-specific code and into more common locations . Modified a number of drivers that were using empty RAM regions for RAM or which had extraneous memory regions. Most significant changes were to the arcadia, nss, and stv drivers. . Added a warning during validity checks to point out empty memory regions. These should either be eliminated or marked with an explicit fill value (ROMREGION_ERASE00 or ROMREGION_ERASEFF) to clear the warnings. . Changed -romident option so that it returns errorlevels based on how many ROMs were identified (0=all files identified, 1=all files except some non-ROM files identified, 2=some files identified, 3=no files identified) - Compiling . Removed hard linkage of game driver clones. This reduces hard inter-driver dependencies and allows for easier usage of tiny.mak. . Moved calls to ui_set_visible_area() into set_visible_area() to work around timing problems when they are called at separate times during a single frame . Added $(OBJ)/%.s target to the makefile for easy disassembly analysis of generated code (you can also use the $(OBJ)/%.pp to examine preprocessor output) - Debugger . Fixed crash bug in old debugger introduced in the last release . Fixed a bug with code comments that led to incorrect display for long comments ---------------------------------------------------------------------------------------------- 0.105 - NOTE: IMPORTANT CHANGES FOR OSD DEVELOPERS: There have been several changes this cycle that impact you. Please scan this file in detail for the details. - New games: --- - stv.c: Added the Dev 1.061 and early Japan bioses for ST-V: 'stv1061.bin' = ST-V Dev Bios (1.061) - Sega 1994, Noted "ST-V Ver 1.061 94/11/25" on EPROM sticker, coming from a S-TV SG5001A dev board and 'epr-17740.bin' = ST-V Bios (Japan early) - Sega 1995, found on a early board dated 02/1995. - system24.c: Fixed the save state support (when you attempt to save state, the game crashes) - vidhrdw\segaic16.c: Fixed crash in System 16 games introduced by last update (segahang.c, segaorun.c, segas16b.c, segas18.c, segaxbd.c and segaybd.c) - Jump Kids: Added sound and fixed OKI6295 frequency - Little Robin: Some more progress and fixed visible area - Paradise Deluxe: Added new gfx3 and sound2 roms - Power Drift: Fixed cpu1 rom names in all sets - Dipswitch fixes in Cookie & Bibi 3 and Honey Dolls 0.104u9 - New Working games: Joshi Volleyball and Toppy & Rappy - New Non-Working games: Battle Tryst, Evil Night, Heat of Eleven '98, Sega Rally 2 DX, Stepping Stage and Tobe! Polystars - New clones: Eyes, Final Fight, Get Star, Ninja Kazan, Power Drift, Puzzle Uo Poko, River Patrol, Slap Fight and Toride II Adauchi Gaiden - New drivers: konamim2.c and stepstag.c - CarnEvil: Fixed option screen (F2), which was is screwup (vidhrdw\voodoo.c) - Cerberus: Fixed CPU2 bankswitching, which shows several problems that make it unplayable - F1 Exhaust Note: Fixed engine noise looping (sound\rf5c68.c) - Great Swordsman: Fixed game, which was broken in an earlier update - Joshi Volleyball: Fixed rom loading and removed MSM5205 sound - The King of Fighters 2003: Added decryption of 271-p3_decrypted.bin ROM in version (World / US, MVS) and (Japan, JAMMA PCB) - Power Drift: Fixed rom names in all sets - Rave Racer: Fixed game, which crashes after the EEPROM INITIALIZE screen - Toppy & Rappy: Added protdata.bin, this contains the code for 2 of the IRQ functions, but the game only uses one of them, the other is executed from ROM. The version in ROM is slightly patched version so maybe there is an earlier revision which uses the code provided by the MCU instead. - Save States: Undo the use of timers to trigger save/restore of states. This leads to one less timer in the system, and hence will break the save states from previous versions. The current save state system is extremely sensitive to such changes, unfortunately. This will be addressed in a future version. - Dipswitch fixes in Joshi Volleyball and Toppy & Rappy - Description changes of Toppy & Rappy - MAME: Cleaned up error logging so that it is callback driven, allowing more than one potential output source. Fixed the -oslog option in the Windows build. - Compiling: Fixed makefile to allow command-line override of MAMEOS and TARGET variables - Debugger - Changed comment prefix in debugger command scripts from '#' to '//' - Fixed "do" command in the debugger 0.104u8 - NOTE: IMPORTANT CHANGE FOR OSD DEVELOPERS: osd_logerror is no longer used. Rather, for error logging you provide a handle to a mame_file in the options.logfile field. If you leave this set to NULL, no logging will be done. - New games: Paradise Deluxe and Sea Hunter Pengiun - New Working games: Champion Baseball (Japan set 1/2), Champion Baseball II, Exciting Soccer II, Shougi / 2, Talbot and Wink - New Non-Working games: Tappy & Rappy - New clones: Do! Run Run, Fighters' Impact, Final Lap R, News, Rave Racer, Silent Scope, Slap Fight, Star Fighter, Wild West C.O.W., OutRunners and Wink - Alpha 8201/8301 MCU: Added emulation of the Alpha 8201/8301 MCU and connected it to Champion Baseball (Japan set 1/2), Champion Baseball II, Exciting Soccer / II, Shougi/2 and Talbot. Fixed AY8910 clock speed. - cclimber.c: Fixed driver (rpatrolb, silvland, cannonb and cannonb2: The emulation starts for each but the game immediately shows a static screen) - galaga.c: Added save state support - m92.c: Fixed rom names in Gunforce, Gunforce 2, Hook, In The Hunt, Major Title 2, Perfect Soldiers and R-Type Leo - maxaflex.c: Fixed driver (crashed if you use a audio sample rate of 22050 Hz) - segar.c: Fixed Z80 CPU1 clock speed in 005, Astro Blaster, Monster Bash and Space Odyssey - segaybd.c: Added save state support - zodiack.c: Fixed driver sound interrupt ('The Bounty' stops at boot and the other games have missing AY8910 sound) - Block Block: Fixed level 6 and clone (World) - Congo Bongo: Fixed second SN76496 frequency - Don Den Lover Vol. 1: Fixed colors - Dragon Breed: Fixed rom names in verion (M72 pcb version) - Heaven's Gate: Fixed cpu2 rom loading - Jump Kids: Fixed 68000 CPU1 clock speed, OKI6295 sound and rom names. Added Z80 CPU2 and new cpu2 and gfx2 rom. - Kung-Fu Master: Added new cpu2 and gfx2 roms to version (Data East) and fixed rom names - Pig Newton: Hooked up Sega Universal Sound board. Fixed Z80 CPU1 clock speed and added I8035 and Custom sound. - Taisen Quiz HYHOO: Fixed game which was broken in the last round of changes - Teenage Mutant Ninja Turtles: Fixed the bottom cloud in the opening sequence - Turbo Out Run: Fixed reset bug - Wink: Fixed most of the remaining issues in Wink, though there is still some unemulated protection. Fixed Z80 CPU1 clock speed and AY8910 sound. Added Z80 (1.5MHz) CPU2 and dipswitches. - Save States: Improved the "out of context" error message to indicate the source of the problem - MAME . Added cpunum_set_clock_period(), a variation of cpunum_set_clock() that takes subseconds_t, providing better granularity. . Moved logerror handling into the core. OSD ports should set options.logfile to a mame_file handle for the output file. . Added -validate / -valid command to perform system-wide validation and exit with a proper errorcode. Performs internal validation on every driver in the system. Run this before submitting changes to ensure that you haven't violated any of the core system "rules". 0.104u7 - NOTE: All newly-introduced bugs due to the core changes have been fixed. If you find anything else that is broken, please let MAMETesters know right away. - New games: TX-1 - New Working games: Crystal Gal and Crystal Gal 2 - New clones: Mahjong Hana no Momoko gumi (Japan 881125) and Circus Charlie (Selectable level set 2) - balsente.c: Fixed save state support in the driver - I8039 CPU: Updated the disassembler to the new interface - dbz.c . Updated games to use the K056832 chip emulation, fixing color offsets and priorities . Changed driver dbz2.c to dbz.c - harddriv.c: Fixed number of players in all games - nbmj8688.c, nbmj8891.c, nbmj8991.c and nbmj9195.c . Fixed key input problems in many of the Nichibutsu mahjong drivers . Fixed bugs upsidedown0103yel, mgion0104u6yel and hyouban095u2red - model1.c: Deleted #include in vidhrdw\model1.c (games in this driver, VF for example have gone from 60fps to 6fps in a non-debug non-optimized build. No error log being generated) - PSX emulation . konamigq.c, konamigv.c, namcos10.c, namcos11.c, namcos12.c and zn.c - especially Tekken Tag Tournament and Judge Dredd . Switched MDEC decoding input from CbCrY to CrCbY, and switched MDEC 15bit output from rgb to bgr - sega.c (Sega vector games) . More improvements to the Sega Universal Sound board . Star Trek is almost identical to the samples . Tac/Scan is not that far off, surprisingly - segas32.c: Fixed indirect palettes in driver - stv.c: Fixed games which always resets at the begining - vegas.c: Fixed Gauntlet Dark Legacy and Gauntlet Legends game craches - A. D. 2083: Fixed game (stops at boot. It has happened from 0.104u3) - Buggy Boy: Added road video timing prom to version (Single Monitor) - Circus Charlie: Fixed rom names in all sets - Oh My God!: Fixed game broken in 0.104u6 - Parallel Turn: Added simulation of protection - SegaSonic The Hedgehog: Fixed game graphics finally - Trivial Pursuit (Spanish Edition): Added save sta