* Suppress side effects for debugger reads.
* Use memory shares or dynamically allocate larger arrays on start.
* Use explicitly sized types for member variables that need to be saved, added missing variables to save states.
* Use palette format helpers.
* Reduced literal tags, run-time tag lookups, duplicated code, unnecessary variables and preprocessor macros.
* taito/taitojc.cpp: Moved Densha de Go! games to a derived state class with the train controller support.
* taito/taitopjc.cpp: Fixed tile count, use logmacro.h helpers for logging.
* taito/tc0780fpa.cpp: Allocate bitmap storage on start but not the bitmaps themselves.
* Moved some games with hardware differences to derived state classes.
* Fixed mahjong key matrix reading.
* Fixed mono sound output routing for Drive Out bootleg.
* Suppress side effects for debugger reads, use explicitly sized types for member variables that need to be saved.
* Reduced literal tags and duplicated code.
* Made TC0280GRW a separate device.
* Changed from 12-bit to 15-bit palette format.
* Moved audio CPU memory bank configuration to start, eliminating driver init function.
* Changed Silent Dragon sound chip to YM2610B as seen on PCB photos.
* Moved Rambo III to a derived state class, fixed crash reading trackball input in rambo3p.
* Allocate bitmap storage on start but not the bitmap itself, reduced literal tags.
* Use memory share creator to allocate banked RAM.
* Use explicitly sized types for member variables that need to be saved.
* Reduced literal tags and run-time tag lookups.
* Reduced redundant code and unnecessary variables.
* Emulating metronome, including mixing with the rest of the voices.
* Emulating the RC HPFs for each voice and for the metronome.
* Using component values from electrongate.
- Changed driver name to fortune1.cpp, being the most significative hardware.
- Hooked mechanical counters to all games.
- Added hopper support to all games.
- Changed the parent/clone relationships.
- Hooked the new CPU and therefore all the functions.
- Added NVRAM support to the MSC51 family.
- Worked the 8155 connections.
- New set of inputs for bpoker.
- Added support of DS1215 timekeeper to the new platform.
- Added watchdog support.
- Promoted Video Poker (v1403) to working.
- Fix some wrong connections on the layouts.
- Fixed some buggy sounds.
- New realistic button-lamps layout for Video Poker and Fortune1.
- New realistic button-lamps layout for Baby Poker and Video Poker (v1403).
- New realistic button-lamps layout for Black Jack (Interflip).
- New realistic button-lamps layout for Video Dado.
- New realistic button-lamps layout for Baby Dado.
- New realistic button-lamps layout for Video Cordoba.
- Documented the Fortune 1 paytable.
- Added technical notes about all the three platforms.
Systems promoted to working
---------------------------
Video Poker (v1403) [Roberto Fresca, Grull Osgo]
New software list items marked not working
------------------------------------------
photo_cd: Toilet no Hanako-san, Winning Run: Ayrton Senna: 20-nen no Kiseki [redump.org]
* Allocate label helpers and map variable changes from the process heap.
They're only used during code generation and have no business being in
the DRC cache.
* Keep map variable changes contiguous, don't deallocate label helpers
and map variable changes on completing a block.
* Got rid of simple_list, more const, tidied a little.
-cpu/drcbearm64.cpp, cpu/drcbex64.cpp: Shuffled RECOVER instructions a
bit to be nicer to the CPU's scheduler.
-bus/hp_dio/hp_dio.cpp: Removed vestigial simple_list support code.
apple/gsc.cpp: Split Apple Gray Scale Controller (remarked C&T 65210) to its own device. [R. Belmont]
apple/csc.cpp: Initial Apple Color Screen Controller (remarked C&T 65220) support. [R. Belmont]
apple/msc.cpp: Initial Apple Main System Controller and MSC II support. [R. Belmont]
m6805/m68hc05pge.cpp: Initial support for the Apple/Motorola "PG&E" microcontroller. [R. Belmont]
apple/macpwrbkmsc.cpp: New driver for MSC and MSC II-based Mac PowerBooks and PowerBook Duos. [R. Belmont]
Systems promoted to working
---------------------------
Apple Macintosh PowerBook Duo 210 [R. Belmont]
New working systems
-------------------
Apple Macintosh PowerBook Duo 270c [R. Belmont]
Apple Macintosh PowerBook Duo 280 [R. Belmont]
New working clones
------------------
Apple Macintosh PowerBook Duo 230 [R. Belmont]
Apple Macintosh PowerBook Duo 250 [R. Belmont]
Apple Macintosh PowerBook Duo 280c [R. Belmont]
* mystwarr & metamrph & dadandrn sprite callbacks:
mark sprites with their attribute bits for blending
* reverse sprite blending
* minor k053247_device::zdrawgfxzoom32GP cleanup:
-move variable declarations closer to use
-use appropriate variable types
-mark applicable variables as const
-move "cull off-screen objects" early out check earlier in function
-move back "dst_" vars under appropriate comment
-further reduce reuse of "eax" variable
-use cliprect directly inside function
-rename various "eax" variables
-simplify switch-case to if statement
* Recognise immediate values that can be generated using a movn with
shift 16 or an orr immediate into a W register.
* Recognise repeating patterns that can be represented as a bitmask
immediate value.
* Slightly optimised generated code for UML AND when at least one
argument is immediate zero.
* Added optimised UML AND code when the instruction size is 8 but the
second argument is a valid 32-bit bitmask immediate.
* Detect immediates that can be generated with a single movz/movn/orr.
* Prefer adr over add to base register (no register dependency).
* Don't bother trying to load base register value from memory.
* Got rid of loop in check for contiguous mask values.
* Slightly optimised generation of ROLAND/ROLINS shift counts.
* Reduced literal tags and run-time tag lookups, use more descriptive tags.
-konami/konami_helper.cpp: Made layer sorting functions templates, reduced dependence on preprocessor.
A lot of them were empty anyway, or years at risk of getting out of
synch with the source files. There's still a commented system entry for
some Nokia PC, and the comment at the top of the file.
Also sorted systems for some PC source files.
-----------------------------
Fruit Bonus 2010 (v. 2.0.1.0) [Ioannis Bampoulas]
Tengai (bootleg) [Taksangs]
- namco/namcos12.cpp: verified that contents of the TKK1-A CD for truckk are the same of the TKK2-A CD [Hammy]
* Use more appropriate integer types, and made some variables const.
* Reduced duplication.
* Cleaned up graphics decoding layouts and improved ROM region and object finder names.
* Increased main CPU ROM region size to fix out-of-bounds accesses in some banks.
* Reduced sound CPU ROM size to match area mapped in address map.
* Made some variables const and reduced preprocessor macros.
* konami/timeplt_a.cpp: Use a device finder array for audio filters.
* Suppress side effects for debugger reads.
* Use bit helpers, made some variables constant.
* konami/k001006.cpp: Derive from device_palette_interface for palette.
* konami/k001006.cpp: Throw a fatal error if the texture ROM size is not a supported size.
* konami/k001006.cpp: Match texture data size to texture ROM size.
* Use a memory view for the RAM overlay.
* Reduced the sound CPU ROM region size to match the area mapped in the CPU address space.
* Added comments about unknown writes in address map.
* Emscripten: Fixes to get BGFX working
* Move emscripten specific setup into an #elif statement
* Fix indentation
* emscripten: remove no longer link option DEMANGLE_SUPPORT
- Added real NVRAM support.
- Added a default NVRAM to get the system working.
- Improve the memory system.
- Inputs from the scratch based on the new reverse-engineering.
- Added jumpers connections.
- Created settings for the hardcoded functions/modes.
- Added coin-in and coin-out counters.
- Added workaround to unmask the inputs for the gambling mode.
- Redefined the interrupt system.
- Documented all the different modes and features.
- Documented the reverse-ingeneering done to get all the modes working.
- Documented the inut system through reverse-engineering.
- Modded the coin-in input, now tied to the PIA6821.
* Fixed Final Furlong failing to boot.
-util/mfpresolve.cpp, emu/emumem_aspace.cpp: Moved some member function
pointer manipulation stuff into the library. Gives another slight
reduction in the size of libemu.
cpu/drcbearm64.cpp, cpu/drcbex64.cpp: Removed static trampoline
fallbacks for get map variable value and debugger instrcution hook
functions.
cpu/drcbex86.cpp: Removed static trampolines for get map variable value
and debugger instrcution hook functions.
cpu/drcbex64.cpp: Corrected stack diagram in comment.
New systems marked not working
------------------------------
Intellec 8 MCS MOD80 (set 1, 884A) [ArcadeHacker]
New clones marked not working
------------------------------
Intellec 8 MCS MOD80 (set 2, 880) [ArcadeHacker]
------------------------------
Bomberman Misobon Roulette (961028 JPN) [Steamy Jimmy, Sean Riddle]
Clones promoted to working
--------------------------
Head Panic (ver. 8.30) [trol]
- Click and adjustment state is now tracked for each pointer ID individually,
rather than globally.
- If a user selects the slider knob, the adjustment will be proportional to
the knob movement. This allows for finer adjustments. If the user clicks
elsewhere on the slider, the adjustment is based on the absolute position
of the click.
- Rewrite DMAC DMA controller. Now actually transfers data.
- Add preliminary support for the A590 hard disk controller
- Add preliminary support for the Action Replay freezer devices
- Add support for the MegaMix 500 RAM expansion
- Add preliminary support for the A2091 hard disk controller
New working software list additions
-----------------------------------
A590 Setup Disk 1.7 (Western Digital Harddisk) [Turran FTP]
A2091 Setup Disk 1.27 [Amiga Hardware Database]
cpu/drcbex86.cpp: Don't use static address space accessors. This gives
a big performance improvement.
cpu/drcbeut.cpp: Made failure to resolve address space accessors fatal.
cpu/drcbearm64.cpp: Removed fallback to static address space accessors.
cpu/mips3/mibs3.cpp: Removed static address space accessors. All they
were doing was hurting performance.
cpu/drcbex64.cpp: Don't use goofy X64_WINDOWS_ABI macro, just check
_WIN32. The only other environment that uses the Windows calling
convention is (U)EFI, and we can move feature detection to util/abi.h if
we ever need to care about it.
* Removed hard-coded tags and reduced code duplication.
* Improved save state support, suppress side effects for debugger reads.
* Increased size of CG board ROM regions to avoid out-of-bounds errors if higher banks are selected.
* Use bitfield extraction helpers, reduced literal tag usage, use logmacro.h for logging, made some variables const.
* Reduced preprocessor macros, updated comments.
-konami/gticlub.cpp: Removed unnecessary code.
-konami/hornet.cpp: Split driver state class for different configurations, moved bank configuration into machine_start().
-konami/nwk-tr.cpp: Split palette per CG boards (K001604 also has palette RAM interface?).
* Use a memory view for the boot ROM overlay.
* Reduced literal tags, reduced duplicated code, and made some variables const.
-machine/z80dma.cpp: Suppress side effects for debugger reads.
* Corrected Wardner palette size.
* Suppress side effects for debugger reads, register for save states in machine_start().
* Use bit extraction helpers, reduced scope of loop counter variables.
* Reduced literal tag usage, use more appropriate types for variables, made some variables const.
* formats/cassimg.cpp: Put allocation outside loop again, check more allocations for failure.
* pc8801_flop.xml: Actually mark clones as clones, transliterate title for S.F.3.D.
* apple/macadb.cpp: Tidy a little.
* MC68EZ328: Allow selection and use of Port A
On EZ and VZ, PASEL is reserved, and it was hard-coded to 0 (disabled).
However, the user manual notes: "In an 8-bit-only system, you can
configure these pins as a parallel I/O port by writing a 1 to the
WDTH8 bit of the SCR."
According to the MC68328 datasheet, something similar should be needed
to activate its Port B, but that change is not included here. Its PBSEL
is exposed, so there is likely no difference in emulation.
* MC68EZ328: Fuller implementation of timer
The existing implementation left the timer counter (TCN) at zero until
the compare value (TCMP) was reached. However, some software relies on
reading the TCN values to measure elapsed time.
The timer counter (TCN) now increments on every timer tick.
* Cleaned up drawing code.
* Removed redundant gfxdecode and palette (both are already handled in ST0016).
* Improved save state support, suppress side effects for debugger reads.
* Reduced literal tags, updated comments.
------------------
Fruit Bonus 2004 (Version 1.4) [Ioannis Bampoulas]
New systems marked not working
------------------------------
Dream 9 (v1.52) [Hammy]
New clones marked not working
-----------------------------
Cherry Bonus IV (V1.2) [Hammy]
Speed Up / Kkot Bi Nyo (Korea) [taksangs, charlie]
The Roulette (Visco, medal) [Hammy]
- modelracing/sshot.cpp: redumped sshota [f205v]
* Improved saved state support, suppress side effects for debugger reads.
* Use more appropriate types for some variables, reduced local variable scope and made more variables const.
* Reduced literal tag use, improved ROM region names, reduced preprocessor macros.
------------------
Raiden Fighters (Korea, SUB2 cart) [NFG]
Super Shot (set 2) [f205v]
New systems marked not working
------------------------------
GPi 1200 [taksangs]
- namco/quickncrash.cpp: dumped correct dot CPU ROM for qncrasha [DogP, man-of-eel]