New working software list items (neogeo.xml)
--------------------------------------------
Double Dragon One (demo) [OzzyOuzo]
Double Dragon One (prototype 1) [Casa de Ruivo]
Double Dragon One (prototype 2) [Casa de Ruivo]
Xeno Crisis [O'Cara-do-Sei-lá]
* Implement device_palette_interface for color palette functionality.
* Added some missing members to save states, and use fixed-size integer types for members that need to be saved.
* Moved many internal functions into protected: and private: sections.
* Use more appropriate integer types, made many local variables const.
* machine/ie15_kbd.cpp: Reassigned keys on the IE15 keyboard to match the layout of a VT52 keypad.
* ussr/ms0515.cpp, ussr/dvk_ksm.cpp: Removed keyboard serial speed workaround.
-emu/diexec.cpp: If a shorter input line pulse overlaps a longer pulse, don't shorten the pulse.
-cpu/e132xs: Added named input line number constants.
-video/sprite.cpp: Got rid of simple_list and fixed_allocator.
------------------------------
Bio Rhythm [Siftware]
Janken Man Ganso 2 [buffi]
Jipin Dou Di Zhu (set 1) [little0]
San Da Yi [little0]
New clones marked not working
-----------------------------
Feng Kuang Dou Di Zhu II [little0]
Jipin Dou Di Zhu (set 2) [little0]
- bmc/koftball.cpp: identified a couple of inputs for jxzh [little0]
- igs/igspoker.cpp: added NVRAM support, split driver in subclasses, small cleanups
- kaneko/airbustr.cpp: added PLD dumps for the original sets [PLD Archive, f205v]
This was "working" on x86-64 due to the backend treating shift/rotate
instructions with zero immediate bit count as a no-op even if the source
and destination registaer aren't the same. Fixing the bug in the
back-end caused it to break the same way on x86-64 as it does on the
other three back-ends that didn't have this bug.
* Fixed many cases that could cause the upper bits of a register not to
cleared following a 32-bit operation.
* Added more simplifications.
* Allow many simplifications when flag updates are requested.
* Fixed various bits of unreachable code.
* cpu/drcbearm64.cpp, cpu/drcbex64.cpp: Removed code for special-casing
some situations the simplifier can now take care of consistently.
-cpu/drcbex64.cpp: Fixed a bug causing some shifts to be treated as a
no-op when the destination and source are not the same.
-cpu/drcbearm64.cpp, cpu/drcbex64.cpp: Added a special case for
comparing something to itself.
-cpu/e132xs: Use the CARRY instruction rather than a right shift to set
up carry in.
- Working RAM through PPI 8155 internal RAM and handlers.
- Extended the PPI 8166 to support the 14bit timer + 2bit control.
- Hooked the i8257 DMA controller.
- Demuxed the digital inputs.
- Adjusted screen visible area.
- Worked the DMA support to get registers in the correct addressing.
- Hooked the analogic inputs.
- Added inputs for two players.
- Added DIP switches for coinage, difficulty, and lives.
- Added and demuxed spinner controls.
- Added NVRAM support.
- Sound support.
- Adjusted the spinners parameters to general purpose.
- Sound level control circuitry.
- Wired players lamps.
- Added technical notes.
- Rewrote the enhanced no documented i8085 RDEL & DSUB
instructions and their own flags.
Systems promoted to working
---------------------------
Paracaidista [Roberto Fresca, Grull Osgo]
* sound/c6280.cpp: Improved accuracy of volume control and LFO.
* video/huc6260.cpp: Suppress side effects for debugger reads, fixed save state issues.
* video/huc6270.cpp: Suppress side effects for debugger reads.
* Chose better types for member variables, made more local variables const, reformatted code.
* Corrected the calculation of the voice DC-block HPF.
* Audio streams are in voltages.
* Cross-checked component values with parts list, and corrected a couple of them.
* Also updating master volume and pitch adjustments on reset.
* There are no byte enable or write strobe signals for I/O, and there's
only a single operand size, so word addresses make more sense.
* Also changed STBS/STWS to allow any valid signed or unsigned value of
the applicable size. This allows vamphalf attract mode to work as
well as the storage test.
-misc/limenko.cpp: Better input types for spotty.
* Only a single I/O access is generated for an I/O word read/write. The
upper half just disappears if the pins aren't present. This fixes
"phantom" I/O accesses, allowing address maps to be cleaned up a bit.
* Reduced I/O address width for models with 16-bit external bus to match
hardware.
* Made addressing consistent between interpreter and recompiler for I/O
double-word accesses.
* Implemented power down via internal I/O write for E1-X and later
cores (none of the games I tested actually use it).
-misc/pasha2.cpp: Enabled the recompiler for Zooty Drum - it gets just
as far as the interpreter now.
* Got package option (T, N or B suffix) out of device type.
* Enabled 4x PLL clock multiplier for GMS30C2216/GMS30C2232.
* Implemented entering power down mode via MCR for E1 and E1-X cores.
* Marginally better code generation for a few instructions.
* Log available bus/memory configuration options for different cores.
* Added post load handler for E1-XS and E1-XSR cores to install SDRAM
mode/configuration handlers if necessary.
* Improved comment about different Hynix and Hyperstone CPU models.
-cpu/drcbearm64.cpp: Don't update flags that aren't requested in a few
places.
------------------------------
Happy Planet [Guru]
New working clones
------------------
Mahjong Electron Base (parts 2 & 3, Japan set 3) [little0]
- excellent/es8906.cpp: fleshed out a bit
* Assume ROL sets the V and C flags the same way as SHL and MOVI clears
the V flag.
-cpu/drcbex64.cpp: Optimise SUB x,0,y to a NEG instruction (gets down to
one instruction from two or three a lot of the time). This had been a
TODO comment for ages.
-cpu/drcbex86.cpp: Got rid of unnecessary std::function use. This
substantially reduces the code size and reduces allocations during code
generation.
-cpu/drcbearm64.cpp, cpu/drcbex64.cpp, cpu/drcbex86.cpp: Got rid of the
intermediate tables in favour of bit switch statements. This improves
startup time, reduces code size, and gives the compiler more
optimisation opportunities.
-cpu/drcbearm64.cpp, cpu/drcbex64.cpp, cpu/drcbex86.cpp: Got rid of
asmjit namespace qualifiers left over from when the class declarations
were in headers and hence outside the scope of the using namespace
statements.