0.118 ----- Source Changes -------------- Changed INI parsing so that mame.ini is parsed twice, picking up changes to the inipath. [Aaron Giles] Fixed bug in options handling introduced with recent changes. [Nathan Woods] Fixed macros in stvcd.c to work with C89 compilers. [Mike Haaland] Fixed some more 64-bit warnings and unused functions. [Oliver Stoneberg] Fixed DIP switch "Difficulty" in fstarfrc. Also added DIP locations to the tecmo16 driver. [BisonSAS] Simplified the nemesis video driver code. [Atari Ace] Modularized the TMS5220 code. [Lord Nightmare] Fixed issues with recent R-Type ROMset. [Brian Troha] Fixed a number of issues in the HD6309 core. [Darren Atkinson] Sync with AGEMAME: [James Wallace] * removed the 'lamps.c' module from the source tree * cleaned up names in the BFM BD1 driver * moved VFD drawing functions out of the video update * overhauled the sound system in the MPU4 driver Changed windows builds so that all tools use the utf8_main entry point consistently. [Aaron Giles] New games added or promoted from NOT_WORKING status --------------------------------------------------- Dancing Stage Euro Mix 2 [smf] New clones added ---------------- Maximum Force (No Gore version) [Brian Troha] 0.117u3 ------- MAMETesters Bugs Fixed ---------------------- headon0117u2ora [Aaron Giles] numpadremap0117u2gra [Aaron Giles] joystick0117u2gra [Aaron Giles] NewUI0117u2ora [Aaron Giles] mtrap0117u2ora [Aaron Giles] verifyroms0117u2ora [Aaron Giles] Source Changes -------------- Added some more setup code for the Naomi driver. [R. Belmont] Improved DIP switches in powerins driver. [BisonSAS] Added some basic cdrom switching to the system 573 driver. Hooked it up for best of cool dancers to work and the Club versions. Added DIP locations. Moved fake switches to the configuration menu. [smf] Added preliminary video hw emulation and sound support to the 2 Minute Drill driver. [Tomasz Slanina] Added an optional vsync callback to the TIA emulation to allow a driver to dynamically change the screen configuration. [Wilbert Pol] Cleaned up redundant function names. [Atari Ace] Changed CreateWindowEx() call to be win_create_window_ex_utf8(), removing the need for a string conversion. [Nathan Woods] Fixed running the konamigx BIOS on its own do what it should: display a scrolling marquee telling the operator to attach a ROM board. [Alex Jackson] Added new debugger commands for hardreset and softreset. [Nathan Woods] Added built-in support for 14-segment and 16-segment LEDs with comma/period additions. Split vacfdisp into component specific drivers. The system now supports the Rockwell 10937 (aka MSC1937) and 10957, as well as the BD1. All relevant drivers have been updated with the new code, and new layouts have been prepared. [James Wallace] Fixed a few more 64-bit build errors. [Aaron Giles] Separated build tools from general tools. Build tools are now located in the build/ subdirectory. [Aaron Giles] Added new general library module astring.c, which supports allocated strings of arbitrary length and a number of basic functions on them. [Aaron Giles] Replaced assemble_x_strings() functions with the astring equivalents. Updated code in several places to use astrings where appropriate. [Aaron Giles] Added new tool src2html which is used to convert the MAME source tree to HTML format with linked include files and color coded keywords and comments. [Aaron Giles] Converted the memory pool code to a more generic resource pool. Changed internal MAME tracking of timers and save state registrations over to using the new system. [Aaron Giles] Removed underscores from some keycode token names. Thus, KEYCODE_0_PAD now becomes KEYCODE_0PAD. This is to prevent confusion when parsing multiple keyboard items. Due to this change, also removed imperfect backward compatibility with older configs; some mappings will still work, but some won't. Note that this change will also break some existing ctrlr files; new ones will be provided. [Aaron Giles] Did some cleanup of the tilemap interfaces. Changed tilemap type constants to be an enum prefixed by TILEMAP_TYPE_* instead of simply TILEMAP_*. Removed unused members from the tile_info structure. [Aaron Giles] New clones added ---------------- Cross Blades! (Japan) [Stefan Lindberg] Shadow Force (Japan Version 2) [Stefan Lindberg] Dig Dug (Sidam bootleg) [David Haywood] Dance Dance Revolution Best of Cool Dancers [smf] New games marked as GAME_NOT_WORKING ------------------------------------ Astron Belt [Andrew Gardner] Cobra Command (Sega LaserDisc Hardware) [Andrew Gardner] Galaxy Ranger [Andrew Gardner] Star Blazer [Andrew Gardner] 0.117u2 ------- MAMETesters Bugs Fixed ---------------------- joystickremap0117u1gra [Aaron Giles] mallocerror0117u1gra [Aaron Giles] mouse0117u1gra [Aaron Giles] newinterface0117u1gra [Aaron Giles] tapper0102gre2 [Ernesto Corvi] timber0100u3gre [Ernesto Corvi] tapper0102gre1 [Aaron Giles] timber099gre [Aaron Giles] mcr0103u3yel [Aaron Giles] dotrone0101u5yel [Aaron Giles] Source Changes -------------- Imola GP updates: [Phil Stroffolino] - renamed from "monzagp" - the leds are fully mapped - fixes for blitter modes, that affect the "tunnel" area - dipswitch/port fixes; game now starts in attract mode, rather than immediately starting - placeholder (handpicked) colors Updated DIP switches for topland & ainferno according to their manuals. [Fabio Priuli] More SH-4 core improvements: [Samuele Zannoli] - fixes some problems in the disassembly and instruction execution from the previous patch - adds interrupt management - implements register bank switching - adds RTC timer counters - adds memory refresh timer - adds three timers of the TMU - adds a configuration structure that specifies the processor mode pin settings - internal processor clock frequencies calculated from mode pins and cpu clock - systems using the sh4 processor secify its configuration structure Fixed some DIP switches in littlerb. [Sonikos] Made some minor code quality changes across the code: [Atari Ace] - avoided exporting a few global variables - fixed variable names that conflicted with typedef names - removed some shadow variables that were bugs or unnecessary - removed extraneous #defines Fixed up sc61860 core, f3853 core, and pckeybd.c to work with new timing code. [Nathan Woods] More TIA improvements: [Wilbert Pol] - fixed some minor missile graphics positioning issues - moved some initialization code from tia_init to tia_reset Fixed a few errors related to headers in the source code. Added missing self-includes, removed dead prototypes, and added location comments in headers in mame/includes. In a few cases the audit showed items that didn't need to be exported so they were made static. [Atari Ace] Cleaned up the inputs in gdrawpkr and changed the hold buttons to "discard" since they are in fact discard buttons. [Roberto Fresca] Added support for 14- and 16-segment LED displays to the MAME artwork system. [Dirk Best] Fixed button 4 of player 2 inputs in bloodwar. [Barry Harris] Connected S14001A speech to the wolfpack driver. [Lord Nightmare] Fixed incorrect implementation of SSIO volume controls in the MCR driver. This makes the engine sound in Spy Hunter audible again, among other things. [Ernesto Corvi] Added support back for the "none" option for the various *_device options. [Nathan Woods] Fixed HD6309 dissaembly of the post-byte for ,W++ and ,--W. [Captain Ahab] Updated the 6532 riot interface to be more like the 6522via and 6821pia interfaces. [Wilbert Pol] Improved -listxml output to reflect new BIOS flag. New attribute isbios="yes" indicates that a given game is a BIOS. [Aaron Giles] Further tweaks to the game selection UI: [Aaron Giles] - disabled the tab key - added hook for general input configuration from the menu - split set names from friendly names into left/right columns - added a background to the descriptive names of clones - if you start with the game selection menu, hitting Esc to exit a game brings you back to the menu rather than quitting immediately - fixed logic so that INI files are reloaded for each game Moved INI file handling fully into the core. As a side-effect of this change, .ini is no longer parsed. Changed -createconfig to always output mame.ini instead of .ini as a result. [Aaron Giles] Renamed run_game() to mame_execute(). The game driver is no longer specified as a parameter; rather, this information is extracted from the options via OPTION_GAMENAME. [Aaron Giles] Fixed raw input-based lightgun buttons. [Aaron Giles] Cleaned up options.c code. Added priority levels to options as they are set. New options are only accepted if they have greater or equal priority to a previous change. Added new function options_revert() to revert options below a given priority to their defaults. Changed options_get_string() so that it always returns a valid string (never NULL). Invalid strings are returned as empty strings. [Aaron Giles] Added new functions core_filename_extract_base() and core_filename_ends_with() to corefile.h. [Aaron Giles] Changed menu rendering a bit. Added a background hilight to more strongly emphasize the current item. Added rendered arrows to indicate more items on the top/bottom and to indicate selection options in the DIP switch menus. Changed hilighting to be a bit less garish. Fixed repeat rates on keys to no longer be tied to the framerate. [Aaron Giles] Added support for page up/page down generically in menus. Also made pause toggle work while menus are visible. [Aaron Giles] Changed render_textures to allocate in a pool model, to avoid high memory overhead when allocating large numbers of textures (for example in the 14- and 16-segment LED displays). [Aaron Giles] Fixed a number of 64-bit compiler warnings. [Aaron Giles] New games added or promoted from NOT_WORKING status --------------------------------------------------- King Pin [Andrew Gardner] King Pin Multi-Game [Andrew Gardner] 0.117u1 ------- MAMETesters Bugs Fixed ---------------------- brkthru091u1gra [Luigi30] debbuger+psx_0117ora [Aaron Giles] cbtime0117red [Zsolt Vasvari] hotpinbl0117gra [Roberto Fresca] batrider0114red [Alex Jackson] battleg0113u4red [Alex Jackson] battleg0116u1ora [Alex Jackson] Source Changes -------------- Fixed bug in screenless systems. [Nathan Woods] Fixed crash in chd code if reading beyond the end of the file. [Roman Scherzer] Moved Sand Scorpian and Gals Panic over to use the Pandora emulation. Also fixed some problems in the pandora emulation which improves the sprites in Djboy. [David Haywood] Added new function timer_call_after_resynch(), which effectively sets a zero-duration timer for resynchronization. Replaced instances of zero-duration timers in the code with this more descriptive call. [Zsolt Vasvari] Defined new macro TIMER_CALLBACK, which should be used to wrap timer callbacks. Added a running_machine * parameter to timer callbacks. Updated all existing timer callbacks to use the new macro. [Zsolt Vasvari] Added more opcode decryption to gussun. [Robiza] Added discrete sound to headon and clones in vicdual.c. [couriersud] Added two inverter oscillators supporting enable and mixing in signals to discrete.h / disc_wav.c. [couriersud] Fixed a few bugs in the change lanes video emulation. [Adam Bousley] Updated the monzagp driver into a somewhat playable state. There are still some graphics problems. LEDs still need to be hooked up for score/time-remaining display. [Phil Stroffolino] Neo-Geo update: [Zsolt Vasvari] - BIOS only driver 'neogeo' no longer crashes - Cleaned up memory banking code to use memory_set_bank() instead of memory_set_bank_ptr() - Fixed LEDs Improvements to the toaplan2 driver: [Alex Jackson] - Replaced byteswapped truxton2 M68K program ROM with correct one - Fixed sound CPU communications in the Raizing games. This is educated guesswork, but it's more complete and probably more correct than what was there before, and doesn't rely on excessive use of cpu_yield() - Added more information about the Raizing sets to the comments in the driver, and corrected some errors - Reorganized the Battle Garegga sets in a more sensible fashion Reworked input system to push more features into the core. Cleaned up architecture to properly separate dependencies. Please note that this change only addresses the lower layer of input handling. The upper layer (i.e., input port handling at the driver layer) remains the same. [Aaron Giles] Major changes include: * Removed the concept of os_code from the system. Now all codes are defined via a set of macros in input.h. Each code is a 32-bit value that encodes a device class, device index, item class, item modifier, and item ID. * Removed OSD functions osd_get_code_list() and osd_get_code_value(). Instead, the OSD layer during osd_init() must register one or more devices and the input items attached to each device via two new functions input_device_add() and input_device_item_add(). * Separated input sequence code into new module inputseq.c. * Moved support for the following options into the core: -mouse, -joystick, -lightgun, -steadykey, -offscreen_reload, -joy_deadzone, -joy_saturation, -paddle_device, -adstick_device, -pedal_device, -dial_device, -trackball_device, -lightgun_device, -positional_device, -mouse_device. The OSD layer should simply register all devices at osd_init() time and allow the core to enable/disable them according to the options. * Added two new options: -multikeyboard and -multimouse. By default, both options are OFF. When OFF, the core will combine all keyboard or mouse input into a single keyboard or mouse device. When ON, these options instruct the core to keep inputs for each keyboard and/or mouse independent. * Added new option: -joystick_map. This option allows for a 9x9 grid to be specified which controls analog-to-digital mapping of joystick inputs. * Changed the Windows implementation of input handling to fully support the raw input interfaces for keyboard and mouse. DirectInput is still used for all joystick inputs, as well as for keyboard and mouse inputs on pre-Windows XP systems. This allows for multiple keyboards and mice to be supported. Also changed keyboard and mouse behavior to use non-exclusive mode in DirectInput, and to keep the devices alive during pause for more consistent input handling. * Broke windows.txt into config.txt, which contains all common core-supported options and commmands, and windows.txt, which now only lists Windows-specific additions. Added support for frame update callbacks, similar to pause and exit callbacks but called at the same time as osd_update(). [Aaron Giles] Changed osd_init() to no longer return a value. OSD initialization should now rely on fatalerror() to report fatal initialization problems. [Aaron Giles] Added new function mame_schedule_new_driver() which allows for a new driver to be queued after a hard reset. [Aaron Giles] Added experimental new minimal game selection user interface. This interface can be accessed if MAME is started with no parameters, or via the main menu by choosing "Select a New Game". This interface allows you to select a game driver by typing in the name of the game. As you type, MAME's fuzzy name matching code will list the top 15 selections that match. The interface will only display games that it finds in your rompath. [Aaron Giles] Added "empty" driver which is used to host the game selection screen when no valid game is selected. [Aaron Giles] Changed behavior in the Windows build so that double-clicking on MAME brings up the new game selection interface. [Aaron Giles] Removed the NOT_A_DRIVER flag which was overloaded to mean two different things. There are now two new flags: GAME_IS_BIOS_ROOT indicates that a particular driver represents a BIOS rather than a full game. And GAME_NO_STANDALONE indicates that the given driver should not be listed or permitted to execute on its own. For MAME, most BIOSes are executable on their own, so they have the GAME_IS_BIOS_ROOT flag set but not the GAME_NO_STANDALONE flag. [Aaron Giles] Added new routines mame_openpath(), mame_readpath(), and mame_closepath() for iterating over all files in a path specification, including support for multiple paths. [Aaron Giles] Changed audit interfaces to take a game_driver * instead of a game index. [Aaron Giles] Changed driver_get_approx_matches() and driver_get_count() APIs to work on arbitrary driver lists rather than being hard-coded to the static driver list. Renamed the functions from driver_get_* to driver_list_get_* [Aaron Giles] New games added or promoted from NOT_WORKING status --------------------------------------------------- Sliver [Tomasz Slanina] New clones added ---------------- Space Dragon (Moon Cresta bootleg) [David Haywood] Battle Garegga - Type 2 (Europe / USA / Japan / Asia) [Alex Jackson] New games marked as GAME_NOT_WORKING ------------------------------------ Gals Panic (US, EXPRO-02 PCB) [David Haywood] Balloon & Balloon [Pierpaolo Prazzoli]