0.179GIT
- New games: Humlan's Lyckohjul, Istrebiteli, Mahjong Senpu, Ocean to Ocean (Medal) [DECO Cassette MD], Splendor Blast II and Super Two In One
- New Working games: American Music Poker, Power Drift (Japan, Link Version) and Tatakae Genshizin Joe & Mac (Japan, bootleg)
- New Non-Working games: Big Casino, Choro Q Hyper Racing 5, Crazy Dou Di Zhu II, Grande Fratello, Puzzle Yutnori (Korea) and Super Triv Quiz I
- New clones: Bombjack Twin (prototype? with adult pictures, set 2), Dead or Alive 2, Demon's World / Horror Story (set 2), Lady Maker [BET] (Japan), Ocean to Ocean (Medal) [DECO Cassette MD] (No.10/Ver.6,US), Poker (Version 50.02 ICB, set 4), Ron Jan, Splendor Blast (set 2), Splendor Blast (set 3), Stargate (rev.5), Tarzan Chuang Tian Guan (V109C, set 1), Teenage Mutant Ninja Turtles (Asia 4 Players, version ?), UniWar S (bootleg), Video Hustler (bootleg, set 3) and Wing War R360 (US)
- New drivers: funtech.cpp, istrebiteli.cpp and mjsenpu.cpp
- New devices: ad7521, ad7524, ad7528, ad7533, am6012, dac_10bit_r2r, dac_12bit_r2r, dac_12bit_r2r_tc, dac_16bit_r2r, dac_16bit_r2r_tc, dac_2bit_r2r, dac_3bit_bw, dac_4bit_bw, dac_4bit_r2r, dac_6bit_r2r, dac_8bit_bw, dac_8bit_r2r, dac_8bit_r2r_tc, istrebiteli_sound, mc1408, mc3408, mc3410 and volt_reg
- ARM7 CPU: Performed some minor optimization
- SH-2 CPU: Added read-back for BCR1 register, fixing missing polygons in (MESS) Daytona USA CE for Saturn. Added stub bus\sci\wdt devices for SH7604, this part will require more work as H8 and SH-2 shares same chips.
- SH-4 CPU: Reinstate lines removed in error
- AY-3-8910A sound
. Mention the OKI M5255, Winbond WF19054, JFC 95101, File KC89C72 and Toshiba T7766A as compatible / clone (sound\ay8910.h).
. Implement upper address check, not configurable at present but chips could be ordered from the factory with ID's other than 0. Allowing you to chain multiple chips without adding extra address lines. Don't hardcode AY8910 into logerror, using name() instead.
- CD Audio: m_audio_ended_normally is set within the stream_update(), so update the stream before returning it (sound\cdda.cpp)
- DAC sound
. Ataxx: Fixed missing sound channel caused by one DAC not being hooked up and one DAC being hooked up to two addresses.
. Best Of Best: Fixed high pitch screech caused by incorrect addressing (two dacs weren't hooked up and two were hooked up to two addresses).
. Cosmic Chasm: Fixed static noise generation caused by feeding the same bit to both DACs.
. Cheeky Mouse: Slightly improved sound by implementing sound triggers as 8 x 1 bit DACs instead of 1 x 8 bit DAC.
. harddriv.cpp: Improved 12 bit controls in all games in driver, although centre still goes out of sync.
. Mega Phoenix: Fixed noisy samples due to wrong format.
. Seicross and suna8.cpp: Changed to a 4 bit DAC as samples are packed nibble.
. Space Guerrilla: Preliminary sound using space invaders samples.
. Virtual Combat: Fixed static during machine gun fire due to incorrect DC offset removal.
. vectrex.cpp: Fixed noisy samples due to wrong format.
. Wheels & Fire: Fixed sound, EEPROM & analogue steering wheel and brake pedal.
- ES5505/6 sound
. Fixed readback of global registers when the current page was in a certain range
. Real hardware does run the voice for a zero-length loop and the synths rely on it. These changes fixed the playback of "Transwaves" on the (MESS) VFX and SD-series synths [Christian Brunschen].
- TMS3615 sound: Use new deprecated attribute
- Volume Filter: Update stream before setting the new gain (sound\flt_vol.cpp)
- 6840 PTM: Changed WRITE8 to WRITE_LINE for single-bit outputs. Changed device to use an array of devcb_write_line.
- 8253 PIT and MSM5832 RTC: Eliminate device name from logging messages
- CHDMAN: Fixed chdman addmeta --valuefile by calling the correct write_metadata
- MC6845 CRT: Allow cursor blink state to be read
- RP5C01 RTC: Fixed clock regression with RP5C01. This also makes the RP5C01's NVRAM actually non-volatile (previously it would be cleared upon reset after being loaded). The RP5C01 has a power supply line but no reset signal input, so device_reset doesn't seem to make sense here.
- Z80 SCC
. Z-Bus interface functions zbus_r and zbus_w added supporting shift left/right modes. Improved variant handling including the incomplete read register maps for some. External CTS and DCD interrupts added. Improved device reset values. SWI acknowledge command added. Improved/fixed handling of wr9, rr2, rr3. WR7PRIME register added. Fixed vector modification.
. Added iack by reading rr2. z80daisy_iack now returns -1 when no vector found or disabled through the WR9 VIS. Removed z80daisy_reti code to match SCC documentation. Removed defacto reset values where possible and replaced them with documented SCC reset values.
- atlantis.cpp and midzeus.cpp
. Removed unused define parameter in Atlantis driver. Removed includes\midzeus2.h and video\midzeus2.cpp as not needed.
. Zeus-2 video: Updated waveram organization. Updated quad rendering command size. Updated register naming.
- chihiro.cpp
. Clarifications and renaming for 3D matrices
. Tidy up video\chihiro.cpp and updated driver notes. More details about AN2131QC pins.
- cischeat.cpp
. Set default palette init to black and fixed communications RAM ranges
. Fixed dipswitch 'Unit ID' in F-1 Grand Prix Star II.
. Added IRQ notes and bumped framerate to 60 Hz to all minus captflag/scudhamm.
. Various input related bug-fixes to Wild Pilot: Lightgun is actually an ad-stick. Added Player 2 inputs. Fixed bogus start button starting a play even without a coin inserted. Demoted Wild Pilot to MACHINE_NOT_WORKING.
- crystal.cpp, jalmah.cpp and ninjakd2.cpp: Added MACHINE_UNEMULATED_PROTECTION flag to Mahjong Channel Zoom In, Mahjong Daireikai and Otogizoushi Urashima Mahjong (games have unfinished m68k snippets), Mahjong Kakumei 2 (uses protected RNG), Atomic Robo-kid (random crashes), Donggul Donggul Haerong and Office Yeo In Cheon Ha.
- decocass.cpp
. Tagged all the DECO Cassette sets as US / Japan based on which BIOS type they use (A = Japan, B = US/World, they aren't compatible, using the wrong one will give a loading error). Note clone Bump 'n' Jump (DECO Cassette, Japan) is for type B, so was incorrectly tagged as Japan (or has been hacked).
. Make the different decocass BIOS roms actually selectable.
- megasys1.cpp: Added save state support
- midvunit.cpp, midzeus.cpp and seattle.cpp: Added clickable buttons to a few Midway layouts (calspeed, crusnexo, crusnusa, hyprdriv and vaportrx) and cleaned up some code.
- model1.cpp
. Allow NetMerc to boot. There still seems to be something uninitialized or some memory corruption as quite often it will crash instead of launching, but if it does launch you can get a title screen and attract demo with some 3D. Roms pass in rom test now too. 3D is quite broken, lots of polys being stretched in weird ways and no 3D palette.
. Make Model 1 render list scanning code safer by masking accesses to the ram size and using less pointer math. Without this invalid displaylists can easily crash MAME because the pointer artihmetic can end up going way beyond RAM sizes with no easy way to mask. NetMerc still crashes due to other things tho.
. Allow NetMerc 68k to run
- skylncr.cpp: Update driver to use RAMDAC
- stv.cpp: Added Taiwan 97/05/15 v1.14 BIOS. Minor documentation update.
- system16.cpp: Preliminary sound for clones Bay Route (encrypted, protected bootleg) and Golden Axe (encrypted bootleg
- American Music Poker
. Major improvements (Game now playable)
. Inputs figured out almost completely
. Added blinking cursor for service mode
. Gross hacks used to get coins working due to broken IRQ timings
. Palette remains in dire need of improvement
. RTC writes now actually go through, so the game will remain stuck in 1987 until the date is changed. Added the new machine flag for the unemulated printer.
- Caveman Ninja: Some work on clone Tatakae Genshizin Joe & Mac (Japan, bootleg). Promoted to WORKING with known problems.
- Destiny - The Fortuneteller: Updated to use stub LCD and updated flags
- Draw Poker (Bally, 03-20): Redumped sound roms
- Emeraldia: Fixed Emeraldia (World) visible area (ID 06404)
- Irritating Maze: Redumped v2 rom and fix rom loading. No XML update as this cart isn't in the softlist as it was for a dedicated machine with custom BIOS only.
- Mahjong Kaguyahime Sono2 [BET] (Japan 890829): Fixed clone Mahjong Kaguyahime Sono2 Fukkokuban [BET] (Japan 010808) year info (ID 06110)
- PinMAME: Replaced sound ROMs for Contact, Disco Fever, Phoenix and World Cup Soccer with game specific sound dumps (drivers\s3.cpp).
- Poker / Black Jack (Model 7521): Added PROM, PAL and updated PCB layout.
- Power Drift: Spotted link ID and link communication mode in clone Power Drift (Japan, Link Version), promoted game to working.
- San Francisco Rush: Added layout
- Vs. Janshi Brandnew Stars: Added missing soundlatch to Vs. Janshi Brandnew Stars, this fixed crash when a credit is inserted (ID 06391).
- Witch: Take the 'Hopper Active' dipswitch value into proper account; no longer must it be low. Added ticket_dispenser_device::motor_w as a proper WRITE_LINE method, first step towards eliminating the m_active_bit=0x80 nonsense.
- Input port
. Separate natural keyboard support from ioport.cpp
. Added ticket_dispenser_device::motor_w as a proper WRITE_LINE method, first step towards eliminating the m_active_bit=0x80 nonsense (machine\ticket.cpp)
. Misc. keyboard input improvements
. Added BS, Tab, 00, 000 keys common on add-on keypads as input items; SDL may recognize these, but DirectInput does not.
. Assign Keypad 00 and Keypad 000 in several drivers' input lists
. Added SDL keycode for "cancel" key
. Added keypad keys as alternates to natural keyboard
. Moved has_keyboard() out of the core; enabled() test is unnecessary now that all optional keyboards are slot devices.
. Incorporate product/instance unique identifier in device ID for directinput devices
. Parenthesize optional items in input menus (ui\inputmap.cpp)
. Lock out ioport_fields independently of natural keyboard state
- Dipswitch fixes in dynax.cpp, mjsister.cpp, nbmj8688.cpp, nbmj8891.cpp, nbmj8991.cpp, nbmj9195.cpp, niyanpai.cpp, segaybd.cpp, snowbros.cpp, srmp6.cpp and ssv.cpp
- Renamed (demonwld1) to (demonwld2), (demonwld2) to (demonwld3), (demonwld3) to (demonwld4), (doa2) to (doa2a) and (ronjan) to (ronjans)
- Description changes of Bishou Jan (Japan, Ver. 203), Bombjack Twin (prototype? with adult pictures, set 1), 'lots of DECO Cassette games', Demon's World / Horror Story (set 3), Demon's World / Horror Story (set 4), Demon's World / Horror Story (set 5), Dynamite Baseball '99 (Japan) (Rev B), Dynamite Baseball NAOMI (Japan), Everyone's A Winner (Barcrest) (MPU4) (unknown rev, bad), Idol Janshi Suchie-Pai II (v1.0), Idol Janshi Suchie-Pai II (v1.1), New 2001 (Italy, Ver. 200N), Ron Jan Super, Sega Strike Fighter (Rev A), Royal Poker V 1.85, Sega Strike Fighter (Rev A, no training mode), Splendor Blast (set 1), Tarzan Chuang Tian Guan (V109C, set 2), Tatakae Genshizin Joe & Mac (Japan, bootleg), World Series 99 / Super Major League 99, World Series Baseball / Super Major League (GDS-0010) and X-Plan (Ver. 101)
- MAME
. VIDEO RENDERING SYSTEM
. HLSL/BGFX
. Fixed target texture dimension when -intoverscan is used (this fixes the appereance of scanline and shadow mask)
. Added target_scale and screen_count uniforms
. Rounded corners now remain aligned with screen bounds when -intoverscan is used (single screen only)
. Use floorf rather than floor for float->float (bgfx\chain.cpp, chainmanager.cpp and d3d\d3dhlsl.cpp). Fixed OSX build: Use fabsf rather than abs for float->float (emu\render.h).
. Fixed aspect ratio of rounded corners
. Fixed crash in ui\selgame.cpp
. Fixed use of uninitialized stack memory in drawd3d.cpp
. UI
. Added "Software Media" folder (swpath). Allows users to specify location of loose software (emu\diimage.cpp, emuopts.cpp and ui\dirmenu.cpp).
. Split media_identifier and console in separate files
. 3rdparty
. Added ASIO networking library. Removed libuv library. Replaced code usage of libuv with ASIO library. Added more warning disable to support compile on various Clang versions.
. Added Sol2 header only library as future replacement for luabridge
. Added Linenoise Next Generation library for CLI
. PLUGINS: Updated hiscore.dat
. Increased number of OSD modules (modules\osdmodule.h)
. Register window messages before creating window (output\win32_output.cpp)
. Proposal for new system flags: MACHINE_NODEVICE_MICROPHONE For unemulated microphone, MACHINE_NODEVICE_CAMERA For unemulated camera, MACHINE_NODEVICE_PRINTER For unemulated printer, MACHINE_NODEVICE_LAN For unemulated linking multi-cabinet capabilities and MACHINE_NODEVICE_WAN For unemulated networking capabilities. Restructured MACHINE_FLAGS into FATAL / WARNING / BTANB main categories, in order to make them easier to expose.
. Initial work on console interface. Use Ctrl-Z to close console on any OS. To start use -console parameter.
. Soft resets no longer turn back clocks on devices (device_rtc_interface)
. Cleanups and refinements
. Give RTCs their own phase of machine initialization, right after NVRAM loading
. Make RTC feature flag overrides const, including one new one
. Make rtc_clock_updated a required override
. Fixed INI creating for individual games when the game and the driver share the same name (ID 03045)
- Android: Set Android 5.0 as minimum one, older API are not compatible
- MESS
. Intel documentation is conflicting, which prompted osdev to claim that 128k DMA was impossible. Masking the lowest bit of the page instead of the upper bit of the address makes more sense and it does also fixed the issue with SB16 diagnose.exe playing silence (bus\lpci\southbridge.cpp, machine\cs4031.cpp, wd7600.cpp and machine\at.cpp).
. Applied IBM AT 16-bit DMA wrap round fix to other implementations.
. Added "headphones" to ATAPI CD-ROM drives
- Compiling
. Fixed two leaks (input\input_winhybrid.cpp and sound\xaudio2_sound.cpp)
. Added new string conversion overloads. Bulk renaming of Windows string conversion functions: utf8_from_[a|w|t]string ==> osd::text::from_[a|w|t]string and [a|w|t]string_from_utf8 ==> osd::text::to_[a|w|t]string.
. Made imgtool_image (now imgtool::image) a "real" C++ class. C++-ified a few more classes: imgtool_partition ==> imgtool::partition and imgtool_directory ==> imgtool::directory. Changed many 'imgtool::stream *' to 'imgtool::stream &'. Changed a number of callbacks to be std::function instead of old fashioned function pointers. Changed the create/open callbacks to take 'imgtool::stream &&'. Changed 'imgtool::image *' ==> 'imgtool::image &', 'imgtool::partition *' ==> 'imgtool::partition &' and 'imgtool::directory *' ==> 'imgtool::directory &'. Modernized imgtool::image::list_partitions(). Changed imgtool::image::info() to use std::stream and std::stringstream.
. Some bool <-> int not needed conversions, also cleaned drivenum.* was using memset for clearing vector.
. Changed dynamic_buffer to std::vector
. Use std algo instead of manual setting (emu\screen.cpp)
- Debugger
. Fixed disassembly if 6809 is interrupted mid-instruction (debug\debugcpu.cpp and dvdisasm.cpp). Sync pc & curpc and removed superfluous callimport()/callexport() on STATE_GENFLAGS.
. Make sure all CPU's export STATE_GENPCBASE and use safe_pcbase() for everything in the debugger, which allows interruptible CPU's to work properly. Changed CPU cores pcbase handling to be consistent with the majority of CPU cores, now that the debugger relies on it.
. Fixed disassembly window updating when you set pc/curpc on 68000 and Z80. Removed masking from SH-2 curpc to be consistent with old versions and the pc passed by the interpreter to the hook to be consistent with the DRC.
. Added row size as sixth parameter to debug dump command (debug\debugcmd.cpp)
. Fixed disassembly window for ADSP21062, ALPHA-8201, ALPHA-8301, APEXC, I80186, PDP8 and MIPS3 CPUs.
"Theory is when you know everthing but nothing works. Practice is when everything works but no one knows why.
In our lab, theory and practice are combined: nothing works and no one knows why."