0.173 ------- MAMETesters Bugs Fixed ---------------------- - 04965: [Interface] Games with no screen produce no "final.png" with -STR [Osso]. - 06170: [Compiling] OpenMP: OpenMP-enabled builds of MAME 0.172 fail to compile [Jindřich Makovička]. - 06176: [Crash/Freeze] (ksys573.c) All sets in ksys573.c using CD: Unable to boot [crazyc]. - 06019: [Interface] Wrong default bios outputted with -listxml command [dankan1890]. - 06175: [Misc.] (apple2.c) apple2jp: Ctrl-T = Inverse kana? [R. Belmont]. - 06182: [Core] (cgenie.c) All sets in cgenie.cpp: Crashing upon starting! [Fabio Priuli]. - 06163: [Misc.] (apple2e.c) apple2e: XPS Diagnostic IIe test failed! [R. Belmont] - 06074: [DIP/Input] (glasgow.c) glasgow: Mouse no longer able to move chess pieces [Robbbert]. - 06173: [Core] All software saving SRAM: Software loaded outside of software list (e.g. -cart PATH_TO_ROM) fails to save SRAM [dankan1890]. - 06172: [DIP/Input] (sms.c) Default input mapping for two paddle devices causes a conflict [AJR]. - 06178: [Crash/Freeze] liblrabl: Reset during second loop of attract mode [Angelo Salese]. Source Changes -------------- - New Android icon images [JacKc]. - Compressed internal layouts [David Haywood]. - TMS5220/5110 merge Part 1 [Lord Nightmare]. - Iterate over core classes C++11 style [AJR]. - Borrow string processing code from ui.cpp so that £ works in layouts (using UTF-8 encoding at least) [David Haywood]. - Updated sc4fd7tha.lay with UTF8 encoding of £ sign [Krick]. - Recognize the full range of controller inputs [AJR]. - Redump leapstertv [Team Europe] - Initial Catalan translation [jmallach]. - Reduce the incidence of required_device in subdevices [AJR]. - UML: Added FCOPYI and ICOPYF instructions to pass raw data between integer and floating-point registers [Ville Linde]. - mips3: Fix behavior for 32/64 bit mode floating point register aliasing [Happy]. - screen: svg rendering from inside the rom [O. Galibert]. - Updated Portuguese (Brazil) [Ashura-X]. - luaengine: Add plugin options menu [Carl]. - TMS5220: add a 'combined rs/ws write' function for systems which require both pins to change at exactly the same time and not to reset the chip [Lord Nightmare]. - Revert software-installed slot/image options when changing software [AJR] Remove emu.h's stealth include of emuopts.h through mconfig.h; reduce dependency on emuopts.h in other headers and source files. MCFG_CPU_FORCE_NO_DRC is now a CPU configuration parameter rather than a global one; it still works to override the -drc option setting. - Make overscan on integer scaled targets optional (add option -intoverscan) [Calamity]. - luaengine: Direct and region accessors [Carl]. - Add experimental cheat lua plugin [Carl]. - Improvements to tape driver of hp9845b [F. Ulivi]. - info.cpp: Improved documentation of input devices in the -listxml output, since having just a generic 'number of buttons' is rather pointless in the context of home systems with configurable controllers (being them keyboards, keypads or joypads). Now the various controllers are listed separately with the number of buttons they have. Frontend authors who relied on the "buttons" attribute of the input node for any kind of filter shall now scan all available controllers and take the maximum among their "buttons" attribute (possibly discarding keyboards and keypads if they want) to recover the old value [Fabio Priuli]. - info.cpp: Started to acknowledge PORT_16WAY inputs in -lx, since they were reported as 8-ways so far [Fabio Priuli]. - Devfind revision phase 1, cleaning out some legacy stuff [AJR] * Eliminate the cached device_t::m_region pointer and its region() getter method. Devices that need to bind to a region with the same tag should use optional/required_memory_region or optional/required_region_ptr with DEVICE_SELF as the subtag; this improves error checking. (DEVICE_SELF has been moved to device.h for greater visibility in the source). * Allow required/optional_region_ptr to specify a specific length which must match that of the region found. * Implement finder_base::finder_tag() getter for diagnostic purposes. * Perform some (not very efficient) validity checks on memory region finders instead of allowing them to automatically pass. * Privatize device_memory_interface::m_addrspace. - Added m62(kidniki) to nl.lua. Started some experiments around parallel solving of linear equations. This code is not active. Fix kidniki audio performance [Couriersud]. - plugins/timer: Add sample plugin for game time [Carl]. - info.cpp: First attempt to fix the longstanding issue about inputs owned by devices being always tagged as P1 inputs in -lx [Fabio Priuli]. - plugins/cheatfind: start lua cheat finder library [Carl]. - apple2: Additional work on the PC Transporter [Peter Ferrie, R. Belmont]. - Basic TCP server based on libuv [Inaki Baz Castillo, Miodrag Milanovic]. - intv: Converted controller inputs to be slot devices [Fabio Priuli]. - intvecs: Converted hand controllers, keyboard and synth to be slot devices, by using a temporary hack to workaround the impossibility to plug the same device into 2 different slots as these keyboard require [Fabio Priuli]. - Skeleton implementation for Universal windows main app classes [Brad Hughes]. - String Translate for Chinese (Traditional / Simplified) [YuiFAN]. - diimage.cpp: Allow image devices to be configured with a fixed (not user selectable) piece of software and updated a few options and menu to acknowledge such possibility [Fabio Priuli]. - macs.cpp: Converted to use generic cartslot with fixed software configuration. Cleaned up loading and banking systems in the driver as a result [Fabio Priuli]. - Added extra bit as delay between bytes to make 1 stop bit work [Joakim Larsson]. - apple2: Further PC Transporter work. V30 now boots [Peter Ferrie, R. Belmont]. - mips3: Fixed DMULT and DMULTU in both interpreter and DRC modes [marathonman]. - ng_aes.cpp: Converted AES controllers to work through slot devices. Also, separated more clearly the CD component by the base unit [Fabio Priuli]. - am9517: Add clone with the non-standard mask behavior of the PC Transporter ASIC [Carl, R. Belmont]. - apple2: Updated PC Transporter to use alternate DMAC emulation & fixed V30 clock [Peter Ferrie, R. Belmont]. - apple2: PC Transporter: halt V30 properly on startup, XT has 8-bit ISA, improved 6502 CGA framebuffer writes [R. Belmont]. - screen: Fix alpha handling, cdkong looks good now [O. Galibert]. - bgfx: Add data-driven render target clearing [Ryan Holtz]. - Significant speed improvement: * Added a new solver using compressed row format. * Fixed sorting. As a result, netlist performance on kidniki nearly doubled. The performance increase is mainly due to the fact that sorting decreases the number of operations for gaussian elimination of the kidniki matrix from ~7800 to 707. In addition, compressed row format improves L1 usage [Couriersud]. - Eliminate device_t::static_config, a type-unsafe legacy feature [AJR]. * Rewrite or remove every last instance of MCFG_DEVICE_CONFIG and its two aliases, including within comments and dead code. * Make the Z80/Z180 daisy chain an interface that interfaces with the existing interface. Z8000 has been hooked up to this as well (p8000_16 already configures it), but currently does nothing with it. - mips3: Fixed interpreter bug where BADCOP exceptions would execute the faulting opcode twice [Ryan Holtz]. - Update strings.po [aviloria]. - Update German GUI translation [rootfather]. - Added ImGui based debugger [Barry Rodewald]. - apple2e: Fix C800 internal ROM reading [R. Belmont]. - apple2: Fixed inverse text drawing [R. Belmont]. - Added HQ2x, HQ3x and HQ4x shaders [MooglyGuy, Jules Blok, Cameron Zemek, Maxim Stepin]. - Soft is hard and hard is soft. Two is one and one is two. No wonder "-video accel" has substandard performance if opengl is disabled [Couriersud]. - These init calls all returned false. No need for a return value in this case [Couriersud]. - Iterate over devices C++11 style [AJR]. Replace the old device_iterator and its specialized versions with functionally equivalent classes that use standard operators to yield references to devices/interfaces rather than pointers. With range-based for loops, they no longer have to be stored in named variables, though they can also be reused concurrently since the iteration state is now maintained by a subclass. Add a few more typical getters to device_t::subdevice_list. - bgfx: Added SuperEagle shader [Ryan Holtz]. - Refactored distortion pass [ImJezze] * Separated curvature parameter into distortion, cubic_distortion and distort_corner. * Distortion and cubic_distortion can be negative, to compensate each other. * Distort_corner is intependent from the image distortion. - neogeo: Reworked inputs to work through the slot device interface. You can now configure the 15-pin ports available in the multicart driver (neogeo) with the -crtl1 and -ctrl2 options. Thus, if you want to launch janshin in neogeo with the mahjong control panel you shall now prescribe -edge "" -ctrl1 mahjong and set accordingly the dipswitch (the first option disables inputs from the edge connector). When you run single game drivers (e.g. mslug, or kof94, etc.), instead, a unique controller is available and cannot be modified. In particular, the janshin driver already comes pre-configured in the proper way [Fabio Priuli]. - Refactor OSD window: Unified renderer in osd_window as std::unique_ptr Made windows all std::shared_ptr Made window lists std::list> Updated OSD SDL worker_param to not use malloc (not compatible with smart pointers) Made renderer pointer to window a weak reference. May not be available during destruction of the window [Brad Hughes]. - Split UI and frontend part from core [Miodrag Milanovic]. - Implemented dynamic loading of precompiled solver code [Couriersud]. - saturn.cpp: Converted controllers to work through slot devices, cleaning up the related code [Fabio Priuli]. - saturn.cpp: Added support for SegaTap adapter (4 controllers) and Sega Multitap adapter (6 controllers). Saturn Bomberman can now be played as intended [Fabio Priuli]. - softlist.cpp: Add support for "rom_ignore" [Fabio Priuli]. - apple2: Fixed Apple II J-Plus text drawing, and updated notes [R. Belmont]. - r9751: Add more floppy debugging and fix DMA masking [Brandon Munger]. - ioport.cpp: extended core input to support up to 10 players [Fabio Priuli]. - Dumped Dreamcast bios MPR-21933, confirmed match MPR-21931 [CoolMod]. - cgenie.cpp: Expanded .cas support so that also files created by Genieous emulator can be loaded [Fabio Priuli]. - Added "selection" parameter to chain input sampler [ImJezze] * If specified all textures (.png) within the same directoy of the given texture will be selectable via slider in the UI. * Also added slider for "shadow mask tile mode" to HLSL chain. - bgfx: Ported xBR shaders from libretro [Ryan Holtz, Hyllian]. - Archive handling improvements [Vas Crabb] * Improve error handling in 7zip file I/O code. * Fix reading 7zip files >=4GB on LP32/LLP64 targets. * Update to LZMA SDK to 15.14, supports new 7zip features. * Stop relying on local hacks to LZMA SDK. * Support most ZIP64 features excluding directory compression. * Support LZMA-compressed files in ZIP archives. * Support Info-ZIP UTF-8 file name fields. * Fix phantom files/directories when browsing archives. * Report archive handling errors. - Update to expat 2.1.1 for security and bug fixes [Vas Crabb]. - xbox\chihiro: USB is now partially usable [Samuele Zannoli] * Control,bulk,interrupt transfers work. * Started hle simulation of usb devices on chihiro baseboard. * There is a first implementation of xbox game controller. * The Chihiro BIOS can now enter system configuration menu. - hp9845: Added capabilty to load option ROMs [F. Ulivi]. - ti99: Several code changes [Michael Zapf] * GROMs with clock input line and improved timing behavior. * TMS9928A delivers GROMCLK if configured. * TI-99/8 mainboard: implemented custom chips (vaquerro, mofetta, amigo) for low-level emulation. * Fixed HOLD feature of TMS9995. * Moved v9938 from console to EVPC where it belongs, dropped videowrp. * Fixed issues with paged37x cartridges. * Fixed issues with Horizon Ramdisk. - n64: Do SI dma transfer after delay, not before [Happy]. - tourvis.cpp: Changed to use Software Lists, trimmed all ROMs to correct sizes, confirming that the majority match exactly the PCE roms (only 3 differ, Gomola Speed which could be an alt revision, R-Type II which has been hacked, and Be Ball where there is an unknown single byte change [David Haywood]. New machines added or promoted from NOT_WORKING status ------------------------------------------------------ Ultraman Monster Battle [hap, Kevin Horton, Rik] Fidelity Sensory Chess Challenger 9 [hap, Berger] Tiger Copy Cat (2 versions) [hap, Sean Riddle] New clones added or promoted from NOT_WORKING status ---------------------------------------------------- Unitron 1024 [Felipe Sanches] New machines marked as NOT_WORKING ---------------------------------- Konami Gradius (handheld) [hap, Sean Riddle] Konami Lone Ranger (handheld) [hap, Sean Riddle] Fidelity Phantom [hap, Lord Nightmare] Polaroid Instant Memories [Alex Cmaylo] New clones marked as NOT_WORKING -------------------------------- New WORKING software list additions ----------------------------------- coco_flop: Donkey Kong Remix [Sock Master] megadriv.xml: F1 - World Championship Edition (US, Prototype) [oliverthepig] neogeo.xml: Last Hope lynx.xml: Zaku New NOT_WORKING software list additions --------------------------------------- pce_tourvision.xml: Dragon Saber - After Story of Dragon Spirit [system11] pce_tourvision.xml: Bull Fight - Ring no Haja [system11] pce_tourvision.xml: Parasol Stars