* galaga: Implement accurate starfield based on reverse eng. 05xx
----------------------------------------------------------------
This commit implements an accurate starfield for Galaga and
Bosconian based on reverse engineering the Namco 05xx chip.
Documentation and notes have been added inline to the code
for the galaga video driver.
Changes in this commit:
1. Regenerates starfield colors based on LFSR state for every frame
2. Pixel accurate to Namco original 05xx
3. Restores one line horizontal starfield shift for every 256
vertical pixel shifts
4. Properly handles LFSR reset (_STARCLR)
5. Restores missing 4 stars from previous implementations
6. Fixes potential issue with the number of stars on screen at any
one time
7. Restores 4 pixel/line scrolling capability (not currently used
for any driver)
* galaga: inplement accurate starfield - change request 1
-------------------------------------------------------
1. Remove stdlib.h from src/mame/video/galaga.cpp
* galaga: inplement accurate starfield - change request 2
-------------------------------------------------------
1. Refactor starfield generator into stand-alone video
device
2. Simplify Bosconian and Galaga video drivers
3. Add in documentation about different LFSR form used
by Wolfgang Scherr and Jindřich Makovička.
* galaga: inplement accurate starfield - change request 3
---------------------------------------------------------
Minor changes from pull request review
__float128 is a gnu extension delivering true 128 bit floating point
support. Currently not supported by clang. In addition, the quadmath
library needs to be linked. For the time being therefore disabled.
Renamed cast member of the constants struct to magic to clearly identify
magic numbers.
Introduced nlconst struct inheriting from plib::constants<nl_fptype> to
make code better understandable.
The newly added RELTOL and VNTOL parameters implement Newton convergence
checks comparable following other SPICE implementations.
The ACCURACY solver parameter now is only used for convergence checks in
iterative solvers.
In addition, type safety was significantly improved and a lot of "magic"
numbers are identifiable now.
Now that `direct_read_data` has been replaced with `memory_access_cache`, which is better equipped to deal with dynamic banking, there should be all the more reason to put an end to this pernicious antipattern.
- Added new solver parameter FPTYPE. This determines in which floating
point domain the linear system is solved. May be one of "FLOAT",
"DOUBLE" or "LONGDOUBLE"
- Added option "--fperr" to nltool. This enables floating point
exceptions. This helps debugging the code under gdb.
The purpose of this going forward is to have more choice in
optimization. Non-dynamic systems should be just fine in the float
domain. Dynamic systems (i.e. diodes, bjts, mosfets) should in general
work with double. Certain edge cases may require long double resolution.
* new NOT WORKING machines
---
Air-Blaster Joystick (AB1500, PAL) [David Haywood, Morten Kirkegaard, Peter Wilhelmsen]
boots, 2d games can be played, although speed probably not correct. 3d sections don't work properly at all. dump is pending 2nd verification, but I think the issues are emulation issues (missing timers etc.)
* notes (nw)
* irq notes (nw)
--------------------
RS-232 DCE-DCE Bridge
(nw) This is a simple machine for wiring together two things that want
to plug into an RS-232 port. This means that for DCE-like things (e.g.
serial printers) there's no need to create an extra machine to allow
them to talk to the outside world with the null_modem device. (Also
added some asserts, removed a FIXME, and put the swtpc8212 terminal in
the default RS-232 devices.)
----------------------------------
Eeekk! [Craig Anstett, Andrew Welburn]
(This new parent set runs on Epos's original Tristar 8000 hardware; the previously dumped set has been tagged as the Pac-Man conversion it is.)